b6b2996b76e1b0f0e403b4be40430a445bc0873c
Stefan Schuermans implemented operator connec...

Stefan Schuermans authored 12 years ago

1) /* Blinker
Stefan Schuermans update copyright years

Stefan Schuermans authored 10 years ago

2)    Copyright 2011-2014 Stefan Schuermans <stefan@blinkenarea.org>
Stefan Schuermans implemented operator connec...

Stefan Schuermans authored 12 years ago

3)    Copyleft GNU public license - http://www.gnu.org/copyleft/gpl.html
4)    a blinkenarea.org project */
5) 
6) #include <map>
7) #include <string>
8) 
9) #include "OpConn.h"
10) #include "OpConnIf.h"
11) #include "OpMgr.h"
12) #include "OpReqIf.h"
13) 
14) namespace Blinker {
15) 
16) /// constructor
17) OpMgr::OpMgr()
18) {
19) }
20) 
21) /// destructor
22) OpMgr::~OpMgr()
23) {
24) }
25) 
26) /**
27)  * @brief open operator interface
28)  * @param[in] name operator interface name
29)  * @param[in] pOpReqIf interface to call on incoming operator request
30)  * @return if operator interface could be opened
31)  */
32) bool OpMgr::open(const std::string &name, OpReqIf *pOpReqIf)
33) {
34)   if (m_reqIfs.find(name) != m_reqIfs.end())
35)     return false; // already open
36)   m_reqIfs[name] = pOpReqIf;
37)   return true;
38) }
39) 
40) /**
41)  * @brief close operator interface
42)  * @param[in] name operator interface name
43)  * @return if interface name was open before
44)  */
45) bool OpMgr::close(const std::string &name)
46) {
47)   ReqIfMap::iterator itReqIf = m_reqIfs.find(name);
48)   if (itReqIf == m_reqIfs.end())
49)     return false; // was not open
50)   m_reqIfs.erase(itReqIf);
51)   return true;
52) }
53) 
Stefan Schuermans implemented single mode for...

Stefan Schuermans authored 12 years ago

54) /**
55)  * @brief check if operator interface will accept new connection
56)  * @param[in] name operator interface to connect to
57)  * @return if a new connection would be accepted
58)  */
59) bool OpMgr::canConnect(const std::string &name)
60) {
61)   // find requested interface
62)   ReqIfMap::iterator itReqIf = m_reqIfs.find(name);
63)   if (itReqIf == m_reqIfs.end())
64)     return false; // not open
65) 
66)   // check with server side if new connection is accepted
67)   return itReqIf->second->acceptNewOpConn(name);
68) }
69)