int TAO_AV_Default_Resource_Factory::init (int argc, ACE_TCHAR *argv[]) { if (TAO_debug_level > 0) ORBSVCS_DEBUG ((LM_DEBUG, "TAO_AV_Default_Resource_Factory::init\n")); int curarg = 0; for (curarg = 0; curarg < argc; ++curarg) { if (ACE_OS::strcasecmp (argv[curarg], ACE_TEXT("-AVTransportFactory")) == 0) { TAO_AV_TransportFactorySet *tset = TAO_AV_CORE::instance ()->transport_factories (); curarg++; if (curarg < argc) { TAO_AV_Transport_Item *item = 0; ACE_NEW_RETURN (item, TAO_AV_Transport_Item (ACE_TEXT_ALWAYS_CHAR(argv[curarg])), -1); if (tset->insert (item) == -1) ORBSVCS_ERROR ((LM_ERROR, ACE_TEXT ("(%P|%t) Unable to add transport factories for %s: %p\n"), argv[curarg])); } } else if (ACE_OS::strcasecmp (argv[curarg], ACE_TEXT("-AVFlowProtocolFactory")) == 0) { TAO_AV_Flow_ProtocolFactorySet *fpset = TAO_AV_CORE::instance ()->flow_protocol_factories (); curarg++; if (curarg < argc) { TAO_AV_Flow_Protocol_Item *item = 0; ACE_NEW_RETURN (item, TAO_AV_Flow_Protocol_Item (ACE_TEXT_ALWAYS_CHAR(argv[curarg])), -1); if (fpset->insert (item) == -1) ORBSVCS_ERROR ((LM_ERROR, ACE_TEXT ("(%P|%t) Unable to add flow protocol factories for %s: %p\n"), argv[curarg])); } } } return 0; }
int TAO_AV_Core::load_default_flow_protocol_factories (void) { const char *udp_flow = "UDP_Flow_Factory"; const char *tcp_flow = "TCP_Flow_Factory"; const char *rtp_flow = "RTP_Flow_Factory"; const char *rtcp_flow = "RTCP_Flow_Factory"; const char *sfp_flow = "SFP_Flow_Factory"; TAO_AV_Flow_Protocol_Factory *udp_flow_factory = 0; TAO_AV_Flow_Protocol_Item *udp_item = 0; udp_flow_factory = ACE_Dynamic_Service<TAO_AV_Flow_Protocol_Factory>::instance (udp_flow); if (udp_flow_factory == 0) { if (TAO_debug_level) ORBSVCS_ERROR ((LM_WARNING, "(%P|%t) WARNING - No %s found in Service Repository." " Using default instance.\n", "UDP Flow Factory")); ACE_NEW_RETURN (udp_flow_factory, TAO_AV_UDP_Flow_Factory, -1); } else udp_flow_factory->ref_count = 1; ACE_NEW_RETURN (udp_item, TAO_AV_Flow_Protocol_Item ("UDP_Flow_Factory"), -1); udp_item->factory (udp_flow_factory); this->flow_protocol_factories_.insert (udp_item); #if defined (ACE_HAS_RAPI) || defined (ACE_HAS_WINSOCK2_GQOS) const char *udp_qos_flow = "UDP_QoS_Flow_Factory"; TAO_AV_Flow_Protocol_Factory *udp_qos_flow_factory = 0; TAO_AV_Flow_Protocol_Item *udp_qos_flow_item = 0; udp_qos_flow_factory = ACE_Dynamic_Service<TAO_AV_Flow_Protocol_Factory>::instance (udp_qos_flow); if (udp_qos_flow_factory == 0) { if (TAO_debug_level) ORBSVCS_ERROR ((LM_WARNING, "(%P|%t) WARNING - No %s found in Service Repository." " Using default instance.\n", "UDP QoS Flow Factory")); ACE_NEW_RETURN (udp_qos_flow_factory, TAO_AV_UDP_QoS_Flow_Factory, -1); } else udp_qos_flow_factory->ref_count = 1; ACE_NEW_RETURN (udp_qos_flow_item, TAO_AV_Flow_Protocol_Item ("UDP_QoS_Flow_Factory"), -1); udp_qos_flow_item->factory (udp_qos_flow_factory); this->flow_protocol_factories_.insert (udp_qos_flow_item); #endif /* defined (ACE_HAS_RAPI) || defined (ACE_HAS_WINSOCK2_GQOS) */ #if defined ACE_HAS_SCTP const char *sctp_seq_flow = "SCTP_SEQ_Flow_Factory"; TAO_AV_Flow_Protocol_Factory *sctp_seq_flow_factory = 0; TAO_AV_Flow_Protocol_Item *sctp_seq_flow_item = 0; sctp_seq_flow_factory = ACE_Dynamic_Service<TAO_AV_Flow_Protocol_Factory>::instance (sctp_seq_flow); if (sctp_seq_flow_factory == 0) { if (TAO_debug_level) ORBSVCS_ERROR ((LM_WARNING, "(%P|%t) WARNING - No %s found in Service Repository." " Using default instance.\n", "SCTP SEQ Flow Factory")); ACE_NEW_RETURN (sctp_seq_flow_factory, TAO_AV_SCTP_SEQ_Flow_Factory, -1); } else sctp_seq_flow_factory->ref_count = 1; ACE_NEW_RETURN (sctp_seq_flow_item, TAO_AV_Flow_Protocol_Item ("SCTP_SEQ_Flow_Factory"), -1); sctp_seq_flow_item->factory (sctp_seq_flow_factory); this->flow_protocol_factories_.insert (sctp_seq_flow_item); #endif /* ACE_HAS_SCTP */ TAO_AV_Flow_Protocol_Factory *tcp_flow_factory = 0; TAO_AV_Flow_Protocol_Item *tcp_item = 0; tcp_flow_factory = ACE_Dynamic_Service<TAO_AV_Flow_Protocol_Factory>::instance (tcp_flow); if (tcp_flow_factory == 0) { if (TAO_debug_level) ORBSVCS_ERROR ((LM_WARNING, "(%P|%t) WARNING - No %s found in Service Repository." " Using default instance.\n", "TCP Flow Factory")); ACE_NEW_RETURN (tcp_flow_factory, TAO_AV_TCP_Flow_Factory, -1); } else tcp_flow_factory->ref_count = 1; ACE_NEW_RETURN (tcp_item, TAO_AV_Flow_Protocol_Item ("TCP_Flow_Factory"), -1); tcp_item->factory (tcp_flow_factory); this->flow_protocol_factories_.insert (tcp_item); TAO_AV_Flow_Protocol_Factory *rtp_flow_factory = 0; TAO_AV_Flow_Protocol_Item *rtp_item = 0; rtp_flow_factory = ACE_Dynamic_Service<TAO_AV_Flow_Protocol_Factory>::instance (rtp_flow); if (rtp_flow_factory == 0) { if (TAO_debug_level) ORBSVCS_ERROR ((LM_WARNING, "(%P|%t) WARNING - No %s found in Service Repository." " Using default instance.\n", "RTP Flow Factory")); ACE_NEW_RETURN (rtp_flow_factory, TAO_AV_RTP_Flow_Factory, -1); } else rtp_flow_factory->ref_count = 1; ACE_NEW_RETURN (rtp_item, TAO_AV_Flow_Protocol_Item ("RTP_Flow_Factory"), -1); rtp_item->factory (rtp_flow_factory); this->flow_protocol_factories_.insert (rtp_item); TAO_AV_Flow_Protocol_Factory *rtcp_flow_factory = 0; TAO_AV_Flow_Protocol_Item *rtcp_item = 0; rtcp_flow_factory = ACE_Dynamic_Service<TAO_AV_Flow_Protocol_Factory>::instance (rtcp_flow); if (rtcp_flow_factory == 0) { if (TAO_debug_level) ORBSVCS_ERROR ((LM_WARNING, "(%P|%t) WARNING - No %s found in Service Repository." " Using default instance.\n", "RTCP Flow Factory")); ACE_NEW_RETURN (rtcp_flow_factory, TAO_AV_RTCP_Flow_Factory, -1); } else rtcp_flow_factory->ref_count = 1; ACE_NEW_RETURN (rtcp_item, TAO_AV_Flow_Protocol_Item ("RTCP_Flow_Factory"), -1); rtcp_item->factory (rtcp_flow_factory); this->flow_protocol_factories_.insert (rtcp_item); TAO_AV_Flow_Protocol_Factory *sfp_flow_factory = 0; TAO_AV_Flow_Protocol_Item *sfp_item = 0; sfp_flow_factory = ACE_Dynamic_Service<TAO_AV_Flow_Protocol_Factory>::instance (sfp_flow); if (sfp_flow_factory == 0) { if (TAO_debug_level) ORBSVCS_ERROR ((LM_WARNING, "(%P|%t) WARNING - No %s found in Service Repository." " Using default instance.\n", "SFP Flow Factory")); ACE_NEW_RETURN (sfp_flow_factory, TAO_AV_SFP_Factory, -1); } else sfp_flow_factory->ref_count = 1; ACE_NEW_RETURN (sfp_item, TAO_AV_Flow_Protocol_Item ("SFP_Flow_Factory"), -1); sfp_item->factory (sfp_flow_factory); this->flow_protocol_factories_.insert (sfp_item); return 0; }