summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/events_ds.cc13
-rw-r--r--src/events_ds.h6
2 files changed, 5 insertions, 14 deletions
diff --git a/src/events_ds.cc b/src/events_ds.cc
index 3e1573f..ee21f93 100644
--- a/src/events_ds.cc
+++ b/src/events_ds.cc
@@ -56,18 +56,9 @@ void EventsDS::remove(EventID event_id)
id_to_info.remove(event_id);
}
-Event* EventsDS::get(EventID event_id)
+Event::Type EventsDS::getType(EventID event_id) const
{
- auto const& info = id_to_info.get(event_id);
-
- // add new event types here
- switch (info.type)
- {
- case Event::Type::SampleEvent:
- return &getSample<SampleEvent>(info);
- default:
- assert(false);
- }
+ return id_to_info.get(event_id).type;
}
std::size_t EventsDS::numberOfEvents(channel_t ch) const
diff --git a/src/events_ds.h b/src/events_ds.h
index 2e8fa43..0a93fe9 100644
--- a/src/events_ds.h
+++ b/src/events_ds.h
@@ -72,9 +72,9 @@ public:
template <typename T>
T& get(EventID event_id);
- //! Returns a pointer to the event with id begin event_id. As Event has a
- //! member variable that carries the type, it can be then casted appropriately.
- Event* get(EventID event_id);
+ //! In case we don't know the type of an event, we can use this function to
+ //! retrieve it and then use get<Type>(...) to get the event.
+ Event::Type getType(EventID event_id) const;
//! Returns the number of all events of a certain channel.
std::size_t numberOfEvents(channel_t ch) const;