]> rtime.felk.cvut.cz Git - orte.git/blob - orte/include/protos.h
Reformat the sources with orte/uncrustify script
[orte.git] / orte / include / protos.h
1 /*
2  *  $Id: protos.h,v 0.0.0.1             2003/08/21
3  *
4  *  -------------------------------------------------------------------
5  *                                ORTE
6  *                      Open Real-Time Ethernet
7  *
8  *                      Copyright (C) 2001-2006
9  *  Department of Control Engineering FEE CTU Prague, Czech Republic
10  *                      http://dce.felk.cvut.cz
11  *                      http://www.ocera.org
12  *
13  *  Author:              Petr Smolik    petr@smoliku.cz
14  *  Advisor:             Pavel Pisa
15  *  Project Responsible: Zdenek Hanzalek
16  *  --------------------------------------------------------------------
17  *
18  *  This program is free software; you can redistribute it and/or modify
19  *  it under the terms of the GNU General Public License as published by
20  *  the Free Software Foundation; either version 2 of the License, or
21  *  (at your option) any later version.
22  *
23  *  This program is distributed in the hope that it will be useful,
24  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
25  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
26  *  GNU General Public License for more details.
27  *
28  */
29
30 #ifndef _PROTOS_H
31 #define _PROTOS_H
32
33 #ifdef __cplusplus
34 extern "C" {
35 #endif
36
37 ///////////////////////////////////////////////////////////////////////////////
38 // sock.c
39 extern int
40 sock_start(void);
41 extern void
42 sock_finish(void);
43 extern int
44 sock_init_udp(sock_t *sock);
45 extern void
46 sock_cleanup(sock_t *sock);
47 extern int
48 sock_setsockopt(sock_t *sock, int level, int optname, const char *optval, int optlen);
49 extern int
50 sock_getsockopt(sock_t *sock, int level, int optname, char *optval, int *optlen);
51 extern int
52 sock_bind(sock_t *sock, uint16_t port, IPAddress listen);
53 extern int
54 sock_recvfrom(sock_t *sock, void *buf, int max_len, struct sockaddr_in *des, int des_len);
55 extern int
56 sock_sendto(sock_t *sock, void *buf, int len, struct sockaddr_in *des, int des_len);
57 extern int
58 sock_ioctl(sock_t *sock, long cmd, unsigned long *arg);
59 extern int
60 sock_get_local_interfaces(sock_t *sock, ORTEIFProp *IFProp, char *IFCount);
61
62 ///////////////////////////////////////////////////////////////////////////////
63 // conv.c
64 extern int
65 getStringPart(char *string, char divChar, int *iterator, char *buff);
66
67 ///////////////////////////////////////////////////////////////////////////////
68 // htimerNtp.c
69 // htimerRoot
70 UL_HTIMER_DEC(htimerRoot,           /* prefix */
71               ObjectEntry,          /* queue_t */
72               HTimFncRootNode,      /* timer_t */
73               htimRoot,             /* queue_field */
74               htim)                 /* timer_field */
75 extern void
76 htimerRoot_run_expired(ORTEDomain *d,
77                        ul_htim_time_t *pact_time);
78 // htimerUnicastCommon
79 UL_HTIMER_DEC(htimerUnicastCommon,  /* prefix */
80               ObjectEntryAID,       /* queue_t */
81               HTimFncUserNode,      /* timer_t */
82               htimUnicast.common,   /* queue_field */
83               htim)                 /* timer_field */
84 extern void
85 htimerUnicastCommon_update_root_timer(ObjectEntry *objectEntry,
86                                       ObjectEntryAID *objectEntryAID);
87 extern void
88 htimerUnicastCommon_run_expired(ORTEDomain *d,
89                                 ObjectEntryAID *objectEntryAID,
90                                 ul_htim_time_t *pact_time);
91 // htimerUnicastSendMetatraffic
92 UL_HTIMER_DEC(htimerUnicastSendMetatraffic,  /* prefix */
93               ObjectEntryAID,                /* queue_t */
94               HTimFncUserNode,               /* timer_t */
95               htimUnicast.sendMetatraffic,   /* queue_field */
96               htim)                          /* timer_field */
97 extern void
98 htimerUnicastSendMetatraffic_update_root_timer(ObjectEntry *objectEntry,
99                                                ObjectEntryAID *objectEntryAID);
100 extern void
101 htimerUnicastSendMetatraffic_run_expired(ORTEDomain *d,
102                                          ObjectEntryAID *objectEntryAID,
103                                          ul_htim_time_t *pact_time);
104 // htimerUnicastSendUserData
105 UL_HTIMER_DEC(htimerUnicastSendUserData,     /* prefix */
106               ObjectEntryAID,                /* queue_t */
107               HTimFncUserNode,               /* timer_t */
108               htimUnicast.sendUserData,      /* queue_field */
109               htim)                          /* timer_field */
110 extern void
111 htimerUnicastSendUserData_update_root_timer(ObjectEntry *objectEntry,
112                                             ObjectEntryAID *objectEntryAID);
113 extern void
114 htimerUnicastSendUserData_run_expired(ORTEDomain *d,
115                                       ObjectEntryAID *objectEntryAID,
116                                       ul_htim_time_t *pact_time);
117 extern NtpTime
118 getActualNtpTime(void);
119
120
121 ///////////////////////////////////////////////////////////////////////////////
122 // debug.c
123 extern void
124 db_init(const char *logfile, const char *options);
125 extern void
126 debug_options(const char *options);
127 extern void
128 db_print(const char *format, ...);
129 extern void
130 debug_open_log(const char *logfile);
131 #ifdef ENABLE_MEM_CHECK
132 extern void *
133 mem_check_malloc(size_t size);
134 extern void
135 mem_check_free(void *ptr);
136 #endif
137
138 ///////////////////////////////////////////////////////////////////////////////
139 // fnmatch.c
140 extern int
141 fnmatch(const char *__pattern, const char *__string, int __flags);
142
143 ///////////////////////////////////////////////////////////////////////////////
144 // objectEntry.c
145 UL_LIST_CUST_DEC(ObjectEntryMulticast,    /* prefix */
146                  ObjectEntryOID,          /* head_t */
147                  CSTRemoteReader,         /* item_t */
148                  multicastRemoteReaders,  /* head_field */
149                  multicastNode);          /* node_field */
150
151 GAVL_CUST_NODE_INT_DEC(ObjectEntryHID,    /* prefix */
152                        ObjectEntry,       /* root_t */
153                        ObjectEntryHID,    /* item_t */
154                        HostId,            /* key_t */
155                        objRoot,           /* root_node */
156                        hidNode,           /* item_node */
157                        hid,               /* item_key */
158                        gavl_cmp_int)      /* cmp_fnc */
159
160 GAVL_CUST_NODE_INT_DEC(ObjectEntryAID,    /* prefix */
161                        ObjectEntryHID,    /* root_t */
162                        ObjectEntryAID,    /* item_t */
163                        AppId,             /* key_t */
164                        aidRoot,           /* root_node */
165                        aidNode,           /* item_node */
166                        aid,               /* item_key */
167                        gavl_cmp_int)      /* cmp_fnc */
168
169 GAVL_CUST_NODE_INT_DEC(ObjectEntryOID,    /* prefix */
170                        ObjectEntryAID,    /* root_t */
171                        ObjectEntryOID,    /* item_t */
172                        ObjectId,          /* key_t */
173                        oidRoot,           /* root_node */
174                        oidNode,           /* item_node */
175                        oid,               /* item_key */
176                        gavl_cmp_int)      /* cmp_fnc */
177
178 extern void
179 objectEntryRefreshApp(ORTEDomain *d, ObjectEntryOID *objectEntryOID);
180 extern ObjectEntryOID *
181 objectEntryFind(ORTEDomain *d, GUID_RTPS *guid);
182 extern ObjectEntryOID *
183 objectEntryAdd(ORTEDomain *d, GUID_RTPS *guid, void *params);
184 extern int
185 objectEntryDelete(ORTEDomain *d, ObjectEntryOID *objectEntryOID, Boolean destroy);
186 extern void
187 objectEntryDeleteAll(ORTEDomain *d, ObjectEntry *objectEntry);
188 extern void
189 objectEntryDump(ObjectEntry *objectEntry);
190
191 ///////////////////////////////////////////////////////////////////////////////
192 // ObjectUtils.c
193 extern void
194 AppParamsInit(AppParams *ap);
195 extern void
196 PublParamsInit(ORTEPublProp *sp);
197 extern void
198 SubsParamsInit(ORTESubsProp *sp);
199 extern void
200 updateORTEAppInfo(AppParams *appParams, ORTEAppInfo *appInfo);
201 extern Boolean
202 generateEvent(ORTEDomain *d, GUID_RTPS *guid, void *params, Boolean live);
203 extern Boolean
204 getTypeApp(ORTEDomain *d, AppParams *ap, IPAddress senderIPAddress);
205 extern void
206 appSelfParamChanged(ORTEDomain *d, Boolean lock, Boolean unlock,
207                     Boolean forWM, Boolean alive);
208 extern Boolean
209 matchMulticastAddresses(ObjectEntryOID *o1, ObjectEntryOID *o2);
210 extern ObjectEntryOID *
211 getAppO2SRemoteReader(ORTEDomain *d, ObjectEntryOID *objectEntryOID,
212                       AppParams *ap);
213 extern ObjectEntryOID *
214 getSubsO2SRemoteReader(ORTEDomain *d, ObjectEntryOID *objectEntryOID,
215                        ORTESubsProp *sp);
216
217 ///////////////////////////////////////////////////////////////////////////////
218 // event.c
219 extern int32_t
220 eventAdd(ORTEDomain *d, ObjectEntryAID *objectEntryAID, HTimFncUserNode *fncNode,
221          int where, const char *name, EVH2 *func, pthread_rwlock_t *lock,
222          void *arg1, NtpTime *when_expire);
223 extern int32_t
224 eventDetach(ORTEDomain *d,
225             ObjectEntryAID *objectEntryAID,
226             HTimFncUserNode *fncNode,
227             int where);
228
229 ///////////////////////////////////////////////////////////////////////////////
230 // parameter.c
231 UL_LIST_CUST_DEC(CSChangeAttributes,      /* prefix */
232                  CSChange,                /* head_t */
233                  ParameterSequence,       /* item_t */
234                  attributes,              /* head_field */
235                  node);                   /* node_field */
236 extern int
237 parameterGetDataLength(CSChange *csChange);
238 extern int
239 parameterDelete(CSChange *csChange);
240 extern int
241 parameterCodeCodecFromCSChange(CSChange *csChange, CDR_Codec *cdrCodec);
242 extern int
243 parameterDecodeCodecToCSChange(CSChange *csChange, CDR_Codec *cdrCodec);
244 extern int
245 parameterUpdateCSChange(
246   CSChange *csChange, AppParams *ap, Boolean Manager);
247 extern int
248 parameterUpdateCSChangeFromPublication(CSChange *csChange, ORTEPublProp *pp);
249 extern int
250 parameterUpdateCSChangeFromSubscription(CSChange *csChange, ORTESubsProp *sp);
251 extern int
252 parameterUpdateApplication(CSChange *csChange, AppParams *ap);
253 extern int
254 parameterUpdatePublication(CSChange *csChange, ORTEPublProp *pp);
255 extern int
256 parameterUpdateSubscription(CSChange *csChange, ORTESubsProp *sp);
257
258 ///////////////////////////////////////////////////////////////////////////////
259 // objectEntryTimer.c
260 extern int
261 objectEntryPurgeTimer(ORTEDomain *d, void *vobjectEntryOID);
262 extern int
263 objectEntryExpirationTimer(ORTEDomain *d, void *vobjectEntryOID);
264
265 ///////////////////////////////////////////////////////////////////////////////
266 // ORTETypeRegister.c
267 GAVL_CUST_NODE_INT_DEC(ORTEType,              /* prefix */
268                        TypeEntry,             /* root_t */
269                        TypeNode,              /* item_t */
270                        const char *,          /* key_t */
271                        types,                 /* root_node */
272                        node,                  /* item_node */
273                        typeRegister.typeName, /* item_key */
274                        gavl_cmp_str)          /* cmp_fnc */
275
276
277 ///////////////////////////////////////////////////////////////////////////////
278 // ORTEThreadUtils.c
279 extern void
280 ORTEDomainWakeUpReceivingThread(ORTEDomain *d, sock_t *sock, uint16_t port);
281 extern void
282 ORTEDomainWakeUpSendingThread(ObjectEntry *objectEntry);
283
284 ///////////////////////////////////////////////////////////////////////////////
285 // ORTEAppRecvMetatrafficThread.c
286 extern void
287 ORTEAppRecvThread(TaskProp *tp);
288
289
290 ///////////////////////////////////////////////////////////////////////////////
291 // ORTEAppSendThread.c
292 extern void
293 ORTESendData(ORTEDomain *d, ObjectEntryAID *objectEntryAID, Boolean meta);
294 extern void
295 ORTEAppSendThread(TaskProp *tp);
296
297 ///////////////////////////////////////////////////////////////////////////////
298 // RTPSHeader.c
299 extern int
300 RTPSHeaderCreate(CDR_Codec *cdrCodec, HostId hid, AppId aid);
301 extern int
302 RTPSHeaderCheck(CDR_Codec *cdrCodec, int32_t len, MessageInterpret *mi);
303
304 ///////////////////////////////////////////////////////////////////////////////
305 // RTPSPad.c
306 extern void
307 RTPSPad(CDR_Codec *cdrCodec, MessageInterpret *mi);
308
309 ///////////////////////////////////////////////////////////////////////////////
310 // RTPSInfoDST.c
311 extern void
312 RTPSInfoDST(CDR_Codec *cdrCodec, MessageInterpret *mi);
313
314 ///////////////////////////////////////////////////////////////////////////////
315 // RTPSInfoREPLY.c
316 extern int
317 RTPSInfoREPLYCreate(CDR_Codec *cdrCodec, IPAddress ipaddress, Port port);
318 void
319 RTPSInfoREPLY(CDR_Codec *cdrCodec, MessageInterpret *mi);
320
321 ///////////////////////////////////////////////////////////////////////////////
322 // RTPSInfoSRC.c
323 extern void
324 RTPSInfoSRC(CDR_Codec *cdrCodec, MessageInterpret *mi);
325
326 ///////////////////////////////////////////////////////////////////////////////
327 // RTPSInfoTS.c
328 extern int
329 RTPSInfoTSCreate(CDR_Codec *cdrCodec, NtpTime time);
330 extern void
331 RTPSInfoTS(CDR_Codec *cdrCodec, MessageInterpret *mi);
332
333 ///////////////////////////////////////////////////////////////////////////////
334 // RTPSVar.c
335 extern int
336 RTPSVarCreate(CDR_Codec *cdrCodec, ObjectId roid, ObjectId woid, CSChange *csChange);
337 extern void
338 RTPSVar(ORTEDomain *d, CDR_Codec *cdrCodec, MessageInterpret *mi, IPAddress senderIPAddress);
339
340 ///////////////////////////////////////////////////////////////////////////////
341 // RTPSAck.c
342 extern int
343 RTPSAckCreate(CDR_Codec *cdrCodec,
344               SequenceNumber *seqNumber,
345               ObjectId roid, ObjectId woid, Boolean f_bit);
346 extern void
347 RTPSAck(ORTEDomain *d, CDR_Codec *cdrCodec, MessageInterpret *mi, IPAddress senderIPAddress);
348
349 ///////////////////////////////////////////////////////////////////////////////
350 // RTPSHeardBeat.c
351 extern int
352 RTPSHeartBeatCreate(CDR_Codec *cdrCodec,
353                     SequenceNumber *fsn, SequenceNumber *lsn,
354                     ObjectId roid, ObjectId woid, Boolean f_bit);
355 extern void
356 RTPSHeartBeat(ORTEDomain *d, CDR_Codec *cdrCodec, MessageInterpret *mi);
357
358 ///////////////////////////////////////////////////////////////////////////////
359 // RTPSGap.c
360 extern int
361 RTPSGapCreate(CDR_Codec *cdrCodec, ObjectId roid, ObjectId woid, CSChange *csChange);
362 void
363 RTPSGap(ORTEDomain *d, CDR_Codec *cdrCodec, MessageInterpret *mi, IPAddress senderIPAddress);
364
365 ///////////////////////////////////////////////////////////////////////////////
366 // RTPSIssue.c
367 extern int
368 RTPSIssueCreateHeader(CDR_Codec *cdrCodec, uint32_t length,
369                       ObjectId roid, ObjectId woid, SequenceNumber sn);
370 extern void
371 RTPSIssue(ORTEDomain *d, CDR_Codec *cdrCodec, MessageInterpret *mi, IPAddress senderIPAddress);
372
373 ///////////////////////////////////////////////////////////////////////////////
374 // RTPSUtils.c
375 extern int
376 gavl_cmp_ntp_time(const NtpTime *a, const NtpTime *b);
377 extern int
378 gavl_cmp_sn(const SequenceNumber *a, const SequenceNumber *b);
379 extern int
380 gavl_cmp_guid(const GUID_RTPS *a, const GUID_RTPS *b);
381 extern int
382 gavl_cmp_str(const char *const *a, const char *const *b);
383
384 ///////////////////////////////////////////////////////////////////////////////
385 // RTPSCSTWriter.c
386 UL_LIST_CUST_DEC(CSTWriterCSChange,       /* prefix */
387                  CSTWriter,               /* head_t */
388                  CSChange,                /* item_t */
389                  csChanges,               /* head_field */
390                  nodeList);               /* node_field */
391
392 UL_LIST_CUST_DEC(CSChangeParticipant,     /* prefix */
393                  CSChange,                /* head_t */
394                  CSChangeForReader,       /* item_t */
395                  writerParticipants,      /* head_field */
396                  participantNode);        /* node_field */
397
398 GAVL_CUST_NODE_INT_DEC(CSTWriter,         /* prefix */
399                        CSTPublications,   /* root_t */
400                        CSTWriter,         /* item_t */
401                        GUID_RTPS,         /* key_t */
402                        cstWriter,         /* root_node */
403                        node,              /* item_node */
404                        guid,              /* item_key */
405                        gavl_cmp_guid);    /* cmp_fnc */
406
407 GAVL_CUST_NODE_INT_DEC(CSTRemoteReader,   /* prefix */
408                        CSTWriter,         /* root_t */
409                        CSTRemoteReader,   /* item_t */
410                        GUID_RTPS,         /* key_t */
411                        cstRemoteReader,   /* root_node */
412                        node,              /* item_node */
413                        guid,              /* item_key */
414                        gavl_cmp_guid);    /* cmp_fnc */
415
416 GAVL_CUST_NODE_INT_DEC(CSChangeForReader, /* prefix */
417                        CSTRemoteReader,   /* root_t */
418                        CSChangeForReader, /* item_t */
419                        SequenceNumber,    /* key_t */
420                        csChangeForReader, /* root_node */
421                        node,              /* item_node */
422                        csChange->sn,      /* item_key */
423                        gavl_cmp_sn);      /* cmp_fnc */
424
425 extern void
426 CSTWriterInit(ORTEDomain *d, CSTWriter *cstWriter, ObjectEntryOID *object,
427               ObjectId oid, CSTWriterParams *params, ORTETypeRegister *typeRegister);
428 extern void
429 CSTWriterDelete(ORTEDomain *d, CSTWriter *cstWriter);
430 extern CSTRemoteReader *
431 CSTWriterAddRemoteReader(ORTEDomain *d, CSTWriter *cstWriter, ObjectEntryOID *pobject,
432                          ObjectId oid, ObjectEntryOID *sobject);
433 extern void
434 CSTWriterDestroyRemoteReader(ORTEDomain *d, CSTRemoteReader *cstRemoteReader);
435 extern void
436 CSTWriterMakeGAP(ORTEDomain *d, CSTWriter *cstWriter, GUID_RTPS *guid);
437 extern void
438 CSTWriterAddCSChange(ORTEDomain *d, CSTWriter *cstWriter, CSChange *csChange);
439 extern void
440 CSTWriterDestroyCSChangeForReader(CSChangeForReader *csChangeForReader,
441                                   Boolean destroyCSChange);
442 extern void
443 CSTWriterDestroyCSChange(ORTEDomain *d, CSTWriter *cstWriter, CSChange *csChange);
444 extern Boolean
445 CSTWriterTryDestroyBestEffortIssue(CSTWriter *cstWriter);
446 extern void
447 CSTWriterRefreshAllCSChanges(ORTEDomain *d, CSTRemoteReader *cstRemoteReader);
448 extern int
449 CSTWriterCSChangeForReaderNewState(CSChangeForReader *csChangeForReader);
450 extern void
451 CSTWriterMulticast(CSChangeForReader *csChangeForReader);
452
453 ///////////////////////////////////////////////////////////////////////////////
454 // RTPSCSTWriterTimer.c
455 extern int
456 CSTWriterRegistrationTimer(ORTEDomain *d, void *vcstWriter);
457 extern int
458 CSTWriterRefreshTimer(ORTEDomain *d, void *vcstWriter);
459 extern int
460 CSTWriterAnnounceTimer(ORTEDomain *d, void *vcstRemoteReader);
461 extern int
462 CSChangeForReaderUnderwayTimer(ORTEDomain *da, void *vcsChangeForReader);
463 extern int
464 CSTWriterSendBestEffortTimer(ORTEDomain *d, void *vcstRemoteReader);
465 extern int
466 CSTWriterSendStrictTimer(ORTEDomain *d, void *vcstRemoteReader);
467 extern int
468 CSTWriterSendTimer(ORTEDomain *d, void *vcstRemoteReader);
469
470 ///////////////////////////////////////////////////////////////////////////////
471 // RTPSCSTReader.c
472 UL_LIST_CUST_DEC(CSTReaderCSChange,       /* prefix */
473                  CSTReader,               /* head_t */
474                  CSChange,                /* item_t */
475                  csChanges,               /* head_field */
476                  nodeList);               /* node_field */
477
478 GAVL_CUST_NODE_INT_DEC(CSTReader,         /* prefix */
479                        CSTSubscriptions,  /* root_t */
480                        CSTReader,         /* item_t */
481                        GUID_RTPS,         /* key_t */
482                        cstReader,         /* root_node */
483                        node,              /* item_node */
484                        guid,              /* item_key */
485                        gavl_cmp_guid);    /* cmp_fnc */
486
487 GAVL_CUST_NODE_INT_DEC(CSTRemoteWriter,   /* prefix */
488                        CSTReader,         /* root_t */
489                        CSTRemoteWriter,   /* item_t */
490                        GUID_RTPS,         /* key_t */
491                        cstRemoteWriter,   /* root_node */
492                        node,              /* item_node */
493                        guid,              /* item_key */
494                        gavl_cmp_guid);    /* cmp_fnc */
495
496 GAVL_CUST_NODE_INT_DEC(CSChangeFromWriter, /* prefix */
497                        CSTRemoteWriter,   /* root_t */
498                        CSChangeFromWriter, /* item_t */
499                        SequenceNumber,    /* key_t */
500                        csChangeFromWriter, /* root_node */
501                        node,              /* item_node */
502                        csChange->sn,      /* item_key */
503                        gavl_cmp_sn);      /* cmp_fnc */
504 extern void
505 CSTReaderInit(ORTEDomain *d, CSTReader *cstReader, ObjectEntryOID *object,
506               ObjectId oid, CSTReaderParams *params, ORTETypeRegister *typeRegister);
507 extern void
508 CSTReaderDelete(ORTEDomain *d, CSTReader *cstReader);
509 extern CSTRemoteWriter *
510 CSTReaderAddRemoteWriter(ORTEDomain *d, CSTReader *cstReader, ObjectEntryOID *object,
511                          ObjectId oid);
512 extern void
513 CSTReaderDestroyRemoteWriter(ORTEDomain *d, CSTRemoteWriter *cstRemoteWriter);
514 extern void
515 CSTReaderAddCSChange(CSTRemoteWriter *cstRemoteWriter, CSChange *csChange);
516 extern void
517 CSTReaderDestroyCSChangeFromWriter(CSTRemoteWriter *cstRemoteWriter,
518                                    CSChangeFromWriter *csChangeFromWriter, Boolean keepCSChange);
519 extern void
520 CSTReaderDestroyCSChange(CSTRemoteWriter *cstRemoteWriter, SequenceNumber *sn,
521                          Boolean keepCSChange);
522 extern void
523 CSTReaderSetupState(CSTRemoteWriter *cstRemoteWriter);
524
525 ///////////////////////////////////////////////////////////////////////////////
526 // RTPSCSTReaderProc.c
527 extern void
528 CSTReaderProcCSChanges(ORTEDomain *d, CSTRemoteWriter *cstRemoteWriter);
529 extern void
530 CSTReaderProcCSChangesIssue(CSTRemoteWriter *cstRemoteWriter, Boolean pullCalled);
531
532 ///////////////////////////////////////////////////////////////////////////////
533 // RTPSCSTReaderTimer.c
534 extern int
535 CSTReaderResponceTimer(ORTEDomain *d, void *vcstRemoteWriter);
536 extern int
537 CSTReaderQueryTimer(ORTEDomain *d, void *vcstRemoteWriter);
538 extern int
539 CSTReaderDeadlineTimer(ORTEDomain *d, void *vcstReader);
540 extern int
541 CSTReaderPersistenceTimer(ORTEDomain *d, void *vcstReader);
542
543 ///////////////////////////////////////////////////////////////////////////////
544 // ORTEDomain.c
545 ORTEDomain *
546 ORTEDomainCreate(int domain, ORTEDomainProp *prop,
547                  ORTEDomainAppEvents *events, Boolean manager);
548 Boolean
549 ORTEDomainDestroy(ORTEDomain *d, Boolean manager);
550
551 ///////////////////////////////////////////////////////////////////////////////
552 // ORTEDomainApp.c
553 UL_LIST_CUST_DEC(Pattern,       /* prefix */
554                  PatternEntry,  /* head_t */
555                  PatternNode,   /* item_t */
556                  patterns,      /* head_field */
557                  node);         /* node_field */
558
559 ///////////////////////////////////////////////////////////////////////////////
560 // ORTETypeRegister.c
561 extern Boolean
562 ORTETypeRegisterFind(ORTEDomain *d, const char *typeName);
563
564 ///////////////////////////////////////////////////////////////////////////////
565 // ORTEPublication.c
566 GAVL_CUST_NODE_INT_DEC(PublicationList,   /* prefix */
567                        PSEntry,           /* root_t */
568                        ObjectEntryOID,    /* item_t */
569                        GUID_RTPS,         /* key_t */
570                        publications,      /* root_node */
571                        psNode,            /* item_node */
572                        guid,              /* item_key */
573                        gavl_cmp_guid);    /* cmp_fnc */
574 extern int
575 ORTEPublicationSendLocked(ORTEPublication *cstWriter,
576                           ORTEPublicationSendParam *psp);
577
578 ///////////////////////////////////////////////////////////////////////////////
579 // ORTESubcription.c
580 extern int
581 ORTESubscriptionDestroyLocked(ORTESubscription *cstReader);
582
583 ///////////////////////////////////////////////////////////////////////////////
584 // ORTEPublicationTimer.c
585 extern int
586 PublicationCallBackTimer(ORTEDomain *d, void *vcstWriter);
587
588 ///////////////////////////////////////////////////////////////////////////////
589 // ORTESubscription.c
590 GAVL_CUST_NODE_INT_DEC(SubscriptionList,  /* prefix */
591                        PSEntry,           /* root_t */
592                        ObjectEntryOID,    /* item_t */
593                        GUID_RTPS,         /* key_t */
594                        subscriptions,     /* root_node */
595                        psNode,            /* item_node */
596                        guid,              /* item_key */
597                        gavl_cmp_guid);    /* cmp_fnc */
598
599 #ifdef __cplusplus
600 } /* extern "C"*/
601 #endif
602
603 #endif /* _PROTOS_H */