eqPly/main.cpp
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #include "eqPly.h"
00019
00020 #include "channel.h"
00021 #include "config.h"
00022 #include "node.h"
00023 #include "pipe.h"
00024 #include "view.h"
00025 #include "window.h"
00026
00027 #include <stdlib.h>
00028
00029 using namespace eq::base;
00030 using namespace std;
00031
00032 class NodeFactory : public eq::NodeFactory
00033 {
00034 public:
00035 virtual eq::Config* createConfig( eq::ServerPtr parent )
00036 { return new eqPly::Config( parent ); }
00037 virtual eq::Node* createNode( eq::Config* parent )
00038 { return new eqPly::Node( parent ); }
00039 virtual eq::Pipe* createPipe( eq::Node* parent )
00040 { return new eqPly::Pipe( parent ); }
00041 virtual eq::Window* createWindow( eq::Pipe* parent )
00042 { return new eqPly::Window( parent ); }
00043 virtual eq::Channel* createChannel( eq::Window* parent )
00044 { return new eqPly::Channel( parent ); }
00045 virtual eq::View* createView() { return new eqPly::View(); }
00046 };
00047
00048 int main( const int argc, char** argv )
00049 {
00050
00051 eqPly::LocalInitData initData;
00052 initData.parseArguments( argc, argv );
00053
00054
00055 std::ofstream* logFile = 0;
00056 const std::string& logFilename = initData.getLogFilename();
00057 if( !logFilename.empty( ))
00058 {
00059 logFile = new ofstream( logFilename.c_str( ));
00060 eq::base::Log::setOutput( *logFile );
00061 }
00062
00063
00064 NodeFactory nodeFactory;
00065 if( !eq::init( argc, argv, &nodeFactory ))
00066 {
00067 EQERROR << "Equalizer init failed" << endl;
00068 return EXIT_FAILURE;
00069 }
00070
00071
00072 RefPtr< eqPly::EqPly > client = new eqPly::EqPly( initData );
00073 if( !client->initLocal( argc, argv ))
00074 {
00075 EQERROR << "Can't init client" << endl;
00076 eq::exit();
00077 return EXIT_FAILURE;
00078 }
00079
00080
00081 const int ret = client->run();
00082
00083
00084 client->exitLocal();
00085
00086
00087 client = 0;
00088
00089 eq::exit();
00090
00091 if( logFile )
00092 logFile->close();
00093 delete logFile;
00094
00095 return ret;
00096 }