afef9feb034178690a03f8947bb39b1c36e92313
Stefan Schuermans first version, plays videos...

Stefan Schuermans authored 13 years ago

1) /* Blinker
2)    Copyright 2011 Stefan Schuermans <stefan@blinkenarea.org>
3)    Copyleft GNU public license - http://www.gnu.org/copyleft/gpl.html
4)    a blinkenarea.org project */
5) 
6) #ifndef CALLMGR_H
7) #define CALLMGR_H
8) 
9) #include <map>
10) #include <set>
11) 
Stefan Schuermans extended call manager to su...

Stefan Schuermans authored 13 years ago

12) #include "Io.h"
13) #include "IoCallee.h"
Stefan Schuermans first version, plays videos...

Stefan Schuermans authored 13 years ago

14) #include "Time.h"
15) #include "TimeCallee.h"
16) 
17) namespace Blinker {
18) 
19) /// callback manager, calls back at certain time or events
20) class CallMgr
21) {
22) protected:
Stefan Schuermans extended call manager to su...

Stefan Schuermans authored 13 years ago

23)   /// set of I/O callees to call for a certain I/O object
24)   typedef std::set<IoCallee *> IoCallees;
25)   /// what set of I/O callees to call for a certain I/O object
26)   typedef std::map<Io *, IoCallees> IoMap;
27) 
Stefan Schuermans first version, plays videos...

Stefan Schuermans authored 13 years ago

28)   /// set of time callees to call at a certain time
29)   typedef std::set<TimeCallee *> TimeCallees;
30)   /// what set of time callees to call at a certain time
31)   typedef std::map<Time, TimeCallees> TimeMap;
32)   /// when to call a time callee
33)   typedef std::map<TimeCallee *, Time> TimeCalleeMap;
34) 
35) public:
36)   /// constructor
37)   CallMgr();
38) 
39)   /// destructor
40)   ~CallMgr();
41) 
42) private:
43)   /// copy constructor disabled
Stefan Schuermans extended call manager to su...

Stefan Schuermans authored 13 years ago

44)   CallMgr(const CallMgr &that);
Stefan Schuermans first version, plays videos...

Stefan Schuermans authored 13 years ago

45) 
46)   /// assignment operator disabled
Stefan Schuermans implemented base class for...

Stefan Schuermans authored 13 years ago

47)   const CallMgr & operator=(const CallMgr &that);
Stefan Schuermans first version, plays videos...

Stefan Schuermans authored 13 years ago

48) 
49) public:
Stefan Schuermans extended call manager to su...

Stefan Schuermans authored 13 years ago

50)   /**
51)    * @brief cancel callback at read I/O event
52)    * @param[in] callee whom not to call
53)    * @param[in] io I/O object not to monitor for readability any more
54)    */
55)   void cancelIoReadCall(IoCallee *callee, Io *io);
56) 
57)   /**
58)    * @brief request callback at read I/O event
59)    * @param[in] callee whom to call
60)    * @param[in] io I/O object to monitor for readability
61)    */
62)   void requestIoReadCall(IoCallee *callee, Io *io);
63) 
64)   /**
65)    * @brief cancel callback at write I/O event
66)    * @param[in] callee whom not to call
67)    * @param[in] io I/O object not to monitor for writability any more
68)    */
69)   void cancelIoWriteCall(IoCallee *callee, Io *io);
70) 
71)   /**
72)    * @brief request callback at write I/O event
73)    * @param[in] callee whom to call
74)    * @param[in] io I/O object to monitor for writability
75)    */
76)   void requestIoWriteCall(IoCallee *callee, Io *io);
77) 
Stefan Schuermans first version, plays videos...

Stefan Schuermans authored 13 years ago

78)   /**
79)    * @brief cancel callback at certain time
80)    * @param[in] callee whom not to call
81)    */
82)   void cancelTimeCall(TimeCallee *callee);
83) 
84)   /**
85)    * @brief request callback at certain time
86)    * @param[in] callee whom to call
87)    * @param[in] time when to call
88)    *
89)    * this cancels a previous time call request from callee
90)    */
91)   void requestTimeCall(TimeCallee *callee, const Time &time);
92) 
93)   /// run call manager
94)   void run();
95) 
96) protected:
Stefan Schuermans extended call manager to su...

Stefan Schuermans authored 13 years ago

97)   /// what I/O callees to call for readability on a certain I/O object
98)   IoMap m_iosRead;
99)   /// what I/O callees to call for writability on a certain I/O object
100)   IoMap m_iosWrite;
101)