Main Page   Modules   Data Structures   File List   Data Fields   Globals  

cm.h

Go to the documentation of this file.
00001 
00002 
00003 #ifndef __CM__H__
00004 #define __CM__H__
00005 
00007 #if defined(FUNCPROTO) || defined(__STDC__) || defined(__cplusplus) || defined(c_plusplus)
00008 #ifndef ARGS
00009 #define ARGS(args) args
00010 #endif
00011 #else
00012 #ifndef ARGS
00013 #define ARGS(args) (/*args*/)
00014 #endif
00015 #endif
00016 
00017 #include "io.h"
00018 #include "atl.h"
00019 #ifdef  __cplusplus
00020 extern "C" {
00021 #endif
00022 
00023 #ifndef TRUE
00024 #define TRUE 1
00025 #endif
00026 #ifndef FALSE
00027 #define FALSE 0
00028 #endif
00029 
00037 typedef struct _CMformat_list {
00039     char *format_name;
00041     IOFieldList field_list;
00042 }CMFormatRec;
00043 
00053 typedef CMFormatRec *CMFormatList;
00054 
00055 struct _CManager;
00056 struct _CMConnection;
00057 struct _CMFormat;
00058 
00064 typedef struct _CManager *CManager;
00065 
00071 typedef struct _CMConnection *CMConnection;
00072 
00081 typedef struct _CMFormat *CMFormat;
00082 
00086 typedef struct _CMTaskHandle *CMTaskHandle;
00087 
00105 typedef void (*CMHandlerFunc) ARGS((CManager cm, 
00106                                     CMConnection conn,
00107                                     void *message, void *client_data,
00108                                     attr_list attrs));
00109 
00120 typedef void (*CMPollFunc) ARGS((CManager cm, void *client_data));
00121 
00133 typedef void (*CMCloseHandlerFunc) ARGS((CManager cm, CMConnection conn,
00134                                          void *client_data));
00135 
00136 
00142 extern CManager CManager_create();
00143 
00151 extern void CManager_close ARGS((CManager cm));
00152 
00167 extern int CMfork_comm_thread ARGS((CManager cm));
00168 
00180 extern int CMlisten ARGS((CManager cm));
00181 
00202 extern int CMlisten_specific ARGS((CManager cm, attr_list listen_info));
00203 
00213 extern attr_list
00214 CMget_contact_list ARGS((CManager cm));
00215 
00228 extern int
00229 CMcontact_self_check ARGS((CManager cm, attr_list attrs));
00230 
00245 extern CMConnection
00246 CMget_conn ARGS((CManager cm, attr_list contact_list));
00247 
00263 extern CMConnection
00264 CMinitiate_conn ARGS((CManager cm, attr_list contact_list));
00265 
00278 extern void
00279 CMConnection_close ARGS((CMConnection conn));
00280 
00289 extern void
00290 CMConnection_add_reference ARGS((CMConnection conn));
00291 
00302 extern void
00303 CMconn_register_close_handler ARGS((CMConnection conn, 
00304                                     CMCloseHandlerFunc func, 
00305                                     void *client_data));
00306 
00324 extern CMFormat
00325 CMregister_format ARGS((CManager cm, char *format_name,
00326                        IOFieldList field_list, CMFormatList subformat_list));
00349 extern CMFormat CMlookup_format ARGS((CManager cm, IOFieldList field_list));
00350 
00394 extern
00395 IOContext CMget_user_type_context ARGS((CManager cm));
00396 
00402 extern
00403 void CMfree_user_type_context ARGS((CManager cm, IOContext context));
00404 
00420 extern IOFormat
00421 CMregister_user_format ARGS((CManager cm, IOContext context, char *format_name,
00422                               IOFieldList field_list, CMFormatList subformat_list));
00423 
00437 extern IOFormat CMlookup_user_format ARGS((CManager cm, IOFieldList field_list));
00438 
00453 extern IOFormat CMget_IOformat_by_name ARGS((CManager cm, IOContext context,
00454                                              char *name));
00469 extern IOFormat CMget_format_IOcontext ARGS((CManager cm, IOContext context,
00470                                              void *buffer));
00490 extern IOFormat *CMget_subformats_IOcontext ARGS((CManager cm, 
00491                                                   IOContext context,
00492                                                   void *buffer));
00506 extern void
00507 CMset_conversion_IOcontext ARGS((CManager cm, IOContext context,
00508                                  IOFormat format, IOFieldList field_list,
00509                                  int native_struct_size));
00524 extern int
00525 CMwrite ARGS((CMConnection conn, CMFormat format, void *data));
00526 
00546 extern int
00547 CMwrite_attr ARGS((CMConnection conn, CMFormat format, void *data, 
00548                    attr_list attrs));
00549 
00559 extern void
00560 CMregister_handler ARGS((CMFormat format, CMHandlerFunc handler, 
00561                         void *client_data));
00562 
00580 extern void *CMtake_buffer ARGS((CManager cm, void *data));
00581 
00591 extern void CMreturn_buffer ARGS((CManager cm, void *data));
00592 
00601 typedef void (*CMNonCMHandler) ARGS((CMConnection conn,
00602                                      int header));
00603 
00622 extern void
00623 CMregister_non_CM_message_handler ARGS((int header, CMNonCMHandler handler));
00624 
00635 extern void
00636 CMadd_poll ARGS((CManager cm, CMPollFunc func, void *client_data));
00637 
00657 extern CMTaskHandle
00658 CMadd_periodic_task ARGS((CManager cm, int period_sec, int period_usec, 
00659                           CMPollFunc func, void *client_data));
00660 
00678 extern CMTaskHandle
00679 CMadd_delayed_task ARGS((CManager cm, int secs, int usecs, CMPollFunc func,
00680                          void *client_data));
00681 
00687 extern void
00688 CMremove_task ARGS((CMTaskHandle handle));
00689 
00701 extern void
00702 CMadd_shutdown_task ARGS((CManager cm, CMPollFunc func, void *client_data));
00703 
00715 extern CMTaskHandle
00716 CMadd_periodic ARGS((CManager cm, long period, CMPollFunc func,
00717                      void *client_data));
00718 
00725 extern void
00726 CMremove_periodic ARGS((CMTaskHandle handle));
00727 
00740 extern void
00741 CMsleep ARGS((CManager cm, int secs));
00742 
00755 extern void
00756 CMusleep ARGS((CManager cm, int usecs));
00757 
00770 extern 
00771 void CMpoll_network ARGS((CManager cm));
00772 
00782 extern 
00783 void CMrun_network ARGS((CManager cm));
00784 
00805 int CMCondition_get ARGS((CManager cm, CMConnection dep));
00806 
00830 int CMCondition_wait ARGS((CManager cm, int condition));
00831 
00843 void CMCondition_signal ARGS((CManager cm, int condition));
00844 
00867 void CMCondition_set_client_data ARGS((CManager cm, int condition,
00868                                        void *client_data));
00887 void *CMCondition_get_client_data ARGS((CManager cm, int condition));
00888 
00901 int CMCondition_has_signaled ARGS((CManager cm, int condition));
00914 int CMCondition_has_failed ARGS((CManager cm, int condition));
00915 
00931 extern void* CMrealloc ARGS((void *ptr, int size));
00938 extern void* CMmalloc ARGS((int size));
00944 extern void CMfree ARGS((void *ptr));
00945 
00969 extern long CMprobe_latency ARGS((CMConnection conn, int msg_size,
00970                                   attr_list attrs));
00971 
00987 extern long
00988 CMprobe_bandwidth ARGS((CMConnection conn, int size, attr_list attrs));
00998 #define CM_FD ATL_CHAR_CONS('C','S','F','D')
00999 
01001 #define CM_THIS_CONN_PORT ATL_CHAR_CONS('C','S','C','P')
01002 
01004 #define CM_PEER_CONN_PORT ATL_CHAR_CONS('C','S','P','P')
01005 
01007 #define CM_PEER_IP ATL_CHAR_CONS('C','P','I','P')
01008 
01010 #define CM_PEER_LISTEN_PORT ATL_CHAR_CONS('C','S','P','L')
01011 
01013 #define CM_PEER_HOSTNAME ATL_CHAR_CONS('C','P','H','O')
01014 
01016 #define CM_IP_HOSTNAME ATL_CHAR_CONS('C','I','P','H')
01017 
01019 #define CM_IP_ADDR ATL_CHAR_CONS('C','I','P','A')
01020 
01022 #define CM_IP_PORT ATL_CHAR_CONS('C','I','P','P')
01023 
01026 #define CM_UDP_PORT ATL_CHAR_CONS('C','U','P','P')
01027 
01029 #define CM_TRANSPORT ATL_CHAR_CONS('C','T','r','a')
01030 
01032 #define CM_ATM_ADDRESS ATL_CHAR_CONS('C','A','T','A')
01033 
01035 #define CM_ATM_SELECTOR ATL_CHAR_CONS('C','A','T','S')
01036 
01038 #define CM_ATM_BHLI ATL_CHAR_CONS('C','A','T','B')
01039 
01041 #define CM_ATM_QOS_CLASS ATL_CHAR_CONS('C','A','Q','C')
01042 
01044 #define CM_ATM_QOS_PCR ATL_CHAR_CONS('C','A','Q','P')
01045 
01047 #define CM_ATM_QOS_SCR ATL_CHAR_CONS('C','A','Q','S')
01048 
01050 #define CM_ATM_QOS_MBS ATL_CHAR_CONS('C','A','Q','M')
01051 
01053 #define CM_ATM_FD ATL_CHAR_CONS('C','A','F','D')
01054 
01056 #define CM_ATM_REMOTE_ADDRESS ATL_CHAR_CONS('C','A','R','A')
01057 
01059 #define CM_ATM_REMOTE_SELECTOR ATL_CHAR_CONS('C','A','R','S')
01060 
01062 #define CM_ATM_REMOTE_BHLI ATL_CHAR_CONS('C','A','R','B')
01063 
01065 #define CM_ATM_CONN_VPI ATL_CHAR_CONS('C','A','C','V')
01066 
01068 #define CM_ATM_CONN_VCI ATL_CHAR_CONS('C','A','C','v')
01069 
01071 #define CM_MTP_HOSTNAME ATL_CHAR_CONS('C','M','H','o')
01072 
01074 #define CM_MTP_ADDR ATL_CHAR_CONS('C','M','A','d')
01075 
01077 #define CM_MTP_PORT ATL_CHAR_CONS('C','M','P','o')
01078 
01080 #define CM_RECV_ERR ATL_CHAR_CONS('C','R','R','E')
01081 
01083 #define CM_SEND_ERR ATL_CHAR_CONS('C','R','S','E')
01084 
01086 #define CM_RECV_RATE ATL_CHAR_CONS('C','R','R','R')
01087 
01089 #define CM_SEND_RATE ATL_CHAR_CONS('C','R','S','R')
01090 
01092 #define CM_RTSEND_RATE ATL_CHAR_CONS('C','R','R','T')
01093 
01095 #define CM_QOS ATL_CHAR_CONS('C','Q','O','S')
01096 
01098 #define CM_WIN_INC ATL_CHAR_CONS('C','R','W','I')
01099 
01101 #define CM_MAX_SEG ATL_CHAR_CONS('C','R','M','S')
01102 
01104 #define CM_MARK ATL_CHAR_CONS('C','R','M','a')
01105 
01107 #define CM_START_ADAPT ATL_CHAR_CONS('C','R','S','A')
01108 
01110 #define CM_ADAPT_DEGREE ATL_CHAR_CONS('C','R','A','D')
01111 
01113 #define CM_ADAPT_COND ATL_CHAR_CONS('C','R','A','C')
01114 /* @}*/
01115 
01116 #ifdef  __cplusplus
01117 }
01118 #endif
01119 
01120 #endif

Generated on Sun Feb 23 23:04:01 2003 for Connection Manager by doxygen1.2.14 written by Dimitri van Heesch, © 1997-2002