package com.nncao.tweet;
/** A class to handle tweets from clients
* @author Michael Cao
* @version 2014-06-19
*/
public class TweetImp implements Twitter.Iface {
@Override
public boolean postTweet( Tweet tweet ) {
//you can write this tweet to db or what
System.out.print( tweet.getUserId() + "\t" );
System.out.print( tweet.getUserName() + "\t" );
System.out.print( tweet.getText() + "\n");
return true;
}
}
package com.nncao.tweet;
import org.apache.thrift.TProcessor;
import org.apache.thrift.protocol.TBinaryProtocol;
import org.apache.thrift.server.TServer;
import org.apache.thrift.server.TThreadPoolServer;
import org.apache.thrift.transport.TServerSocket;
import org.apache.thrift.transport.TTransportException;
/** A class to starts the server and provides service
* @author Michael Cao
* @version 2014-06-19
*/
public class TweetServer{
public static void main( String [] args ) {
try {
TServerSocket serverSocket = new TServerSocket( 32586 );
TProcessor processor = new Twitter.Processor( new TweetImp());
TThreadPoolServer.Args threadArgs = new TThreadPoolServer.Args(serverSocket);
TBinaryProtocol.Factory factory = new TBinaryProtocol.Factory();
threadArgs.processor(processor);
threadArgs.protocolFactory(factory);
threadArgs.maxWorkerThreads( 10 );
TServer server = new TThreadPoolServer( threadArgs );
System.out.println( "Server is serving ... ");
server.serve();
} catch (TTransportException e ) {
System.out.println("error: " + e);
System.exit(-1);
}
}
}