public class TCPReaderProxy extends Object implements IReaderProxy
IReaderProxy interface available to be
used by readers that want to access an IBuffer made available by a writer
that is not necessarily collocated in the same JVM as they are. This proxy enables access
to a local or remote host through a raw TCP connectionIProxy.ProxyTypeProxyScheme, ProxyStoreScheme| Constructor and Description |
|---|
TCPReaderProxy() |
| Modifier and Type | Method and Description |
|---|---|
void |
fromLocator(URI locator)
Populates an instance of the
IReaderProxy implementer with the information
provided through the specific locator URI |
IBuffer |
getBuffer()
|
String |
getHostname()
Retrieves the hostname where the
TCPWriterProxy is located and is serving the consumed IBuffer |
int |
getPort()
Retrieves the port that the
TCPWriterProxy is using to serve the consumed IBuffer |
static boolean |
isOfType(URI locator)
Checks if the provided URI is of a type that can be managed by an instance of this class.
|
void |
overrideBufferCapacity(int capacity)
After the proxy has been initialized, this method can be used to provide a hint to the
IReaderProxy to use a capacity different than that of the producer's buffer. |
public String getHostname()
TCPWriterProxy is located and is serving the consumed IBufferpublic int getPort()
TCPWriterProxy is using to serve the consumed IBufferpublic void fromLocator(URI locator) throws GRS2ProxyInvalidOperationException, GRS2ProxyInvalidArgumentException
IReaderProxy implementer with the information
provided through the specific locator URI
This method parses the provided URI to retrieve the needed information. An example of the URI
this proxy can manage is grs2-proxy://foo.bar.gr:53361?key=272b934d-e796-4c30-944c-44ec2aec7eb7#TCP
fromLocator in interface IReaderProxyGRS2ProxyInvalidOperationException - if the proxy has already been initializedGRS2ProxyInvalidArgumentException - if the provided locator is null or empty, or the parsed information is not validIReaderProxy.fromLocator(java.net.URI)public void overrideBufferCapacity(int capacity)
throws GRS2ProxyInvalidOperationException
IReaderProxy to use a capacity different than that of the producer's buffer.
Whether or not this hint is taken into account depends on the IReaderProxy implementation.
For example, it is highly unlikely that it will be honored in cases when both the producer and
the consumer run into the same address space.
Instructs the TCPReaderMirror that will be initialized in a subsequent operation to override its buffer capacityoverrideBufferCapacity in interface IReaderProxyGRS2ProxyInvalidOperationException - if the operation is performed after buffer initializationIReaderProxy.overrideBufferCapacity(int)public IBuffer getBuffer() throws GRS2ProxyInvalidOperationException
IBuffer that
can be used by the reader to access the writer side IBuffer can be retrieved
Initializes a TCPReaderMirror to handle the reader side mirroring procedure. The mirror is set with the
information available to the proxy, using the TCPReaderMirror.setKey(String), TCPReaderMirror.setPort(int)
and TCPReaderMirror.setHostname(String) and then the TCPReaderMirror.handle() method is invoked. The proxy
waits for the mirroring procedure to be initialized blocking using TCPReaderMirror.waitInitialization() and if
there was any error during the initialization procedure, it is retrieved and thrown using TCPReaderMirror.getInitializationError().
After this procedure is completed, the mirroring procedure continues in the TCPReaderMirror thread of execution. The
returned IBuffer is the one available though TCPReaderMirror.getBuffer() and is populated from TCPReaderMirror
getBuffer in interface IReaderProxyIBuffer that is serving the readerGRS2ProxyInvalidOperationException - if the provided locator that populated this instance has not set the needed parametersIReaderProxy.getBuffer()public static boolean isOfType(URI locator)
grs2-proxy://foo.bar.gr:53361?key=272b934d-e796-4c30-944c-44ec2aec7eb7#TCPlocator - the locator URi that needs to be checkedCopyright © 2014. All Rights Reserved.