]> rtime.felk.cvut.cz Git - orte.git/blob - orte/include/protos.h
Document gAVL, linked list and queue declaration
[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.smolik@wo.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 gavl_cmp_ntp_time(const NtpTime *a,const NtpTime *b);
376 extern int gavl_cmp_sn(const SequenceNumber *a, const SequenceNumber *b); 
377 extern int gavl_cmp_guid(const GUID_RTPS *a, const GUID_RTPS *b); 
378 extern int gavl_cmp_str(const char *const *a,const char *const *b);
379
380 ///////////////////////////////////////////////////////////////////////////////
381 // RTPSCSTWriter.c
382 UL_LIST_CUST_DEC(CSTWriterCSChange,       /* prefix */
383                  CSTWriter,               /* head_t */
384                  CSChange,                /* item_t */
385                  csChanges,               /* head_field */
386                  nodeList);               /* node_field */
387
388 UL_LIST_CUST_DEC(CSChangeParticipant,     /* prefix */
389                  CSChange,                /* head_t */
390                  CSChangeForReader,       /* item_t */
391                  writerParticipants,      /* head_field */
392                  participantNode);        /* node_field */
393
394 GAVL_CUST_NODE_INT_DEC(CSTWriter,         /* prefix */
395                        CSTPublications,   /* root_t */
396                        CSTWriter,         /* item_t */
397                        GUID_RTPS,         /* key_t */
398                        cstWriter,         /* root_node */
399                        node,              /* item_node */
400                        guid,              /* item_key */
401                        gavl_cmp_guid);    /* cmp_fnc */
402
403 GAVL_CUST_NODE_INT_DEC(CSTRemoteReader,   /* prefix */
404                        CSTWriter,         /* root_t */
405                        CSTRemoteReader,   /* item_t */
406                        GUID_RTPS,         /* key_t */
407                        cstRemoteReader,   /* root_node */
408                        node,              /* item_node */
409                        guid,              /* item_key */
410                        gavl_cmp_guid);    /* cmp_fnc */
411
412 GAVL_CUST_NODE_INT_DEC(CSChangeForReader, /* prefix */
413                        CSTRemoteReader,   /* root_t */
414                        CSChangeForReader, /* item_t */
415                        SequenceNumber,    /* key_t */
416                        csChangeForReader, /* root_node */
417                        node,              /* item_node */
418                        csChange->sn,      /* item_key */
419                        gavl_cmp_sn);      /* cmp_fnc */
420
421 extern void
422 CSTWriterInit(ORTEDomain *d,CSTWriter *cstWriter,ObjectEntryOID *object,
423     ObjectId oid,CSTWriterParams *params,ORTETypeRegister *typeRegister);
424 extern void 
425 CSTWriterDelete(ORTEDomain *d,CSTWriter *cstWriter);
426 extern CSTRemoteReader *
427 CSTWriterAddRemoteReader(ORTEDomain *d,CSTWriter *cstWriter,ObjectEntryOID *pobject,
428     ObjectId oid,ObjectEntryOID *sobject);
429 extern void 
430 CSTWriterDestroyRemoteReader(ORTEDomain *d,CSTRemoteReader *cstRemoteReader);
431 extern void
432 CSTWriterMakeGAP(ORTEDomain *d,CSTWriter *cstWriter,GUID_RTPS *guid);
433 extern void
434 CSTWriterAddCSChange(ORTEDomain *d,CSTWriter *cstWriter,CSChange *csChange);
435 extern void
436 CSTWriterDestroyCSChangeForReader(CSChangeForReader *csChangeForReader,
437    Boolean destroyCSChange);
438 extern void 
439 CSTWriterDestroyCSChange(ORTEDomain *d,CSTWriter *cstWriter,CSChange *csChange);
440 extern Boolean
441 CSTWriterTryDestroyBestEffortIssue(CSTWriter *cstWriter);
442 extern void
443 CSTWriterRefreshAllCSChanges(ORTEDomain *d,CSTRemoteReader *cstRemoteReader);
444 extern int
445 CSTWriterCSChangeForReaderNewState(CSChangeForReader *csChangeForReader);
446 extern void
447 CSTWriterMulticast(CSChangeForReader *csChangeForReader);
448
449 ///////////////////////////////////////////////////////////////////////////////
450 // RTPSCSTWriterTimer.c
451 extern int 
452 CSTWriterRegistrationTimer(ORTEDomain *d,void *vcstWriter);
453 extern int
454 CSTWriterRefreshTimer(ORTEDomain *d,void *vcstWriter);
455 extern int 
456 CSTWriterAnnounceTimer(ORTEDomain *d,void *vcstRemoteReader);
457 extern int 
458 CSChangeForReaderUnderwayTimer(ORTEDomain *da,void *vcsChangeForReader);
459 extern int
460 CSTWriterSendBestEffortTimer(ORTEDomain *d,void *vcstRemoteReader);
461 extern int
462 CSTWriterSendStrictTimer(ORTEDomain *d,void *vcstRemoteReader);
463 extern int
464 CSTWriterSendTimer(ORTEDomain *d,void *vcstRemoteReader);
465         
466 ///////////////////////////////////////////////////////////////////////////////
467 // RTPSCSTReader.c
468 UL_LIST_CUST_DEC(CSTReaderCSChange,       /* prefix */
469                  CSTReader,               /* head_t */
470                  CSChange,                /* item_t */
471                  csChanges,               /* head_field */
472                  nodeList);               /* node_field */
473
474 GAVL_CUST_NODE_INT_DEC(CSTReader,         /* prefix */
475                        CSTSubscriptions,  /* root_t */
476                        CSTReader,         /* item_t */
477                        GUID_RTPS,         /* key_t */
478                        cstReader,         /* root_node */
479                        node,              /* item_node */
480                        guid,              /* item_key */
481                        gavl_cmp_guid);    /* cmp_fnc */
482
483 GAVL_CUST_NODE_INT_DEC(CSTRemoteWriter,   /* prefix */
484                        CSTReader,         /* root_t */
485                        CSTRemoteWriter,   /* item_t */
486                        GUID_RTPS,         /* key_t */
487                        cstRemoteWriter,   /* root_node */
488                        node,              /* item_node */
489                        guid,              /* item_key */
490                        gavl_cmp_guid);    /* cmp_fnc */
491
492 GAVL_CUST_NODE_INT_DEC(CSChangeFromWriter,/* prefix */
493                        CSTRemoteWriter,   /* root_t */
494                        CSChangeFromWriter,/* item_t */
495                        SequenceNumber,    /* key_t */
496                        csChangeFromWriter,/* root_node */
497                        node,              /* item_node */
498                        csChange->sn,      /* item_key */
499                        gavl_cmp_sn);      /* cmp_fnc */
500 extern void 
501 CSTReaderInit(ORTEDomain *d,CSTReader *cstReader,ObjectEntryOID *object,
502     ObjectId oid,CSTReaderParams *params,ORTETypeRegister *typeRegister);
503 extern void 
504 CSTReaderDelete(ORTEDomain *d,CSTReader *cstReader);
505 extern CSTRemoteWriter *
506 CSTReaderAddRemoteWriter(ORTEDomain *d,CSTReader *cstReader,ObjectEntryOID *object,
507     ObjectId oid);
508 extern void 
509 CSTReaderDestroyRemoteWriter(ORTEDomain *d,CSTRemoteWriter *cstRemoteWriter);
510 extern void
511 CSTReaderAddCSChange(CSTRemoteWriter *cstRemoteWriter,CSChange *csChange);
512 extern void
513 CSTReaderDestroyCSChangeFromWriter(CSTRemoteWriter *cstRemoteWriter,
514     CSChangeFromWriter *csChangeFromWriter,Boolean keepCSChange);
515 extern void 
516 CSTReaderDestroyCSChange(CSTRemoteWriter *cstRemoteWriter,SequenceNumber *sn,
517     Boolean keepCSChange);
518 extern void 
519 CSTReaderSetupState(CSTRemoteWriter *cstRemoteWriter);
520         
521 ///////////////////////////////////////////////////////////////////////////////
522 // RTPSCSTReaderProc.c
523 extern void 
524 CSTReaderProcCSChanges(ORTEDomain *d,CSTRemoteWriter *cstRemoteWriter);
525 extern void 
526 CSTReaderProcCSChangesIssue(CSTRemoteWriter *cstRemoteWriter,Boolean pullCalled);
527
528 ///////////////////////////////////////////////////////////////////////////////
529 // RTPSCSTReaderTimer.c
530 extern int
531 CSTReaderResponceTimer(ORTEDomain *d,void *vcstRemoteWriter);
532 extern int 
533 CSTReaderQueryTimer(ORTEDomain *d,void *vcstRemoteWriter);
534 extern int 
535 CSTReaderDeadlineTimer(ORTEDomain *d,void *vcstReader);
536 extern int 
537 CSTReaderPersistenceTimer(ORTEDomain *d,void *vcstReader);
538
539 ///////////////////////////////////////////////////////////////////////////////
540 // ORTEDomain.c
541 ORTEDomain * 
542 ORTEDomainCreate(int domain, ORTEDomainProp *prop,
543                ORTEDomainAppEvents *events,Boolean manager);
544 Boolean
545 ORTEDomainDestroy(ORTEDomain *d,Boolean manager);
546
547 ///////////////////////////////////////////////////////////////////////////////
548 // ORTEDomainApp.c
549 UL_LIST_CUST_DEC(Pattern,       /* prefix */
550                  PatternEntry,  /* head_t */
551                  PatternNode,   /* item_t */
552                  patterns,      /* head_field */
553                  node);         /* node_field */
554                                                    
555 ///////////////////////////////////////////////////////////////////////////////
556 // ORTETypeRegister.c
557 extern Boolean
558 ORTETypeRegisterFind(ORTEDomain *d,const char *typeName);
559
560 ///////////////////////////////////////////////////////////////////////////////
561 // ORTEPublication.c
562 GAVL_CUST_NODE_INT_DEC(PublicationList,   /* prefix */
563                        PSEntry,           /* root_t */
564                        ObjectEntryOID,    /* item_t */
565                        GUID_RTPS,         /* key_t */
566                        publications,      /* root_node */
567                        psNode,            /* item_node */
568                        guid,              /* item_key */
569                        gavl_cmp_guid);    /* cmp_fnc */
570 extern int
571 ORTEPublicationSendLocked(ORTEPublication *cstWriter,
572     ORTEPublicationSendParam *psp);
573
574 ///////////////////////////////////////////////////////////////////////////////
575 // ORTESubcription.c
576 extern int
577 ORTESubscriptionDestroyLocked(ORTESubscription *cstReader);
578
579 ///////////////////////////////////////////////////////////////////////////////
580 // ORTEPublicationTimer.c
581 extern int
582 PublicationCallBackTimer(ORTEDomain *d,void *vcstWriter);
583
584 ///////////////////////////////////////////////////////////////////////////////
585 // ORTESubscription.c
586 GAVL_CUST_NODE_INT_DEC(SubscriptionList,  /* prefix */
587                        PSEntry,           /* root_t */
588                        ObjectEntryOID,    /* item_t */
589                        GUID_RTPS,         /* key_t */
590                        subscriptions,     /* root_node */
591                        psNode,            /* item_node */
592                        guid,              /* item_key */
593                        gavl_cmp_guid);    /* cmp_fnc */
594
595 #ifdef __cplusplus
596 } /* extern "C"*/
597 #endif
598
599 #endif /* _PROTOS_H */