org.apache.avro.ipc
Class Requestor

java.lang.Object
  extended by org.apache.avro.ipc.Requestor
Direct Known Subclasses:
GenericRequestor, SpecificRequestor

public abstract class Requestor
extends Object

Base class for the client side of a protocol interaction.


Nested Class Summary
protected  class Requestor.TransceiverCallback<T>
          Handles callbacks from transceiver invocations.
 
Field Summary
protected  List<RPCPlugin> rpcMetaPlugins
           
 
Constructor Summary
protected Requestor(Protocol local, Transceiver transceiver)
           
 
Method Summary
 void addRPCPlugin(RPCPlugin plugin)
          Adds a new plugin to manipulate RPC metadata.
 Protocol getLocal()
           
 Protocol getRemote()
          Return the remote protocol.
 Transceiver getTransceiver()
           
 Object readError(Schema schema, Decoder in)
          Deprecated. 
abstract  Exception readError(Schema writer, Schema reader, Decoder in)
          Reads an error message.
 Object readResponse(Schema schema, Decoder in)
          Deprecated. 
abstract  Object readResponse(Schema writer, Schema reader, Decoder in)
          Reads a response message.
 Object request(String messageName, Object request)
          Writes a request message and reads a response or error message.
<T> void
request(String messageName, Object request, Callback<T> callback)
          Writes a request message and returns the result through a Callback.
abstract  void writeRequest(Schema schema, Object request, Encoder out)
          Writes a request message.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

rpcMetaPlugins

protected final List<RPCPlugin> rpcMetaPlugins
Constructor Detail

Requestor

protected Requestor(Protocol local,
                    Transceiver transceiver)
             throws IOException
Throws:
IOException
Method Detail

getLocal

public Protocol getLocal()

getTransceiver

public Transceiver getTransceiver()

addRPCPlugin

public void addRPCPlugin(RPCPlugin plugin)
Adds a new plugin to manipulate RPC metadata. Plugins are executed in the order that they are added.

Parameters:
plugin - a plugin that will manipulate RPC metadata

request

public Object request(String messageName,
                      Object request)
               throws Exception
Writes a request message and reads a response or error message.

Throws:
Exception

request

public <T> void request(String messageName,
                        Object request,
                        Callback<T> callback)
             throws Exception
Writes a request message and returns the result through a Callback. Clients can also use a Future interface by creating a new CallFuture, passing it in as the Callback parameter, and then waiting on that Future.

Type Parameters:
T - the return type of the message.
Parameters:
messageName - the name of the message to invoke.
request - the request data to send.
callback - the callback which will be invoked when the response is returned or an error occurs.
Throws:
Exception - if an error occurs sending the message.

getRemote

public Protocol getRemote()
                   throws IOException
Return the remote protocol. Force a handshake if required.

Throws:
IOException

writeRequest

public abstract void writeRequest(Schema schema,
                                  Object request,
                                  Encoder out)
                           throws IOException
Writes a request message.

Throws:
IOException

readResponse

@Deprecated
public Object readResponse(Schema schema,
                                      Decoder in)
                    throws IOException
Deprecated. 

Throws:
IOException

readResponse

public abstract Object readResponse(Schema writer,
                                    Schema reader,
                                    Decoder in)
                             throws IOException
Reads a response message.

Throws:
IOException

readError

@Deprecated
public Object readError(Schema schema,
                                   Decoder in)
                 throws IOException
Deprecated. 

Throws:
IOException

readError

public abstract Exception readError(Schema writer,
                                    Schema reader,
                                    Decoder in)
                             throws IOException
Reads an error message.

Throws:
IOException


Copyright © 2011 The Apache Software Foundation. All Rights Reserved.