CoreDX Data Distribution Service
The High Performance, Small Footprint DDS from Twin Oaks Computing, Inc
dds_csharp_helpers.h
1 /*****************************************************************
2  * file: dds_csharp_helpers.h
3  * desc: access helpers to C
4  *
5  *****************************************************************
6  *
7  * Copyright(C) 2009-2016 Twin Oaks Computing, Inc
8  * All rights reserved. Castle Rock, CO 80108
9  *
10  *****************************************************************
11  * This software has been provided pursuant to a License Agreement
12  * containing restrictions on its use. This software contains
13  * valuable trade secrets and proprietary information of
14  * Twin Oaks Computing, Inc and is protected by law. It may not be
15  * copied or distributed in any form or medium, disclosed to third
16  * parties, reverse engineered or used in any manner not provided
17  * for in said License Agreement except with the prior written
18  * authorization from Twin Oaks Computing, Inc.
19  *****************************************************************/
20 
21 /* Sequence access helpers */
22 COREDX_C_API void DDS_PointerSeq_init ( DDS_PointerSeq * seq );
23 COREDX_C_API void DDS_PointerSeq_clear ( DDS_PointerSeq * seq );
24 COREDX_C_API void * DDS_PointerSeq_get ( DDS_PointerSeq * seq, unsigned int i );
25 COREDX_C_API void DDS_PointerSeq_set_length ( DDS_PointerSeq * seq, unsigned int i );
26 COREDX_C_API unsigned int DDS_PointerSeq_get_length ( DDS_PointerSeq * seq );
27 COREDX_C_API void DDS_PointerSeq_set_size ( DDS_PointerSeq * seq, unsigned int i );
28 COREDX_C_API void DDS_PointerSeq_set ( DDS_PointerSeq * seq, unsigned int i, void *d );
29 
30 COREDX_C_API void DDS_InstanceHandleSeq_init ( DDS_InstanceHandleSeq * seq );
31 COREDX_C_API void DDS_InstanceHandleSeq_clear ( DDS_InstanceHandleSeq * seq );
32 COREDX_C_API DDS_InstanceHandle_t DDS_InstanceHandleSeq_get ( DDS_InstanceHandleSeq * seq, unsigned int i );
33 COREDX_C_API unsigned int DDS_InstanceHandleSeq_get_length ( DDS_InstanceHandleSeq * seq );
34 
35 COREDX_C_API void DDS_SampleInfoSeq_init( DDS_SampleInfoSeq * seq );
36 COREDX_C_API void DDS_SampleInfoSeq_clear( DDS_SampleInfoSeq * seq );
37 COREDX_C_API DDS_SampleInfo * DDS_SampleInfoSeq_get ( DDS_SampleInfoSeq * seq, unsigned int i );
38 COREDX_C_API void DDS_SampleInfoSeq_set_length ( DDS_SampleInfoSeq * seq, unsigned int i );
39 COREDX_C_API void DDS_SampleInfoSeq_set_size ( DDS_SampleInfoSeq * seq, unsigned int i );
40 COREDX_C_API void DDS_SampleInfoSeq_set ( DDS_SampleInfoSeq * seq, unsigned int i, DDS_SampleInfo *d );
41 
42 COREDX_C_API void DDS_StringSeq_init( DDS_StringSeq * seq );
43 COREDX_C_API void DDS_StringSeq_clear( DDS_StringSeq * seq );
44 COREDX_C_API char * DDS_StringSeq_get ( DDS_StringSeq * seq, unsigned int i );
45 COREDX_C_API void DDS_StringSeq_set_length ( DDS_StringSeq * seq, unsigned int i );
46 COREDX_C_API unsigned int DDS_StringSeq_get_length ( DDS_StringSeq * seq );
47 COREDX_C_API void DDS_StringSeq_set_size ( DDS_StringSeq * seq, unsigned int i );
48 COREDX_C_API void DDS_StringSeq_set ( DDS_StringSeq * seq, unsigned int i, char *d );
49 COREDX_C_API void DDS_StringSeq_add ( DDS_StringSeq * seq, char *d );
50 
51 COREDX_C_API void DDS_ShortSeq_init( DDS_ShortSeq * seq );
52 COREDX_C_API void DDS_ShortSeq_clear( DDS_ShortSeq * seq );
53 COREDX_C_API unsigned short DDS_ShortSeq_get ( DDS_ShortSeq * seq, unsigned int i );
54 COREDX_C_API void DDS_ShortSeq_set_length ( DDS_ShortSeq * seq, unsigned int i );
55 COREDX_C_API unsigned int DDS_ShortSeq_get_length ( DDS_ShortSeq * seq );
56 COREDX_C_API void DDS_ShortSeq_set_size ( DDS_ShortSeq * seq, unsigned int i );
57 COREDX_C_API void DDS_ShortSeq_set ( DDS_ShortSeq * seq, unsigned int i, unsigned short d );
58 COREDX_C_API void DDS_ShortSeq_add ( DDS_ShortSeq * seq, unsigned short d );
59 
60 COREDX_C_API void DDS_DataRepresentationIdSeq_init( DDS_DataRepresentationIdSeq * seq );
61 COREDX_C_API unsigned short DDS_DataRepresentationIdSeq_get ( DDS_DataRepresentationIdSeq * seq, unsigned int i );
62 COREDX_C_API unsigned int DDS_DataRepresentationIdSeq_get_length ( DDS_DataRepresentationIdSeq * seq );
63 COREDX_C_API void DDS_DataRepresentationIdSeq_add ( DDS_DataRepresentationIdSeq * seq, unsigned short d );
64 
65 COREDX_C_API void DDS_OctetSeq_init( DDS_OctetSeq * seq );
66 COREDX_C_API void DDS_OctetSeq_clear( DDS_OctetSeq * seq );
67 COREDX_C_API void DDS_OctetSeq_add ( DDS_OctetSeq * seq, unsigned char d );
68 COREDX_C_API void DDS_OctetSeq_set_length ( DDS_OctetSeq * seq, unsigned int i );
69 COREDX_C_API unsigned int DDS_OctetSeq_get_length ( DDS_OctetSeq * seq );
70 COREDX_C_API void DDS_OctetSeq_set_size ( DDS_OctetSeq * seq, unsigned int i );
71 COREDX_C_API void DDS_OctetSeq_set ( DDS_OctetSeq * seq, unsigned int i, unsigned char d );
72 COREDX_C_API unsigned char DDS_OctetSeq_get ( DDS_OctetSeq * seq, unsigned int i );
73 COREDX_C_API void DDS_OctetSeq_dup ( DDS_OctetSeq * seq, unsigned char *buf, int len);
74 
75 COREDX_C_API void DDS_ConditionSeq_init( DDS_ConditionSeq * seq );
76 COREDX_C_API void DDS_ConditionSeq_clear( DDS_ConditionSeq * seq );
77 COREDX_C_API void DDS_ConditionSeq_add ( DDS_ConditionSeq * seq, DDS_Condition d );
78 COREDX_C_API void DDS_ConditionSeq_set_length ( DDS_ConditionSeq * seq, unsigned int i );
79 COREDX_C_API unsigned int DDS_ConditionSeq_get_length ( DDS_ConditionSeq * seq );
80 COREDX_C_API void DDS_ConditionSeq_set_size ( DDS_ConditionSeq * seq, unsigned int i );
81 COREDX_C_API void DDS_ConditionSeq_set ( DDS_ConditionSeq * seq, unsigned int i, DDS_Condition d );
82 COREDX_C_API DDS_Condition DDS_ConditionSeq_get ( DDS_ConditionSeq * seq, unsigned int i );
83 
84 COREDX_C_API void CoreDX_ParticipantLocatorSeq_init( CoreDX_ParticipantLocatorSeq * seq );
85 COREDX_C_API void CoreDX_ParticipantLocatorSeq_clear( CoreDX_ParticipantLocatorSeq * seq );
86 COREDX_C_API void CoreDX_ParticipantLocatorSeq_add ( CoreDX_ParticipantLocatorSeq * seq, CoreDX_ParticipantLocator * d );
87 COREDX_C_API void CoreDX_ParticipantLocatorSeq_set_length ( CoreDX_ParticipantLocatorSeq * seq, unsigned int i );
88 COREDX_C_API unsigned int CoreDX_ParticipantLocatorSeq_get_length ( CoreDX_ParticipantLocatorSeq * seq );
89 COREDX_C_API void CoreDX_ParticipantLocatorSeq_set_size ( CoreDX_ParticipantLocatorSeq * seq, unsigned int i );
90 COREDX_C_API CoreDX_ParticipantLocator * CoreDX_ParticipantLocatorSeq_get ( CoreDX_ParticipantLocatorSeq * seq, unsigned int i );
91 
92 COREDX_C_API DDS_Property_t * DDS_PropertySeq_get( DDS_PropertySeq * seq, unsigned int index );
93 COREDX_C_API void DDS_PropertySeq_add( DDS_PropertySeq * seq, DDS_Property_t prop );
94 COREDX_C_API void DDS_PropertySeq_init(DDS_PropertySeq * seq);
95 COREDX_C_API void DDS_PropertySeq_clear( DDS_PropertySeq * seq );
96 
97 COREDX_C_API DDS_Tag * DDS_TagSeq_get( DDS_TagSeq * seq, unsigned int index );
98 COREDX_C_API void DDS_TagSeq_add( DDS_TagSeq * seq, DDS_Tag tag );
99 COREDX_C_API void DDS_TagSeq_init( DDS_TagSeq * seq );
100 COREDX_C_API void DDS_TagSeq_clear( DDS_TagSeq * seq );
101 
102 COREDX_C_API DDS_Condition DDS_GuardCondition_get_condition( DDS_GuardCondition rc );
103 COREDX_C_API DDS_Condition DDS_ReadCondition_get_condition( DDS_ReadCondition rc );
104 COREDX_C_API DDS_Condition DDS_StatusCondition_get_condition( DDS_StatusCondition sc );
105 COREDX_C_API DDS_ReadCondition DDS_QueryCondition_get_readcondition( DDS_QueryCondition qc );
106 
107 COREDX_C_API int DDS_QosPolicyCountSeq_get_length( DDS_QosPolicyCountSeq * seq );
108 COREDX_C_API DDS_QosPolicyCount DDS_QosPolicyCountSeq_get( DDS_QosPolicyCountSeq * seq, unsigned int i );
109 
110 COREDX_C_API DDS_ReadCondition DDS_QueryCondition_get_readcondition( DDS_QueryCondition qc );
111 
112 COREDX_C_API DDS_DataWriter DDS_Publisher_create_datawriter_csharp( DDS_Publisher p,
113  DDS_Topic a_topic,
114  DDS_DataWriterQos * qos,
115  DDS_DataWriterListener * a_listener,
116  DDS_StatusMask mask);
117 
118 COREDX_C_API DDS_DataReader DDS_Subscriber_create_datareader_csharp( DDS_Subscriber s,
119  DDS_TopicDescription a_topic,
120  DDS_DataReaderQos * qos,
121  DDS_DataReaderListener * a_listener,
122  DDS_StatusMask mask);
123 /* these live in the core: */
124 COREDX_C_API void DDS_DomainParticipant_set_user(DDS_DomainParticipant dp, void * user);
125 COREDX_C_API void * DDS_DomainParticipant_get_user(DDS_DomainParticipant dp);
126 COREDX_C_API void DDS_DataReader_set_user(DDS_DataReader dr, void *user);
127 COREDX_C_API void * DDS_DataReader_get_user(DDS_DataReader dr);
128 COREDX_C_API void DDS_DataWriter_set_user(DDS_DataWriter dw, void *user);
129 COREDX_C_API void * DDS_DataWriter_get_user(DDS_DataWriter dw);
130 COREDX_C_API void DDS_Topic_set_user(DDS_Topic top, void *user);
131 COREDX_C_API void * DDS_Topic_get_user(DDS_Topic top);
132 COREDX_C_API void DDS_Publisher_set_user(DDS_Publisher pub, void *user);
133 COREDX_C_API void * DDS_Publisher_get_user(DDS_Publisher pub);
134 COREDX_C_API void DDS_Subscriber_set_user(DDS_Subscriber sub, void *user);
135 COREDX_C_API void * DDS_Subscriber_get_user(DDS_Subscriber sub);
136 
137 COREDX_C_API void DDS_TypeSupport_set_user(DDS_TypeSupport ts, void *user);
138 COREDX_C_API void * DDS_TypeSupport_get_user(DDS_TypeSupport ts);
139 COREDX_C_API DDS_Topic DDS_TopicDescription_to_topic(DDS_TopicDescription td);
140 
141 
142 COREDX_C_API DDS_Entity DDS_DomainParticipant_get_entity( DDS_DomainParticipant d);
143 COREDX_C_API DDS_Entity DDS_Publisher_get_entity( DDS_Publisher d) ;
144 COREDX_C_API DDS_Entity DDS_Subscriber_get_entity( DDS_Subscriber d) ;
145 COREDX_C_API DDS_Entity DDS_Topic_get_entity( DDS_Topic d ) ;
146 COREDX_C_API DDS_Entity DDS_DataReader_get_entity( DDS_DataReader d ) ;
147 COREDX_C_API DDS_Entity DDS_DataWriter_get_entity( DDS_DataWriter d ) ;
148 
149 
150 COREDX_C_API CoreDX_IpTransportInterface * CoreDX_IpTransportInterfaceSeq_get( CoreDX_IpTransportInterfaceSeq *seq,
151  unsigned int i );
152 COREDX_C_API void CoreDX_IpTransportInterfaceSeq_add( CoreDX_IpTransportInterfaceSeq *seq,
153  CoreDX_IpTransportInterface *ifc );
154 
155 COREDX_C_API unsigned char CoreDX_IpTransportInterface_get_addr_byte( CoreDX_IpTransportInterface * ifc,
156  unsigned int index );
157 COREDX_C_API void CoreDX_IpTransportInterface_set_addr_byte( CoreDX_IpTransportInterface * ifc,
158  unsigned int index, unsigned char b );
159 
160 COREDX_C_API unsigned char DDS_GUID_t_get ( DDS_GUID_t * g, unsigned int i );
161 COREDX_C_API void DDS_GUID_t_set ( DDS_GUID_t * g, unsigned int i, unsigned char b );
162 
163 /* X509_DER struct that's easy to get back to C# */
164 struct CoreDX_X509_Der {
165  unsigned char * data;
166  int data_len;
167 };
168 
169 
170 COREDX_C_API DDS_ReturnCode_t CoreDX_X509_Der_alloc_data(struct CoreDX_X509_Der * x509);
171 COREDX_C_API DDS_ReturnCode_t CoreDX_X509_Der_free_data(struct CoreDX_X509_Der * x509);
172 COREDX_C_API DDS_ReturnCode_t CoreDX_SslTransport_get_peer_cert_csharp(CoreDX_Transport * tport,
173  DDS_BuiltinTopicKey_t * pkey,
174  DDS_BuiltinTopicKey_t * ekey,
175  struct CoreDX_X509_Der * x509);
176 
177 COREDX_C_ADD_API DDS_QosProvider * DDS_QosProvider_newQosProvider_csharp ( const char * uri,
178  const char * profile);

© 2009-2020 Twin Oaks Computing, Inc
Castle Rock, CO 80108
All rights reserved.