// $Id: Ability.hpp,v 1.9 2009/06/21 16:51:56 nishio Exp $ #pragma once #include #include #include #include #include #include namespace RoLo { namespace Interface { class AttributeDefinition : public ::ISO19111::IO_IdentifiedObject { public: ::ISO19115::RS_Identifier type; ::ISO19103::UnitOfMeasure unit; }; class AttributeBase : public ::ISO19111::IO_IdentifiedObject { public: const AttributeDefinition *def; }; template class Attribute : public AttributeBase { public: T val; }; template class Parameter : public Attribute { public: bool isConfigurable; }; template class ParameterOverDomain : public Attribute { public: TD domain; }; template class Interval { public: T min, max; bool minInc, maxInc; }; template class IntervalParameter : public ParameterOverDomain< T, Interval > {}; template class SetParameter : public ParameterOverDomain< T, ::std::set > {}; class AttributeSet : public ::ISO19111::IO_IdentifiedObject { public: ::std::set attrs; }; class Ability : public AttributeSet { }; class ParameterValueBase { }; template class ParameterValue : public ParameterValueBase { public: T val; }; } }