"L. Spiro Engine"

F:/My Projects/LSEngine/Modules/LSNetLib/Src/PosixSocks/LSNPosixSock.h

00001 
00016 #ifndef __LSNPOSIXSOCK_H__
00017 #define __LSNPOSIXSOCK_H__
00018 
00019 #include "../LSNNetLib.h"
00020 
00021 #ifndef LSE_WINDOWS
00022 #include <errno.h>
00023 
00024 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
00025 // MACROS
00026 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
00027 #define LSN_INVALID_SOCKET                                                      -1      
00031 namespace lsn {
00032 
00033         // == Enumerations.
00037         enum LSN_ERRORS {
00038                 LSN_FAILURE                                                                     = 0,
00039                 LSN_SUCCESS                                                                     = 1,
00040                 LSN_NO_ADDRESS,
00041                 LSN_CONN_ABORTED                                                        = ECONNABORTED,
00042                 LSN_CONN_RESET                                                          = ECONNRESET,
00043                 LSN_NET_UNREACHABLE                                                     = ENETUNREACH,
00044                 LSN_HOST_UNREACHABLE                                            = EHOSTUNREACH,
00045                 LSN_TIMED_OUT                                                           = ETIMEDOUT,
00046                 LSN_IN_USE                                                                      = EADDRINUSE,           
00047                 LSN_FORCE_DWORD                                                         = 0x7FFFFFFF
00048         };
00049 
00057         class CPosixSock {
00058         public :
00059                 // == Functions.
00065                 static LSBOOL LSE_CALL                                          InitNetwork();
00066 
00070                 static LSVOID LSE_CALL                                          ShutDownNetwork();
00071                 
00077                 static LSN_SOCKET LSE_CALL                                      CreateUpdSocket();
00078 
00084                 static LSVOID LSE_CALL                                          CloseSocket( LSN_SOCKET _sSock );
00085 
00092                 static LSBOOL LSE_CALL                                          CheckSocket( LSN_SOCKET _sSock );
00093 
00100                 static LSN_ADDRESS LSE_CALL                                     LookUpAddress( const LSCHAR * _pcName );
00101 
00108                 static LSBOOL LSE_CALL                                          GetHostName( CString &_sReturn );
00109 
00119                 static LSUINT32 LSE_CALL                                        Bind( LSN_SOCKET _sSock, LSUINT16 _ui16Port,
00120                         LSN_ADDRESS _aAddress = LSN_NO_ADDRESS );
00121 
00132                 static LSUINT32 LSE_CALL                                        SendTo( LSN_ADDRESS _aAddress,
00133                         LSUINT16 _ui16Port,
00134                         const LSVOID * _pvData,
00135                         LSUINT32 _ui32Len,
00136                         LSN_SOCKET _sSocket );
00137 
00148                 static LSUINT32 LSE_CALL                                        ReceiveFrom( LSN_SOCKET _sSocket,
00149                         LSVOID * _pvData,
00150                         LSUINT32 _ui32Len,
00151                         LSN_ADDRESS &_aAddress,
00152                         LSUINT16 &_ui16Port );
00153         };
00154 
00155 }       // namespace lsn
00156 
00157 #endif  // #ifndef LSE_WINDOWS
00158 
00159 #endif  // #ifndef __LSNPOSIXSOCK_H__
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator