/*
* Copyright (c) 2011 LinkedIn, Inc
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
package com.flaptor.indextank.rpc;
import java.util.List;
import org.apache.thrift.TException;
import org.apache.thrift.protocol.TBinaryProtocol;
import org.apache.thrift.protocol.TProtocol;
import org.apache.thrift.transport.TSocket;
import org.apache.thrift.transport.TTransportException;
public class FrontendManagerClient {
private final String host;
private final int port;
public FrontendManagerClient(String host, int port) {
this.host = host;
this.port = port;
}
public void saveInsight(String indexCode, String insightCode, String jsonValue) {
TSocket transport = new TSocket(host, port);
TProtocol protocol = new TBinaryProtocol(transport);
FrontendManager.Client client = new FrontendManager.Client(protocol);
try {
transport.open();
client.save_insight(indexCode, insightCode, jsonValue);
transport.close();
} catch (TTransportException e) {
throw new RuntimeException(e);
} catch (TException e) {
throw new RuntimeException(e);
}
}
public List<IndexInfo> listIndexes() {
TSocket transport = new TSocket(host, port);
TProtocol protocol = new TBinaryProtocol(transport);
FrontendManager.Client client = new FrontendManager.Client(protocol);
try {
transport.open();
List<IndexInfo> indexes = client.list_indexes();
transport.close();
return indexes;
} catch (TTransportException e) {
throw new RuntimeException(e);
} catch (TException e) {
throw new RuntimeException(e);
}
}
}