summaryrefslogtreecommitdiff
path: root/TAO/tao/RTCORBA/Private_Transport_Descriptor.h
blob: 9ed23a89cde01d69e3dd845f73650b41e3905d1e (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
// This may look like C, but it's really -*- C++ -*-

//=============================================================================
/**
 *  @file   Private_Transport_Descriptor.h
 *
 *  $Id$
 *
 *  @author Marina Spivak <marina@cs.wustl.edu>
 */
//=============================================================================


#ifndef TAO_PRIVATE_CONNECTION_DESCRIPTOR_H
#define TAO_PRIVATE_CONNECTION_DESCRIPTOR_H
#include "ace/pre.h"

#include "tao/orbconf.h"
#include "rtcorba_export.h"

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

#include "tao/Transport_Descriptor_Interface.h"
#include "ace/Global_Macros.h"

class TAO_RTCORBA_Export TAO_Private_Transport_Descriptor:
  public TAO_Transport_Descriptor_Interface
{
  // = TITLE
  //   Concrete connection descriptor.
  //
  // = DESCRIPTION
  //
  //   Holds info necessary to identify private connections and
  //   store/look them up in the Transport Cache.  (For description
  //   of private connections see RTCORBA::PrivateTransportPolicy.)
  //
public:

  // = Initialization and termination methods.

  TAO_Private_Transport_Descriptor (TAO_Endpoint *endpoint,
                                    long object_id,
                                    CORBA::Boolean flag = 0);

  virtual ~TAO_Private_Transport_Descriptor (void);


  // = Abstract TAO_Transport_Descriptor methods to be implemented by
  // subclasses.

  virtual  TAO_Transport_Descriptor_Interface *duplicate (void);

  virtual CORBA::Boolean is_equivalent (
      const TAO_Transport_Descriptor_Interface *other_prop);

  virtual u_long hash (void) const;

private:

  // Descriptor should not be copied, except using the <duplicate> method.
  ACE_UNIMPLEMENTED_FUNC (TAO_Private_Transport_Descriptor (const TAO_Private_Transport_Descriptor&))
  ACE_UNIMPLEMENTED_FUNC (void operator= (const TAO_Private_Transport_Descriptor&))

  /**
   * Unique identifier of the object to which private connection
   * identified with this descriptor belongs.  The value of
   * <object_id_> is the TAO_Stub* of the object.
   */
  long object_id_;
};

#if defined (__ACE_INLINE__)
# include "Private_Transport_Descriptor.inl"
#endif /* __ACE_INLINE__ */

#include "ace/post.h"
#endif  /* TAO_PRIVATE_CONNECTION_DESCRIPTOR_H */