MT Showcase SDK
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Pages
Showcase Namespace Reference

The core Showcase library. More...

Classes

class  Generator
 -----------—— Backend component interfaces --------------—— More...
 
class  SynchronousGenerator
 This implementation enables writing simple synchronous code when generating values without not stalling the main thread. More...
 
class  CachedGraph
 Cached graph reads, monitors and caches connected graph starting from the given root node. More...
 
class  CachingGraphGenerator
 Graph node generator that caches events. More...
 
class  CachingPropertyGenerator
 Node property generator that caches events. More...
 
class  ChangeListener
 This class implements the change listening for CachingGenerators. More...
 
class  ComponentInstance
 Proxy object for instanced object (f.ex. Widget or service). More...
 
class  Component
 Interface for the basic building block of Showcase. More...
 
class  ComponentPlaceholder
 This class is used to obtain the minimum amount of information about the component before it can be constructed (component and name) More...
 
struct  RunConfiguration
 Run configuration defines Showcase application looks, content and settings. More...
 
class  Configuration
 This class holds configuration for Showcase. More...
 
class  ContentNode
 Representation of a node in a content graph. More...
 
class  DatabaseManager
 This class provides a thin wrapper around database connections using QSqlDatabase. More...
 
class  DragHandler
 Handles all drag logic. More...
 
class  DragStarterOperator
 Adds dragHandler when widget gets interaction. More...
 
class  NodeEvent
 NodeEvent is an event which is generated by GraphGenerator. More...
 
class  PropertyEvent
 
More...
 
class  GeneratorValueStream
 Wraps results of multiple value generators to a single value stream. More...
 
class  Graph
 
class  GraphConsumer
 This class abstracts the listening of the graph events. More...
 
class  GraphGenerator
 Component interface for graph generators. More...
 
class  PropertyGenerator
 Component interface for property generators. More...
 
class  EmptyEventGenerator
 Empty event generator to avoid empty value stream First event sent is pending rest are futures that will have their value assigned when the next future is asked. More...
 
class  CachingGenerator
 This generator type abstracts the following type of generator: More...
 
class  GraphNode
 
class  OperatorInstance
 Component instance class for components that create operators. More...
 
class  OperatorComponent
 Component that ties directly to an operator. More...
 
class  Package
 Showcase package will contain one or more components. More...
 
class  ControlThreadLogger
 ATM just prints stuff. More...
 
struct  SocketGuard
 closes socket when out-of-scope More...
 
class  RemoteControl
 RemoteControl handles communication with the Showcase Editor. More...
 
class  RootInstance
 This class contains the implementation for the root component of Showcase. More...
 
class  ScheduleInstance
 Schedule instance is a general API for scheduled events used within the application. More...
 
class  ScheduleComponent
 This is a component that creates a scheduled event. More...
 
class  ScheduledEvent
 This is an API class for scheduled events. More...
 
class  Schema
 This class represents schema of a component. More...
 
class  SchemaAttribute
 
class  ServiceInstance
 Service instance is a general API for services used within the application All services need to be subclasses of the ServiceInstance. More...
 
class  ServiceComponent
 This is a component that creates a service. More...
 
class  ServiceProvider
 This class holds all services loaded in the current application. More...
 
class  CodiceServiceCache
 This class acts as a cache for marker properties queried from via CodiceServiceAPI. More...
 
class  CodiceDatabaseQueryTask
 This class uses the CodiceServiceAPI to query marker properties for a given marker. More...
 
class  MarkerDetectorWidget
 This class acts as a filter for CodiceServiceAPI queries. More...
 
class  PersonalFolderCacheLoader
 This class pre-loads all Codice content when Showcase launches, since they don't exists in the main component graph but need to be ready when the content is launched from a marker. More...
 
class  PersonalFolderCache
 This class manages a cache of personal folders. More...
 
struct  EmailAddress
 Email address. More...
 
struct  EmailAttachment
 Email attachment containing a file. More...
 
class  EmailMessage
 Email message. More...
 
class  EmailServiceAPI
 Email service API. More...
 
class  JSONServerServiceAPI
 JSON Server service API This service communicates with an external server and sends and receives JSON packages. More...
 
class  Showcase
 This is a singleton class that manages the Showcase runtime. More...
 
struct  APIClass
 Digs the class used in Showcase API from the subclassed component. More...
 
class  ShowcaseFactoryT
 The schema-information during the runtime is for validation of the UI-definition. More...
 
class  Slot
 This represents single slot for the component. More...
 
class  SystemConfiguration
 This is similar to RootComponent of UIComponents. More...
 
class  Collectable
 This is an interface for widgets that can be collected and exported out of Showcase. More...
 
class  ContentMenuWidget
 Interface for content menus. More...
 
class  FileRepresentation
 This is an interface for widgets that can be represented as files. More...
 
class  FloatingItem
 This is an interface for floating items. More...
 
class  InputFieldWidget
 Input field that has: More...
 
class  InputTrackerOperator
 This operator tracks input on the application. More...
 
class  LaunchedContentOperator
 This operator is used when content is launched from menus or hotspots etc. More...
 
class  NormalizeSizeOperator
 This class keeps widget seemingly fixed size on screen by adjusting scale to counter changes in transformations in parent tree. More...
 
class  PinnableWidget
 Simple helper widget for making pin-functionality faster to implement. More...
 
class  ProgressAnimationWidget
 Interface for widgets rendering progress animation. More...
 
class  RecordInteractionAngleOperator
 This operator records and stores the angle of the touch interaction the widget has. More...
 
class  Snapshot
 Class that provides the framebuffer where the content can be written and provides the task for saving the result. More...
 
class  SnapShottable
 Implement this API if you want to create custom snapshot feature instead of generic FBO-method used by SnapShotCaptureWidget::renderContent. More...
 
class  StylableTextHost
 This is an interface for widgets that have child texts that can be styled. More...
 
class  UIComponentInstance
 This is a base instance class for components that provide UI functionality. More...
 
class  UIComponent
 This is a base class for components that provide UI functionality. More...
 
class  UserInterface
 UserInterface manages dynamically loaded plugins that create Components. More...
 
class  ValueStream
 Interface for value streams that produces values of type T. More...
 
class  ChannelGuard
 Needed for implementing CloneableValueStream so that the following conditions are satisfied: More...
 
class  CallbackLock
 This is required for implementing the clonable channel. More...
 
class  ValueStreamSplitter
 This allows consuming of single value stream by multiple consumers, so that each consumer will receive all values produced by the underlying stream. More...
 
class  ValueStreamChannel
 Different type of channels for allowing broadcasting of ValueStream. More...
 
class  CloneableValueStreamChannel
 Entry for splitted ValueStream. More...
 
struct  ChannelInfo
 Only meant to be used in the internal implementation of ValueStreamSplitter. More...
 
struct  ChannelInfoCmp
 Needed for boost::intrusive. Comparison of the elements. More...
 
struct  ChannelInfoDisposer
 Needed for boost::intrusive. "Destructor" of the elements. More...
 
class  WidgetInstance
 This is an instance class for components that create widgets. More...
 
class  WidgetComponent
 This is a component that ties directly to a widget. More...
 
class  CustomWidgetInstanceComponent
 This is a widget component that has a custom instance class. More...
 

Typedefs

typedef QByteArray NodeId
 Node id is an url-string. More...
 
typedef std::pair< NodeId, NodeIdEdgeId
 Edge id is a pair of the nodes it connects. More...
 
typedef QByteArray PropertyKey
 Nodes and edges can have arbitrary amount of properties. More...
 

Enumerations

enum  AppType
 App type, public apps appear in the app list in Welcome screen.
 
enum  GraphEventSource : int { NODE = 1, NODE_PROPERTY = 2, EDGE_PROPERTY = 4, ALL_SOURCES = NODE | NODE_PROPERTY | EDGE_PROPERTY }
 Sources for events. More...
 
enum  NodeEventType { FOUND, LOST, PENDING }
 Different types of NodeEvent. More...
 
enum  PropertyEventType { FOUND, LOST, CHANGED, PENDING }
 Different types of PropertyEvent. More...
 
enum  ShowcaseExitCodes { NORMAL_EXIT = 0, NO_LICENSE = 50 }
 

Functions

template<typename T >
std::shared_ptr
< CloneableValueStreamChannel
< T > > 
getCloneableChannel (ValueStreamPtr< T > stream)
 Will create splitter on top of the stream and open cloneable channel to the newly created splitter. More...
 
template<typename T >
std::shared_ptr
< ValueStreamSplitter< T > > 
getSplitter (ValueStreamPtr< T > stream)
 Will return splitter created on top of the given stream. More...
 

Detailed Description

The core Showcase library.

Typedef Documentation

typedef std::pair<NodeId, NodeId> Showcase::EdgeId

Edge id is a pair of the nodes it connects.

First member of the pair is the source node of an edge. The second member is a target node.

typedef QByteArray Showcase::NodeId

Node id is an url-string.

It should always include protocol, f.ex:

typedef QByteArray Showcase::PropertyKey

Nodes and edges can have arbitrary amount of properties.

Properties are <key,value>-pairs.

Enumeration Type Documentation

Sources for events.

Enumerator
NODE 

NodeEvent – event describing graph topology.

NODE_PROPERTY 

PropertyEvent for event that is attached to node.

EDGE_PROPERTY 

PropertyEvent for event that is attached to edge.

ALL_SOURCES 

Shortcut for all events.

Different types of NodeEvent.

Enumerator
FOUND 

Node was encountered first time or it was removed and added again.

LOST 

Previous event for the node was found (it was present) and was removed.

PENDING 

All the immediate events are consumed.

The next event may not arrive at all or it may take very long time.

For example in the case of file system, the contets of the directory are first sent out as FOUND events followed with PENDING event. After this generator starts to watch relevant part of the file system and only sends anything if something happens to the contents of the directory.

Different types of PropertyEvent.

Enumerator
FOUND 

Property was encountered first time or it was removed and added again.

LOST 

Previous event for this property key was found (it was present) and was removed.

CHANGED 

The value of the property was changed.

PENDING 

All the immediate events are consumed.

The next event may not arrive at all or it may take very long time.

For example in the case of file where properties are stored, the contets of the file are first sent out as FOUND events followed with PENDING event. After this generator starts to watch relevant file and only sends anything if the properties in the file are modified.

Enumerator
NORMAL_EXIT 

No error, application exited normally.

NO_LICENSE 

Showcase is not licensed.

Function Documentation

template<typename T >
std::shared_ptr<CloneableValueStreamChannel<T> > Showcase::getCloneableChannel ( ValueStreamPtr< T >  stream)

Will create splitter on top of the stream and open cloneable channel to the newly created splitter.

Thus channel get corrupted if the parameter stream is accessed after this function is called.

If the parameter is channel or splitter, will just open new cloneable channel.

template<typename T >
std::shared_ptr<ValueStreamSplitter<T> > Showcase::getSplitter ( ValueStreamPtr< T >  stream)

Will return splitter created on top of the given stream.

If the parameter is channel or splitter, will return related splitter. Otherwise the stream is not safe to use anymore.