]> rtime.felk.cvut.cz Git - orte.git/blob - orte/contrib/pharlap/ortedll.h
upgrade to new version 0.3.1
[orte.git] / orte / contrib / pharlap / ortedll.h
1 /*\r
2         ortedll.h\r
3 \r
4         Historie zmen:\r
5                 2005-08-23      vytvoril        Milan\r
6 */\r
7 \r
8 #pragma once\r
9 \r
10 #include <windows.h>\r
11 #include <orte.h>\r
12 \r
13 #ifdef __cplusplus\r
14         extern "C" {\r
15 #endif\r
16 \r
17 typedef void (*PFN_ORTEInit)(void);\r
18 \r
19 typedef void (*PFN_ORTEDomainStart)(ORTEDomain, Boolean, Boolean, Boolean,\r
20         Boolean, Boolean);\r
21 \r
22 typedef Boolean (*PFN_ORTEDomainPropDefaultGet)(ORTEDomainProp *);\r
23 \r
24 typedef Boolean (*PFN_ORTEDomainInitEvents)(ORTEDomainAppEvents *);\r
25 \r
26 typedef ORTEDomain* (*PFN_ORTEDomainAppCreate)(int, ORTEDomainProp *,\r
27         ORTEDomainAppEvents *, Boolean suspended);\r
28 \r
29 typedef Boolean (*PFN_ORTEDomainAppDestroy)(ORTEDomain *);\r
30 \r
31 typedef Boolean (*PFN_ORTEDomainAppSubscriptionPatternAdd)(ORTEDomain *,\r
32         const char *, const char *, ORTESubscriptionPatternCallBack, \r
33         void *);\r
34 \r
35 typedef Boolean (*PFN_ORTEDomainAppSubscriptionPatternRemove)(ORTEDomain *,\r
36         const char *, const char *);\r
37 \r
38 typedef Boolean (*PFN_ORTEDomainAppSubscriptionPatternDestroy)(ORTEDomain *);\r
39 \r
40 typedef ORTEDomain* (*PFN_ORTEDomainMgrCreate)(int, ORTEDomainProp *,\r
41         ORTEDomainAppEvents *, Boolean);\r
42 \r
43 typedef Boolean (*PFN_ORTEDomainMgrDestroy)(ORTEDomain *);\r
44 \r
45 typedef ORTEPublication* (*PFN_ORTEPublicationCreate)(ORTEDomain *,\r
46         const char *, const char *, void *, NtpTime *, int,\r
47         ORTESendCallBack, void *, NtpTime *);\r
48 \r
49 typedef int (*PFN_ORTEPublicationDestroy)(ORTEPublication *);\r
50 \r
51 typedef int (*PFN_ORTEPublicationPropertiesGet)(ORTEPublication *,\r
52         ORTEPublProp *);\r
53 \r
54 typedef int (*PFN_ORTEPublicationPropertiesSet)(ORTEPublication *,\r
55         ORTEPublProp *);\r
56 \r
57 typedef int (*PFN_ORTEPublicationWaitForSubscriptions)(\r
58         ORTEPublication *, NtpTime, unsigned int, unsigned int);\r
59 \r
60 typedef int (*PFN_ORTEPublicationGetStatus)(ORTEPublication *,\r
61         ORTEPublStatus *);\r
62 \r
63 typedef int (*PFN_ORTEPublicationSend)(ORTEPublication *);\r
64 \r
65 typedef int (*PFN_ORTEPublicationSendEx)(ORTEPublication *,\r
66         ORTEPublicationSendParam *);\r
67 \r
68 typedef ORTESubscription* (*PFN_ORTESubscriptionCreate)(ORTEDomain *,\r
69         SubscriptionMode, SubscriptionType, const char *, const char *,\r
70         void *, NtpTime *, NtpTime *, ORTERecvCallBack, void *,\r
71         IPAddress);\r
72 \r
73 typedef int (*PFN_ORTESubscriptionDestroy)(ORTESubscription *);\r
74 \r
75 typedef int (*PFN_ORTESubscriptionPropertiesGet)(ORTESubscription *,\r
76         ORTESubsProp *);\r
77 \r
78 typedef int (*PFN_ORTESubscriptionPropertiesSet)(ORTESubscription *,\r
79         ORTESubsProp *);\r
80 \r
81 typedef int (*PFN_ORTESubscriptionWaitForPublications)(ORTESubscription *,\r
82         NtpTime, unsigned int,unsigned int);\r
83 \r
84 typedef int (*PFN_ORTESubscriptionGetStatus)(ORTESubscription *,\r
85         ORTESubsStatus *);\r
86 \r
87 typedef int (*PFN_ORTESubscriptionPull)(ORTESubscription *);\r
88 \r
89 typedef int (*PFN_ORTETypeRegisterAdd)(ORTEDomain *, const char *,\r
90         ORTETypeSerialize, ORTETypeDeserialize, ORTETypeGetMaxSize,\r
91         unsigned int);\r
92 \r
93 typedef int (*PFN_ORTETypeRegisterDestroyAll)(ORTEDomain *);\r
94 \r
95 typedef void (*PFN_ORTEVerbositySetOptions)(const char *);\r
96 \r
97 typedef void (*PFN_ORTEVerbositySetLogFile)(const char *);\r
98 \r
99 typedef void (*PFN_ORTESleepMs)(unsigned int);\r
100 \r
101 typedef char* (*PFN_IPAddressToString)(IPAddress, char *);\r
102 \r
103 typedef IPAddress (*PFN_StringToIPAddress)(const char *);\r
104 \r
105 typedef char* (*PFN_NtpTimeToStringMs)(NtpTime, char *);\r
106 \r
107 typedef char* (*PFN_NtpTimeToStringUs)(NtpTime, char *);\r
108 \r
109 #define __ORTE_API_ENTRY(symbol)        PFN_##symbol    pfn##symbol;\r
110 #define __ORTE_API_DECL(symbol)         __orte.apis.pfn##symbol\r
111 \r
112 struct __ORTE_APIS {\r
113         __ORTE_API_ENTRY(ORTEInit)\r
114         __ORTE_API_ENTRY(ORTEDomainStart)\r
115         __ORTE_API_ENTRY(ORTEDomainPropDefaultGet)\r
116         __ORTE_API_ENTRY(ORTEDomainInitEvents)\r
117         __ORTE_API_ENTRY(ORTEDomainAppCreate)\r
118         __ORTE_API_ENTRY(ORTEDomainAppDestroy)\r
119         __ORTE_API_ENTRY(ORTEDomainAppSubscriptionPatternAdd)\r
120         __ORTE_API_ENTRY(ORTEDomainAppSubscriptionPatternRemove)\r
121         __ORTE_API_ENTRY(ORTEDomainAppSubscriptionPatternDestroy)\r
122         __ORTE_API_ENTRY(ORTEDomainMgrCreate)\r
123         __ORTE_API_ENTRY(ORTEDomainMgrDestroy)\r
124         __ORTE_API_ENTRY(ORTEPublicationCreate)\r
125         __ORTE_API_ENTRY(ORTEPublicationDestroy)\r
126         __ORTE_API_ENTRY(ORTEPublicationPropertiesGet)\r
127         __ORTE_API_ENTRY(ORTEPublicationPropertiesSet)\r
128         __ORTE_API_ENTRY(ORTEPublicationWaitForSubscriptions)\r
129         __ORTE_API_ENTRY(ORTEPublicationGetStatus)\r
130         __ORTE_API_ENTRY(ORTEPublicationSend)\r
131         __ORTE_API_ENTRY(ORTEPublicationSendEx)\r
132         __ORTE_API_ENTRY(ORTESubscriptionCreate)\r
133         __ORTE_API_ENTRY(ORTESubscriptionDestroy)\r
134         __ORTE_API_ENTRY(ORTESubscriptionPropertiesGet)\r
135         __ORTE_API_ENTRY(ORTESubscriptionPropertiesSet)\r
136         __ORTE_API_ENTRY(ORTESubscriptionWaitForPublications)\r
137         __ORTE_API_ENTRY(ORTESubscriptionGetStatus)\r
138         __ORTE_API_ENTRY(ORTESubscriptionPull)\r
139         __ORTE_API_ENTRY(ORTETypeRegisterAdd)\r
140         __ORTE_API_ENTRY(ORTETypeRegisterDestroyAll)\r
141         __ORTE_API_ENTRY(ORTEVerbositySetOptions)\r
142         __ORTE_API_ENTRY(ORTEVerbositySetLogFile)\r
143         __ORTE_API_ENTRY(ORTESleepMs)\r
144         __ORTE_API_ENTRY(IPAddressToString)\r
145         __ORTE_API_ENTRY(StringToIPAddress)\r
146         __ORTE_API_ENTRY(NtpTimeToStringMs)\r
147         __ORTE_API_ENTRY(NtpTimeToStringUs)\r
148 };\r
149 \r
150 struct __ORTE_DLL {\r
151         HINSTANCE hInstance;\r
152         DWORD dwResult;\r
153         LONG cLoads;\r
154         int fLoadTried;\r
155         struct __ORTE_APIS apis;\r
156 };\r
157 \r
158 extern struct __ORTE_DLL __orte;\r
159 \r
160 DWORD __ORTEDllLoad(void);\r
161 DWORD __ORTEInit(void);\r
162 \r
163 #define ORTEInit()                              __ORTEInit()\r
164 #define ORTEDomainStart                         __ORTE_API_DECL(ORTEDomainStart)\r
165 #define ORTEDomainPropDefaultGet                __ORTE_API_DECL(ORTEDomainPropDefaultGet)\r
166 #define ORTEDomainInitEvents                    __ORTE_API_DECL(ORTEDomainInitEvents)\r
167 #define ORTEDomainAppCreate                     __ORTE_API_DECL(ORTEDomainAppCreate)\r
168 #define ORTEDomainAppDestroy                    __ORTE_API_DECL(ORTEDomainAppDestroy)\r
169 #define ORTEDomainAppSubscriptionPatternAdd     __ORTE_API_DECL(ORTEDomainAppSubscriptionPatternAdd)\r
170 #define ORTEDomainAppSubscriptionPatternRemove  __ORTE_API_DECL(ORTEDomainAppSubscriptionPatternRemove)\r
171 #define ORTEDomainAppSubscriptionPatternDestroy __ORTE_API_DECL(ORTEDomainAppSubscriptionPatternDestroy)\r
172 #define ORTEDomainMgrCreate                     __ORTE_API_DECL(ORTEDomainMgrCreate)\r
173 #define ORTEDomainMgrDestroy                    __ORTE_API_DECL(ORTEDomainMgrDestroy)\r
174 #define ORTEPublicationCreate                   __ORTE_API_DECL(ORTEPublicationCreate)\r
175 #define ORTEPublicationDestroy                  __ORTE_API_DECL(ORTEPublicationDestroy)\r
176 #define ORTEPublicationPropertiesGet            __ORTE_API_DECL(ORTEPublicationPropertiesGet)\r
177 #define ORTEPublicationPropertiesSet            __ORTE_API_DECL(ORTEPublicationPropertiesSet)\r
178 #define ORTEPublicationWaitForSubscriptions     __ORTE_API_DECL(ORTEPublicationWaitForSubscriptions)\r
179 #define ORTEPublicationGetStatus                __ORTE_API_DECL(ORTEPublicationGetStatus)\r
180 #define ORTEPublicationSend                     __ORTE_API_DECL(ORTEPublicationSend)\r
181 #define ORTEPublicationSendEx                   __ORTE_API_DECL(ORTEPublicationSendEx)\r
182 #define ORTESubscriptionCreate                  __ORTE_API_DECL(ORTESubscriptionCreate)\r
183 #define ORTESubscriptionDestroy                 __ORTE_API_DECL(ORTESubscriptionDestroy)\r
184 #define ORTESubscriptionPropertiesGet           __ORTE_API_DECL(ORTESubscriptionPropertiesGet)\r
185 #define ORTESubscriptionPropertiesSet           __ORTE_API_DECL(ORTESubscriptionPropertiesSet)\r
186 #define ORTESubscriptionWaitForPublications     __ORTE_API_DECL(ORTESubscriptionWaitForPublications)\r
187 #define ORTESubscriptionGetStatus               __ORTE_API_DECL(ORTESubscriptionGetStatus)\r
188 #define ORTESubscriptionPull                    __ORTE_API_DECL(ORTESubscriptionPull)\r
189 #define ORTETypeRegisterAdd                     __ORTE_API_DECL(ORTETypeRegisterAdd)\r
190 #define ORTETypeRegisterDestroyAll              __ORTE_API_DECL(ORTETypeRegisterDestroyAll)\r
191 #define ORTEVerbositySetOptions                 __ORTE_API_DECL(ORTEVerbositySetOptions)\r
192 #define ORTEVerbositySetLogFile                 __ORTE_API_DECL(ORTEVerbositySetLogFile)\r
193 #define ORTESleepMs                             __ORTE_API_DECL(ORTESleepMs)\r
194 #define IPAddressToString                       __ORTE_API_DECL(IPAddressToString)\r
195 #define StringToIPAddress                       __ORTE_API_DECL(StringToIPAddress)\r
196 #define NtpTimeToStringMs                       __ORTE_API_DECL(NtpTimeToStringMs)\r
197 #define NtpTimeToStringUs                       __ORTE_API_DECL(NtpTimeToStringUs)\r
198 \r
199 #ifdef __cplusplus\r
200         }\r
201 #endif