// Fill_ACE_QoS.cpp // $Id$ #include "Fill_ACE_QoS.h" ACE_RCSID(QOS, Fill_ACE_QoS,"$Id$") const iovec Fill_ACE_QoS::iov_ = {0,0}; Fill_ACE_QoS::Fill_ACE_QoS (void) { ACE_NEW (this->default_traffic_, ACE_Flow_Spec (ACE_QOS_NOT_SPECIFIED, ACE_QOS_NOT_SPECIFIED, ACE_QOS_NOT_SPECIFIED, ACE_QOS_NOT_SPECIFIED, ACE_QOS_NOT_SPECIFIED, ACE_SERVICETYPE_NOTRAFFIC, ACE_QOS_NOT_SPECIFIED, ACE_QOS_NOT_SPECIFIED, 25, 1)); } // destructor. Fill_ACE_QoS::~Fill_ACE_QoS (void) {} int Fill_ACE_QoS::fill_simplex_receiver_qos (ACE_QoS &ace_qos, const ACE_CString &recv_flow_name) { ACE_Flow_Spec *recv_flow_spec = 0; if (this->map ().find (recv_flow_name, recv_flow_spec) != 0) ACE_ERROR_RETURN ((LM_DEBUG, "Unable to find a FlowSpec with name %s", recv_flow_name.c_str ()), -1); ace_qos.receiving_flowspec (*recv_flow_spec); ace_qos.sending_flowspec (*(this->default_traffic_)); ace_qos.provider_specific (Fill_ACE_QoS::iov_); return 0; } int Fill_ACE_QoS::fill_simplex_sender_qos (ACE_QoS &ace_qos, const ACE_CString &send_flow_name) { ACE_Flow_Spec *send_flow_spec = 0; if (this->map ().find (send_flow_name, send_flow_spec) != 0) ACE_ERROR_RETURN ((LM_DEBUG, "Unable to find a FlowSpec with name %s", send_flow_name.c_str ()), -1); ace_qos.receiving_flowspec (*(this->default_traffic_)); ace_qos.sending_flowspec (*send_flow_spec); ace_qos.provider_specific (Fill_ACE_QoS::iov_); return 0; } int Fill_ACE_QoS::fill_duplex_qos (ACE_QoS &ace_qos, const ACE_CString &recv_flow_name, const ACE_CString &send_flow_name) { ACE_Flow_Spec *send_flow_spec = 0; ACE_Flow_Spec *recv_flow_spec = 0; if (this->map ().find (recv_flow_name, recv_flow_spec) != 0) ACE_ERROR_RETURN ((LM_DEBUG, "Unable to find a FlowSpec with name %s", recv_flow_name.c_str ()), -1); if (this->map ().find (send_flow_name, send_flow_spec) != 0) ACE_ERROR_RETURN ((LM_DEBUG, "Unable to find a FlowSpec with name %s", send_flow_name.c_str ()), -1); ace_qos.receiving_flowspec (*recv_flow_spec); ace_qos.sending_flowspec (*send_flow_spec); ace_qos.provider_specific (Fill_ACE_QoS::iov_); return 0; } Fill_ACE_QoS::FLOW_SPEC_HASH_MAP& Fill_ACE_QoS::map (void) { return this->flow_spec_map_; } #if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) template class ACE_Hash_Map_Manager; template class ACE_Hash_Map_Manager_Ex, ACE_Equal_To, ACE_Null_Mutex>; template class ACE_Hash_Map_Iterator_Base_Ex, ACE_Equal_To, ACE_Null_Mutex>; template class ACE_Hash_Map_Entry; template class ACE_Hash_Map_Manager_Ex, ACE_Equal_To, ACE_Thread_Mutex>; template class ACE_Hash_Map_Iterator_Base_Ex, ACE_Equal_To, ACE_Thread_Mutex>; #elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) #pragma instantiate ACE_Hash_Map_Manager #pragma instantiate ACE_Hash_Map_Manager_Ex, ACE_Equal_To, ACE_Null_Mutex> #pragma instantiate ACE_Hash_Map_Iterator_Base_Ex, ACE_Equal_To, ACE_Null_Mutex> #pragma instantiate ACE_Hash_Map_Entry #pragma instantiate ACE_Hash_Map_Manager_Ex, ACE_Equal_To, ACE_Thread_Mutex> #pragma instantiate ACE_Hash_Map_Iterator_Base_Ex, ACE_Equal_To, ACE_Thread_Mutex> #endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */