summaryrefslogtreecommitdiff
path: root/TAO/orbsvcs/tests/Trading/Offer_Importer.h
blob: ce620dcae4e109243ed621c76f516dd732a8d30e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
// $Id$

// ========================================================================
//
// = FILE  
//     Offer_Importer.h
//
// = DESCRIPTION
//    Class that tests the Trading Service's Lookup Interface
//
// = AUTHOR
//     Seth Widoff <sbw1@cs.wustl.edu>
//
// ======================================================================= 

#ifndef TAO_OFFER_IMPORTER
#define TAO_OFFER_IMPORTER

#include "TT_Info.h"
#include "ace/Task_T.h"
#include "orbsvcs/Trader/Trader_Utils.h"

class TAO_Offer_Importer
{
public:

  TAO_Offer_Importer (CosTrading::Lookup_ptr lookup_if,
                      CORBA::Boolean verbose = 1);

  void perform_queries (CORBA::Environment& _env)
    TAO_THROW_SPEC ((CORBA::SystemException,
		     CosTrading::IllegalServiceType,
		     CosTrading::UnknownServiceType,
		     CosTrading::IllegalConstraint,
		     CosTrading::Lookup::IllegalPreference,
		     CosTrading::Lookup::IllegalPolicyName,
		     CosTrading::Lookup::PolicyTypeMismatch,
		     CosTrading::Lookup::InvalidPolicyValue,
		     CosTrading::IllegalPropertyName,
		     CosTrading::DuplicatePropertyName,
		     CosTrading::DuplicatePolicyName));
  // Barrage the bootstrapped-to trader with queries.

  void perform_directed_queries (CORBA::Environment& _env)
    TAO_THROW_SPEC ((CORBA::SystemException, 
		     CosTrading::IllegalServiceType, 
		     CosTrading::UnknownServiceType, 
		     CosTrading::IllegalConstraint, 
		     CosTrading::Lookup::IllegalPreference, 
		     CosTrading::Lookup::IllegalPolicyName, 
		     CosTrading::Lookup::PolicyTypeMismatch, 
		     CosTrading::Lookup::InvalidPolicyValue, 
		     CosTrading::IllegalPropertyName, 
		     CosTrading::DuplicatePropertyName,
		     CosTrading::DuplicatePolicyName));
  // Direct a query to a trader two graph edges distant from the
  // bootstrapped-to trader.
  
private:

  void perform_queries_with_policies (const TAO_Policy_Manager& policy_manager,
                                      CORBA::Environment& _env)
    TAO_THROW_SPEC ((CORBA::SystemException, 
		     CosTrading::IllegalServiceType, 
		     CosTrading::UnknownServiceType, 
		     CosTrading::IllegalConstraint, 
		     CosTrading::Lookup::IllegalPreference, 
		     CosTrading::Lookup::IllegalPolicyName, 
		     CosTrading::Lookup::PolicyTypeMismatch, 
		     CosTrading::Lookup::InvalidPolicyValue, 
		     CosTrading::IllegalPropertyName, 
		     CosTrading::DuplicatePropertyName,
		     CosTrading::DuplicatePolicyName));
  // Perform a query on the bootstrapped-to trader given the policies
  // pass in <policy_manager>.
  
  void display_results (const CosTrading::OfferSeq& offer_seq,
			CosTrading::OfferIterator_ptr offer_iterator,
			CORBA::Environment& _env) const
    TAO_THROW_SPEC ((CORBA::SystemException));
  // Display the results of the query to the screen.

  CORBA::Boolean verbose_;
  // Output the contents of each returned offer, if true.
  
  CosTrading::Lookup_ptr lookup_;
  // The interface on which to perform all those wonderful queries. 
};

#endif /* TAO_OFFER_IMPORTER */