|
CMSDK 2.0.1
Cross-platform C++ base library and SDK for the Psyclone AIOS platform
|
A complete trigger definition: what fires a component's crank and what happens then. More...
#include <Subscriptions.h>
Public Member Functions | |
| bool | reset (uint32 s=0) |
| Zero the header and stamp size/cid. | |
| FilterSpec * | getFilterSpec (uint32 n) |
| RetrieveSpec * | getRetrieveSpec (uint32 n) |
| RetrieveSpec * | getRetrieveSpec (const char *name) |
| QuerySpec * | getQuerySpec (uint32 n) |
| QuerySpec * | getQuerySpec (const char *name) |
| std::list< PostSpec * > * | getPostSpecs (const char *name) |
| std::list< PostSpec * > * | getPostSpecs (PsyType type) |
| PostSpec * | getPostSpec (const char *name) |
| PostSpec * | getPostSpec (PsyType type) |
| PostSpec * | getPostSpec (uint32 n) |
| SignalSpec * | getSignalSpec (const char *name) |
| SignalSpec * | getSignalSpec (PsyType type) |
| SignalSpec * | getSignalSpec (uint32 n) |
| std::string | toXML () |
| Serialise the whole trigger (with all attached specs) as XML. | |
Static Public Member Functions | |
| static bool | UnitTest () |
| Run the built-in self test. | |
Public Attributes | |
| uint32 | size |
| Total block size in bytes including all tail specs. | |
| uint32 | cid |
| Object id, TRIGGERDATA when valid. | |
| uint32 | id |
| Unique id of this trigger. | |
| uint32 | componentID |
| Id of the component owning the trigger. | |
| uint32 | interval |
| Periodic trigger interval in ms (0 = message-triggered only). | |
| uint32 | from |
| Only messages sent by this component id fire the trigger (0 = any). | |
| uint32 | to |
| Only messages addressed to this component id fire the trigger (0 = any). | |
| uint32 | tag |
| Only messages with this tag fire the trigger (0 = any). | |
| uint32 | delay |
| Delay in ms between trigger match and crank execution. | |
| uint8 | grouppolicy |
| Policy for distributing triggers within a group of components. | |
| uint32 | groupparam |
| Parameter for the group policy. | |
| uint16 | crankID |
| Id of the crank (processing function) to run when fired. | |
| uint32 | group |
| Group id this trigger belongs to. | |
| PsyType | type |
| Message type that fires the trigger (wildcards allowed). | |
| PsyContext | context |
| Context in which the trigger is active. | |
| PsyContext | triggerContext |
| Context the triggering message must match. | |
| char | name [MAXKEYNAMELEN+1] |
| Trigger name. | |
| uint16 | filterCount |
| Number of FilterSpecs in the tail. | |
| uint16 | retrieveCount |
| Number of RetrieveSpecs in the tail. | |
| uint16 | queryCount |
| Number of QuerySpecs in the tail. | |
| uint16 | postCount |
| Number of PostSpecs in the tail. | |
| uint16 | signalCount |
| Number of SignalSpecs in the tail. | |
A complete trigger definition: what fires a component's crank and what happens then.
TriggerSpec is a variable-length flat binary object: the fixed header below is followed in the SAME allocation by filterCount FilterSpecs, then retrieveCount RetrieveSpecs, then queryCount QuerySpecs, then postCount PostSpecs, then signalCount SignalSpecs (see the get...Spec(n) accessors, which compute offsets into this tail). This layout lets a full trigger definition travel through shared memory as one block.
Definition at line 447 of file Subscriptions.h.
|
inline |
| n | filter index. |
Definition at line 458 of file Subscriptions.h.
References filterCount.
| PostSpec * cmlabs::TriggerSpec::getPostSpec | ( | const char * | name | ) |
| name | post name. |
Definition at line 82 of file Subscriptions.cpp.
References filterCount, cmlabs::PostSpec::name, name, postCount, queryCount, retrieveCount, and stricmp.
Referenced by toXML(), and UnitTest().
| type | post type. |
Definition at line 99 of file Subscriptions.cpp.
References filterCount, postCount, queryCount, retrieveCount, cmlabs::PostSpec::type, and type.
|
inline |
| n | post index. |
Definition at line 489 of file Subscriptions.h.
References filterCount, postCount, queryCount, and retrieveCount.
| std::list< PostSpec * > * cmlabs::TriggerSpec::getPostSpecs | ( | const char * | name | ) |
| name | post name. |
Definition at line 46 of file Subscriptions.cpp.
References filterCount, cmlabs::PostSpec::name, name, postCount, queryCount, retrieveCount, and stricmp.
Referenced by UnitTest().
| type | post type. |
Definition at line 63 of file Subscriptions.cpp.
References filterCount, postCount, queryCount, retrieveCount, cmlabs::PostSpec::type, and type.
| QuerySpec * cmlabs::TriggerSpec::getQuerySpec | ( | const char * | name | ) |
| name | query name. |
Definition at line 29 of file Subscriptions.cpp.
References filterCount, cmlabs::QuerySpec::name, name, queryCount, retrieveCount, and stricmp.
|
inline |
| n | query index. |
Definition at line 472 of file Subscriptions.h.
References filterCount, queryCount, and retrieveCount.
Referenced by toXML(), and UnitTest().
| RetrieveSpec * cmlabs::TriggerSpec::getRetrieveSpec | ( | const char * | name | ) |
| name | retrieve name. |
Definition at line 13 of file Subscriptions.cpp.
References filterCount, cmlabs::RetrieveSpec::name, name, retrieveCount, and stricmp.
|
inline |
| n | retrieve index. |
Definition at line 464 of file Subscriptions.h.
References filterCount, and retrieveCount.
Referenced by toXML(), and UnitTest().
| SignalSpec * cmlabs::TriggerSpec::getSignalSpec | ( | const char * | name | ) |
| name | signal name. |
Definition at line 119 of file Subscriptions.cpp.
References filterCount, cmlabs::SignalSpec::name, name, postCount, queryCount, retrieveCount, signalCount, and stricmp.
Referenced by toXML(), and UnitTest().
| SignalSpec * cmlabs::TriggerSpec::getSignalSpec | ( | PsyType | type | ) |
| type | signal type. |
Definition at line 137 of file Subscriptions.cpp.
References filterCount, postCount, queryCount, retrieveCount, signalCount, cmlabs::SignalSpec::type, and type.
|
inline |
| n | signal index. |
Definition at line 501 of file Subscriptions.h.
References filterCount, postCount, queryCount, retrieveCount, and signalCount.
|
inline |
Zero the header and stamp size/cid.
| s | total block size to record (0 = just sizeof(TriggerSpec)) |
Definition at line 451 of file Subscriptions.h.
References cid, size, and TRIGGERDATA.
Referenced by _wrap_TriggerSpec_reset__SWIG_1(), _wrap_TriggerSpec_reset__SWIG_1(), Java_com_cmlabs_cmsdk_cmsdkJNI_TriggerSpec_1reset_1_1SWIG_10(), Java_com_cmlabs_cmsdk_cmsdkJNI_TriggerSpec_1reset_1_1SWIG_11(), and UnitTest().
| std::string cmlabs::TriggerSpec::toXML | ( | ) |
Serialise the whole trigger (with all attached specs) as XML.
Definition at line 160 of file Subscriptions.cpp.
References componentID, context, delay, filterCount, from, getPostSpec(), getQuerySpec(), getRetrieveSpec(), getSignalSpec(), interval, name, postCount, queryCount, retrieveCount, signalCount, cmlabs::utils::StringFormat(), tag, to, cmlabs::PostSpec::toXML(), cmlabs::QuerySpec::toXML(), cmlabs::RetrieveSpec::toXML(), cmlabs::SignalSpec::toXML(), triggerContext, and type.
Referenced by UnitTest().
|
static |
Run the built-in self test.
Definition at line 204 of file Subscriptions.cpp.
References cmlabs::PostSpec::addContentToMsg(), componentID, cmlabs::PostSpec::content, cmlabs::PostSpec::contentCount, cmlabs::CTRL_TEST, cmlabs::unittest::detail(), cmlabs::unittest::fail(), cmlabs::FilterSpec::filter, filterCount, PsyType::fromString(), cmlabs::FilterSpec::fromXML(), cmlabs::SignalSpec::fromXML(), cmlabs::DataMessage::getAsString(), cmlabs::DataMessage::getDouble(), cmlabs::DataMessage::getInt(), getPostSpec(), getPostSpecs(), getQuerySpec(), getRetrieveSpec(), getSignalSpec(), cmlabs::GetTimeNow(), id, cmlabs::FilterSpec::key, MAXCONTENTLEN, MAXKEYNAMELEN, MAXVALUENAMELEN, cmlabs::unittest::metric(), cmlabs::PostSpec::name, cmlabs::SignalSpec::name, name, postCount, cmlabs::unittest::progress(), queryCount, reset(), retrieveCount, PsyType::setLevel(), signalCount, cmlabs::utils::strcpyavail(), cmlabs::FilterSpec::time, cmlabs::PostSpec::to, cmlabs::FilterSpec::toXML(), cmlabs::PostSpec::toXML(), cmlabs::SignalSpec::toXML(), toXML(), TRIGGERFILTER_EQUALS, TRIGGERFILTER_HASKEY, cmlabs::PostSpec::type, cmlabs::SignalSpec::type, type, and cmlabs::FilterSpec::value.
Referenced by _wrap_TriggerSpec_UnitTest(), and cmlabs::Register_Subscriptions_Tests().
| uint32 cmlabs::TriggerSpec::cid |
Object id, TRIGGERDATA when valid.
Definition at line 515 of file Subscriptions.h.
Referenced by reset().
| uint32 cmlabs::TriggerSpec::componentID |
Id of the component owning the trigger.
Definition at line 517 of file Subscriptions.h.
Referenced by toXML(), and UnitTest().
| PsyContext cmlabs::TriggerSpec::context |
Context in which the trigger is active.
Definition at line 528 of file Subscriptions.h.
Referenced by toXML().
| uint16 cmlabs::TriggerSpec::crankID |
Id of the crank (processing function) to run when fired.
Definition at line 525 of file Subscriptions.h.
| uint32 cmlabs::TriggerSpec::delay |
Delay in ms between trigger match and crank execution.
Definition at line 522 of file Subscriptions.h.
Referenced by toXML().
| uint16 cmlabs::TriggerSpec::filterCount |
Number of FilterSpecs in the tail.
Definition at line 531 of file Subscriptions.h.
Referenced by getFilterSpec(), getPostSpec(), getPostSpec(), getPostSpec(), getPostSpecs(), getPostSpecs(), getQuerySpec(), getQuerySpec(), getRetrieveSpec(), getRetrieveSpec(), getSignalSpec(), getSignalSpec(), getSignalSpec(), toXML(), and UnitTest().
| uint32 cmlabs::TriggerSpec::from |
Only messages sent by this component id fire the trigger (0 = any).
Definition at line 519 of file Subscriptions.h.
Referenced by toXML().
| uint32 cmlabs::TriggerSpec::group |
Group id this trigger belongs to.
Definition at line 526 of file Subscriptions.h.
| uint32 cmlabs::TriggerSpec::groupparam |
Parameter for the group policy.
Definition at line 524 of file Subscriptions.h.
| uint8 cmlabs::TriggerSpec::grouppolicy |
Policy for distributing triggers within a group of components.
Definition at line 523 of file Subscriptions.h.
| uint32 cmlabs::TriggerSpec::id |
Unique id of this trigger.
Definition at line 516 of file Subscriptions.h.
Referenced by UnitTest().
| uint32 cmlabs::TriggerSpec::interval |
Periodic trigger interval in ms (0 = message-triggered only).
Definition at line 518 of file Subscriptions.h.
Referenced by toXML().
| char cmlabs::TriggerSpec::name[MAXKEYNAMELEN+1] |
Trigger name.
Definition at line 530 of file Subscriptions.h.
Referenced by _wrap_TriggerSpec_name_set(), _wrap_TriggerSpec_name_set(), getPostSpec(), getPostSpecs(), getQuerySpec(), getRetrieveSpec(), getSignalSpec(), Java_com_cmlabs_cmsdk_cmsdkJNI_TriggerSpec_1name_1set(), toXML(), and UnitTest().
| uint16 cmlabs::TriggerSpec::postCount |
Number of PostSpecs in the tail.
Definition at line 534 of file Subscriptions.h.
Referenced by getPostSpec(), getPostSpec(), getPostSpec(), getPostSpecs(), getPostSpecs(), getSignalSpec(), getSignalSpec(), getSignalSpec(), toXML(), and UnitTest().
| uint16 cmlabs::TriggerSpec::queryCount |
Number of QuerySpecs in the tail.
Definition at line 533 of file Subscriptions.h.
Referenced by getPostSpec(), getPostSpec(), getPostSpec(), getPostSpecs(), getPostSpecs(), getQuerySpec(), getQuerySpec(), getSignalSpec(), getSignalSpec(), getSignalSpec(), toXML(), and UnitTest().
| uint16 cmlabs::TriggerSpec::retrieveCount |
Number of RetrieveSpecs in the tail.
Definition at line 532 of file Subscriptions.h.
Referenced by getPostSpec(), getPostSpec(), getPostSpec(), getPostSpecs(), getPostSpecs(), getQuerySpec(), getQuerySpec(), getRetrieveSpec(), getRetrieveSpec(), getSignalSpec(), getSignalSpec(), getSignalSpec(), toXML(), and UnitTest().
| uint16 cmlabs::TriggerSpec::signalCount |
Number of SignalSpecs in the tail.
Definition at line 535 of file Subscriptions.h.
Referenced by getSignalSpec(), getSignalSpec(), getSignalSpec(), toXML(), and UnitTest().
| uint32 cmlabs::TriggerSpec::size |
Total block size in bytes including all tail specs.
Definition at line 514 of file Subscriptions.h.
Referenced by reset().
| uint32 cmlabs::TriggerSpec::tag |
Only messages with this tag fire the trigger (0 = any).
Definition at line 521 of file Subscriptions.h.
Referenced by toXML().
| uint32 cmlabs::TriggerSpec::to |
Only messages addressed to this component id fire the trigger (0 = any).
Definition at line 520 of file Subscriptions.h.
Referenced by toXML().
| PsyContext cmlabs::TriggerSpec::triggerContext |
Context the triggering message must match.
Definition at line 529 of file Subscriptions.h.
Referenced by toXML().
| PsyType cmlabs::TriggerSpec::type |
Message type that fires the trigger (wildcards allowed).
Definition at line 527 of file Subscriptions.h.
Referenced by getPostSpec(), getPostSpecs(), getSignalSpec(), toXML(), and UnitTest().