587ae25b84177c5af73d1794bba555c6643b39bd
Stefan Schuermans sender static destination n...

Stefan Schuermans authored 12 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_SENDERDEST_IMPL_H
7) #define BLINKER_SENDERDEST_IMPL_H
Stefan Schuermans sender static destination n...

Stefan Schuermans authored 12 years ago

8) 
9) #include <string>
10) 
11) #include "Directory.h"
12) #include "File.h"
13) #include "Module.h"
14) #include "Sender.h"
15) #include "SenderDest.h"
16) #include "SettingFile.h"
17) 
18) namespace Blinker {
19) 
20) /**
21)  * @brief constructor
22)  * @param[in] sender owning sender object
Stefan Schuermans converted sender to use lis...

Stefan Schuermans authored 12 years ago

23)  * @param[in] name destination name
Stefan Schuermans sender static destination n...

Stefan Schuermans authored 12 years ago

24)  * @param[in] dirBase base directory
25)  */
26) template<typename ADDR, typename SOCK>
Stefan Schuermans converted sender to use lis...

Stefan Schuermans authored 12 years ago

27) Sender<ADDR, SOCK>::Dest::Dest(Sender &sender, const std::string &name,
28)                                const Directory &dirBase):
Stefan Schuermans sender static destination n...

Stefan Schuermans authored 12 years ago

29)   m_sender(sender),
Stefan Schuermans converted sender to use lis...

Stefan Schuermans authored 12 years ago

30)   m_name(name),
Stefan Schuermans sender static destination n...

Stefan Schuermans authored 12 years ago

31)   m_fileAddr(dirBase.getFile("addr")),
Stefan Schuermans converted sender to use lis...

Stefan Schuermans authored 12 years ago

32)   m_pData(&sender.m_noFrameData)
Stefan Schuermans sender static destination n...

Stefan Schuermans authored 12 years ago

33) {
34)   // set up
35)   getAddr();
36) }
37) 
38) /// destructor
39) template<typename ADDR, typename SOCK>
40) Sender<ADDR, SOCK>::Dest::~Dest()
41) {
42)   // send "no frame" protocol data to old address
Stefan Schuermans converted sender to use lis...

Stefan Schuermans authored 12 years ago

43)   send(&m_sender.m_noFrameData);
Stefan Schuermans sender static destination n...

Stefan Schuermans authored 12 years ago

44) }
45) 
46) /// check for update of configuration
47) template<typename ADDR, typename SOCK>
48) void Sender<ADDR, SOCK>::Dest::updateConfig()
49) {
50)   // address file was modified -> re-get address
51)   if (m_fileAddr.checkModified())
52)     getAddr();
53) }
54) 
55) /**
56)  * @brief set current protocol data
Stefan Schuermans simplified sender module a...

Stefan Schuermans authored 12 years ago

57)  * @param[in] pData protocol data to send to address (empty if unknown)
Stefan Schuermans sender static destination n...

Stefan Schuermans authored 12 years ago

58)  */
59) template<typename ADDR, typename SOCK>
60) void Sender<ADDR, SOCK>::Dest::setProtoData(const std::string *pData)
61) {
62)   // remember new data
63)   m_pData = pData;
64) 
65)   // send new protocol data to current address
66)   send(m_pData);
67) }
68) 
69) /// (re-)get address
70) template<typename ADDR, typename SOCK>
71) void Sender<ADDR, SOCK>::Dest::getAddr()
72) {
73)   std::string strAddr;
74) 
75)   // send "no frame" protocol data to old address
Stefan Schuermans converted sender to use lis...

Stefan Schuermans authored 12 years ago

76)   send(&m_sender.m_noFrameData);
Stefan Schuermans sender static destination n...

Stefan Schuermans authored 12 years ago

77) 
Stefan Schuermans implemented specialized set...

Stefan Schuermans authored 12 years ago

78)   // get new address from file
79)   m_fileAddr.update();
Stefan Schuermans sender static destination n...

Stefan Schuermans authored 12 years ago

80) 
81)   // send current protocol data to new address
82)   send(m_pData);
83) }
84) 
85) /**
86)  * @brief send protocol data to address
Stefan Schuermans simplified sender module a...

Stefan Schuermans authored 12 years ago

87)  * @param[in] pData protocol data to send to address (empty if unknown)
Stefan Schuermans sender static destination n...

Stefan Schuermans authored 12 years ago

88)  */
89) template<typename ADDR, typename SOCK>
90) void Sender<ADDR, SOCK>::Dest::send(const std::string *pData)
91) {
Stefan Schuermans implemented specialized set...

Stefan Schuermans authored 12 years ago

92)   if (m_sender.m_pSock && m_fileAddr.m_valid && !pData->empty())
93)     m_sender.m_pSock->send(*pData, m_fileAddr.m_obj);
Stefan Schuermans sender static destination n...

Stefan Schuermans authored 12 years ago

94) }
95) 
96) } // namespace Blinker
97) 
Stefan Schuermans namespace for preprocessor...

Stefan Schuermans authored 12 years ago

98) #endif // #ifndef BLINKER_SENDERDEST_IMPL_H