salsa  0.4.0
Distributor.cc
1 #include "Distributor.hh"
2 namespace Salsa {
3 Distributor::Distributor(std::string uuid, std::shared_ptr<Socket> pipe, NodeManager * pNodeMan)
4  : Object(), mUUID(uuid), mpPipe(pipe), mpNodeManager(pNodeMan)
5 {
9 }
11 {
15  delete mpNodeInfo;
16 }
17 
18 void Distributor::addClient(std::string uuid, std::string type)
19 {
23  mClients.emplace(uuid, type);
24 }
25 
26 void Distributor::removeClient(std::string uuid)
27 {
31  mClients.erase(uuid);
32 }
33 
34 void Distributor::addOther(std::string uuid, std::string type)
35 {
39  mOthers.emplace(uuid, type);
40 }
41 
42 void Distributor::removeOther(std::string uuid)
43 {
47  mOthers.erase(uuid);
48 }
49 
50 void Distributor::print() const
51 {
55  SPD_DEBUG("clients [{}] others [{}] pipe [{}]", mClients.size(), mOthers.size(), static_cast<void *>(mpPipe.get()));
56 }
57 
58 void Distributor::onEnter(Message * /*inMsg*/, std::vector<std::string> & /*out*/, std::string /*type*/)
59 {
63 }
64 void Distributor::onExit(Message * /*inMsg*/, std::vector<std::string> & /*out*/)
65 {
69 }
70 void Distributor::onWhisper(Message * /*inMsg*/, std::vector<std::string> & /*out*/)
71 {
75 }
76 
77 std::shared_ptr<Socket> Distributor::pipe() const
78 {
82  return mpPipe;
83 }
84 std::string Distributor::uuid() const
85 {
89  return std::move(mUUID);
90 }
91 
92 NodeInfo * Distributor::nodeInfo() const
93 {
97  return mpNodeInfo;
98 }
99 
100 } // namespace Salsa
std::string mUUID
Self UUID.
Definition: Distributor.hh:49
NodeInfo * nodeInfo() const
Definition: Distributor.cc:92
Base Message class.
Definition: Message.hh:15
virtual void onEnter(Message *pInMsg, std::vector< std::string > &out, std::string type)
TODO Three horsemen of apocalypse.
Definition: Distributor.cc:58
void addOther(std::string uuid, std::string type)
Definition: Distributor.cc:34
std::shared_ptr< Socket > mpPipe
Pipe for messages (net connector)
Definition: Distributor.hh:50
NodeManager class.
Definition: NodeManager.hh:22
std::map< std::string, std::string > mOthers
List of others.
Definition: Distributor.hh:52
std::map< std::string, std::string > mClients
List of clients.
Definition: Distributor.hh:51
virtual void onWhisper(Message *pInMsg, std::vector< std::string > &out)
Definition: Distributor.cc:70
virtual void onExit(Message *pInMsg, std::vector< std::string > &out)
Definition: Distributor.cc:64
std::shared_ptr< Socket > pipe() const
TODO Returns distributor's pipe?
Definition: Distributor.cc:77
NodeInfo * mpNodeInfo
Node Info.
Definition: Distributor.hh:54
void print() const
TODO Prints distributor's state.
Definition: Distributor.cc:50
std::string uuid() const
Returns distributor's UUID.
Definition: Distributor.cc:84
virtual ~Distributor()
Definition: Distributor.cc:10
Distributor(std::string uuid, std::shared_ptr< Socket > pPipe, NodeManager *pNM)
Definition: Distributor.cc:3
Base Salsa Object class.
Definition: Object.hh:15
void addClient(std::string uuid, std::string type)
Definition: Distributor.cc:18
void removeClient(std::string uuid)
Definition: Distributor.cc:26
void removeOther(std::string uuid)
Definition: Distributor.cc:42