botsense  3.2.0
RoadNarrows Client-Server Proxied Services Framework
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 */