logog
logger optimized for games
node.hpp
Go to the documentation of this file.
1 
5 #ifndef __LOGOG_NODE_HPP__
6 #define __LOGOG_NODE_HPP__
7 
8 namespace logog
9 {
12 class Node;
13 
17 typedef LOGOG_SET< Node *, std::less< Node * >, Allocator< Node * > > NodesType;
18 
22 class LockableNodesType : public NodesType, public Mutex
23 {
24 public:
29 };
30 
31 extern LockableNodesType &GetStaticNodes( void ** pvLocation );
32 
36 extern LockableNodesType &AllNodes();
37 
42 
47 
50 
51 class Node : public Object
52 {
53 public:
54 
56  Node();
57 
58  ~Node();
59 
67  virtual void Initialize();
68 
70  virtual bool CanPublish() const;
72  virtual bool CanSubscribe() const;
74  virtual bool CanSubscribeTo( const Node & );
75 
77  virtual bool IsTopic() const;
78 
83  virtual bool PublishTo( Node &subscriber );
84 
86  virtual bool PublishToMultiple( LockableNodesType &nodes );
87 
92  virtual bool UnpublishTo( Node &subscriber );
93 
95  virtual bool UnpublishToMultiple( LockableNodesType &nodes );
96 
101  virtual bool SubscribeTo( Node &publisher );
102 
104  virtual bool SubscribeToMultiple( LockableNodesType &nodes );
105 
106 
111  virtual bool UnsubscribeTo( Node &publisher );
112 
114  virtual bool UnsubscribeToMultiple( LockableNodesType &nodes );
115 
116  void Clear();
117 
118 
121 
124 
125 protected:
128 
131 };
132 
133 extern void DestroyNodesList( void **pvList );
134 
138 extern void DestroyAllNodes();
139 
140 }
141 
142 #endif // __LOGOG_NODE_HPP_
virtual bool IsTopic() const
virtual void Initialize()
[Thread]
Definition: api.hpp:8
Definition: node.hpp:51
Definition: object.hpp:99
LockableNodesType & AllNodes()
LockableNodesType & GetStaticNodes(void **pvLocation)
virtual bool CanPublish() const
LOGOG_SET< Node *, std::less< Node * >, Allocator< Node * > > NodesType
Definition: node.hpp:12
[Mutex]
Definition: mutex.hpp:48
virtual bool PublishTo(Node &subscriber)
void * m_pUserData1
Definition: node.hpp:120
LockableNodesType & operator=(const LockableNodesType &other)
virtual bool UnsubscribeTo(Node &publisher)
Definition: node.hpp:22
LockableNodesType m_Subscribers
Definition: node.hpp:127
void * m_pUserData2
Definition: node.hpp:123
LockableNodesType & AllFilters()
LockableNodesType & AllSubscriberNodes()
virtual bool UnpublishTo(Node &subscriber)
void Clear()
virtual bool PublishToMultiple(LockableNodesType &nodes)
LockableNodesType m_Publishers
Definition: node.hpp:130
LockableNodesType & AllTargets()
void DestroyNodesList(void **pvList)
void DestroyAllNodes()
virtual bool UnsubscribeToMultiple(LockableNodesType &nodes)
virtual bool CanSubscribeTo(const Node &)
virtual bool SubscribeTo(Node &publisher)
Definition: object.hpp:47
virtual bool UnpublishToMultiple(LockableNodesType &nodes)
virtual bool CanSubscribe() const
virtual bool SubscribeToMultiple(LockableNodesType &nodes)