36 #ifndef EVENTMANAGER_EVENTS_H
37 #define EVENTMANAGER_EVENTS_H
54 #include <unordered_map>
68 namespace EVENTSINTERNAL {
69 class EventSharedMemManager;
93 size_t getNumEvents()
const;
101 Event getEvent(idNum eventId)
const;
109 std::unique_ptr<std::vector<Event> > getEvents(
const std::vector<idNum> eventIds)
const ;
116 std::unique_ptr<std::vector<Event> > getAllEvents()
const ;
124 std::unique_ptr<std::vector<Event> > getEventsInSample(
int sample)
const ;
133 std::unique_ptr<std::vector<Event> > getEventsBetween(
int sampleStart,
int sampleEnd)
const ;
144 std::unique_ptr<std::vector<Event> > getEventsBetween(
int sampleStart,
int sampleEnd, idNum groupid)
const ;
155 std::unique_ptr<std::vector<Event> > getEventsBetween(
int sampleStart,
int sampleEnd,
const std::vector<idNum>& groupIdsList)
const ;
163 std::unique_ptr<std::vector<Event> > getEventsInGroup(
const idNum groupId)
const;
171 std::unique_ptr<std::vector<Event> > getEventsInGroups(
const std::vector<idNum>& groupIdsList)
const;
179 Event addEvent(
int sample);
188 Event addEvent(
int sample, idNum groupId);
197 bool moveEvent(idNum eventId,
int newSample);
205 bool deleteEvent(idNum eventId) noexcept;
213 bool deleteEvents(
const std::vector<idNum>& eventIds);
221 bool deleteEvents(std::unique_ptr<std::vector<Event> > eventIds);
229 bool deleteEventsInGroup(idNum groupId);
236 int getNumGroups()
const;
251 std::unique_ptr<std::vector<EventGroup> > getAllGroups()
const ;
259 std::unique_ptr<std::vector<EventGroup> > getGroups(
const std::vector<idNum>& groupIds)
const ;
267 EventGroup addGroup(
const std::string& sGroupName);
284 bool deleteGroup(
const idNum groupId);
292 bool deleteGroups(
const std::vector<idNum>& groupIds);
300 void renameGroup(
const idNum groupId,
const std::string& newName);
308 void setGroupColor(
const idNum groupId,
const RgbColor& color);
317 EventGroup mergeGroups(
const std::vector<idNum>& groupIds,
const std::string& newName);
326 EventGroup duplicateGroup(
const idNum groupId,
const std::string& newName);
335 bool addEventToGroup(
const idNum eventId,
const idNum groupId);
344 bool addEventsToGroup(
const std::vector<idNum>& eventIds,
const idNum groupId);
351 void initSharedMemory();
358 void initSharedMemory(SharedMemoryMode mode);
364 void stopSharedMemory();
371 bool isSharedMemoryInit();
379 idNum generateNewEventId();
386 idNum generateNewGroupId();
401 bool eraseEvent(idNum eventId);
409 std::multimap<int, EVENTSINTERNAL::EventINT>::const_iterator findEventINT(idNum
id)
const;
415 void createDefaultGroupIfNeeded();
417 std::multimap<int, EVENTSINTERNAL::EventINT> m_EventsListBySample;
418 std::unordered_map<idNum, int> m_MapIdToSample;
419 std::map<idNum, EVENTSINTERNAL::EventGroupINT> m_GroupsList;
421 std::unique_ptr<EVENTSINTERNAL::EventSharedMemManager> m_pSharedMemManager;
423 idNum m_iEventIdCounter;
424 idNum m_iGroupIdCounter;
425 bool m_bDefaultGroupNotCreated;
426 idNum m_DefaultGroupId;
438 return std::make_unique<std::vector<T> >();
448 auto v = std::make_unique<std::vector<T> >();