botsense
3.2.0
RoadNarrows Client-Server Proxied Services Framework
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
eModClient.doxy
Go to the documentation of this file.
1
////////////////////////////////////////////////////////////////////////////////
2
// Package: BotSense
3
//
4
// File: dModClient.doxy
5
//
6
// Description:
7
// This file contains the doxygen directives to generate the client
8
// documentation.
9
//
10
////////////////////////////////////////////////////////////////////////////////
11
12
/*! \file */
13
14
/*!
15
\defgroup bsclient BotSense Client
16
17
\section bscli_intro Intro
18
19
The \h_botsense client communicates with the bsProxy server through a
20
messaging protocol transmitted and received over an IP socket interface.
21
The libbotsense library provides a functional interface for the client
22
application, hiding the underlining messaging.
23
24
\htmlonly
25
<div style="float:right; border:0; text-align:center;">
26
\endhtmlonly
27
\image html bsLibReqRsp-Small.png "Figure 5: libbotsense Request/Response Design."
28
\htmlonly
29
<div style="text-align: center;"><a href="bsLibReqRsp.png">click to enlarge</a></div>
30
</div>
31
\endhtmlonly
32
33
Although a client may use the libbotsense library directly,
34
typically, a client interfaces with an application-specific plug-in library
35
module.
36
The plug-in library makes the appropriate calls to the lower libbotsense layer.
37
38
In Figure 5, the high-level, internal control and data flows are illustrated
39
for a client to server request/response message exchange.
40
An application-specific plug-in normally makes the call to
41
<em>bsClientTrans()</em>, checks for errors, and parses the application-specific
42
response. The plug-in library is not shown for clarity.
43
44
The sequence:
45
<ol>
46
<li>The client's calling function issues a transaction request.
47
The call contains the packed request body (if any) and a buffer to hold the
48
packed response.</li>
49
<li>libbotsense prepends the message header to the body and transmits the
50
message to the bsProxy server.</li>
51
<li>Until a timout, error, or the response has been received, repeat:</li>
52
<ol style="list-style-type: lower-alpha;">
53
<li>Check the transaction cache for an already received response.
54
(This could have happened in another client thread.)</li>
55
<li>Receive a response from the server. If not the response for this
56
transaction, then cache it.</li>
57
</ol>
58
<li>Return to the client's calling function.</li>
59
</ol>
60
61
The locking and unlocking mutal exclusion are done at a per client level,
62
uneffecting other clients. There is also one transaction cache per client.
63
This design has been optimized for maximal multi-threaded performance.
64
65
The libbotsense library:
66
\li supports multiple, simultaneous clients
67
\li supports multi-threaded clients
68
\li is thread safe with reentrant functions
69
\li maintains thread concurrency control
70
\li assures transaction response message ordering
71
\li supports standard ok and error response processing
72
\li supports error processing
73
\li provides diagnostics
74
\li provides message tracing
75
\li provides standard server-terminated functions.
76
77
* \{
78
*/
79
80
/*! \} end of bsclient */
81
82
83
// ---------------------------------------------------------------------------
84
// Library libbotsense Man Pages
85
// ---------------------------------------------------------------------------
86
87
/*!
88
* \ingroup bsclient
89
* \defgroup man_libbotsense libbotsense Man Pages
90
*
91
* The core libbotsense libary man pages.
92
*
93
* \{
94
*/
95
96
/*! \} end of man_libbotsense */
97
98
// ...........................................................................
99
// Library Macros and Utilities
100
// ...........................................................................
101
102
/*!
103
* \ingroup man_libbotsense
104
* \defgroup man_libbotsense_util Macros and Utilities
105
*
106
* The libbotsense library \#define's, helper macros and utility functions.
107
*
108
* \{
109
*/
110
111
/*!
112
* \ingroup man_libbotsense_util
113
* \defgroup man_BSCLIENT_LOG_WARN BSCLIENT_LOG_WARN
114
* \{
115
* \par Synopsis:
116
* <tt>
117
* BSCLIENT_LOG_WARN(pClient, ecode, wfmt, ...);
118
* </tt>
119
*
120
* <b>Description:</b>\n
121
* \copydoc BSCLIENT_LOG_WARN
122
* \}
123
*/
124
125
/*!
126
* \ingroup man_libbotsense_util
127
* \defgroup man_BSCLIENT_LOG_ERROR BSCLIENT_LOG_ERROR
128
* \{
129
* \par Synopsis:
130
* <tt>
131
* BSCLIENT_LOG_ERROR(pClient, ecode, efmt, ...);
132
* </tt>
133
*
134
* <b>Description:</b>\n
135
* \copydoc BSCLIENT_LOG_ERROR
136
* \}
137
*/
138
139
/*!
140
* \ingroup man_libbotsense_util
141
* \defgroup man_BSCLIENT_LOG_NM_ERROR BSCLIENT_LOG_NM_ERROR
142
* \{
143
* \par Synopsis:
144
* <tt>
145
* BSCLIENT_LOG_NM_ERROR(pClient, nmecode, efmt, ...);
146
* </tt>
147
*
148
* <b>Description:</b>\n
149
* \copydoc BSCLIENT_LOG_NM_ERROR
150
* \}
151
*/
152
153
/*!
154
* \ingroup man_libbotsense_util
155
* \defgroup man_BSCLIENT_LOG_SYSERROR BSCLIENT_LOG_SYSERROR
156
* \{
157
* \par Synopsis:
158
* <tt>
159
* BSCLIENT_LOG_SYSERROR(pClient, ecode, efmt, ...);
160
* </tt>
161
*
162
* <b>Description:</b>\n
163
* \copydoc BSCLIENT_LOG_SYSERROR
164
* \}
165
*/
166
167
/*!
168
* \ingroup man_libbotsense_util
169
* \defgroup man_BSCLIENT_TRY_ECODE BSCLIENT_TRY_ECODE
170
* \{
171
* \par Synopsis:
172
* <tt>
173
* BSCLIENT_TRY_ECODE(pClient, ecode, efmt, ...);
174
* </tt>
175
*
176
* <b>Description:</b>\n
177
* \copydoc BSCLIENT_TRY_ECODE
178
* \}
179
*/
180
181
/*!
182
* \ingroup man_libbotsense_util
183
* \defgroup man_BSCLIENT_TRY_NM_ECODE BSCLIENT_TRY_NM_ECODE
184
* \{
185
* \par Synopsis:
186
* <tt>
187
* BSCLIENT_TRY_NM_ECODE(pClient, nmecode, efmt, ...);
188
* </tt>
189
*
190
* <b>Description:</b>\n
191
* \copydoc BSCLIENT_TRY_NM_ECODE
192
* \}
193
*/
194
195
/*!
196
* \ingroup man_libbotsense_util
197
* \defgroup man_BSCLIENT_TRY_EXPR BSCLIENT_TRY_EXPR
198
* \{
199
* \par Synopsis:
200
* <tt>
201
* BSCLIENT_TRY_EXPR(pClient, expr, ecode, efmt, ...);
202
* </tt>
203
*
204
* <b>Description:</b>\n
205
* \copydoc BSCLIENT_TRY_EXPR
206
* \}
207
*/
208
209
/*!
210
* \ingroup man_libbotsense_util
211
* \defgroup man_BSCLIENT_IS_VCONN_HANDLE BSCLIENT_IS_VCONN_HANDLE
212
* \{
213
* \par Synopsis:
214
* <tt>
215
* BSCLIENT_IS_VCONN_HANDLE(hnd);
216
* </tt>
217
*
218
* <b>Description:</b>\n
219
* \copydoc BSCLIENT_IS_VCONN_HANDLE
220
* \}
221
*/
222
223
/*!
224
* \ingroup man_libbotsense_util
225
* \defgroup man_BSCLIENT_HAS_VCONN BSCLIENT_HAS_VCONN
226
* \{
227
* \par Synopsis:
228
* <tt>
229
* BSCLIENT_HAS_VCONN(pClient, hnd);
230
* </tt>
231
*
232
* <b>Description:</b>\n
233
* \copydoc BSCLIENT_HAS_VCONN
234
* \}
235
*/
236
237
/*!
238
* \ingroup man_libbotsense_util
239
* \defgroup man_bsStrError bsStrError
240
* \{
241
* \par Synopsis:
242
* <tt>
243
* \#include "botsense/BotSense.h"\n
244
* \#include "botsense/libBotSense.h"\n\n
245
* const char * \ref bsStrError (int \ref bs_ecodes "nECode");
246
* </tt>
247
*
248
* <b>Description:</b>\n
249
* \copydoc bsStrError
250
* \}
251
*/
252
253
/*!
254
* \ingroup man_libbotsense_util
255
* \defgroup man_bsPackMsgHdr bsPackMsgHdr
256
* \{
257
* \par Synopsis:
258
* <tt>
259
* \#include "botsense/BotSense.h"\n
260
* \#include "botsense/libBotSense.h"\n\n
261
* int \ref bsPackMsgHdr(\ref BsProxyMsgHdr_T *pMsgHdr, byte_t buf[],
262
* size_t bufSize);
263
* </tt>
264
*
265
* <b>Description:</b>\n
266
* \copydoc bsPackMsgHdr
267
* \}
268
*/
269
/*!
270
* \ingroup man_libbotsense_util
271
* \defgroup man_bsUnpackMsgHdr bsUnpackMsgHdr
272
* \{
273
* \par Synopsis:
274
* <tt>
275
* \#include "botsense/BotSense.h"\n
276
* \#include "botsense/libBotSense.h"\n\n
277
* int \ref bsUnpackMsgHdr(byte_t buf[], size_t bufSize,
278
* \ref BsProxyMsgHdr_T *pMsgHdr);
279
* </tt>
280
*
281
* <b>Description:</b>\n
282
* \copydoc bsUnpackMsgHdr
283
* \}
284
*/
285
/*!
286
* \ingroup man_libbotsense_util
287
* \defgroup man_bsLogBuf bsLogBuf
288
* \{
289
* \par Synopsis:
290
* <tt>
291
* \#include "botsense/BotSense.h"\n
292
* \#include "botsense/libBotSense.h"\n\n
293
* void \ref bsLogBuf(const char *sBufName, byte_t buf[],
294
* size_t uCount);
295
* </tt>
296
*
297
* <b>Description:</b>\n
298
* \copydoc bsLogBuf
299
* \}
300
*/
301
/*!
302
* \ingroup man_libbotsense_util
303
* \defgroup man_bsLogAsciiBuf bsLogAsciiBuf
304
* \{
305
* \par Synopsis:
306
* <tt>
307
* \#include "botsense/BotSense.h"\n
308
* \#include "botsense/libBotSense.h"\n\n
309
* void \ref bsLogAsciiBuf(const char *sBufName, byte_t buf[],
310
* size_t uCount);
311
* </tt>
312
*
313
* <b>Description:</b>\n
314
* \copydoc bsLogAsciiBuf
315
* \}
316
*/
317
318
/*! \} end of man_libbotsense_util */
319
320
// ...........................................................................
321
// Library Client-Specific Functions
322
// ...........................................................................
323
324
/*!
325
* \ingroup man_libbotsense
326
* \defgroup man_libbotsense_cli Client-Specific Functions
327
*
328
* The libbotsense library base, client-specific functions.
329
*
330
* \{
331
*/
332
333
/*!
334
* \ingroup man_libbotsense_cli
335
* \defgroup man_bsClientNew bsClientNew
336
* \{
337
* \par Synopsis:
338
* <tt>
339
* \#include "botsense/BotSense.h"\n
340
* \#include "botsense/libBotSense.h"\n\n
341
* \ref BsClient_P * \ref bsClientNew(
342
* const char *sClientName );
343
* </tt>
344
*
345
* <b>Description:</b>\n
346
* \copydoc bsClientNew
347
* \}
348
*/
349
350
/*!
351
* \ingroup man_libbotsense_cli
352
* \defgroup man_bsClientDelete bsClientDelete
353
* \{
354
* \par Synopsis:
355
* <tt>
356
* \#include "botsense/BotSense.h"\n
357
* \#include "botsense/libBotSense.h"\n\n
358
* void \ref bsClientDelete(\ref BsClient_P pClient);
359
* </tt>
360
*
361
* <b>Description:</b>\n
362
* \copydoc bsClientDelete
363
* \}
364
*/
365
366
/*!
367
* \ingroup man_libbotsense_cli
368
* \defgroup man_bsClientTrans bsClientTrans
369
* \{
370
* \par Synopsis:
371
* <tt>
372
* \#include "botsense/BotSense.h"\n
373
* \#include "botsense/libBotSense.h"\n\n
374
* int \ref bsClientTrans(\ref BsClient_P pClient,
375
* int hndVConn,
376
* uint_t uReqMsgId,
377
* byte_t bufReq[],
378
* size_t uReqBodyLen,
379
* uint_t uRspMsgId,
380
* byte_t bufRsp[],
381
* size_t sizeRspBuf);
382
* </tt>
383
*
384
* <b>Description:</b>\n
385
* \copydoc bsClientTrans
386
* \}
387
*/
388
389
/*!
390
* \ingroup man_libbotsense_cli
391
* \defgroup man_bsClientAttrGetName bsClientAttrGetName
392
* \{
393
* \par Synopsis:
394
* <tt>
395
* \#include "botsense/BotSense.h"\n
396
* \#include "botsense/libBotSense.h"\n\n
397
* const char * \ref bsClientAttrGetName(\ref BsClient_P pClient);
398
* </tt>
399
*
400
* <b>Description:</b>\n
401
* \copydoc bsClientAttrGetName
402
* \}
403
*/
404
405
/*!
406
* \ingroup man_libbotsense_cli
407
* \defgroup man_bsClientAttrGetTraceState bsClientAttrGetTraceState
408
* \{
409
* \par Synopsis:
410
* <tt>
411
* \#include "botsense/BotSense.h"\n
412
* \#include "botsense/libBotSense.h"\n\n
413
* bool_t \ref bsClientAttrGetTraceState(\ref BsClient_P pClient,
414
* \ref BsVConnHnd_T hndVConn);
415
* </tt>
416
*
417
* <b>Description:</b>\n
418
* \copydoc bsClientAttrGetTraceState
419
* \}
420
*/
421
422
/*!
423
* \ingroup man_libbotsense_cli
424
* \defgroup man_bsClientAttrGetVConnCount bsClientAttrGetVConnCount
425
* \{
426
* \par Synopsis:
427
* <tt>
428
* \#include "botsense/BotSense.h"\n
429
* \#include "botsense/libBotSense.h"\n\n
430
* int \ref bsClientAttrGetVConnCount(\ref BsClient_P pClient);
431
* </tt>
432
*
433
* <b>Description:</b>\n
434
* \copydoc bsClientAttrGetVConnCount
435
* \}
436
*/
437
438
/*!
439
* \ingroup man_libbotsense_cli
440
* \defgroup man_bsClientAttrHasVConn bsClientAttrHasVConn
441
* \{
442
* \par Synopsis:
443
* <tt>
444
* \#include "botsense/BotSense.h"\n
445
* \#include "botsense/libBotSense.h"\n\n
446
* bool_t \ref bsClientAttrHasVConn(\ref BsClient_P pClient,
447
* \ref BsVConnHnd_T hndVConn);
448
* </tt>
449
*
450
* <b>Description:</b>\n
451
* \copydoc bsClientAttrHasVConn
452
* \}
453
*/
454
455
/*!
456
* \ingroup man_libbotsense_cli
457
* \defgroup man_bsClientAttrGetDevName bsClientAttrGetDevName
458
* \{
459
* \par Synopsis:
460
* <tt>
461
* \#include "botsense/BotSense.h"\n
462
* \#include "botsense/libBotSense.h"\n\n
463
* const char * \ref bsClientAttrGetDevName(\ref BsClient_P pClient,
464
* \ref BsVConnHnd_T hndVConn);
465
* </tt>
466
*
467
* <b>Description:</b>\n
468
* \copydoc bsClientAttrGetDevName
469
* \}
470
*/
471
472
/*!
473
* \ingroup man_libbotsense_cli
474
* \defgroup man_bsClientAttrGetModName bsClientAttrGetModName
475
* \{
476
* \par Synopsis:
477
* <tt>
478
* \#include "botsense/BotSense.h"\n
479
* \#include "botsense/libBotSense.h"\n\n
480
* const char * \ref bsClientAttrGetModName(\ref BsClient_P pClient,
481
* \ref BsVConnHnd_T hndVConn);
482
* </tt>
483
*
484
* <b>Description:</b>\n
485
* \copydoc bsClientAttrGetModName
486
* \}
487
*/
488
489
/*!
490
* \ingroup man_libbotsense_cli
491
* \defgroup man_bsClientAttrSetLogging bsClientAttrSetLogging
492
* \{
493
* \par Synopsis:
494
* <tt>
495
* \#include "botsense/BotSense.h"\n
496
* \#include "botsense/libBotSense.h"\n\n
497
* void \ref bsClientAttrSetLogging(\ref BsClient_P pClient,
498
* int nLevel);
499
* </tt>
500
*
501
* <b>Description:</b>\n
502
* \copydoc bsClientAttrSetLogging
503
* \}
504
*/
505
506
/*!
507
* \ingroup man_libbotsense_cli
508
* \defgroup man_bsClientAttrGetConnState bsClientAttrGetConnState
509
* \{
510
* \par Synopsis:
511
* <tt>
512
* \#include "botsense/BotSense.h"\n
513
* \#include "botsense/libBotSense.h"\n\n
514
* void \ref bsClientAttrGetConnState(\ref BsClient_P pClient,
515
* \ref BsClientConnState_T *pConnState);
516
* </tt>
517
*
518
* <b>Description:</b>\n
519
* \copydoc bsClientAttrGetConnState
520
* \}
521
*/
522
523
/*!
524
* \ingroup man_libbotsense_cli
525
* \defgroup man_bsClientFillMsgHdr bsClientFillMsgHdr
526
* \{
527
* \par Synopsis:
528
* <tt>
529
* \#include "botsense/BotSense.h"\n
530
* \#include "botsense/libBotSense.h"\n\n
531
* void \ref bsClientFillMsgHdr(\ref BsClient_P pClient,
532
* \ref BsVConnHnd_T hndVConn,
533
* uint_t uMsgId,
534
* size_t uBodyLen,
535
* \ref BsProxyMsgHdr_T *pMsgHdr);
536
* </tt>
537
*
538
* <b>Description:</b>\n
539
* \copydoc bsClientFillMsgHdr
540
* \}
541
*/
542
543
/*!
544
* \ingroup man_libbotsense_cli
545
* \defgroup man_bsClientGetMsgName bsClientGetMsgName
546
* \{
547
* \par Synopsis:
548
* <tt>
549
* \#include "botsense/BotSense.h"\n
550
* \#include "botsense/libBotSense.h"\n\n
551
* const char * \ref bsClientGetMsgName(\ref BsClient_P pClient,
552
* \ref BsVConnHnd_T hndVConn,
553
* uint_t uMsgId);
554
* </tt>
555
*
556
* <b>Description:</b>\n
557
* \copydoc bsClientGetMsgName
558
* \}
559
*/
560
561
/*!
562
* \ingroup man_libbotsense_cli
563
* \defgroup man_bsClientLogMsgHdr bsClientLogMsgHdr
564
* \{
565
* \par Synopsis:
566
* <tt>
567
* \#include "botsense/BotSense.h"\n
568
* \#include "botsense/libBotSense.h"\n\n
569
* void \ref bsClientLogMsgHdr(\ref BsClient_P pClient,
570
* const char *sPreface,
571
* \ref BsProxyMsgHdr_T *pMsgHdr);
572
* </tt>
573
*
574
* <b>Description:</b>\n
575
* \copydoc bsClientLogMsgHdr
576
* \}
577
*/
578
579
/*! \} end of man_libbotsense_cli */
580
581
// ...........................................................................
582
// Library Client-Specific Functions
583
// ...........................................................................
584
585
/*!
586
* \ingroup man_libbotsense
587
* \defgroup man_libbotsense_svr Client-Server Connection and Requests Functions
588
*
589
* The libbotsense library client-server connnection and control functions
590
* and server-terminated request functions.
591
*
592
* \{
593
*/
594
595
/*!
596
* \ingroup man_libbotsense_svr
597
* \defgroup man_bsServerConnect bsServerConnect
598
* \{
599
* \par Synopsis:
600
* <tt>
601
* \#include "botsense/BotSense.h"\n
602
* \#include "botsense/libBotSense.h"\n\n
603
* int \ref bsServerConnect(\ref BsClient_P pClient,
604
* const char *sServerHostName,
605
* int ipPortServer);
606
* </tt>
607
*
608
* <b>Description:</b>\n
609
* \copydoc bsServerConnect
610
* \}
611
*/
612
613
/*!
614
* \ingroup man_libbotsense_svr
615
* \defgroup man_bsServerDisconnect bsServerDisconnect
616
* \{
617
* \par Synopsis:
618
* <tt>
619
* \#include "botsense/BotSense.h"\n
620
* \#include "botsense/libBotSense.h"\n\n
621
* int \ref bsServerDisconnect(\ref BsClient_P pClient);
622
* </tt>
623
*
624
* <b>Description:</b>\n
625
* \copydoc bsServerDisconnect
626
* \}
627
*/
628
629
/*!
630
* \ingroup man_libbotsense_svr
631
* \defgroup man_bsServerReqGetVersion bsServerReqGetVersion
632
* \{
633
* \par Synopsis:
634
* <tt>
635
* \#include "botsense/BotSense.h"\n
636
* \#include "botsense/libBotSense.h"\n\n
637
* int \ref bsServerReqGetVersion(\ref BsClient_P pClient,
638
* char buf[],
639
* size_t sizeBuf);
640
* </tt>
641
*
642
* <b>Description:</b>\n
643
* \copydoc bsServerReqGetVersion
644
* \}
645
*/
646
647
/*!
648
* \ingroup man_libbotsense_svr
649
* \defgroup man_bsServerReqLoopback bsServerReqLoopback
650
* \{
651
* \par Synopsis:
652
* <tt>
653
* \#include "botsense/BotSense.h"\n
654
* \#include "botsense/libBotSense.h"\n\n
655
* int \ref bsServerReqLoopback(\ref BsClient_P pClient,
656
* char sLoopbackMsg[]);
657
* </tt>
658
*
659
* <b>Description:</b>\n
660
* \copydoc bsServerReqLoopback
661
* \}
662
*/
663
664
/*!
665
* \ingroup man_libbotsense_svr
666
* \defgroup man_bsServerReqSetLogging bsServerReqSetLogging
667
* \{
668
* \par Synopsis:
669
* <tt>
670
* \#include "botsense/BotSense.h"\n
671
* \#include "botsense/libBotSense.h"\n\n
672
* int \ref bsServerReqSetLogging(\ref BsClient_P pClient,
673
* int nLogLevel);
674
* </tt>
675
*
676
* <b>Description:</b>\n
677
* \copydoc bsServerReqSetLogging
678
* \}
679
*/
680
681
/*!
682
* \ingroup man_libbotsense_svr
683
* \defgroup man_bsServerReqMsgTrace bsServerReqMsgTrace
684
* \{
685
* \par Synopsis:
686
* <tt>
687
* \#include "botsense/BotSense.h"\n
688
* \#include "botsense/libBotSense.h"\n\n
689
* int \ref bsServerReqMsgTrace(\ref BsClient_P pClient,
690
* \ref BsVConnHnd_T hndVConn,
691
* bool_t bTrace);
692
* </tt>
693
*
694
* <b>Description:</b>\n
695
* \copydoc bsServerReqMsgTrace
696
* \}
697
*/
698
699
/*!
700
* \ingroup man_libbotsense_svr
701
* \defgroup man_bsServerReqOpenDev bsServerReqOpenDev
702
* \{
703
* \par Synopsis:
704
* <tt>
705
* \#include "botsense/BotSense.h"\n
706
* \#include "botsense/libBotSense.h"\n\n
707
* int \ref bsServerReqOpenDev(\ref BsClient_P pClient,
708
* const char *sDevName,
709
* const char *sModName,
710
* byte_t argbuf[],
711
* size_t arglen,
712
* const \ref BsClientAppInfo_T *pAppInfo,
713
* bool_t bTrace);
714
* </tt>
715
*
716
* <b>Description:</b>\n
717
* \copydoc bsServerReqOpenDev
718
* \}
719
*/
720
721
/*!
722
* \ingroup man_libbotsense_svr
723
* \defgroup man_bsServerReqCloseDev bsServerReqCloseDev
724
* \{
725
* \par Synopsis:
726
* <tt>
727
* \#include "botsense/BotSense.h"\n
728
* \#include "botsense/libBotSense.h"\n\n
729
* int \ref bsServerReqCloseDev(\ref BsClient_P pClient,
730
* \ref BsVConnHnd_T hndVConn);
731
* </tt>
732
*
733
* <b>Description:</b>\n
734
* \copydoc bsServerReqCloseDev
735
* \}
736
*/
737
738
/*!
739
* \ingroup man_libbotsense_svr
740
* \defgroup man_bsServerReqGetVConnList bsServerReqGetVConnList
741
* \{
742
* \par Synopsis:
743
* <tt>
744
* \#include "botsense/BotSense.h"\n
745
* \#include "botsense/libBotSense.h"\n\n
746
* int \ref bsServerReqGetVConnList(\ref BsClient_P pClient,
747
* \ref BsVecHandles_T *pVecHandles);
748
* </tt>
749
*
750
* <b>Description:</b>\n
751
* \copydoc bsServerReqGetVConnList
752
* \}
753
*/
754
755
/*!
756
* \ingroup man_libbotsense_svr
757
* \defgroup man_bsServerReqGetVConnInfo bsServerReqGetVConnInfo
758
* \{
759
* \par Synopsis:
760
* <tt>
761
* \#include "botsense/BotSense.h"\n
762
* \#include "botsense/libBotSense.h"\n\n
763
* int \ref bsServerReqGetVConnInfo(\ref BsClient_P pClient,
764
* \ref BsVConnHnd_T hndVConn,
765
* \ref BsVConnInfo_T *pVConnInfo);
766
* </tt>
767
*
768
* <b>Description:</b>\n
769
* \copydoc bsServerReqGetVConnInfo
770
* \}
771
*/
772
773
/*! \} end of man_libbotsense_svr */
docs
doxy
eModClient.doxy
Generated on Fri Aug 10 2018 13:54:32 for botsense by
1.8.11
©2018 RoadNarrows LLC
www.roadnarrows.com