12 |
|
|
13 |
LSCPClient::LSCPClient() : |
LSCPClient::LSCPClient() : |
14 |
Thread(false, false, 1, -1), |
Thread(false, false, 1, -1), |
15 |
hSocket(-1), m_callback(NULL), |
hSocket(-1), m_callback(NULL), m_errorCallback(NULL), |
16 |
m_multiLineExpected(false), m_multiLineComplete(false) |
m_multiLineExpected(false), m_multiLineComplete(false) |
17 |
{ |
{ |
18 |
} |
} |
135 |
m_callback = fn; |
m_callback = fn; |
136 |
} |
} |
137 |
|
|
138 |
|
void LSCPClient::setErrorCallback(Callback_t fn) { |
139 |
|
m_errorCallback = fn; |
140 |
|
} |
141 |
|
|
142 |
optional<String> LSCPClient::receiveLine() { |
optional<String> LSCPClient::receiveLine() { |
143 |
if (!isConnected()) return optional<String>::nothing; |
if (!isConnected()) return optional<String>::nothing; |
144 |
for (char c; true; ) { |
for (char c; true; ) { |
177 |
|
|
178 |
if (m_sync.GetUnsafe()) m_sync.Set(false); |
if (m_sync.GetUnsafe()) m_sync.Set(false); |
179 |
else if (m_callback) (*m_callback)(this); |
else if (m_callback) (*m_callback)(this); |
180 |
} |
} else if (m_errorCallback) (*m_errorCallback)(this); |
181 |
TestCancel(); |
TestCancel(); |
182 |
} |
} |
183 |
return 0; // just to avoid a warning with some old compilers |
return 0; // just to avoid a warning with some old compilers |