15 #ifndef DETECTORGRAPH_INCLUDE_TOPICREGISTRY_LITE_HPP_ 16 #define DETECTORGRAPH_INCLUDE_TOPICREGISTRY_LITE_HPP_ 22 #include <detectorgraphliteconfig.hpp> 35 BaseTopic* registry[DetectorGraphConfig::kMaxNumberOfTopics];
40 #if defined(BUILD_FEATURE_DETECTORGRAPH_CONFIG_STATIC_ASSERTS) 41 static_assert(std::is_base_of<TopicState, TTopicState>::value,
42 "Trying to Resolve non-Topic type.");
45 DG_ASSERT(TopicState::GetId<TTopicState>() < DetectorGraphConfig::kMaxNumberOfTopics);
52 DG_ASSERT(registry[TopicState::GetId<TTopicState>()] != NULL);
58 #if defined(BUILD_FEATURE_DETECTORGRAPH_CONFIG_STATIC_ASSERTS) 59 static_assert(std::is_base_of<TopicState, TTopicState>::value,
60 "Trying to Register non-Topic type.");
67 DG_ASSERT(TopicState::GetId<TTopicState>() < DetectorGraphConfig::kMaxNumberOfTopics);
68 DG_ASSERT(registry[TopicState::GetId<TTopicState>()] == NULL);
69 registry[TopicState::GetId<TTopicState>()] = obj;
75 #endif // DETECTORGRAPH_INCLUDE_TOPICREGISTRY_LITE_HPP_
Internal - A limited-size Container for Topic<T>s
Manage data and its handler.
void Register(Topic< TTopicState > *obj)
Topic< TTopicState > * Resolve()
Provide interface for a topic.
#define DG_ASSERT(condition)