#ifndef OMG_DDS_TOPIC_TOPIC_TRAITS_HPP_ #define OMG_DDS_TOPIC_TOPIC_TRAITS_HPP_ // Copyright 2010, Object Management Group, Inc. // Copyright 2010, PrismTech, Corp. // Copyright 2010, Real-Time Innovations, Inc. // All rights reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. #include //============================================================================== namespace dds { namespace topic { template struct is_topic_type; /** @cond */ template struct topic_type_support; /** @endcond */ /** * @brief * Support functionality to get the default type_name of a Topic type. * * @code{.cpp} * std::string typeName = dds::topic::topic_type_name::value(); * @endcode */ template struct topic_type_name { static std::string value() { return "Undefined"; } }; } } //============================================================================== /// @brief /// Support functionality to check if a given object type is a Topic. /// /// @code{.cpp} /// if (dds::topic::is_topic_type::value) { /// // Foo::Bar type is considered a Topic /// } else { /// // Foo::Bar type is NOT considered a Topic /// } /// @endcode template struct dds::topic::is_topic_type { enum {value = 0 }; }; /** @cond * IsoCpp doesn't know the TypeSupport concept. The type is automatically * registered when an Topic is created. So, what does this function do? */ template struct dds::topic::topic_type_support { }; /** @endcond */ #define REGISTER_TOPIC_TYPE(TOPIC_TYPE) \ namespace dds { namespace topic { \ template<> struct is_topic_type { \ enum { value = 1 }; \ }; } } #endif /* OMG_DDS_TOPIC_TOPIC_TRAITS_HPP_ */