add: spdlog and basic client code.
This commit is contained in:
25
ClientCore/CMakeLists.txt
Normal file
25
ClientCore/CMakeLists.txt
Normal file
@@ -0,0 +1,25 @@
|
||||
cmake_minimum_required(VERSION 3.16)
|
||||
|
||||
project(ClientCore LANGUAGES CXX)
|
||||
|
||||
set(CMAKE_AUTOUIC ON)
|
||||
set(CMAKE_AUTOMOC ON)
|
||||
set(CMAKE_AUTORCC ON)
|
||||
|
||||
set(CMAKE_CXX_STANDARD 11)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
|
||||
find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Core Network)
|
||||
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Core Network)
|
||||
|
||||
set(SOURCES
|
||||
ClientCore.cpp
|
||||
ClientCore.h
|
||||
)
|
||||
|
||||
add_library(ClientCore STATIC ${SOURCES})
|
||||
target_link_libraries(ClientCore PRIVATE Protocol
|
||||
Qt${QT_VERSION_MAJOR}::Core
|
||||
Qt${QT_VERSION_MAJOR}::Network
|
||||
)
|
||||
target_include_directories(ClientCore PUBLIC ${CMAKE_CURRENT_LIST_DIR})
|
||||
30
ClientCore/ClientCore.cpp
Normal file
30
ClientCore/ClientCore.cpp
Normal file
@@ -0,0 +1,30 @@
|
||||
#include "ClientCore.h"
|
||||
|
||||
#include <QDebug>
|
||||
|
||||
ClientCore::ClientCore(QObject* parent) : QObject(parent)
|
||||
{
|
||||
}
|
||||
|
||||
ClientCore::~ClientCore()
|
||||
{
|
||||
}
|
||||
|
||||
bool ClientCore::Connect(const QString& ip, quint16 port)
|
||||
{
|
||||
QMutexLocker locker(&conMutex_);
|
||||
if (!locker.isLocked()) {
|
||||
qWarning() << QString(tr("%1:%2 already connecting...")).arg(ip).arg(port);
|
||||
return false;
|
||||
}
|
||||
socket_->connectToHost(ip, port);
|
||||
if (!socket_->waitForConnected(3000)) {
|
||||
qCritical() << QString(tr("%1:%2 connect failed...")).arg(ip).arg(port);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
void ClientCore::Disconnect()
|
||||
{
|
||||
}
|
||||
35
ClientCore/ClientCore.h
Normal file
35
ClientCore/ClientCore.h
Normal file
@@ -0,0 +1,35 @@
|
||||
#ifndef CLIENTCORE_H
|
||||
#define CLIENTCORE_H
|
||||
|
||||
#include <Protocol.h>
|
||||
#include <QDataStream>
|
||||
#include <QHostAddress>
|
||||
#include <QMutex>
|
||||
#include <QMutexLocker>
|
||||
#include <QTcpSocket>
|
||||
#include <QThread>
|
||||
|
||||
class ClientCore : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
ClientCore(QObject* parent = nullptr);
|
||||
~ClientCore();
|
||||
|
||||
public:
|
||||
bool Connect(const QString& ip, quint16 port);
|
||||
void Disconnect();
|
||||
|
||||
public:
|
||||
QTcpSocket* socket_;
|
||||
QMutex conMutex_;
|
||||
// QSharedPointer<ClientUserInterface> cf;
|
||||
|
||||
std::function<void(const QString& path)> pathCall_;
|
||||
|
||||
QString remoteID_;
|
||||
QByteArray recvBuffer_;
|
||||
};
|
||||
|
||||
#endif // CLIENTCORE_H
|
||||
Reference in New Issue
Block a user