Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
#if (!(defined(x64) || defined(__LP64__)))
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
//Toonz includes
Toshihiro Shimizu 890ddd
#include "tiio_std.h"
Toshihiro Shimizu 890ddd
#include "tnzimage.h"
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
//Qt includes
Toshihiro Shimizu 890ddd
#include <qcoreapplication></qcoreapplication>
Toshihiro Shimizu 890ddd
#include <qthread></qthread>
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
//tipc includes
Toshihiro Shimizu 890ddd
#include "tipcmsg.h"
Toshihiro Shimizu 890ddd
#include "tipcsrv.h"
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
//Specific Parsers includes
Toshihiro Shimizu 890ddd
#include "t32movmsg.h"
Toshihiro Shimizu 890ddd
#include "t323gpmsg.h"
Toshihiro Shimizu 890ddd
#include "t32fontmsg.h"
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
//************************************************************************
Toshihiro Shimizu 890ddd
//    Server Thread
Toshihiro Shimizu 890ddd
//************************************************************************
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
class ServerThread : public QThread
Toshihiro Shimizu 890ddd
{
Toshihiro Shimizu 890ddd
	QString m_srvName;
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
public:
Toshihiro Shimizu 890ddd
	ServerThread(const QString &srvName) : m_srvName(srvName) {}
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
	void run()
Toshihiro Shimizu 890ddd
	{
Toshihiro Shimizu 890ddd
		//Start a local server receiving connections on the specified key
Toshihiro Shimizu 890ddd
		tipc::Server server;
Toshihiro Shimizu 890ddd
		mov_io::addParsers(&server);
Toshihiro Shimizu 890ddd
		_3gp_io::addParsers(&server);
Toshihiro Shimizu 890ddd
#ifdef MACOSX
Toshihiro Shimizu 890ddd
		font_io::addParsers(&server);
Toshihiro Shimizu 890ddd
#endif
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
		//Start listening on supplied key
Toshihiro Shimizu 890ddd
		bool ok = server.listen(m_srvName);
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
		exec();
Toshihiro Shimizu 890ddd
	}
Toshihiro Shimizu 890ddd
};
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
//************************************************************************
Toshihiro Shimizu 890ddd
//    Main server implementation
Toshihiro Shimizu 890ddd
//************************************************************************
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
int main(int argc, char *argv[])
Toshihiro Shimizu 890ddd
{
Toshihiro Shimizu 890ddd
	if (argc < 2) //The server key name must be passed
Toshihiro Shimizu 890ddd
		return -1;
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
	QCoreApplication a(argc, argv);
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
	Tiio::defineStd();
Toshihiro Shimizu 890ddd
	initImageIo();
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
	QString srvName(QString::fromUtf8(argv[1]));
Toshihiro Shimizu 890ddd
	QString mainSrvName(srvName + "_main");
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
	QLocalServer::removeServer(srvName);
Toshihiro Shimizu 890ddd
	QLocalServer::removeServer(mainSrvName);
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
	//Start a separate thread to host most of the event processing
Toshihiro Shimizu 890ddd
	ServerThread *srvThread = new ServerThread(srvName);
Toshihiro Shimizu 890ddd
	srvThread->start();
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
	//Start a server on the main thread too - this one to host
Toshihiro Shimizu 890ddd
	//commands that need to be explicitly performed on the main thread
Toshihiro Shimizu 890ddd
	tipc::Server server;
Toshihiro Shimizu 890ddd
	mov_io::addParsers(&server);
Toshihiro Shimizu 890ddd
	_3gp_io::addParsers(&server);
Toshihiro Shimizu 890ddd
#ifdef MACOSX
Toshihiro Shimizu 890ddd
	font_io::addParsers(&server);
Toshihiro Shimizu 890ddd
#endif
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
	//Start listening on supplied key
Toshihiro Shimizu 890ddd
	bool ok = server.listen(srvName + "_main");
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
	a.exec();
Toshihiro Shimizu 890ddd
}
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
#else
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
int main(int argc, char *argv[])
Toshihiro Shimizu 890ddd
{
Toshihiro Shimizu 890ddd
	return 0;
Toshihiro Shimizu 890ddd
}
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
#endif // !x64 && !__LP64__