File: omniPolicy.h

package info (click to toggle)
omniorb-dfsg 4.3.3%2Bds1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 13,172 kB
  • sloc: cpp: 115,843; python: 24,962; ansic: 13,414; sh: 2,665; makefile: 40
file content (138 lines) | stat: -rw-r--r-- 3,997 bytes parent folder | download | duplicates (2)
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
137
138
// -*- Mode: C++; -*-
//                            Package   : omniORB
// omniPolicy.h               Created on: 2001/11/07
//                            Author    : Duncan Grisby (dpg1)
//
//    Copyright (C) 2020 Apasphere Ltd
//    Copyright (C) 2001 AT&T Laboratories Cambridge
//
//    This file is part of the omniORB library
//
//    The omniORB library is free software; you can redistribute it and/or
//    modify it under the terms of the GNU Lesser General Public
//    License as published by the Free Software Foundation; either
//    version 2.1 of the License, or (at your option) any later version.
//
//    This library is distributed in the hope that it will be useful,
//    but WITHOUT ANY WARRANTY; without even the implied warranty of
//    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
//    Lesser General Public License for more details.
//
//    You should have received a copy of the GNU Lesser General Public
//    License along with this library. If not, see http://www.gnu.org/licenses/
//
//
// Description:
//    omniORB specific policies
//

#ifndef __OMNIPOLICY_H__
#define __OMNIPOLICY_H__

#include <omniORB4/giopEndpoint.h>


_CORBA_MODULE omniPolicy

_CORBA_MODULE_BEG

//
// Local shortcut

typedef CORBA::UShort LocalShortcutPolicyValue;

_CORBA_MODULE_VARINT
const LocalShortcutPolicyValue LOCAL_CALLS_THROUGH_POA _init_in_decl_( = 0 );

_CORBA_MODULE_VARINT
const LocalShortcutPolicyValue LOCAL_CALLS_SHORTCUT    _init_in_decl_( = 1 );

_CORBA_MODULE_VARINT
const CORBA::PolicyType LOCAL_SHORTCUT_POLICY_TYPE
                                              _init_in_decl_( = 0x41545401 );

OMNIORB_DECLARE_POLICY_OBJECT(LocalShortcutPolicy, 0x41545401)


_CORBA_MODULE_FN LocalShortcutPolicy_ptr
create_local_shortcut_policy(LocalShortcutPolicyValue v);


//
// EndPoint publishing

typedef CORBA::StringSeq EndPointPublishPolicyValue;

_CORBA_MODULE_VARINT
const CORBA::PolicyType ENDPOINT_PUBLISH_POLICY_TYPE
                                              _init_in_decl_( = 0x41545402 );


// Cannot use the OMNIORB_DECLARE_POLICY_OBJECT macro because the
// value is a sequence

class EndPointPublishPolicy;
typedef EndPointPublishPolicy* EndPointPublishPolicy_ptr;
typedef EndPointPublishPolicy_ptr EndPointPublishPolicyRef;

class EndPointPublishPolicy : public CORBA::Policy
{
public:
  EndPointPublishPolicy(const EndPointPublishPolicyValue& value_);
  inline EndPointPublishPolicy() : pd_eps(0) {}
  virtual ~EndPointPublishPolicy();

  virtual CORBA::Policy_ptr copy();
  virtual const EndPointPublishPolicyValue& value() { return pd_value; }

  void update(const EndPointPublishPolicyValue& v);
  // Update the endpoints for existing POAs with this policy object.
  
  virtual void* _ptrToObjRef(const char* repoId);

  _OMNI_NS(IORPublish)* getEPs();

  static EndPointPublishPolicy_ptr _duplicate(EndPointPublishPolicy_ptr p);
  static EndPointPublishPolicy_ptr _narrow(CORBA::Object_ptr p);
  static EndPointPublishPolicy_ptr _nil();

  static _core_attr const char* _PD_repoId;

private:
  EndPointPublishPolicyValue pd_value;
  _OMNI_NS(IORPublish)*      pd_eps;
};

typedef _CORBA_PseudoObj_Var<EndPointPublishPolicy> EndPointPublishPolicy_var;


_CORBA_MODULE_FN EndPointPublishPolicy_ptr
create_endpoint_publish_policy(const EndPointPublishPolicyValue& v);


//
// Plain object keys

typedef CORBA::UShort PlainObjectKeysPolicyValue;

_CORBA_MODULE_VARINT
const PlainObjectKeysPolicyValue PLAIN_OBJECT_KEYS_DISABLE _init_in_decl_( = 0 );

_CORBA_MODULE_VARINT
const PlainObjectKeysPolicyValue PLAIN_OBJECT_KEYS_ENABLE  _init_in_decl_( = 1 );

_CORBA_MODULE_VARINT
const CORBA::PolicyType PLAIN_OBJECT_KEYS_POLICY_TYPE
                                              _init_in_decl_( = 0x41545403 );

OMNIORB_DECLARE_POLICY_OBJECT(PlainObjectKeysPolicy, 0x41545403)


_CORBA_MODULE_FN PlainObjectKeysPolicy_ptr
create_plain_object_keys_policy(PlainObjectKeysPolicyValue v);


_CORBA_MODULE_END


#endif // __OMNIPOLICY_H__