Blob Blame Raw


#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