TAO_CosTrader
2.0.8
|
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) |
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. | |
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. | |
Request_Ids | request_ids_ |
A list of recent request_id_stems. | |
TRADER_LOCK_TYPE | lock_ |
Lock to secure the set of request ids. |
This class implements CosTrading::Lookup IDL interface.
typedef ACE_Unbounded_Queue<CosTrading::Admin::OctetSeq*> TAO_Lookup< TRADER_LOCK_TYPE, MAP_LOCK_TYPE >::Request_Ids [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 | ) |
TAO_Lookup< TRADER_LOCK_TYPE, MAP_LOCK_TYPE >::TAO_Lookup | ( | const TAO_Lookup< TRADER_LOCK_TYPE, MAP_LOCK_TYPE > & | ) | [private] |
TAO_Offer_Iterator * TAO_Lookup< TRADER_LOCK_TYPE, MAP_LOCK_TYPE >::create_offer_iterator | ( | const TAO_Property_Filter & | pfilter | ) | [private] |
Factory method for creating an appropriate Offer Iterator based on the presence of the Register Interface.
void TAO_Lookup< TRADER_LOCK_TYPE, MAP_LOCK_TYPE >::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 | ||
) | [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.
int TAO_Lookup< TRADER_LOCK_TYPE, MAP_LOCK_TYPE >::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 | ||
) | [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.
void TAO_Lookup< TRADER_LOCK_TYPE, MAP_LOCK_TYPE >::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 | ||
) | [private] |
If a starting_trader policy was specfied, foward the query to the next link in the sequence.
void TAO_Lookup< TRADER_LOCK_TYPE, MAP_LOCK_TYPE >::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 | ||
) | [private] |
Traverse the type hierarchy to pull the matching offers from all subtypes of the root type.
void TAO_Lookup< TRADER_LOCK_TYPE, MAP_LOCK_TYPE >::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 | ||
) | [private] |
Check if offers of a type fit the constraints and order them according to the preferences submitted.
void TAO_Lookup< TRADER_LOCK_TYPE, MAP_LOCK_TYPE >::operator= | ( | const TAO_Lookup< TRADER_LOCK_TYPE, MAP_LOCK_TYPE > & | ) | [private] |
void TAO_Lookup< TRADER_LOCK_TYPE, MAP_LOCK_TYPE >::order_merged_sequence | ( | TAO_Preference_Interpreter & | pref_inter, |
CosTrading::OfferSeq & | offers | ||
) | [private] |
Merge the results from a federated query into the collected results.
void TAO_Lookup< TRADER_LOCK_TYPE, MAP_LOCK_TYPE >::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 | ||
) | [virtual] |
CORBA::Boolean TAO_Lookup< TRADER_LOCK_TYPE, MAP_LOCK_TYPE >::retrieve_links | ( | TAO_Policies & | policies, |
CORBA::ULong | offer_returned, | ||
CosTrading::LinkNameSeq_out | links | ||
) | [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.
CORBA::Boolean TAO_Lookup< TRADER_LOCK_TYPE, MAP_LOCK_TYPE >::seen_request_id | ( | TAO_Policies & | policies, |
CosTrading::Admin::OctetSeq *& | seq | ||
) | [private] |
const unsigned int TAO_Lookup< TRADER_LOCK_TYPE, MAP_LOCK_TYPE >::IDS_SAVED [private] |
TRADER_LOCK_TYPE TAO_Lookup< TRADER_LOCK_TYPE, MAP_LOCK_TYPE >::lock_ [private] |
Lock to secure the set of request ids.
Request_Ids TAO_Lookup< TRADER_LOCK_TYPE, MAP_LOCK_TYPE >::request_ids_ [private] |
A list of recent request_id_stems.
TAO_Trader<TRADER_LOCK_TYPE,MAP_LOCK_TYPE>& TAO_Lookup< TRADER_LOCK_TYPE, MAP_LOCK_TYPE >::trader_ [private] |
A reference to the trader for obtaining offer maps.