summaryrefslogtreecommitdiffstats
path: root/src/main/java/org/openslx/imagemaster/thrift/server/BinaryListener.java
blob: ebacbfc4bb7b1ef60073f433810e633ed8dfe5db (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
package org.openslx.imagemaster.thrift.server;

import org.apache.log4j.Logger;
import org.apache.thrift.protocol.TProtocolFactory;
import org.apache.thrift.server.THsHaServer;
import org.apache.thrift.server.TServer;
import org.apache.thrift.transport.TNonblockingServerSocket;
import org.apache.thrift.transport.TNonblockingServerTransport;
import org.apache.thrift.transport.TTransportException;
import org.openslx.imagemaster.thrift.iface.ImageServer;

public class BinaryListener implements Runnable
{
	private static Logger log = Logger.getLogger( BinaryListener.class );

	@Override
	public void run()
	{
		final ImageServerHandler handler = new ImageServerHandler();
		final ImageServer.Processor<ImageServerHandler> processor = new ImageServer.Processor<ImageServerHandler>( handler );
		final TProtocolFactory protFactory = new TBinaryProtocolSafe.Factory( true, true );
		final TNonblockingServerTransport transport;
		try {
			transport = new TNonblockingServerSocket( 9090 );
		} catch ( TTransportException e ) {
			log.fatal( "Could not listen on port 9090" );
			return;
		}
		THsHaServer.Args args = new THsHaServer.Args( transport ).protocolFactory( protFactory ).processor( processor ).workerThreads( 8 );
		args.maxReadBufferBytes = 30l * 1000l * 1000l;
		TServer server = new THsHaServer( args );
		log.info( "Starting Binary Thrift" );
		server.serve();
		System.exit(1);
	}

}