linuxdcpp-team team mailing list archive
-
linuxdcpp-team team
-
Mailing list archive
-
Message #07917
[Branch ~dcplusplus-team/dcplusplus/trunk] Rev 3393: Make Client::state atomic
------------------------------------------------------------
revno: 3393
committer: poy <poy@xxxxxxxxxx>
branch nick: trunk
timestamp: Tue 2014-01-21 23:52:40 +0100
message:
Make Client::state atomic
modified:
dcpp/Client.cpp
dcpp/Client.h
--
lp:dcplusplus
https://code.launchpad.net/~dcplusplus-team/dcplusplus/trunk
Your team Dcplusplus-team is subscribed to branch lp:dcplusplus.
To unsubscribe from this branch go to https://code.launchpad.net/~dcplusplus-team/dcplusplus/trunk/+edit-subscription
=== modified file 'dcpp/Client.cpp'
--- dcpp/Client.cpp 2013-07-31 21:46:23 +0000
+++ dcpp/Client.cpp 2014-01-21 22:52:40 +0000
@@ -192,6 +192,11 @@
sock->disconnect(graceLess);
}
+bool Client::isConnected() const {
+ State s = state;
+ return s != STATE_CONNECTING && s != STATE_DISCONNECTED;
+}
+
bool Client::isSecure() const {
return isConnected() && sock->isSecure();
}
=== modified file 'dcpp/Client.h'
--- dcpp/Client.h 2013-11-17 16:15:01 +0000
+++ dcpp/Client.h 2014-01-21 22:52:40 +0000
@@ -64,7 +64,7 @@
virtual void emulateCommand(const string& cmd) = 0;
virtual void send(const AdcCommand& command) = 0;
- bool isConnected() const { return state != STATE_CONNECTING && state != STATE_DISCONNECTED; }
+ bool isConnected() const;
bool isSecure() const;
bool isTrusted() const;
std::string getCipherName() const;
@@ -132,14 +132,15 @@
static atomic<long> counts[COUNT_UNCOUNTED];
- enum States {
+ enum State {
STATE_CONNECTING, ///< Waiting for socket to connect
STATE_PROTOCOL, ///< Protocol setup
STATE_IDENTIFY, ///< Nick setup
STATE_VERIFY, ///< Checking password
STATE_NORMAL, ///< Running
STATE_DISCONNECTED, ///< Nothing in particular
- } state;
+ };
+ atomic<State> state;
BufferedSocket *sock;