public class ChannelImpl<T> extends java.lang.Object implements Channel<T>, TransportClient
| Modifier and Type | Field and Description |
|---|---|
protected java.util.concurrent.atomic.AtomicReference<AccessRights> |
accessRights |
protected org.epics.ca.impl.ChannelImpl.AccessRightsStatefullEventSource |
accessRightsEventSource |
protected java.util.Map<org.epics.ca.impl.ChannelImpl.AccessRightsListener,java.util.function.BiConsumer<Channel<T>,AccessRights>> |
accessRightsListeners |
protected boolean |
allowCreation |
protected java.lang.Class<T> |
channelType |
protected int |
cid |
protected java.util.concurrent.atomic.AtomicReference<java.util.concurrent.CompletableFuture<Channel<T>>> |
connectFuture |
protected java.util.Map<org.epics.ca.impl.ChannelImpl.ConnectionListener,java.util.function.BiConsumer<Channel<T>,java.lang.Boolean>> |
connectionListeners |
protected java.util.concurrent.atomic.AtomicReference<ConnectionState> |
connectionState |
protected org.epics.ca.impl.ChannelImpl.ConnectionStateStatefullEventSource |
connectionStateEventSource |
protected java.util.concurrent.atomic.AtomicBoolean |
connectIssueed |
protected ContextImpl |
context |
protected int |
INVALID_SID |
protected java.lang.String |
name |
protected int |
nativeElementCount |
protected int |
priority |
protected java.util.Map<java.lang.String,java.lang.Object> |
properties |
protected IntHashMap<ResponseRequest> |
responseRequests |
protected int |
sid |
protected java.util.concurrent.atomic.AtomicReference<java.lang.Object> |
timerIdRef |
protected TCPTransport |
transport |
protected TypeSupports.TypeSupport<T> |
typeSupport |
| Constructor and Description |
|---|
ChannelImpl(ContextImpl context,
java.lang.String name,
java.lang.Class<T> channelType,
int priority) |
| Modifier and Type | Method and Description |
|---|---|
Listener |
addAccessRightListener(java.util.function.BiConsumer<Channel<T>,AccessRights> handler) |
Listener |
addConnectionListener(java.util.function.BiConsumer<Channel<T>,java.lang.Boolean> handler) |
<MT extends Metadata<T>> |
addMonitor(java.lang.Class<? extends Metadata> clazz,
java.util.function.Consumer<MT> handler,
int mask) |
Monitor<T> |
addValueMonitor(java.util.function.Consumer<? super T> handler,
int mask) |
void |
close() |
Channel<T> |
connect() |
java.util.concurrent.CompletableFuture<Channel<T>> |
connectAsync() |
void |
connectionCompleted(int sid,
short typeCode,
int elementCount)
Called when channel created succeeded on the server.
|
protected TCPTransport |
connectionRequiredCheck() |
void |
createChannel(TCPTransport transport,
int sid,
short typeCode,
int elementCount)
Create a channel, i.e.
|
void |
createChannelFailed() |
void |
disconnect(boolean reconnect) |
boolean |
generateSearchRequestMessage(Transport transport,
java.nio.ByteBuffer buffer)
Send search message.
|
T |
get() |
<MT extends Metadata<T>> |
get(java.lang.Class<? extends Metadata> clazz) |
AccessRights |
getAccessRights() |
java.util.concurrent.CompletableFuture<T> |
getAsync() |
<MT extends Metadata<T>> |
getAsync(java.lang.Class<? extends Metadata> clazz) |
int |
getCID() |
int |
getConnectionLossId() |
ConnectionState |
getConnectionState() |
java.lang.String |
getName() |
int |
getNativeElementCount() |
int |
getPriority() |
java.util.Map<java.lang.String,java.lang.Object> |
getProperties() |
int |
getSID() |
java.lang.Object |
getTimerId() |
TCPTransport |
getTransport() |
TypeSupports.TypeSupport<T> |
getTypeSupport() |
void |
initiateSearch()
Initiate search (connect) procedure.
|
void |
put(T value) |
java.util.concurrent.CompletableFuture<Status> |
putAsync(T value) |
void |
putNoWait(T value) |
void |
registerResponseRequest(ResponseRequest responseRequest)
Register a response request.
|
void |
resubscribeSubscriptions(Transport transport) |
void |
setAccessRights(AccessRights rights) |
void |
setAccessRights(int rightsCode) |
void |
setConnectionState(ConnectionState state) |
void |
setTimerId(java.lang.Object timerId) |
void |
transportClosed()
Notification of forcefully closed transport.
|
void |
unregisterResponseRequest(ResponseRequest responseRequest)
Unregister a response request.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitaddMonitor, addValueMonitorprotected final ContextImpl context
protected final java.lang.String name
protected final java.lang.Class<T> channelType
protected final int priority
protected final int cid
protected final int INVALID_SID
protected int sid
protected TCPTransport transport
protected final java.util.Map<java.lang.String,java.lang.Object> properties
protected final java.util.concurrent.atomic.AtomicReference<ConnectionState> connectionState
protected final java.util.concurrent.atomic.AtomicReference<AccessRights> accessRights
protected final IntHashMap<ResponseRequest> responseRequests
protected final TypeSupports.TypeSupport<T> typeSupport
protected final java.util.concurrent.atomic.AtomicBoolean connectIssueed
protected final java.util.concurrent.atomic.AtomicReference<java.util.concurrent.CompletableFuture<Channel<T>>> connectFuture
protected boolean allowCreation
protected volatile int nativeElementCount
protected final java.util.Map<org.epics.ca.impl.ChannelImpl.ConnectionListener,java.util.function.BiConsumer<Channel<T>,java.lang.Boolean>> connectionListeners
protected final java.util.Map<org.epics.ca.impl.ChannelImpl.AccessRightsListener,java.util.function.BiConsumer<Channel<T>,AccessRights>> accessRightsListeners
protected final java.util.concurrent.atomic.AtomicReference<java.lang.Object> timerIdRef
protected final org.epics.ca.impl.ChannelImpl.AccessRightsStatefullEventSource accessRightsEventSource
protected final org.epics.ca.impl.ChannelImpl.ConnectionStateStatefullEventSource connectionStateEventSource
public ChannelImpl(ContextImpl context, java.lang.String name, java.lang.Class<T> channelType, int priority)
public void close()
public ConnectionState getConnectionState()
getConnectionState in interface Channel<T>public int getConnectionLossId()
public AccessRights getAccessRights()
getAccessRights in interface Channel<T>public int getCID()
public int getSID()
public java.util.concurrent.CompletableFuture<Channel<T>> connectAsync()
connectAsync in interface Channel<T>public Listener addConnectionListener(java.util.function.BiConsumer<Channel<T>,java.lang.Boolean> handler)
addConnectionListener in interface Channel<T>public Listener addAccessRightListener(java.util.function.BiConsumer<Channel<T>,AccessRights> handler)
addAccessRightListener in interface Channel<T>public java.util.concurrent.CompletableFuture<T> getAsync()
public <MT extends Metadata<T>> java.util.concurrent.CompletableFuture<MT> getAsync(java.lang.Class<? extends Metadata> clazz)
public Monitor<T> addValueMonitor(java.util.function.Consumer<? super T> handler, int mask)
addValueMonitor in interface Channel<T>public <MT extends Metadata<T>> Monitor<MT> addMonitor(java.lang.Class<? extends Metadata> clazz, java.util.function.Consumer<MT> handler, int mask)
addMonitor in interface Channel<T>public java.util.Map<java.lang.String,java.lang.Object> getProperties()
getProperties in interface Channel<T>public void setTimerId(java.lang.Object timerId)
public java.lang.Object getTimerId()
public void initiateSearch()
public void createChannel(TCPTransport transport, int sid, short typeCode, int elementCount)
sid, typeCode, elementCount might not be
valid, this depends on protocol revision.transport - the transport.sid - the CA server ID.typeCode - the CA DBR typecode.elementCount - the number of elements to be associated with each CA get/put/monitor operation.public void setAccessRights(int rightsCode)
public void setAccessRights(AccessRights rights)
public void setConnectionState(ConnectionState state)
protected TCPTransport connectionRequiredCheck()
public void resubscribeSubscriptions(Transport transport)
public void connectionCompleted(int sid,
short typeCode,
int elementCount)
throws java.lang.IllegalStateException
sid might not be valid, this depends on protocol revision.sid - the CA server ID.typeCode - the CA DBR typecode.elementCount - the number of elements to be associated with each CA get/put/monitor operation.java.lang.IllegalStateException - if the channel was in an unexpected stated.public void createChannelFailed()
public boolean generateSearchRequestMessage(Transport transport, java.nio.ByteBuffer buffer)
transport - the transport.buffer - the buffer to send.public TCPTransport getTransport()
public int getPriority()
public int getNativeElementCount()
public void transportClosed()
TransportClienttransportClosed in interface TransportClientpublic void disconnect(boolean reconnect)
public void registerResponseRequest(ResponseRequest responseRequest)
responseRequest - response request to register.public void unregisterResponseRequest(ResponseRequest responseRequest)
responseRequest - response request to unregister.public TypeSupports.TypeSupport<T> getTypeSupport()