summaryrefslogtreecommitdiff
path: root/TAO/tao/Object_KeyC.h
blob: 7b879a62f12cf99c039e39e1a7ca704d2a42e0fb (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
// -*- c++ -*-
// $Id$
//
// Hand-modified by Chris Cleeland.
//
// ******  Code generated by the The ACE ORB (TAO) IDL Compiler *******
// TAO ORB and the TAO IDL Compiler have been developed by Washington
// University Computer Science's Distributed Object Computing Group.
//
// Information on TAO is available at
//                 http://www.cs.wustl.edu/~schmidt/TAO.html

#ifndef TAO_IDL_OBJECT_KEYC_H
#define TAO_IDL_OBJECT_KEYC_H

#include "tao/corbafwd.h"

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

#include "tao/Sequence.h"

class TAO_Export TAO_ObjectKey : public TAO_Unbounded_Sequence<CORBA::Octet>
{
  // = TITLE
  //   TAO class used to represent Object Keys
  //
  // = DESCRIPTION
  //   The object is basically a sequence of octets, but we derive
  //   from it to create a unique type; this is useful for
  //   overloading.
  //
public:
  #if !defined(__GNUC__) || __GNUC__ > 2 || __GNUC_MINOR__ >= 8
    typedef TAO_ObjectKey_ptr _ptr_type;
    typedef TAO_ObjectKey_var _var_type;
  #endif /* __GNUC__ */

  TAO_ObjectKey (void);
  TAO_ObjectKey (CORBA::ULong max);
  TAO_ObjectKey (CORBA::ULong max,
                  CORBA::ULong length,
                  CORBA::Octet *data,
                  CORBA::Boolean release = 0);
  TAO_ObjectKey (const TAO_ObjectKey &);
  TAO_ObjectKey& operator= (const TAO_ObjectKey &);
};

class TAO_Export TAO_ObjectKey_var
{
public:
  TAO_ObjectKey_var (void); // default constructor
  TAO_ObjectKey_var (TAO_ObjectKey *);
  TAO_ObjectKey_var (const TAO_ObjectKey_var &); // copy constructor
  ~TAO_ObjectKey_var (void); // destructor

  TAO_ObjectKey_var &operator= (TAO_ObjectKey *);
  TAO_ObjectKey_var &operator= (const TAO_ObjectKey_var &);
  TAO_ObjectKey *operator-> (void);
  const TAO_ObjectKey *operator-> (void) const;

  operator const TAO_ObjectKey &() const;
  operator TAO_ObjectKey &();
  operator TAO_ObjectKey &() const;
  CORBA::Octet &operator[] (CORBA::ULong index);
  // in, inout, out, _retn
  const TAO_ObjectKey &in (void) const;
  TAO_ObjectKey &inout (void);
  TAO_ObjectKey *&out (void);
  TAO_ObjectKey *_retn (void);
  TAO_ObjectKey *ptr (void) const;

private:
  TAO_ObjectKey *ptr_;
};

class TAO_Export TAO_ObjectKey_out
{
public:
  TAO_ObjectKey_out (TAO_ObjectKey *&);
  TAO_ObjectKey_out (TAO_ObjectKey_var &);
  TAO_ObjectKey_out (TAO_ObjectKey_out &);
  TAO_ObjectKey_out &operator= (TAO_ObjectKey_out &);
  TAO_ObjectKey_out &operator= (TAO_ObjectKey *);
  operator TAO_ObjectKey *&();
  TAO_ObjectKey *&ptr (void);
  TAO_ObjectKey *operator-> (void);
  CORBA::Octet &operator[] (CORBA::ULong index);

private:
  TAO_ObjectKey *&ptr_;
  // assignment from T_var not allowed
  void operator= (const TAO_ObjectKey_var &);
};

#if defined (__ACE_INLINE__)
#include "tao/Object_KeyC.i"
#endif /* __ACE_INLINE__ */

#endif /* TAO_IDL_OBJECT_KEYC_H */