#ifndef CLIENTCORE_H #define CLIENTCORE_H #include #include #include #include #include #include #include #include #include class ClientCore : public QObject { Q_OBJECT public: ClientCore(QObject* parent = nullptr); ~ClientCore(); public: bool Connect(const QString& ip, quint16 port); void Disconnect(); bool Send(QSharedPointer frame); bool Send(const char* data, qint64 len); private: void onReadyRead(); void onDisconnected(); private: void UseFrame(QSharedPointer frame); public: void SetClientsCall(const std::function& call); void SetPathCall(const std::function& call); void SetFileCall(const std::function& call); void SetRemoteID(const QString& id); QString GetRemoteID(); public: QMutex conMutex_; QString ownID_; QString remoteID_; QTcpSocket* socket_; QByteArray recvBuffer_; std::function pathCall_; std::function clientsCall_; std::function fileCall_; }; #endif // CLIENTCORE_H