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