Merge pull request #1551 from DOCGroup/plm_jira_333
[ACE_TAO.git] / TAO / orbsvcs / FT_ReplicationManager / FT_Property_Validator.h
blob3ed49696565303ac59d375222609e503e71c1766
1 // -*- C++ -*-
3 //=============================================================================
4 /**
5 * @file FT_Property_Validator.h
7 * @author Curt Hibbs <hibbs_c@ociweb.com>
8 */
9 //=============================================================================
11 #ifndef FT_PROPERTY_VALIDATOR_H
12 #define FT_PROPERTY_VALIDATOR_H
14 #include /**/ "ace/pre.h"
16 #include "orbsvcs/PortableGroup/PG_Default_Property_Validator.h"
17 #include "orbsvcs/PortableGroupC.h"
19 #if !defined (ACE_LACKS_PRAGMA_ONCE)
20 #pragma once
21 #endif /* ACE_LACKS_PRAGMA_ONCE */
23 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
25 namespace TAO
27 /**
28 * @class FT_Property_Validator
30 * @brief Default property validator implementation.
32 * This Property_Validator verifies that all properties defined in the
33 * FT CORBA IDL are valid.
35 class FT_Property_Validator : public TAO_PG_Default_Property_Validator
37 public:
39 /// Constructor.
40 FT_Property_Validator (void);
42 /// Destructor.
43 virtual ~FT_Property_Validator (void);
45 /// Validate the given properties. Throw an exception when the
46 /// first invalid property is encountered. The remaining properties
47 /// will not be validated.
48 virtual
49 void validate_property (const PortableGroup::Properties & props);
51 /// Validate the given properties/criteria. All criteria
52 /// will be validated regardless of whether or not an invalid
53 /// property was encountered.
54 virtual
55 void validate_criteria (const PortableGroup::Properties & criteria);
57 private:
59 /**
60 * @name Pre-initialize property Names.
62 * These properties are pre-initialized once to reduce property
63 * validation overhead. Note that the following properties are
64 * not validated since there are no restrictions for these values:
65 * InitialNumberMembers
66 * MinimumNumberMembers
67 * FaultMonitoringInterval
68 * CheckpointInterval
70 //@{
71 PortableGroup::Name replication_style_;
72 PortableGroup::Name membership_style_;
73 PortableGroup::Name consistency_style_;
74 PortableGroup::Name fault_monitoring_style_;
75 PortableGroup::Name fault_monitoring_granularity_;
76 PortableGroup::Name factories_;
77 //@}
81 } // namespace TAO
83 TAO_END_VERSIONED_NAMESPACE_DECL
85 #include /**/ "ace/post.h"
87 #endif /* FT_PROPERTY_VALIDATOR_H */