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

Stefan Schuermans authored 13 years ago

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

Stefan Schuermans authored 13 years ago

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

Stefan Schuermans authored 13 years ago

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

Stefan Schuermans authored 13 years ago

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

Stefan Schuermans authored 12 years ago

70) #endif // #ifndef BLINKER_STREAMMGR_H