//Java packages
import java.util.ArrayList;
//Thrift java libraries
import org.apache.thrift.TException;
import org.apache.thrift.protocol.TBinaryProtocol;
import org.apache.thrift.protocol.TProtocol;
import org.apache.thrift.transport.TFramedTransport;
import org.apache.thrift.transport.TSocket;
import org.apache.thrift.transport.TTransport;
//Generated code
import thrift.*;
/**
* A Calendar Client that get the upcoming events from Calendar Server and prints the results.
*/
public class CalendarClient {
public static void main(String [] args) {
// Collect the port number.
int port = 8084;
if (args.length == 1) {
port = Integer.parseInt(args[0]);
} else {
System.out.println("Using default port for Calendar Client: " + port);
}
// Query.
String LUCID = "Clinc";
String query_input_data = "What is on my Google calendar for last week?";
QueryInput query_input = new QueryInput();
query_input.type = "query";
query_input.data = new ArrayList<String>();
query_input.data.add(query_input_data);
QuerySpec query_spec = new QuerySpec();
query_spec.content = new ArrayList<QueryInput>();
query_spec.content.add(query_input);
// Initialize thrift objects.
// TTransport transport = new TSocket("clarity08.eecs.umich.edu", port);
TTransport transport = new TSocket("localhost", port);
TProtocol protocol = new TBinaryProtocol(new TFramedTransport(transport));
LucidaService.Client client = new LucidaService.Client(protocol);
try {
// Talk to the Calendar server.
transport.open();
System.out.println(query_input_data);
System.out.println("///// Connecting to Calendar... /////");
String results = client.infer(LUCID, query_spec);
System.out.println("///// Result: /////");
System.out.println(results);
transport.close();
} catch (TException e) {
e.printStackTrace();
}
return;
}
}