d1f6c4e95b
* add final specifiers * apply clang-format * fix for macOS
78 lines
1.7 KiB
C++
78 lines
1.7 KiB
C++
#pragma once
|
|
|
|
#ifndef TFARMPROXY_H
|
|
#define TFARMPROXY_H
|
|
|
|
#ifdef TFARMAPI
|
|
#undef TFARMAPI
|
|
#endif
|
|
|
|
#include <string>
|
|
#include <vector>
|
|
using std::string;
|
|
using std::vector;
|
|
|
|
#include "texception.h"
|
|
|
|
#ifdef _WIN32
|
|
#ifdef TFARM_EXPORTS
|
|
#define TFARMAPI __declspec(dllexport)
|
|
#else
|
|
#define TFARMAPI __declspec(dllimport)
|
|
#endif
|
|
#else
|
|
#define TFARMAPI
|
|
#endif
|
|
|
|
//------------------------------------------------------------------------------
|
|
|
|
class TFARMAPI TFarmProxy {
|
|
public:
|
|
TFarmProxy(const QString &hostName, const QString &addr, int port)
|
|
: m_hostName(hostName), m_addr(addr), m_port(port) {}
|
|
|
|
virtual ~TFarmProxy() {}
|
|
|
|
QString sendToStub(const QString &data);
|
|
static int extractArgs(const QString &s, vector<QString> &argv);
|
|
|
|
protected:
|
|
QString m_hostName;
|
|
QString m_addr;
|
|
int m_port;
|
|
};
|
|
|
|
//------------------------------------------------------------------------------
|
|
|
|
class TFARMAPI TFarmProxyException : public TException {
|
|
public:
|
|
TFarmProxyException(const QString &hostname, const QString &addr, int port,
|
|
const QString &msg)
|
|
: TException(msg.toStdString())
|
|
, m_hostName(hostname)
|
|
, m_address(addr)
|
|
, m_port(port) {}
|
|
|
|
QString getHostName() const { return m_hostName; }
|
|
|
|
QString getAddress() const { return m_address; }
|
|
|
|
int getPort() const { return m_port; }
|
|
|
|
protected:
|
|
QString m_hostName;
|
|
QString m_address;
|
|
int m_port;
|
|
};
|
|
|
|
//------------------------------------------------------------------------------
|
|
|
|
class CantConnectToStub final : public TFarmProxyException {
|
|
public:
|
|
CantConnectToStub(const QString &hostname, const QString &addr, int port)
|
|
: TFarmProxyException(hostname, addr, port, "") {}
|
|
|
|
TString getMessage() const override;
|
|
};
|
|
|
|
#endif
|