net/init.cpp
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #include "init.h"
00019
00020 #include "global.h"
00021 #include "node.h"
00022 #include "socketConnection.h"
00023
00024 #include <eq/base/omp.h>
00025
00026 #ifdef WIN32_API
00027 # include <direct.h>
00028 # define getcwd _getcwd
00029 # ifndef MAXPATHLEN
00030 # define MAXPATHLEN 1024
00031 # endif
00032 #endif
00033
00034 using namespace std;
00035
00036 namespace eq
00037 {
00038 namespace net
00039 {
00040
00041 EQ_EXPORT bool init( const int argc, char** argv )
00042 {
00043 if( !base::init( ))
00044 return false;
00045
00046 EQINFO << "Log level " << base::Log::getLogLevelString() << " topics "
00047 << base::Log::topics << endl;
00048
00049 #ifdef WIN32
00050 WORD wsVersion = MAKEWORD( 2, 0 );
00051 WSADATA wsData;
00052 if( WSAStartup( wsVersion, &wsData ) != 0 )
00053 {
00054 EQERROR << "Initialization of Windows Sockets failed"
00055 << base::getErrorString( GetLastError( )) << endl;
00056 return false;
00057 }
00058 #endif
00059
00060 const string programName = Global::getProgramName();
00061 if( programName.empty() && argc > 0 )
00062 Global::setProgramName( argv[0] );
00063
00064 const string workDir = Global::getWorkDir();
00065 if( workDir.empty( ))
00066 {
00067 char cwd[MAXPATHLEN];
00068 Global::setWorkDir( getcwd( cwd, MAXPATHLEN ));
00069 }
00070 return true;
00071 }
00072
00073 EQ_EXPORT bool exit()
00074 {
00075 #ifdef WIN32
00076 if( WSACleanup() != 0 )
00077 {
00078 EQERROR << "Cleanup of Windows Sockets failed"
00079 << base::getErrorString( GetLastError( )) << endl;
00080 return false;
00081 }
00082 #endif
00083 return base::exit();
00084 }
00085
00086 }
00087 }