Class Assembly.DynamicData
- java.lang.Object
-
- com.automation_pros.odva.cip.types.CipTree
-
- com.automation_pros.odva.cip.types.CipTreeCtx
-
- com.automation_pros.odva.cip.types.CipObject
-
- com.automation_pros.odva.cip.core.CipAttribute
-
- com.automation_pros.odva.cip.types.ConnectableAttr
-
- com.automation_pros.odva.cip.application.Assembly.DynamicData
-
- All Implemented Interfaces:
DataContext
,Connectable
,DataWrapper
- Enclosing class:
- Assembly
protected static class Assembly.DynamicData extends ConnectableAttr
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class com.automation_pros.odva.cip.types.ConnectableAttr
ConnectableAttr.AttrConsumer
-
Nested classes/interfaces inherited from class com.automation_pros.odva.cip.core.CipAttribute
CipAttribute.Proxy
-
Nested classes/interfaces inherited from class com.automation_pros.odva.cip.types.CipObject
CipObject.FutureMultipleReply
-
Nested classes/interfaces inherited from class com.automation_pros.odva.cip.types.CipTree
CipTree.ChildMap
-
-
Field Summary
Fields Modifier and Type Field Description protected CipObject
approot
-
Fields inherited from class com.automation_pros.odva.cip.types.ConnectableAttr
cipseq, owner, subscribers
-
Fields inherited from class com.automation_pros.odva.cip.types.CipTree
children, objEPath, parent, segment
-
Fields inherited from interface com.automation_pros.odva.cip.data.DataContext
emptyContext
-
-
Constructor Summary
Constructors Constructor Description DynamicData()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description int
bytes()
AppConsumer
connect(AppOwner owner, ConxClass.CxParams params, byte dirtrigcls)
This method requests that the given connection be assigned as the owner of this object and an appropriate AppConsumer shim be created to handle the incoming data.BaseDataType<?>
getData()
Many CIP objects wrap a CIP data type.Assembly
getParent()
void
put(java.nio.ByteBuffer dest)
void
resetWrapped()
void
service(CipObject appContext, CipRequest request, int nesting)
Execute a CIP service on the object, using the request supplied.void
set(java.nio.ByteBuffer source)
CipObject
setParent(CipTree parent)
Set or remove the parent of this CipTree, possibly removing this object from a previous parent before assigning to the new parent.-
Methods inherited from class com.automation_pros.odva.cip.types.ConnectableAttr
config, disconnect, disconnectSubscribers, getOwner, payloadBytes, shutdown, subscribe, txFresh, txTrigger, unsubscribe
-
Methods inherited from class com.automation_pros.odva.cip.core.CipAttribute
compareTo, getHolder, intValue, isReadOnly, number, putType, setData
-
Methods inherited from class com.automation_pros.odva.cip.types.CipObject
executor, getChild, getDevice, getDisplayName, getName, isShutdown, logger, onReplacement, removeChildSymbol, scheduler, setChild, setChildSymbol, setName, toString
-
Methods inherited from class com.automation_pros.odva.cip.types.CipTreeCtx
getCtxDataImpl, getNamedDef, getParentDataCtx, getTypeByCRC, getTypeByName, getTypesImpl
-
Methods inherited from class com.automation_pros.odva.cip.types.CipTree
cleanup, entrySet, follow, getChildren, getEPath, getEPathImpl, getSegment, keySet, removeChild, setSegment
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface com.automation_pros.odva.cip.data.DataContext
fromEnum, getCtxData, getCtxDataOrNull, getTypes, makeHosted, makeUnhosted, toEnum
-
-
-
-
Field Detail
-
approot
protected CipObject approot
-
-
Method Detail
-
resetWrapped
public void resetWrapped()
-
getData
public BaseDataType<?> getData()
Description copied from interface:DataWrapper
Many CIP objects wrap a CIP data type. This interface allows the member resolver to access fragments of complex wrapped data in a uniform way.- Specified by:
getData
in interfaceDataWrapper
- Overrides:
getData
in classCipAttribute
- Returns:
-
setParent
public CipObject setParent(CipTree parent)
Description copied from class:CipTree
Set or remove the parent of this CipTree, possibly removing this object from a previous parent before assigning to the new parent. Override this method if additional housekeeping is required when assigning or removing parents.
-
connect
public AppConsumer connect(AppOwner owner, ConxClass.CxParams params, byte dirtrigcls)
Description copied from interface:Connectable
This method requests that the given connection be assigned as the owner of this object and an appropriate AppConsumer shim be created to handle the incoming data. Application Consumer objects handle data flow from connections to application objects. The providedAppOwner
instance includes appropriate buffer handling, including removal/use of CIP short sequence numbers and originator idle/run mode indicators. This class's shutdown() method is used to disconnect.- Specified by:
connect
in interfaceConnectable
- Overrides:
connect
in classConnectableAttr
dirtrigcls
- Direction/Trigger/Class combination to use.- Returns:
-
bytes
public int bytes()
- Overrides:
bytes
in classCipAttribute
-
set
public void set(java.nio.ByteBuffer source)
- Overrides:
set
in classCipAttribute
-
put
public void put(java.nio.ByteBuffer dest)
- Overrides:
put
in classCipAttribute
-
service
public void service(CipObject appContext, CipRequest request, int nesting)
Description copied from class:CipObject
Execute a CIP service on the object, using the request supplied. Supply a reply to the request and/or throw an appropriate CipException. Replies are not required before this routine returns.
Direct service() calls MUST NOT BLOCK. Any operation that will take any significant time must be delegated to an executor. "Significant" may vary by application, but typically would be in the fractional millisecond range.
- Overrides:
service
in classCipAttribute
- Parameters:
appContext
- Root object for application path lookups. Generally aMirrored Device
from a port context.request
- What to do and where to reply. Services to be handled by child objects are to be passed to their service() method with nesting+1.nesting
- How many leading path segments items to skip when processing this request. Avoids copying the balance of an application path into a new request when passing a request to a child object.
-
-