36#ifndef EVENTMANAGER_EVENTS_H
37#define EVENTMANAGER_EVENTS_H
60#include <unordered_map>
117 std::unique_ptr<std::vector<Event> >
getEvents(
const std::vector<idNum> eventIds)
const ;
124 std::unique_ptr<std::vector<Event> >
getAllEvents()
const ;
141 std::unique_ptr<std::vector<Event> >
getEventsBetween(
int sampleStart,
int sampleEnd)
const ;
152 std::unique_ptr<std::vector<Event> >
getEventsBetween(
int sampleStart,
int sampleEnd,
idNum groupid)
const ;
163 std::unique_ptr<std::vector<Event> >
getEventsBetween(
int sampleStart,
int sampleEnd,
const std::vector<idNum>& groupIdsList)
const ;
179 std::unique_ptr<std::vector<Event> >
getEventsInGroups(
const std::vector<idNum>& groupIdsList)
const;
229 bool deleteEvents(std::unique_ptr<std::vector<Event> > eventIds);
259 std::unique_ptr<std::vector<EventGroup> >
getAllGroups()
const ;
267 std::unique_ptr<std::vector<EventGroup> >
getGroups(
const std::vector<idNum>& groupIds)
const ;
387 idNum generateNewEventId();
394 idNum generateNewGroupId();
409 bool eraseEvent(
idNum eventId);
417 std::multimap<int, EVENTSINTERNAL::EventINT>::const_iterator findEventINT(
idNum id)
const;
423 void createDefaultGroupIfNeeded();
425 std::multimap<int, EVENTSINTERNAL::EventINT> m_EventsListBySample;
426 std::unordered_map<idNum, int> m_MapIdToSample;
427 std::map<idNum, EVENTSINTERNAL::EventGroupINT> m_GroupsList;
430 std::unique_ptr<EVENTSINTERNAL::EventSharedMemManager> m_pSharedMemManager;
434 idNum m_iEventIdCounter;
435 idNum m_iGroupIdCounter;
436 bool m_bDefaultGroupNotCreated;
437 idNum m_DefaultGroupId;
448 return std::make_unique<std::vector<T> >();
458 auto v = std::make_unique<std::vector<T> >();
EventSharedMemManager definition.
event library export/import macros.
Event annotation management (creation, grouping, shared-memory transport).
std::unique_ptr< std::vector< T > > allocateOutputContainer() noexcept
Public event descriptor holding sample index, group membership, and unique identifier.
Internal event representation with sample position, group link, and unique ID used by EventManager.
Simple RGB triplet for color-coding event groups.
EventGroup class is designed as a data holder for a group. It is designed towards ease of use for a c...
std::unique_ptr< std::vector< Event > > getEventsInGroups(const std::vector< idNum > &groupIdsList) const
bool deleteGroup(const idNum groupId)
EventGroup getGroup(idNum groupId) const
EventGroup mergeGroups(const std::vector< idNum > &groupIds, const std::string &newName)
bool moveEvent(idNum eventId, int newSample)
bool addEventToGroup(const idNum eventId, const idNum groupId)
bool deleteEventsInGroup(idNum groupId)
EventGroup duplicateGroup(const idNum groupId, const std::string &newName)
EventGroup addGroup(const std::string &sGroupName)
bool deleteEvent(idNum eventId) noexcept
void renameGroup(const idNum groupId, const std::string &newName)
std::unique_ptr< std::vector< EventGroup > > getAllGroups() const
Event addEvent(int sample)
std::unique_ptr< std::vector< Event > > getEvents(const std::vector< idNum > eventIds) const
size_t getNumEvents() const
std::unique_ptr< std::vector< Event > > getAllEvents() const
bool deleteGroups(const std::vector< idNum > &groupIds)
void setGroupColor(const idNum groupId, const RgbColor &color)
bool deleteEvents(const std::vector< idNum > &eventIds)
bool isSharedMemoryInit()
Event getEvent(idNum eventId) const
bool addEventsToGroup(const std::vector< idNum > &eventIds, const idNum groupId)
std::unique_ptr< std::vector< EventGroup > > getGroups(const std::vector< idNum > &groupIds) const
std::unique_ptr< std::vector< Event > > getEventsBetween(int sampleStart, int sampleEnd) const
std::unique_ptr< std::vector< Event > > getEventsInSample(int sample) const
std::unique_ptr< std::vector< Event > > getEventsInGroup(const idNum groupId) const
Publishes and receives event change notifications between processes via a shared-memory ring buffer.