00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef TAO_TRADING_LOADER_H
00019 #define TAO_TRADING_LOADER_H
00020
00021 #include "orbsvcs/Trader/Trader.h"
00022
00023 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00024 # pragma once
00025 #endif
00026
00027 #include "orbsvcs/IOR_Multicast.h"
00028 #include "orbsvcs/Trader/Service_Type_Repository.h"
00029
00030 #include "tao/Object_Loader.h"
00031 #include "tao/Utils/ORB_Manager.h"
00032 #include "ace/Auto_Ptr.h"
00033
00034 class TAO_Trading_Serv_Export TAO_Trading_Loader : public TAO_Object_Loader
00035 {
00036 public:
00037
00038 TAO_Trading_Loader (void);
00039
00040
00041 ~TAO_Trading_Loader (void);
00042
00043
00044 virtual int init (int argc, ACE_TCHAR *argv[]);
00045
00046
00047
00048 virtual int fini (void);
00049
00050
00051
00052 int run (void);
00053
00054
00055 CORBA::Object_ptr create_object (CORBA::ORB_ptr orb,
00056 int argc,
00057 ACE_TCHAR *argv[]);
00058
00059
00060
00061 protected:
00062
00063 int init_multicast_server (void);
00064
00065
00066
00067 int bootstrap_to_federation (void);
00068
00069
00070 int parse_args (int &argc, ACE_TCHAR *argv []);
00071
00072
00073 TAO_ORB_Manager orb_manager_;
00074
00075
00076 auto_ptr<TAO_Trader_Factory::TAO_TRADER> trader_;
00077
00078
00079 TAO_Service_Type_Repository type_repos_;
00080
00081
00082 CORBA::String_var ior_;
00083
00084
00085 CORBA::Boolean federate_;
00086
00087
00088 FILE *ior_output_file_;
00089
00090
00091 CORBA::String_var name_;
00092
00093
00094 TAO_IOR_Multicast ior_multicast_;
00095
00096
00097
00098 CORBA::Boolean bootstrapper_;
00099
00100
00101 CORBA::Boolean dumpior_;
00102
00103
00104 private:
00105
00106
00107 TAO_Trading_Loader (const TAO_Trading_Loader &);
00108 TAO_Trading_Loader &operator= (const TAO_Trading_Loader &);
00109
00110 };
00111
00112 ACE_FACTORY_DECLARE (TAO_Trading_Serv, TAO_Trading_Loader)
00113
00114 #endif