Merge pull request #2216 from jwillemsen/jwi-cxxversionchecks
[ACE_TAO.git] / TAO / orbsvcs / FT_ReplicationManager / FT_Property_Validator.h
blob44fa0384d5847e4cb697e71362f4fcb78f934628
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:
38 /// Constructor.
39 FT_Property_Validator ();
41 /// Destructor.
42 virtual ~FT_Property_Validator ();
44 /// Validate the given properties. Throw an exception when the
45 /// first invalid property is encountered. The remaining properties
46 /// will not be validated.
47 virtual
48 void validate_property (const PortableGroup::Properties & props);
50 /// Validate the given properties/criteria. All criteria
51 /// will be validated regardless of whether or not an invalid
52 /// property was encountered.
53 virtual
54 void validate_criteria (const PortableGroup::Properties & criteria);
56 private:
57 /**
58 * @name Pre-initialize property Names.
60 * These properties are pre-initialized once to reduce property
61 * validation overhead. Note that the following properties are
62 * not validated since there are no restrictions for these values:
63 * InitialNumberMembers
64 * MinimumNumberMembers
65 * FaultMonitoringInterval
66 * CheckpointInterval
68 //@{
69 PortableGroup::Name replication_style_;
70 PortableGroup::Name membership_style_;
71 PortableGroup::Name consistency_style_;
72 PortableGroup::Name fault_monitoring_style_;
73 PortableGroup::Name fault_monitoring_granularity_;
74 PortableGroup::Name factories_;
75 //@}
78 } // namespace TAO
80 TAO_END_VERSIONED_NAMESPACE_DECL
82 #include /**/ "ace/post.h"
84 #endif /* FT_PROPERTY_VALIDATOR_H */