a6ca6fcf90177b3a068ccbdb1e864aecd06604c3
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) 
Stefan Schuermans namespace for preprocessor...

Stefan Schuermans authored 12 years ago

6) #ifndef BLINKER_STREAMMGR_H
7) #define BLINKER_STREAMMGR_H
Stefan Schuermans first version, plays videos...

Stefan Schuermans authored 13 years ago

8) 
9) #include <map>
10) #include <string>
11) 
12) #include "Stream.h"
13) 
14) namespace Blinker {
15) 
16) /// stream manager
17) class StreamMgr
18) {
19) protected:
20)   /// stream map entry
21)   struct Entry {
22)     Stream       m_stream; ///< the stream
23)     unsigned int m_refCnt; ///< reference count
24)     Entry(); ///< constructor
25)   };
26) 
27)   /// map of streams
28)   typedef std::map<std::string, Entry> StreamMap;
29) 
30) public:
31)   /// constructor
32)   StreamMgr();
33) 
34)   /// destructor
35)   ~StreamMgr();
36) 
37) private:
38)   /// copy constructor disabled
Stefan Schuermans whitespace fixes

Stefan Schuermans authored 13 years ago

39)   StreamMgr(const StreamMgr &that);
Stefan Schuermans first version, plays videos...

Stefan Schuermans authored 13 years ago

40) 
41)   /// assignment operator disabled
Stefan Schuermans implemented base class for...

Stefan Schuermans authored 13 years ago

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

Stefan Schuermans authored 13 years ago

43) 
44) public:
45)   /**
46)    * @brief reference stream
47)    * @param[in] name stream name
48)    * @return stream
49)    *
50)    * if the stream does not exists, it is created
51)    */
52)   Stream & refStream(const std::string &name);
53) 
54)   /**
55)    * @brief unreference stream
56)    * @param[in] name stream name
57)    *
58)    * if the last reference is removed, the stream is deleted
59)    */
60)   void unrefStream(const std::string &name);
61) 
62) protected:
63)   /// map of streams
64)   StreamMap m_streams;
65) }; // class StreamMgr
66) 
67) } // namespace Blinker
68) 
Stefan Schuermans namespace for preprocessor...

Stefan Schuermans authored 12 years ago

69) #endif // #ifndef BLINKER_STREAMMGR_H