SIBCNetworkLayer.h

00001 #ifndef _SIBCNETWORKLAYER_H_
00002 #define _SIBCNETWORKLAYER_H_
00003 
00004 #include <SIBCUtil.h>
00005 #include <SIBCArray.h>
00006 #include "SINetworkMessages.h"
00007 
00008 typedef SI_Error (*NETMSGPROVIDER) ( SINetMsg* , SI_Void* );
00009 
00010 struct  SINetworkProviderInfo
00011 {
00012     NETMSGPROVIDER  m_pFnc;
00013     SI_Int          m_iMsg;
00014     SI_Void*        m_pUserData;
00015 };
00016 
00017 class SIBCNetworkLayer
00018 {
00019 public:
00020     SIBCNetworkLayer();
00021     virtual ~SIBCNetworkLayer();
00022 
00023     virtual SI_Error    Initialize  ( SI_Void * );
00024     virtual SI_Error    Shutdown    ( SI_Void * );
00025     
00026     virtual SI_Error    RecvCmd     ( SI_Void * );
00027     virtual SI_Error    PeekCmd     ( SI_Void * );
00028     virtual SI_Error    SendCmd     ( SI_Void * );
00029 
00030     virtual SI_Error    DispatchNetMessage  ( SINetMsg* in_pMsg );
00031 
00032     virtual SI_Error    RegisterProvider    ( SINetworkProviderInfo& );
00033 
00034     virtual SI_Error    NotifyCmdEnd        ();
00035 
00036 protected:
00037 
00038     CSIBCArray<SINetworkProviderInfo>       m_pProviderList;
00039 
00040     SI_Char             m_szHostName[128];
00041 
00042 };
00043 
00044 //
00045 // The following must be defined seperatly on each plateform
00046 //
00047 
00048 SIBCNetworkLayer*   InitializeNetworkLayer  ( SI_Void * );      
00049 SI_Error            ShutdownNetworkLayer    ( SIBCNetworkLayer* );
00050 
00051 #endif