blob: 2c8e9e8c7f929f051ecf61f824fc3a0586d9f793 (
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
|
/* -*- C++ -*- */
//=============================================================================
/**
* @file PG_Properties_Support.h
*
* $Id$
*
* This file declares classes to help manage the PortableGroup::Properties
*
* @author Dale Wilson <wilson_d@ociweb.com>
*/
//=============================================================================
#ifndef TAO_PG_PROPERTIES_SUPPORT_H
#define TAO_PG_PROPERTIES_SUPPORT_H
#include "PG_Properties_Decoder.h"
namespace TAO
{
class TAO_PortableGroup_Export PG_Properties_Support
{
typedef ACE_Hash_Map_Manager<
ACE_CString,
::TAO_PG::Properties_Decoder *,
TAO_SYNCH_MUTEX> Properties_Map;
typedef ACE_Hash_Map_Iterator<
ACE_CString,
::TAO_PG::Properties_Decoder *,
TAO_SYNCH_MUTEX> Properties_Map_Iterator;
public:
PG_Properties_Support ();
~PG_Properties_Support ();
void set_default_properties (const PortableGroup::Properties & props);
PortableGroup::Properties * get_default_properties (ACE_ENV_SINGLE_ARG_DECL)
ACE_THROW_SPEC ( (CORBA::SystemException,
PortableGroup::InvalidProperty,
PortableGroup::UnsupportedProperty));
void remove_default_properties (
const PortableGroup::Properties & props
ACE_ENV_ARG_DECL)
ACE_THROW_SPEC ((CORBA::SystemException));
void set_type_properties (
const char *type_id,
const PortableGroup::Properties & overrides
ACE_ENV_ARG_DECL)
ACE_THROW_SPEC ((
CORBA::SystemException,
PortableGroup::InvalidProperty,
PortableGroup::UnsupportedProperty));
PortableGroup::Properties * get_type_properties (
const char *type_id
ACE_ENV_ARG_DECL)
ACE_THROW_SPEC ( (CORBA::SystemException));
TAO_PG::Properties_Decoder * TAO::PG_Properties_Support::find_typeid_properties (
const char *type_id
ACE_ENV_ARG_PARAMETER)
ACE_THROW_SPEC ((CORBA::SystemException));
void remove_type_properties (
const char *type_id,
const PortableGroup::Properties & props
ACE_ENV_ARG_DECL)
ACE_THROW_SPEC ( (CORBA::SystemException));
///////////////
// Data Members
private:
/**
* Protect internal state.
*/
TAO_SYNCH_MUTEX internals_;
typedef ACE_Guard<TAO_SYNCH_MUTEX> InternalGuard;
TAO_PG::Properties_Decoder default_properties_;
Properties_Map properties_map_;
};
} //namespace TAO_PG
#endif // TAO_PG_PROPERTIES_SUPPORT_H
|