summaryrefslogtreecommitdiff
path: root/TAO/orbsvcs/orbsvcs/Naming/Entries.h
blob: 561e07b527393cbcd5c990817218a27d83e8537e (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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
/* -*- C++ -*- */
// $Id$

// ============================================================================
//
// = LIBRARY
//    cos
//
// = FILENAME
//   Entries.h
//
// = AUTHOR
//    Marina Spivak <marina@cs.wustl.edu>
//
// ============================================================================

#ifndef TAO_ENTRIES_H
#define TAO_ENTRIES_H

#include "ace/Hash_Map_Manager.h"

#if !defined (ACE_LACKS_PRAGMA_ONCE)
# pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */

#include "ace/Synch.h"
#include "ace/SString.h"

#include "tao/corba.h"
#include "orbsvcs/CosNamingC.h"

class TAO_ORBSVCS_Export TAO_IntId
{
  // = TITLE
  //     Helper class for TAO_Transient_Bindings_Map: unifies several
  //     data items, so they can be stored together as a  <value>
  //     for a <key> in a hash table holding the state of a Transient
  //     Naming Context.
  //
  // = DESCRIPTION
  //     This class holds CORBA Object pointer and a binding type, so
  //     they can be stored together as a <value> for a <key> in a
  //     hash table holding the state of a Transient Naming Context.
  //
public:
  // = Initialization and termination methods.
  TAO_IntId (void);
  // Constructor.

  TAO_IntId (CORBA::Object_ptr obj,
            CosNaming::BindingType type /* = CosNaming::nobject */);
  // Constructor.

  TAO_IntId (const TAO_IntId & rhs);
  // Copy constructor.

  ~TAO_IntId (void);
  // Destructor.

  void operator= (const TAO_IntId & rhs);
  // Assignment operator (does copy memory).

  // = Data members.

  CORBA::Object_ptr ref_;
  // Object reference to be stored in a Transient Naming Context.

  CosNaming::BindingType type_;
  // Binding type for <ref_>.
};

class TAO_ORBSVCS_Export TAO_ExtId
{
  // = TITLE
  //     Helper class for TAO_Transient_Bindings_Map: unifies several
  //     data items, so they can be stored together as a  <key>
  //     for a <value> in a hash table holding the state of a Transient
  //     Naming Context.
  //
  // = DESCRIPTION
  //     This class holds id and kind strings, so
  //     they can be stored together as a <key> for a <value> in a
  //     hash table holding the state of a Transient Naming Context.
  //
public:
  // = Initialization and termination methods.

  TAO_ExtId (void);
  // Constructor.

  TAO_ExtId (const char *id,
            const char *kind);
  // Constructor.

  TAO_ExtId (const TAO_ExtId & rhs);
  // Copy constructor.

  ~TAO_ExtId (void);
  // Destructor.

  // = Assignment and comparison operators.

  void operator= (const TAO_ExtId & rhs);
  // Assignment operator (does copy memory).

  int operator== (const TAO_ExtId &rhs) const;
  // Equality comparison operator (must match both id_ and kind_).

  int operator!= (const TAO_ExtId &rhs) const;
  // Inequality comparison operator.

  u_long hash (void) const;
  // <hash> function is required in order for this class to be usable by
  // ACE_Hash_Map_Manager.

  // = Data members.

  ACE_CString kind_;
  // <kind> portion of the name to be associated with some object
  // reference in a Transient Naming Context.

  ACE_CString id_;
  // <id> portion of the name to be associated with some object
  // reference in a Transient Naming Context.

  // = Accessors: return <id_> and <kind_> in a const char * format.

  const char * id (void);
  const char * kind (void);
};

#endif /* TAO_ENTRIES_H */