summaryrefslogtreecommitdiff
path: root/TAO/orbsvcs/orbsvcs/FT_CORBA_ORB.idl
blob: 6503eb969a5989906d7697dc41dc63569793b9d3 (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
133
134
135
136
//$Id$
#ifndef TAO_FT_CORBA_ORB_IDL
#define TAO_FT_CORBA_ORB_IDL

// Including the $TAO_ROOT/tao one so that we dont depend on the
// Svc_Utils
#include "tao/TimeBase.pidl" // 98-10.47.idl
// Proprietary includes for TAO
#include "tao/IOP.pidl" // from 98-03-01.idl
#include "tao/GIOP.pidl" // from 98-03-01.idl
#include "tao/Policy.pidl"

#include "PortableGroup_Simple_DS.idl"


#pragma prefix "omg.org"


// These have been moved to the file IOP.pidl
module FT
{
  /// FTDomainId's are denoted as strings
  typedef PortableGroup::GroupDomainId FTDomainId;

    /// The objectgroup id
  typedef PortableGroup::ObjectGroupId ObjectGroupId;

  /// The reference version of the object group
  typedef PortableGroup::ObjectGroupRefVersion ObjectGroupRefVersion;

  /**
   * @struct TagFTGroupTaggedComponent
   *
   * @brief Contents of the Tagged_Component field with tag
   *  TAG_FT_GROUP
   */
  typedef PortableGroup::TagGroupTaggedComponent TagFTGroupTaggedComponent;

  /**
   * @struct TagFTPrinaryTaggedComponent
   *
   * @brief Contents of the Tagged_Component field with tag
   *  TAG_FT_PRIMARY
   */
  struct TagFTPrimaryTaggedComponent
  {
    boolean primary;
  };

  /**
   * @struct FTGroupVersionServiceContext
   *
   * @brief Service Context list info for FT_GROUP_VERSION.
   *
   *  It specifies the most recent Object Group Version
   */
  struct FTGroupVersionServiceContext
  {
    ObjectGroupRefVersion object_group_ref_version;
  };

  /**
   * @struct FTRequestServiceContext
   *
   * @brief Service Context List information for FT_REQUEST
   */

  struct FTRequestServiceContext
  {
    string client_id;
    long retention_id;
    TimeBase::TimeT expiration_time;
  };

  /// Policy type for holding a request
  const CORBA::PolicyType REQUEST_DURATION_POLICY = 47;

  /**
   * @interface RequestDurationPolicy
   *
   * @brief Policy specification for Request Duration policy
   */
  local interface RequestDurationPolicy : CORBA::Policy
    {
      readonly attribute TimeBase::TimeT request_duration_policy_value;
    };

  /// Policy types for HeartBeats
  const CORBA::PolicyType HEARTBEAT_POLICY = 48;

  /**
   * @struct HeartbeatPolicyValue
   *
   * @brief HeartbeatPolicy's  range for the client
   */
  struct HeartbeatPolicyValue {
    boolean heartbeat;
    TimeBase::TimeT heartbeat_interval;
    TimeBase::TimeT heartbeat_timeout;
  };

  /**
   * @interface HeartbeatPolicy
   *
   * @brief Policy specification for Heartbeats on the client side
   */
  local interface HeartbeatPolicy : CORBA::Policy {
    readonly attribute HeartbeatPolicyValue heartbeat_policy_value;
  };

  /// Policy type to enable heartbeating
  const CORBA::PolicyType HEARTBEAT_ENABLED_POLICY = 49;

  /**
   * @struct TagFTHeartbeatEnabledTaggedComponent
   *
   * @brief Tagged components for TAG_FT_HEARTBEAT_ENABLED
   *
   */
  struct TagFTHeartbeatEnabledTaggedComponent
  {
    boolean heartbeat_enabled;
  };

  /**
   * @interface HeartbeatEnabledPolicy
   *
   * @brief Policy values for heartbeatEnabledpolicy
   *
   */
  local interface HeartbeatEnabledPolicy : CORBA::Policy {
    readonly attribute boolean heartbeat_enabled_policy_value;
  };

};
#endif /*TAO_FT_CORBA_ORB_IDL*/