Draft framework+gui event topic naming and payload
by
baallan
—
last modified
Apr 20, 2009 03:24 PM
Draft (based on ccafe04 java framework) of topics and typemap payload details suitable for issuance by frameworks (or to instruct frameworks) and consumption by UI codes.
topics.framework.txt
—
Plain Text,
4Kb
File contents
Notes on topics and contents for a framework(context)/gui scheme.
This scheme came from and is mappable to an event object type hierarchy
(prototyped in java cca framework ccafe04). Flattening down to hash (typemap and
topics) initially is as follows and eliminates polymorphism pain.
Ben Allan, Sandia NL, April 2009, for extension by Kosta and other friends.
Topic names:
cca.* reserved to cca specified events and derivatives.
cca.context.* described below to explain what goes on in or with a frame instance scope.
All cca events will have the following attributes:
1) int: context-event-type { an int value within a defined list (a) (maps to enum, obviously). }
2) string: source-id {string form of the component or framework container generating the event}
3) int: source-key {unique source point identifier within the source-id caller}
4) long: sequence-number { emitted in a monotonically increasing sequence for each source-id:source-key pair}
5) string: description { something user readable if it makes sense }
(a) int values convenient for lots of hpc (c switch) style dispatch since polymorphism in babel can be
so painful. The values so far suggested are:
-2: None. When digesting an alleged std::string or int type, it was found not to be in the standard.
-1: Error. {some deep foulup has occurred; should never be deliberately sent or received}.
0: ALL. {wild card mapping to non-string code.}
1: ConnectPending
2: Connected
3: DisconnectPending
4: Disconnected
5: ComponentInstanceAddPending
6: ComponentInstanceAdded
7: ComponentInstanceDeletePending
8: ComponentInstanceDeleted
9: PortAddPending
10: PortAdded
11: PortRemovePending
12: PortRemoved
13: PortRegisterPending
14: PortRegistered
15: PortUnregisterPending
16: PortUnregistered
17: PortFetchPending
18: PortFetched
19: PortReleasePending
20: PortReleased
21: FactoryOpened
22: FactoryClosed
23: ContextClosing
24: GoPortRequest
25: GoPortResult
(b) The following additional info, if present, may make the event
interpretable in the scope of the outermost framework (which may not be
the originating framework). This
is handy mainly as that's where the interactive user interface
will reside.
6) string: containerFullyQualifiedInstanceName
7) string: componentFullyQualifiedInstanceName
8) string: callerComponentFullyQualifiedInstanceName
9) string: calleeComponentFullyQualifiedInstanceName
Topic names and additional attributes or attribute restrictions with in-frame semantics:
cca.context.connection)
string: context-event-type in {1-4}
string: user-component
string: provider-component
string: user-port
string: provider-port
cca.context.component-instance.add-request)
string: context-event-type in {5}
string: component-class-name
string: component-instance-name-requested
cca.context.component-instance.added)
string: context-event-type in {6}
string: component-class-name
string: component-instance-name
cca.context.component-instance.delete-request)
string: context-event-type in {7}
string: component-class-name
string: component-instance-name
cca.context.component-instance.deleted)
string: context-event-type in {8}
string: dead-component-class-name
string: dead-component-instance-name
cca.context.port-instance.definition)
string: context-event-type in {9-16}
string: component-instance-name
string: port-instance-name
string: port-class-name
cca.context.port-instance.activity)
string: context-event-type in {17-20}
string: component-instance-name
string: port-instance-name
string: port-class-name
string: connection-instance-name
cca.context.component-factory)
string: context-event-type in {21-22}
string: factory-component-id
string: factory-port-name
cca.context.closing)
string: context-event-type in {23}
cca.context.goport.started)
string: context-event-type in {24}
string: component-instance-name
string: port-instance-name
cca.context.goport.finished)
string: context-event-type in {25}
string: component-instance-name
string: port-instance-name
int: result
string: exception-string

