net/init.cpp

00001 
00002 /* Copyright (c) 2005-2009, Stefan Eilemann <eile@equalizergraphics.com> 
00003  *
00004  * This library is free software; you can redistribute it and/or modify it under
00005  * the terms of the GNU Lesser General Public License version 2.1 as published
00006  * by the Free Software Foundation.
00007  *  
00008  * This library is distributed in the hope that it will be useful, but WITHOUT
00009  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
00010  * FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more
00011  * details.
00012  * 
00013  * You should have received a copy of the GNU Lesser General Public License
00014  * along with this library; if not, write to the Free Software Foundation, Inc.,
00015  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
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 }
Generated on Mon Aug 10 18:58:39 2009 for Equalizer 0.9 by  doxygen 1.5.8