43 typedef SaUint64T SaEvtHandleT;
44 typedef SaUint64T SaEvtEventHandleT;
45 typedef SaUint64T SaEvtChannelHandleT;
46 typedef SaUint32T SaEvtSubscriptionIdT;
49 typedef void (*SaEvtChannelOpenCallbackT) (SaInvocationT invocation,
53 typedef void (*SaEvtEventDeliverCallbackT) (SaEvtSubscriptionIdT
55 SaEvtEventHandleT eventHandle,
56 SaSizeT eventDataSize);
60 SaEvtChannelOpenCallbackT saEvtChannelOpenCallback;
61 SaEvtEventDeliverCallbackT saEvtEventDeliverCallback;
64 # define SA_EVT_CHANNEL_PUBLISHER 0x1
65 # define SA_EVT_CHANNEL_SUBSCRIBER 0x2
66 # define SA_EVT_CHANNEL_CREATE 0x4
67 typedef SaUint8T SaEvtChannelOpenFlagsT;
71 SaSizeT allocatedSize;
78 SaSizeT allocatedNumber;
79 SaSizeT patternsNumber;
80 SaEvtEventPatternT *patterns;
81 } SaEvtEventPatternArrayT;
84 # define SA_EVT_HIGHEST_PRIORITY 0
85 # define SA_EVT_LOWEST_PRIORITY 3
86 typedef SaUint8T SaEvtEventPriorityT;
88 typedef SaUint64T SaEvtEventIdT;
89 # define SA_EVT_EVENTID_NONE 0
90 # define SA_EVT_EVENTID_LOST 1
92 # define SA_EVT_LOST_EVENT "SA_EVT_LOST_EVENT_PATTERN"
96 SA_EVT_PREFIX_FILTER = 1,
97 SA_EVT_SUFFIX_FILTER = 2,
98 SA_EVT_EXACT_FILTER = 3,
99 SA_EVT_PASS_ALL_FILTER = 4
100 } SaEvtEventFilterTypeT;
104 SaEvtEventFilterTypeT filterType;
105 SaEvtEventPatternT filter;
110 SaSizeT filtersNumber;
111 SaEvtEventFilterT *filters;
112 } SaEvtEventFilterArrayT;
114 extern SaAisErrorT saEvtInitialize(SaEvtHandleT * evtHandle,
115 const SaEvtCallbacksT * callbacks,
116 SaVersionT *version);
117 extern SaAisErrorT saEvtSelectionObjectGet(SaEvtHandleT evtHandle,
120 extern SaAisErrorT saEvtDispatch(SaEvtHandleT evtHandle,
121 SaDispatchFlagsT dispatchFlags);
122 extern SaAisErrorT saEvtFinalize(SaEvtHandleT evtHandle);
123 extern SaAisErrorT saEvtChannelOpen(SaEvtHandleT evtHandle,
124 const SaNameT *channelName,
125 SaEvtChannelOpenFlagsT channelOpenFlags,
127 SaEvtChannelHandleT *channelHandle);
128 extern SaAisErrorT saEvtChannelOpenAsync(SaEvtHandleT evtHandle,
129 SaInvocationT invocation,
130 const SaNameT *channelName,
131 SaEvtChannelOpenFlagsT
133 extern SaAisErrorT saEvtChannelClose(SaEvtChannelHandleT channelHandle);
134 extern SaAisErrorT saEvtChannelUnlink(SaEvtHandleT evtHandle,
135 const SaNameT *channelName);
136 extern SaAisErrorT saEvtEventAllocate(SaEvtChannelHandleT channelHandle,
137 SaEvtEventHandleT *eventHandle);
138 extern SaAisErrorT saEvtEventFree(SaEvtEventHandleT eventHandle);
139 extern SaAisErrorT saEvtEventAttributesSet(SaEvtEventHandleT eventHandle,
140 const SaEvtEventPatternArrayT
141 *patternArray, SaUint8T priority,
142 SaTimeT retentionTime,
143 const SaNameT *publisherName);
144 extern SaAisErrorT saEvtEventAttributesGet(SaEvtEventHandleT eventHandle,
145 SaEvtEventPatternArrayT
148 SaTimeT * retentionTime,
149 SaNameT *publisherName,
150 SaTimeT * publishTime,
151 SaEvtEventIdT * eventId);
152 extern SaAisErrorT saEvtEventDataGet(SaEvtEventHandleT eventHandle,
154 SaSizeT *eventDataSize);
155 extern SaAisErrorT saEvtEventPublish(SaEvtEventHandleT eventHandle,
156 const void *eventData,
157 SaSizeT eventDataSize,
158 SaEvtEventIdT * eventId);
159 extern SaAisErrorT saEvtEventSubscribe(SaEvtChannelHandleT channelHandle,
160 const SaEvtEventFilterArrayT
162 SaEvtSubscriptionIdT subscriptionId);
163 extern SaAisErrorT saEvtEventUnsubscribe(SaEvtChannelHandleT channelHandle,
166 extern SaAisErrorT saEvtEventRetentionTimeClear(SaEvtChannelHandleT
168 SaEvtEventIdT eventId);