summaryrefslogtreecommitdiff
path: root/TAO/tests/Exposed_Policies/Policy_Verifier.h
blob: 830bbdc11f24ab81591d53cc015c69e592bf7d7d (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
// $Id$
//
// ============================================================================
//
// = LIBRARY
//    TAO/tests/Exposed_Policies
//
// = FILENAME
//    Policy_Verifier.h
//
// = DESCRIPTION
//     This class verifies that the policy are correctly embedded
//     in the IOR.
//
// = AUTHOR
//     Angelo Corsaro <corsaro@cs.wustl.edu>
//
// ============================================================================

#ifndef POLICY_VERIFIER_H_
#define POLICY_VERIFIER_H_

// -- App. Specific Include --
#include "CounterC.h"
#include "RT_Properties.h"

// -- ACE Include --
#include "ace/Arg_Shifter.h"

// -- TAO Include --
#include "tao/corba.h"

class Policy_Verifier
{
public:

  // -- Ctor/Dtor --
  Policy_Verifier (void);
  ~Policy_Verifier (void);

  void init (int argc,
             char *argv[],
             CORBA::Environment &ACE_TRY_ENV
             = TAO_default_environment ());

  void run (CORBA::Environment &ACE_TRY_ENV
            = TAO_default_environment ());

private:
  // -- Helper methods --
  void verify_reference (Counter_ptr counter,
                         RT_Properties *rt_properties,
                         CORBA::Environment &ACE_TRY_ENV
                         = TAO_default_environment ());

  CORBA::Boolean check_reference (CORBA::Object_ptr object,
                                  const char *msg);

private:

  CORBA::ORB_var orb_;

  RT_Properties *rt_object_properties_;
  RT_Properties *rt_poa_properties_;
  unsigned int priority_bands_;
  Counter_var base_object_;
  Counter_var overridden_object_;

  char base_object_ref_[256];
  char overridden_object_ref_[256];
};

#endif /* POLICY_VERIFIER_H_ */