11 #include <QtNetwork/QTcpSocket>
12 #include <QtNetwork/QHostAddress>
31 throw logic_error(
"TCPInput::instance(): The instance of the base class is already initialized");
39 :
InputBase(ringbuffer,ratemeter,loadmeter,parent)
51 socket.connectToHost(s.
value(
"Server",
"localhost").toString(),
52 s.
value(
"Port",9090).toUInt());
53 if (socket.waitForConnected(s.
value(
"SocketConnectionTimout_ms",1000).toInt()))
55 Log::add(
Log::INFO,
string(
"TCPInput::connectToServer: (Re)Connected to server '") +
56 socket.peerAddress().toString().toStdString() +
57 "' on port '" +
toString(socket.peerPort()) +
"'");
64 s.
value(
"Server",
"localhost").toString().toStdString() +
66 "', because of error '" + socket.errorString().toStdString() +
69 sleep(s.
value(
"WaitUntilReconnectionTry_s",5).toUInt());
78 if (socket.state() != QAbstractSocket::ConnectedState)
85 while (socket.bytesAvailable() < datasize)
89 if (!socket.waitForReadyRead(
_timeout) && (socket.state() != QAbstractSocket::ConnectedState))
105 string functiontype(s.
value(
"DataType",
"agat").toString().toStdString());
117 if (!
dataAvailable(socket, static_cast<qint64>(
sizeof(quint32))))
126 const bool dataCompressed(payloadSize & 0x80000000);
128 payloadSize &= 0x7FFFFFFF;
129 payloadSize -=
sizeof(quint32);
140 buffer = qUncompress(tmp);
144 buffer.
resize(payloadSize);
160 deserialize(stream,*rbItem->element);
167 ": skipping rest of data");
class calculating a rate in Hz.
sleep(unsigned long secs)
status_t _status
the internal status of the thread
static TCPStreamer & instance()
return a reference to the derefenced instance
readRawData(char *s, int len)
file contains custom exceptions used in cass
static void add(Level level, const std::string &line)
add a string to the log
A Ringbuffer, handles communication between Input and Worker Threads.
contains base class for all tcp streamers
bool shouldQuit() const
query whether this thread is told to quit
base class for all tcp streamers
std::string toString(const Type &t)
convert any type to a string
value(const QString &key, const QVariant &defaultValue=QVariant()
setByteOrder(ByteOrder bo)
file contains specialized class that do the settings for cass
void pausePoint()
point where the thread will be paused
Exception thrown when there is a problem with deserializing QDataStreams.
contains a logger for cass
beginGroup(const QString &prefix)