TAO_CosTrader
2.1.9
|
This class implements CosTrading::Lookup IDL interface. More...
#include <Trader_Interfaces.h>
Public Member Functions | |
TAO_Lookup (TAO_Trader< TRADER_LOCK_TYPE, MAP_LOCK_TYPE > &trader) | |
~TAO_Lookup (void) | |
virtual void | query (const char *type, const char *constr, const char *pref, const CosTrading::PolicySeq &policies, const CosTrading::Lookup::SpecifiedProps &desired_props, CORBA::ULong how_many, CosTrading::OfferSeq_out offers, CosTrading::OfferIterator_out offer_itr, CosTrading::PolicyNameSeq_out limits_applied) |
Public Member Functions inherited from TAO_Trader_Components< POA_CosTrading::Lookup > | |
TAO_Trader_Components (const TAO_Trading_Components_i &comps) | |
virtual CosTrading::Lookup_ptr | lookup_if (void) |
virtual CosTrading::Register_ptr | register_if (void) |
virtual CosTrading::Link_ptr | link_if (void) |
virtual CosTrading::Proxy_ptr | proxy_if (void) |
virtual CosTrading::Admin_ptr | admin_if (void) |
Public Member Functions inherited from TAO_Support_Attributes< POA_CosTrading::Lookup > | |
TAO_Support_Attributes (const TAO_Support_Attributes_i &attrs) | |
virtual CORBA::Boolean | supports_modifiable_properties (void) |
virtual CORBA::Boolean | supports_dynamic_properties (void) |
virtual CORBA::Boolean | supports_proxy_offers (void) |
virtual CosTrading::TypeRepository_ptr | type_repos (void) |
Public Member Functions inherited from TAO_Import_Attributes< POA_CosTrading::Lookup > | |
TAO_Import_Attributes (const TAO_Import_Attributes_i &attrs) | |
virtual CORBA::ULong | def_search_card (void) |
virtual CORBA::ULong | max_search_card (void) |
virtual CORBA::ULong | def_match_card (void) |
virtual CORBA::ULong | max_match_card (void) |
virtual CORBA::ULong | def_return_card (void) |
virtual CORBA::ULong | max_return_card (void) |
virtual CORBA::ULong | max_list (void) |
virtual CORBA::ULong | def_hop_count (void) |
virtual CORBA::ULong | max_hop_count (void) |
virtual CosTrading::FollowOption | def_follow_policy (void) |
virtual CosTrading::FollowOption | max_follow_policy (void) |
Private Types | |
typedef ACE_Unbounded_Queue < CosTrading::Admin::OctetSeq * > | Request_Ids |
Private Member Functions | |
TAO_Offer_Iterator * | create_offer_iterator (const TAO_Property_Filter &) |
void | lookup_all_subtypes (const char *type, CosTradingRepos::ServiceTypeRepository::IncarnationNumber &inc_num, TAO_Offer_Database< MAP_LOCK_TYPE > &offer_database, CosTradingRepos::ServiceTypeRepository_ptr rep, TAO_Constraint_Interpreter &constr_inter, TAO_Preference_Interpreter &pref_inter, TAO_Offer_Filter &offer_filter) |
void | lookup_one_type (const char *type, TAO_Offer_Database< MAP_LOCK_TYPE > &offer_database, TAO_Constraint_Interpreter &constr_inter, TAO_Preference_Interpreter &pref_inter, TAO_Offer_Filter &offer_filter) |
int | fill_receptacles (const char *, CORBA::ULong how_many, const CosTrading::Lookup::SpecifiedProps &desired_props, TAO_Policies &policies, TAO_Preference_Interpreter &pref_inter, CosTrading::OfferSeq &offers, CosTrading::OfferIterator_ptr &offer_itr) |
void | forward_query (const char *next_hop, const char *type, const char *constr, const char *pref, const CosTrading::PolicySeq &policy_seq, const CosTrading::Lookup::SpecifiedProps &desired_props, CORBA::ULong how_many, CosTrading::OfferSeq_out offers, CosTrading::OfferIterator_out offer_itr, CosTrading::PolicyNameSeq_out limits_applied) |
CORBA::Boolean | retrieve_links (TAO_Policies &policies, CORBA::ULong offer_returned, CosTrading::LinkNameSeq_out links) |
void | federated_query (const CosTrading::LinkNameSeq &links, const TAO_Policies &policies, const CosTrading::Admin::OctetSeq &request_id, TAO_Preference_Interpreter &pref_inter, const char *type, const char *constr, const char *pref, const CosTrading::Lookup::SpecifiedProps &desired_props, CORBA::ULong how_many, CosTrading::OfferSeq &offers, CosTrading::OfferIterator_ptr &offer_itr, CosTrading::PolicyNameSeq &limits_applied) |
void | order_merged_sequence (TAO_Preference_Interpreter &pref_inter, CosTrading::OfferSeq &offers) |
Merge the results from a federated query into the collected results. More... | |
CORBA::Boolean | seen_request_id (TAO_Policies &policies, CosTrading::Admin::OctetSeq *&seq) |
void | operator= (const TAO_Lookup< TRADER_LOCK_TYPE, MAP_LOCK_TYPE > &) |
TAO_Lookup (const TAO_Lookup< TRADER_LOCK_TYPE, MAP_LOCK_TYPE > &) | |
Private Attributes | |
const unsigned int | IDS_SAVED |
TAO_Trader< TRADER_LOCK_TYPE, MAP_LOCK_TYPE > & | trader_ |
A reference to the trader for obtaining offer maps. More... | |
Request_Ids | request_ids_ |
A list of recent request_id_stems. More... | |
TRADER_LOCK_TYPE | lock_ |
Lock to secure the set of request ids. More... | |
This class implements CosTrading::Lookup IDL interface.
|
private |
TAO_Lookup< TRADER_LOCK_TYPE, MAP_LOCK_TYPE >::TAO_Lookup | ( | TAO_Trader< TRADER_LOCK_TYPE, MAP_LOCK_TYPE > & | trader | ) |
TAO_Lookup< TRADER_LOCK_TYPE, MAP_LOCK_TYPE >::~TAO_Lookup | ( | void | ) |
|
private |
|
private |
Factory method for creating an appropriate Offer Iterator based on the presence of the Register Interface.
|
private |
Perform and pass on a query over a set of links. Merge the results of the federated queries into a single set of results suitable for returning to the user.
|
private |
This method takes the list of ordered offers and places a number of them in the sequence of returned offers and the rest into thr iterator. In addition, fill_receptacles uses the TAO_Property_Filter to ensure the returned offers contain the properties specified in the desired_props in parameter.
|
private |
If a starting_trader policy was specfied, foward the query to the next link in the sequence.
|
private |
Traverse the type hierarchy to pull the matching offers from all subtypes of the root type.
|
private |
Check if offers of a type fit the constraints and order them according to the preferences submitted.
|
private |
|
private |
Merge the results from a federated query into the collected results.
|
virtual |
|
private |
Assemble a sequence of links that the federate_query method should follow. Use the starting_trader policy, if one's provided, otherwise use the Link interface to determine which of the registered links should be followed in this query.
|
private |
|
private |
|
private |
Lock to secure the set of request ids.
|
private |
A list of recent request_id_stems.
|
private |
A reference to the trader for obtaining offer maps.