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
00046
00047
00048 SIBCNetworkLayer* InitializeNetworkLayer ( SI_Void * );
00049 SI_Error ShutdownNetworkLayer ( SIBCNetworkLayer* );
00050
00051 #endif