comparison sources/network.cpp @ 7:8d54d9fdeca3

fixed comments removed daemonization verbose strings' size() -> length()
author Vlad Glagolev <enqlave@gmail.com>
date Sun, 03 Feb 2008 21:29:41 +0300
parents 9be05a31b7f9
children
comparison
equal deleted inserted replaced
6:9be05a31b7f9 7:8d54d9fdeca3
1 /** 1 /** network.cpp (2007-04-02)
2 * network.cpp (2007-04-02)
3 * 2 *
4 * -- CABAL -- network essentials (sockets, etc.) 3 * -- CABAL -- network essentials (sockets, etc.)
5 * 4 *
6 * Copyright (c) 2007-2008 Vlad Glagolev <enqlave@gmail.com> 5 * Copyright (c) 2007-2008 Vlad Glagolev <enqlave@gmail.com>
7 * All rights reserved. 6 * All rights reserved.
21 20
22 #include "cabal.hpp" // required: network.hpp 21 #include "cabal.hpp" // required: network.hpp
23 22
24 Network::Network() 23 Network::Network()
25 { 24 {
26 cout << "NETWORK: going online...\n"; 25 if (CABAL->debug)
26 cout << "NETWORK: going on-line...\n";
27 } 27 }
28 28
29 Network::~Network() 29 Network::~Network()
30 { 30 {
31 closeSocket(); 31 closeSocket();
32 32
33 cout << "NETWORK: offline\n"; 33 if (CABAL->debug)
34 cout << "NETWORK: off-line\n";
34 } 35 }
35 36
36 void Network::sendMsg(string m) 37 void Network::sendMsg(string m)
37 { 38 {
38 if (cs == -1) 39 if (cs == -1)
39 return; 40 return;
40 41
41 if (CABAL->debug) 42 if (CABAL->debug)
42 cout << "<- " << cs << " -- " << m << endl; 43 cout << "<- " << cs << " -- " << m << endl;
43 44
44 send(cs, (m + "\n").c_str(), (m + "\n").size(), 0); 45 send(cs, (m + "\n").c_str(), (m + "\n").length(), 0);
45 } 46 }
46 47
47 string Network::receiveMsg() 48 string Network::receiveMsg()
48 { 49 {
49 if (cs == -1) 50 if (cs == -1)
50 return 0; 51 return 0;
51 52
52 if (canRead(cs)) { 53 if (canRead(cs)) {
53 string sbuffer = ""; 54 string sbuffer;
54 char cbuffer; 55 char cbuffer;
55 56
56 int err = recv(cs, &cbuffer, 1, 0); 57 int err = recv(cs, &cbuffer, 1, 0);
57 58
58 if (err > 0) { 59 if (err > 0) {
59 sbuffer += cbuffer; 60 sbuffer += cbuffer;
60 61
61 while (1) { 62 while (1) {
62 if (sbuffer[sbuffer.size() - 1] == '\n') { 63 if (sbuffer[sbuffer.size() - 1] == '\n') {
63 sbuffer = (sbuffer.substr(0, 1) == ":") 64 sbuffer = (sbuffer.substr(0, 1) == ":")
64 ? sbuffer.substr(1, sbuffer.size() - 3) 65 ? sbuffer.substr(1, sbuffer.length() - 3)
65 : sbuffer.substr(0, sbuffer.size() - 2); 66 : sbuffer.substr(0, sbuffer.length() - 2);
66 67
67 if (CABAL->debug) 68 if (CABAL->debug)
68 cout << "-> " << cs << " -- " << sbuffer << endl; 69 cout << "-> " << cs << " -- " << sbuffer << endl;
69 70
70 return sbuffer; 71 return sbuffer;
205 setsockopt(cs, IPPROTO_TCP, TCP_NODELAY, (pchar)&parm, sizeof(parm)); 206 setsockopt(cs, IPPROTO_TCP, TCP_NODELAY, (pchar)&parm, sizeof(parm));
206 207
207 connected = false; 208 connected = false;
208 connecting = true; 209 connecting = true;
209 210
210 cout << "NETWORK: socket opened..........: " << cs << endl; 211 if (CABAL->debug)
212 cout << "NETWORK: socket opened..........: " << cs << endl;
211 213
212 return 1; 214 return 1;
213 } 215 }
214 216
215 bool Network::openHost() 217 bool Network::openHost()
242 } 244 }
243 245
244 connected = true; 246 connected = true;
245 connecting = false; 247 connecting = false;
246 248
247 cout << "NETWORK: socket connected.......: " << cs << endl; 249 if (CABAL->debug)
250 cout << "NETWORK: socket connected.......: " << cs << endl;
248 251
249 return 1; 252 return 1;
250 } 253 }
251 254
252 bool Network::closeSocket() 255 bool Network::closeSocket()