|
105 | 105 | <div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="keyword">namespace </span>MB::TCP {</div>
|
106 | 106 | <div class="foldopen" id="foldopen00021" data-start="{" data-end="};">
|
107 | 107 | <div class="line"><a id="l00021" name="l00021"></a><span class="lineno"><a class="line" href="classMB_1_1TCP_1_1Connection.html"> 21</a></span><span class="keyword">class </span><a class="code hl_class" href="classMB_1_1TCP_1_1Connection.html">Connection</a> {</div>
|
108 |
| -<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="keyword">public</span>:</div> |
109 |
| -<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> DefaultTCPTimeout = 500;</div> |
| 108 | +<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> <span class="keyword">public</span>:</div> |
| 109 | +<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> DefaultTCPTimeout = 500;</div> |
110 | 110 | <div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> </div>
|
111 |
| -<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span><span class="keyword">private</span>:</div> |
112 |
| -<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> <span class="keywordtype">int</span> _sockfd = -1;</div> |
113 |
| -<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> uint16_t _messageID = 0;</div> |
114 |
| -<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> <span class="keywordtype">int</span> _timeout = Connection::DefaultTCPTimeout;</div> |
| 111 | +<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> <span class="keyword">private</span>:</div> |
| 112 | +<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> <span class="keywordtype">int</span> _sockfd = -1;</div> |
| 113 | +<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> uint16_t _messageID = 0;</div> |
| 114 | +<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> <span class="keywordtype">int</span> _timeout = Connection::DefaultTCPTimeout;</div> |
115 | 115 | <div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> </div>
|
116 |
| -<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span><span class="keyword">public</span>:</div> |
117 |
| -<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> <span class="keyword">explicit</span> <a class="code hl_class" href="classMB_1_1TCP_1_1Connection.html">Connection</a>() noexcept : _sockfd(-1), _messageID(0){};</div> |
118 |
| -<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> <span class="keyword">explicit</span> <a class="code hl_class" href="classMB_1_1TCP_1_1Connection.html">Connection</a>(<span class="keywordtype">int</span> sockfd) <span class="keyword">noexcept</span>;</div> |
119 |
| -<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> <a class="code hl_class" href="classMB_1_1TCP_1_1Connection.html">Connection</a>(<span class="keyword">const</span> <a class="code hl_class" href="classMB_1_1TCP_1_1Connection.html">Connection</a> &copy) = <span class="keyword">delete</span>;</div> |
120 |
| -<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> <a class="code hl_class" href="classMB_1_1TCP_1_1Connection.html">Connection</a>(<a class="code hl_class" href="classMB_1_1TCP_1_1Connection.html">Connection</a> &&moved) <span class="keyword">noexcept</span>;</div> |
121 |
| -<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> <a class="code hl_class" href="classMB_1_1TCP_1_1Connection.html">Connection</a> &operator=(<a class="code hl_class" href="classMB_1_1TCP_1_1Connection.html">Connection</a> &&other) <span class="keyword">noexcept</span> {</div> |
122 |
| -<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> <span class="keywordflow">if</span> (<span class="keyword">this</span> == &other)</div> |
123 |
| -<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div> |
| 116 | +<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> <span class="keyword">public</span>:</div> |
| 117 | +<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> <span class="keyword">explicit</span> <a class="code hl_class" href="classMB_1_1TCP_1_1Connection.html">Connection</a>() noexcept : _sockfd(-1), _messageID(0) {};</div> |
| 118 | +<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> <span class="keyword">explicit</span> <a class="code hl_class" href="classMB_1_1TCP_1_1Connection.html">Connection</a>(<span class="keywordtype">int</span> sockfd) <span class="keyword">noexcept</span>;</div> |
| 119 | +<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> <a class="code hl_class" href="classMB_1_1TCP_1_1Connection.html">Connection</a>(<span class="keyword">const</span> <a class="code hl_class" href="classMB_1_1TCP_1_1Connection.html">Connection</a> &copy) = <span class="keyword">delete</span>;</div> |
| 120 | +<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> <a class="code hl_class" href="classMB_1_1TCP_1_1Connection.html">Connection</a>(<a class="code hl_class" href="classMB_1_1TCP_1_1Connection.html">Connection</a> &&moved) <span class="keyword">noexcept</span>;</div> |
| 121 | +<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> <a class="code hl_class" href="classMB_1_1TCP_1_1Connection.html">Connection</a> &operator=(<a class="code hl_class" href="classMB_1_1TCP_1_1Connection.html">Connection</a> &&other) <span class="keyword">noexcept</span> {</div> |
| 122 | +<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> <span class="keywordflow">if</span> (<span class="keyword">this</span> == &other)</div> |
| 123 | +<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div> |
124 | 124 | <div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> </div>
|
125 |
| -<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> <span class="keywordflow">if</span> (_sockfd != -1 && _sockfd != other._sockfd)</div> |
126 |
| -<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> ::close(_sockfd);</div> |
| 125 | +<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> <span class="keywordflow">if</span> (_sockfd != -1 && _sockfd != other._sockfd)</div> |
| 126 | +<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> ::close(_sockfd);</div> |
127 | 127 | <div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> </div>
|
128 |
| -<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> _sockfd = other._sockfd;</div> |
129 |
| -<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> _messageID = other._messageID;</div> |
130 |
| -<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> other._sockfd = -1;</div> |
| 128 | +<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> _sockfd = other._sockfd;</div> |
| 129 | +<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> _messageID = other._messageID;</div> |
| 130 | +<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> other._sockfd = -1;</div> |
131 | 131 | <div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> </div>
|
132 |
| -<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div> |
133 |
| -<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> }</div> |
| 132 | +<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div> |
| 133 | +<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> }</div> |
134 | 134 | <div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> </div>
|
135 |
| -<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> [[nodiscard]] <span class="keywordtype">int</span> getSockfd()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> _sockfd; }</div> |
| 135 | +<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> [[nodiscard]] <span class="keywordtype">int</span> getSockfd()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> _sockfd; }</div> |
136 | 136 | <div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> </div>
|
137 |
| -<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> <span class="keyword">static</span> <a class="code hl_class" href="classMB_1_1TCP_1_1Connection.html">Connection</a> with(std::string addr, <span class="keywordtype">int</span> port);</div> |
| 137 | +<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> <span class="keyword">static</span> <a class="code hl_class" href="classMB_1_1TCP_1_1Connection.html">Connection</a> with(std::string addr, <span class="keywordtype">int</span> port);</div> |
138 | 138 | <div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> </div>
|
139 |
| -<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> <a class="code hl_class" href="classMB_1_1TCP_1_1Connection.html">~Connection</a>();</div> |
| 139 | +<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> <a class="code hl_class" href="classMB_1_1TCP_1_1Connection.html">~Connection</a>();</div> |
140 | 140 | <div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> </div>
|
141 |
| -<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> std::vector<uint8_t> sendRequest(<span class="keyword">const</span> <a class="code hl_class" href="classMB_1_1ModbusRequest.html">MB::ModbusRequest</a> &req);</div> |
142 |
| -<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> std::vector<uint8_t> sendResponse(<span class="keyword">const</span> <a class="code hl_class" href="classMB_1_1ModbusResponse.html">MB::ModbusResponse</a> &res);</div> |
143 |
| -<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> std::vector<uint8_t> sendException(<span class="keyword">const</span> <a class="code hl_class" href="classMB_1_1ModbusException.html">MB::ModbusException</a> &ex);</div> |
| 141 | +<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> std::vector<uint8_t> sendRequest(<span class="keyword">const</span> <a class="code hl_class" href="classMB_1_1ModbusRequest.html">MB::ModbusRequest</a> &req);</div> |
| 142 | +<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> std::vector<uint8_t> sendResponse(<span class="keyword">const</span> <a class="code hl_class" href="classMB_1_1ModbusResponse.html">MB::ModbusResponse</a> &res);</div> |
| 143 | +<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> std::vector<uint8_t> sendException(<span class="keyword">const</span> <a class="code hl_class" href="classMB_1_1ModbusException.html">MB::ModbusException</a> &ex);</div> |
144 | 144 | <div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> </div>
|
145 |
| -<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> [[nodiscard]] <a class="code hl_class" href="classMB_1_1ModbusRequest.html">MB::ModbusRequest</a> awaitRequest();</div> |
146 |
| -<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> [[nodiscard]] <a class="code hl_class" href="classMB_1_1ModbusResponse.html">MB::ModbusResponse</a> awaitResponse();</div> |
| 145 | +<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> [[nodiscard]] <a class="code hl_class" href="classMB_1_1ModbusRequest.html">MB::ModbusRequest</a> awaitRequest();</div> |
| 146 | +<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> [[nodiscard]] <a class="code hl_class" href="classMB_1_1ModbusResponse.html">MB::ModbusResponse</a> awaitResponse();</div> |
147 | 147 | <div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> </div>
|
148 |
| -<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> [[nodiscard]] std::vector<uint8_t> awaitRawMessage();</div> |
| 148 | +<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> [[nodiscard]] std::vector<uint8_t> awaitRawMessage();</div> |
149 | 149 | <div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> </div>
|
150 |
| -<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> [[nodiscard]] uint16_t getMessageId()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> _messageID; }</div> |
| 150 | +<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> [[nodiscard]] uint16_t getMessageId()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> _messageID; }</div> |
151 | 151 | <div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> </div>
|
152 |
| -<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> <span class="keywordtype">void</span> setMessageId(uint16_t messageId) { _messageID = messageId; }</div> |
| 152 | +<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> <span class="keywordtype">void</span> setMessageId(uint16_t messageId) { _messageID = messageId; }</div> |
153 | 153 | <div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span>};</div>
|
154 | 154 | </div>
|
155 | 155 | <div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span>} <span class="comment">// namespace MB::TCP</span></div>
|
|
0 commit comments