#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 : public TFarmProxyException
{
public:
CantConnectToStub(
const QString &hostname,
const QString &addr,
int port) : TFarmProxyException(hostname, addr, port, "") {}
TString getMessage() const;
};
#endif