/*
* Copyright 2012 NGDATA nv
*
* 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 org.lilyproject.repository.remote;
import java.io.IOException;
import java.net.InetSocketAddress;
import org.apache.avro.ipc.NettyTransceiver;
import org.apache.avro.ipc.specific.SpecificRequestor;
import org.lilyproject.avro.AvroLily;
import org.lilyproject.avro.NettyTransceiverFactory;
/**
* Encapsulates combined creation of Transceiver and AvroLily into a single
* object for simplified construction and testing of Avro repository IPC.
*/
public class AvroLilyTransceiver {
private NettyTransceiver transceiver;
private AvroLily lilyProxy;
public AvroLilyTransceiver(InetSocketAddress address) throws IOException {
this(address, false);
}
public AvroLilyTransceiver(InetSocketAddress address, boolean keepAlive) throws IOException {
transceiver = NettyTransceiverFactory.create(address, keepAlive);
lilyProxy = SpecificRequestor.getClient(AvroLily.class, transceiver);
}
public NettyTransceiver getTransceiver() {
return transceiver;
}
public AvroLily getLilyProxy() {
return lilyProxy;
}
}