Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
#ifndef TFARMPROXY_H
Toshihiro Shimizu 890ddd
#define TFARMPROXY_H
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
#ifdef TFARMAPI
Toshihiro Shimizu 890ddd
#undef TFARMAPI
Toshihiro Shimizu 890ddd
#endif
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
#include <string></string>
Toshihiro Shimizu 890ddd
#include <vector></vector>
Toshihiro Shimizu 890ddd
using std::string;
Toshihiro Shimizu 890ddd
using std::vector;
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
#include "texception.h"
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
#ifdef WIN32
Toshihiro Shimizu 890ddd
#ifdef TFARM_EXPORTS
Toshihiro Shimizu 890ddd
#define TFARMAPI __declspec(dllexport)
Toshihiro Shimizu 890ddd
#else
Toshihiro Shimizu 890ddd
#define TFARMAPI __declspec(dllimport)
Toshihiro Shimizu 890ddd
#endif
Toshihiro Shimizu 890ddd
#else
Toshihiro Shimizu 890ddd
#define TFARMAPI
Toshihiro Shimizu 890ddd
#endif
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
//------------------------------------------------------------------------------
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
class TFARMAPI TFarmProxy
Toshihiro Shimizu 890ddd
{
Toshihiro Shimizu 890ddd
public:
Toshihiro Shimizu 890ddd
	TFarmProxy(const QString &hostName, const QString &addr, int port)
Toshihiro Shimizu 890ddd
		: m_hostName(hostName), m_addr(addr), m_port(port)
Toshihiro Shimizu 890ddd
	{
Toshihiro Shimizu 890ddd
	}
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
	virtual ~TFarmProxy() {}
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
	QString sendToStub(const QString &data);
Toshihiro Shimizu 890ddd
	static int extractArgs(const QString &s, vector<qstring> &argv);</qstring>
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
protected:
Toshihiro Shimizu 890ddd
	QString m_hostName;
Toshihiro Shimizu 890ddd
	QString m_addr;
Toshihiro Shimizu 890ddd
	int m_port;
Toshihiro Shimizu 890ddd
};
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
//------------------------------------------------------------------------------
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
class TFARMAPI TFarmProxyException : public TException
Toshihiro Shimizu 890ddd
{
Toshihiro Shimizu 890ddd
public:
Toshihiro Shimizu 890ddd
	TFarmProxyException(
Toshihiro Shimizu 890ddd
		const QString &hostname,
Toshihiro Shimizu 890ddd
		const QString &addr,
Toshihiro Shimizu 890ddd
		int port,
Toshihiro Shimizu 890ddd
		const QString &msg)
Toshihiro Shimizu 890ddd
		: TException(msg.toStdString()), m_hostName(hostname), m_address(addr), m_port(port) {}
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
	QString getHostName() const
Toshihiro Shimizu 890ddd
	{
Toshihiro Shimizu 890ddd
		return m_hostName;
Toshihiro Shimizu 890ddd
	}
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
	QString getAddress() const
Toshihiro Shimizu 890ddd
	{
Toshihiro Shimizu 890ddd
		return m_address;
Toshihiro Shimizu 890ddd
	}
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
	int getPort() const
Toshihiro Shimizu 890ddd
	{
Toshihiro Shimizu 890ddd
		return m_port;
Toshihiro Shimizu 890ddd
	}
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
protected:
Toshihiro Shimizu 890ddd
	QString m_hostName;
Toshihiro Shimizu 890ddd
	QString m_address;
Toshihiro Shimizu 890ddd
	int m_port;
Toshihiro Shimizu 890ddd
};
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
//------------------------------------------------------------------------------
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
class CantConnectToStub : public TFarmProxyException
Toshihiro Shimizu 890ddd
{
Toshihiro Shimizu 890ddd
public:
Toshihiro Shimizu 890ddd
	CantConnectToStub(
Toshihiro Shimizu 890ddd
		const QString &hostname,
Toshihiro Shimizu 890ddd
		const QString &addr,
Toshihiro Shimizu 890ddd
		int port) : TFarmProxyException(hostname, addr, port, "") {}
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
	TString getMessage() const;
Toshihiro Shimizu 890ddd
};
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
#endif