Go to the documentation of this file.00001
00002
00003 #include "orbsvcs/AV/default_resource.h"
00004
00005 #include "tao/ORB_Core.h"
00006 #include "tao/debug.h"
00007 #include "ace/OS_NS_strings.h"
00008
00009 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00010
00011 TAO_AV_Default_Resource_Factory::TAO_AV_Default_Resource_Factory (void)
00012 {
00013 if (TAO_debug_level > 0)
00014 ACE_DEBUG ((LM_DEBUG,
00015 "TAO_AV_Default_Resource_Factory::TAO_AV_Default_Resource_Factory %d\n"));
00016 }
00017
00018 TAO_AV_Default_Resource_Factory::~TAO_AV_Default_Resource_Factory (void)
00019 {
00020 TAO_AV_TransportFactorySetItor t_end = TAO_AV_CORE::instance ()->transport_factories ()->end ();
00021 for (TAO_AV_TransportFactorySetItor tfiterator =
00022 TAO_AV_CORE::instance ()->transport_factories ()->begin ();
00023 tfiterator != t_end;
00024 ++tfiterator)
00025 delete *tfiterator;
00026
00027 TAO_AV_CORE::instance ()->transport_factories ()->reset ();
00028
00029 TAO_AV_Flow_ProtocolFactorySetItor fp_end = TAO_AV_CORE::instance ()->flow_protocol_factories ()->end ();
00030 for (TAO_AV_Flow_ProtocolFactorySetItor pfiterator =
00031 TAO_AV_CORE::instance ()->flow_protocol_factories ()->begin ();
00032 pfiterator != fp_end;
00033 ++pfiterator)
00034 delete *pfiterator;
00035
00036 TAO_AV_CORE::instance ()->flow_protocol_factories ()->reset ();
00037
00038 if (TAO_debug_level > 0)
00039 ACE_DEBUG ((LM_DEBUG,
00040 "TAO_AV_Default_Resource_Factory::~TAO_AV_Default_Resource_Factory\n"));
00041 }
00042
00043 int
00044 TAO_AV_Default_Resource_Factory::init (int argc, ACE_TCHAR *argv[])
00045 {
00046 if (TAO_debug_level > 0)
00047 ACE_DEBUG ((LM_DEBUG,
00048 "TAO_AV_Default_Resource_Factory::init\n"));
00049
00050 int curarg = 0;
00051
00052 for (curarg = 0; curarg < argc; ++curarg)
00053 {
00054 if (ACE_OS::strcasecmp (argv[curarg],
00055 ACE_TEXT("-AVTransportFactory")) == 0)
00056 {
00057 TAO_AV_TransportFactorySet *tset = TAO_AV_CORE::instance ()->transport_factories ();
00058 curarg++;
00059 if (curarg < argc)
00060 {
00061 TAO_AV_Transport_Item *item = 0;
00062 ACE_NEW_RETURN (item,
00063 TAO_AV_Transport_Item (ACE_TEXT_ALWAYS_CHAR(argv[curarg])),
00064 -1);
00065 if (tset->insert (item) == -1)
00066 ACE_ERROR ((LM_ERROR,
00067 ACE_TEXT ("(%P|%t) Unable to add transport factories for %s: %p\n"),
00068
00069 argv[curarg]));
00070 }
00071 }
00072 else if (ACE_OS::strcasecmp (argv[curarg],
00073 ACE_TEXT("-AVFlowProtocolFactory")) == 0)
00074 {
00075 TAO_AV_Flow_ProtocolFactorySet *fpset = TAO_AV_CORE::instance ()->flow_protocol_factories ();
00076 curarg++;
00077 if (curarg < argc)
00078 {
00079 TAO_AV_Flow_Protocol_Item *item = 0;
00080 ACE_NEW_RETURN (item,
00081 TAO_AV_Flow_Protocol_Item (ACE_TEXT_ALWAYS_CHAR(argv[curarg])),
00082 -1);
00083 if (fpset->insert (item) == -1)
00084 ACE_ERROR ((LM_ERROR,
00085 ACE_TEXT ("(%P|%t) Unable to add flow protocol factories for %s: %p\n"),
00086
00087 argv[curarg]));
00088 }
00089 }
00090 }
00091 return 0;
00092 }
00093
00094 TAO_END_VERSIONED_NAMESPACE_DECL
00095
00096
00097
00098
00099 ACE_STATIC_SVC_DEFINE (TAO_AV_Default_Resource_Factory,
00100 ACE_TEXT ("AV_Default_Resource_Factory"),
00101 ACE_SVC_OBJ_T,
00102 &ACE_SVC_NAME (TAO_AV_Default_Resource_Factory),
00103 ACE_Service_Type::DELETE_THIS
00104 | ACE_Service_Type::DELETE_OBJ,
00105 0)
00106 ACE_FACTORY_DEFINE (TAO_AV, TAO_AV_Default_Resource_Factory)
00107
00108