#pragma once // stl includes #include // Qt includes #include #include // jsoncpp includes #include // util includes #include class JsonClientConnection : public QObject { Q_OBJECT public: JsonClientConnection(QTcpSocket * socket); ~JsonClientConnection(); signals: void connectionClosed(JsonClientConnection * connection); private slots: void readData(); void socketClosed(); private: void handleMessage(const std::string & message); void handleNotImplemented(const Json::Value & message); void sendMessage(const Json::Value & message); void sendErrorReply(const std::string & error); private: QTcpSocket * _socket; JsonSchemaChecker _schemaChecker; QByteArray _receiveBuffer; };