Apama  10.15.1.2
AP_TimestampSet.h
Go to the documentation of this file.
1 /*
2  * Title: AP_TimestampSet.h
3  * Description: High-accuracy time stamp generator
4  * $Copyright(c) 2008, 2009, 2011-2012 Progress Software Corporation (PSC). All rights reserved.$
5  * $Copyright (c) 2013-2018, 2022 Software AG, Darmstadt, Germany and/or Software AG USA Inc., Reston, VA, USA, and/or its subsidiaries and/or its affiliates and/or their licensors.$
6  * Use, reproduction, transfer, publication or disclosure is prohibited except as specifically provided for in your License Agreement with Software AG
7  * @author Henry Lockwood
8  */
9 
10 #ifndef AP_TIMESTAMP_SET_H
11 #define AP_TIMESTAMP_SET_H
12 
13 #include <AP_Platform.h>
14 #include <IAF_Platform.h>
15 #include <sys/timeb.h>
16 #include <string.h>
17 
18 #ifdef __cplusplus
19 extern "C" {
20 #endif
21 
26 /*
27  * High-res timestamp IDs. These are symbolic constants used to index
28  * where a timestamp was created.
29  */
30 
31 /*
32  * Downstream (incoming towards correlator) timestamp IDs
33  */
34 
35 /* 1000-1999 are for downstream events in the IAF */
36 #define AP_TIMESTAMP_DOWNSTREAM_IAF_MIN 1000
37 
39 #define AP_TIMESTAMP_DOWNSTREAM_IAF_TRANSPORT_ENTRY 1000
40 
41 #define AP_TIMESTAMP_DOWNSTREAM_IAF_TRANSPORT_EXIT 1249
42 
44 #define AP_TIMESTAMP_DOWNSTREAM_IAF_DECODER_ENTRY 1250
45 
46 #define AP_TIMESTAMP_DOWNSTREAM_IAF_DECODER_EXIT 1499
47 
49 #define AP_TIMESTAMP_DOWNSTREAM_IAF_MAPPER_ENTRY 1500
50 
51 #define AP_TIMESTAMP_DOWNSTREAM_IAF_MAPPER_EXIT 1749
52 
54 #define AP_TIMESTAMP_DOWNSTREAM_IAF_APAMA_ENTRY 1750
55 
56 #define AP_TIMESTAMP_DOWNSTREAM_IAF_APAMA_EXIT 1999
57 #define AP_TIMESTAMP_DOWNSTREAM_IAF_MAX 1999
58 
59 /* 3000-3999 are for downstream events in the sender */
60 #define AP_TIMESTAMP_DOWNSTREAM_SENDER_MIN 3000
61 #define AP_TIMESTAMP_DOWNSTREAM_SENDER_MAX 3999
62 
63 /* 5000-5999 are for downstream events in the correlator */
64 #define AP_TIMESTAMP_DOWNSTREAM_CORRELATOR_MIN 5000
65 #define AP_TIMESTAMP_DOWNSTREAM_CORRELATOR_INPUT_MIN 5000
66 #define AP_TIMESTAMP_DOWNSTREAM_CORRELATOR_INPUT_MAX 5099
67 #define AP_TIMESTAMP_DOWNSTREAM_CORRELATOR_SERVICE_MONITOR_MIN 5100
68 #define AP_TIMESTAMP_DOWNSTREAM_CORRELATOR_SERVICE_MONITOR_MAX 5299
69 /* Reserved for internal Apama framework use */
70 #define AP_TIMESTAMP_DOWNSTREAM_CORRELATOR_RESERVED1_MIN 5300
71 #define AP_TIMESTAMP_DOWNSTREAM_CORRELATOR_RESERVED1_MAX 5499
72 #define AP_TIMESTAMP_DOWNSTREAM_CORRELATOR_RESERVED2_MIN 5500
73 #define AP_TIMESTAMP_DOWNSTREAM_CORRELATOR_RESERVED2_MAX 5699
74 #define AP_TIMESTAMP_DOWNSTREAM_CORRELATOR_APPLICATION_MIN 5700
75 #define AP_TIMESTAMP_DOWNSTREAM_CORRELATOR_APPLICATION_MAX 5899
76 #define AP_TIMESTAMP_DOWNSTREAM_CORRELATOR_OUTPUT_MIN 5900
77 #define AP_TIMESTAMP_DOWNSTREAM_CORRELATOR_OUTPUT_MAX 5999
78 #define AP_TIMESTAMP_DOWNSTREAM_CORRELATOR_MAX 5999
79 
80 /* 7000-7999 are for downstream events in the merger */
81 #define AP_TIMESTAMP_DOWNSTREAM_MERGER_MIN 7000
82 #define AP_TIMESTAMP_DOWNSTREAM_MERGE_MAX 7999
83 
84 /* 9000-9999 are for downstream events in an external receiver client */
85 #define AP_TIMESTAMP_DOWNSTREAM_CLIENT_MIN 9000
86 #define AP_TIMESTAMP_DOWNSTREAM_CLIENT_MAX 9999
87 
88 /*
89  * Upstream (outgoing from correlator) timestamp IDs
90  */
91 
92 /* 11000-11999 are for upstream events in an external sender client */
93 #define AP_TIMESTAMP_UPSTREAM_CLIENT_MIN 11000
94 #define AP_TIMESTAMP_UPSTREAM_CLIENT_MAX 11999
95 
96 /* 13000-13999 are for upstream events in the sender */
97 #define AP_TIMESTAMP_UPSTREAM_SENDER_MIN 13000
98 #define AP_TIMESTAMP_UPSTREAM_SENDER_MAX 13999
99 
100 /* 15000-15999 are for upstream events in the correlator */
101 #define AP_TIMESTAMP_UPSTREAM_CORRELATOR_MIN 15000
102 #define AP_TIMESTAMP_UPSTREAM_CORRELATOR_INPUT_MIN 15000
103 #define AP_TIMESTAMP_UPSTREAM_CORRELATOR_INPUT_MAX 15099
104 #define AP_TIMESTAMP_UPSTREAM_CORRELATOR_APPLICATION_MIN 15100
105 #define AP_TIMESTAMP_UPSTREAM_CORRELATOR_APPLICATION_MAX 15299
106 /* Reserved for internal Apama framework use */
107 #define AP_TIMESTAMP_UPSTREAM_CORRELATOR_RESERVED2_MIN 15300
108 #define AP_TIMESTAMP_UPSTREAM_CORRELATOR_RESERVED2_MAX 15499
109 #define AP_TIMESTAMP_UPSTREAM_CORRELATOR_RESERVED1_MIN 15500
110 #define AP_TIMESTAMP_UPSTREAM_CORRELATOR_RESERVED1_MAX 15699
111 #define AP_TIMESTAMP_UPSTREAM_CORRELATOR_SERVICE_MONITOR_MIN 15700
112 #define AP_TIMESTAMP_UPSTREAM_CORRELATOR_SERVICE_MONITOR_MAX 15899
113 #define AP_TIMESTAMP_UPSTREAM_CORRELATOR_OUTPUT_MIN 15900
114 #define AP_TIMESTAMP_UPSTREAM_CORRELATOR_OUTPUT_MAX 15999
115 #define AP_TIMESTAMP_UPSTREAM_CORRELATOR_MAX 15999
116 
117 /* 17000-17999 are for upstream events in the merger */
118 #define AP_TIMESTAMP_UPSTREAM_MERGER_MIN 17000
119 #define AP_TIMESTAMP_UPSTREAM_MERGER_MAX 17999
120 
121 /* 19000-19999 are for upstream events in the IAF */
122 #define AP_TIMESTAMP_UPSTREAM_IAF_MIN 19000
123 
124 #define AP_TIMESTAMP_UPSTREAM_IAF_APAMA_ENTRY 19000
125 
126 #define AP_TIMESTAMP_UPSTREAM_IAF_APAMA_EXIT 19249
127 
129 #define AP_TIMESTAMP_UPSTREAM_IAF_MAPPER_ENTRY 19250
130 
131 #define AP_TIMESTAMP_UPSTREAM_IAF_MAPPER_EXIT 19499
132 
134 #define AP_TIMESTAMP_UPSTREAM_IAF_ENCODER_ENTRY 19500
135 
136 #define AP_TIMESTAMP_UPSTREAM_IAF_ENCODER_EXIT 19749
137 
139 #define AP_TIMESTAMP_UPSTREAM_IAF_TRANSPORT_ENTRY 19750
140 
141 #define AP_TIMESTAMP_UPSTREAM_IAF_TRANSPORT_EXIT 19999
142 
143 #define AP_TIMESTAMP_UPSTREAM_IAF_MAX 19999
144 
145 
155 
160 typedef AP_uint64 AP_TimestampSetIndex;
161 
162 
167 typedef double AP_TimestampSetTime;
168 
169 
183 {
194  void (*addNow)(struct AP_TimestampSet* timestamp, AP_TimestampSetIndex index);
195 
207  void (*addTime)(struct AP_TimestampSet* timestamp, AP_TimestampSetIndex index, AP_TimestampSetTime time);
208 
221  void (*replace)(struct AP_TimestampSet* timestamp, AP_TimestampSetIndex index, AP_TimestampSetTime newTime);
222 
234  void (*replaceWithNow)(struct AP_TimestampSet* timestamp, AP_TimestampSetIndex index);
235 
248 
265 
269  AP_bool (*getNextStampAndRemove)(struct AP_TimestampSet* timestamp, AP_TimestampSetIndex* retIndex, AP_TimestampSetTime* retTime);
270 
279  AP_uint32 (*getSize)(struct AP_TimestampSet* timestamp);
280 
291  AP_char8* (*toString)(struct AP_TimestampSet* timestamp);
292 };
293 
294 
307 
311  void* reserved;
312 
318 
319 };
320 typedef struct AP_TimestampSet AP_TimestampSet;
321 
322 
331 AP_COMMON_API AP_TimestampSet* AP_TimestampSet_ctor();
332 
333 
345 
346 
355 AP_COMMON_API void AP_TimestampSet_dtor(AP_TimestampSet* timestamp);
356 
370 
371 #ifdef __cplusplus
372 } /* extern "C" */
373 #endif
374 
375 #endif /* __CTIMESTAMP_HA_INCLUDED__ */
AP_TimestampSetTime(* findTimeAndRemove)(struct AP_TimestampSet *timestamp, AP_TimestampSetIndex index)
findTimeAndRemove
Definition: AP_TimestampSet.h:264
AP_uint64 AP_TimestampSetIndex
Field keys are integer indices.
Definition: AP_TimestampSet.h:154
AP_TimestampSet_Functions.
Definition: AP_TimestampSet.h:182
void(* addNow)(struct AP_TimestampSet *timestamp, AP_TimestampSetIndex index)
addNow
Definition: AP_TimestampSet.h:194
struct AP_TimestampSet_Functions * functions
Function table of internal operations on the timestamp object.
Definition: AP_TimestampSet.h:317
void * reserved
Pointer to private internal data.
Definition: AP_TimestampSet.h:311
AP_uint32(* getSize)(struct AP_TimestampSet *timestamp)
getSize
Definition: AP_TimestampSet.h:279
AP_COMMON_API AP_TimestampSet * AP_TimestampSet_ctor()
AP_TimestampSet_ctor.
AP_COMMON_API AP_TimestampSet * AP_TimestampSet_copy(AP_TimestampSet *old)
AP_TimestampSet_copy.
double AP_TimestampSetTime
Field values are double-precision floating point numbers.
Definition: AP_TimestampSet.h:167
AP_TimestampSetTime(* findTime)(struct AP_TimestampSet *timestamp, AP_TimestampSetIndex index)
findTime
Definition: AP_TimestampSet.h:247
AP_bool(* getNextStampAndRemove)(struct AP_TimestampSet *timestamp, AP_TimestampSetIndex *retIndex, AP_TimestampSetTime *retTime)
getNextStampAndRemove
Definition: AP_TimestampSet.h:269
AP_TimestampSet.
Definition: AP_TimestampSet.h:306
void(* replace)(struct AP_TimestampSet *timestamp, AP_TimestampSetIndex index, AP_TimestampSetTime newTime)
replace
Definition: AP_TimestampSet.h:221
AP_COMMON_API AP_TimestampSetTime AP_TimestampSet_getRelativeTime()
AP_TimestampSet_getRelativeTime.
void(* replaceWithNow)(struct AP_TimestampSet *timestamp, AP_TimestampSetIndex index)
replaceWithNow
Definition: AP_TimestampSet.h:234
AP_COMMON_API void AP_TimestampSet_dtor(AP_TimestampSet *timestamp)
AP_TimestampSet_dtor.
void(* addTime)(struct AP_TimestampSet *timestamp, AP_TimestampSetIndex index, AP_TimestampSetTime time)
addTime
Definition: AP_TimestampSet.h:207