IReadableSharedArea.AreaRead (METH) ¶ METHOD AreaRead : __XWORD Returns a new reference to the shared memory area. IF itfStringRef <> 0 THEN itfStringRef.AreaDispose (); itfStringRef := 0 ; pString := 0 ; END_IF pString := saString.AreaRead ( itfSharedAreaRef => itfStringRef , eErrorID => eErrorID ); IF eErrorID = SHD.ERROR.NO_ERROR THEN (* do some work with the data *) END_IF InOut: Scope Name Type Comment Return AreaRead __XWORD Pointer to the beginning of the shared memory area. Output itfSharedAreaRef ISharedAreaRef eErrorID Error
BufferPool (FB) ¶ FUNCTION_BLOCK FINAL BufferPool EXTENDS FBF.InstanceBase IMPLEMENTS IBufferPool InOut: Scope Name Type Initial Input Const udiBufferSize UDINT UDINT#16#FFFFFFFF Methods: SetInitialValue ObjectDispose ObjectRelease ObjectRetain PoolGetBuffer Structure: IBufferPool PoolGetBuffer (Method) IDisposable ObjectDispose (Method) ObjectRelease (Method) ObjectRetain (Method) SetInitialValue (Method)
IBufferPool ¶ PoolGetBuffer (Method)
ISharedArea.AreaCurrentCapacity (PROP) ¶ PROPERTY AreaCurrentCapacity : UDINT How many reference are currently left? Use this information to decide whether the ISharedArea.AreaIncreaseCapacity method should be called at an appropriate point in time.
BufferPool.PoolGetBuffer (METH) ¶ METHOD FINAL PoolGetBuffer : __XWORD InOut: Scope Name Type Return PoolGetBuffer __XWORD Output itfBuffer IBuffer eErrorID ERROR
ERROR (ENUM) ¶ TYPE ERROR : Attributes: qualified_only InOut: Name Initial NO_ERROR END_OF_BUFFER 2 NO_MEMORY NOT_FROM_A_POOL WRONG_CONFIGURATION WRONG_PARAMETER WRONG_OPERATION
Function Blocks ¶ SharedQueue (FunctionBlock) IAreaObserver AreaWritten (Method) IInstance Dispose (Method) ISharedQueue Dequeue (Method) Enqueue (Method) SharedQueueFactoryArgs (FunctionBlock) SharedQueueFactoryBase (FunctionBlock) Create (Method) prvInstCount (Property) prvInstSize (Property)
Function Blocks ¶ Buffer Function Blocks Buffer (FunctionBlock) IBuffer AppendSegmentData (Method) ChainBuffer (Method) CopyBufferData (Method) GetBufferSize (Method) GetSegmentDataPointer (Method) InsertBuffer (Method) MoveToBufferOffset (Method) MoveToNextSegment (Method) SliceBuffer (Method) IDisposable ObjectDispose (Method) ObjectRelease (Method) ObjectRetain (Method) SetDisposable (Method) SetInitialValue (Method) Interfaces IBuffer (Interface) AppendSegmentData (Method) ChainBuffer (Method) CopyBufferData (Method) GetBufferSize (Method) GetSegmentDataPointer (Method) InsertBuffer (Method) MoveToBufferOffset (Method) MoveToNextSegment (Method) SliceBuffer (Method) BufferPool Function Blocks BufferPool (FunctionBlock) IBufferPool PoolGetBuffer (Method) IDisposable ObjectDispose (Method) ObjectRelease (Method) ObjectRetain (Method) SetInitialValue (Method) BufferPoolFactoryArgs (FunctionBlock) BufferPoolFactoryBase (FunctionBlock) Create (Method) prvInstCount (Property) prvInstSize (Property) Interfaces IBufferPool (Interface) PoolGetBuffer (Method) IBufferPoolFactoryArgs (Interface)
SharedQueue (FB) ¶ FUNCTION_BLOCK PUBLIC FINAL SharedQueue EXTENDS FBF.InstanceBase IMPLEMENTS ISharedQueue , ISharedAreaObserver InOut: Scope Name Type Initial Comment Input Const udiInitialCapacity UDINT 5 The initial max number ( >0 ) of possible nodes handled by the queue pPool POINTER TO BYTE The optinonal memory space for the background pool. pPool = 0 => Memory is allocated from Heap pPool <> 0 => The related static Memory of size udiPoolSize is used. udiPoolSize UDINT The size of the memory area referenced by pPool Condition: udiPoolSize >= TO_UDINT(MBM.PoolGetSize(udiInitialCapacity, SIZEOF(SHD.Node)); usiExtensionFactor USINT 50 Setting udiExtendsFactor provides the possibility to control the dynmic extension of the pool. udiExtendsFactor = 0 => No possibility for extending the pool. udiExtendsFactor > 0 => Extendion of the pool will be possible. A value of e.g. prvInstPoolExtendsFactor := 50 always expands the pool by 50% of its original size. Methods: AreaWritten Dequeue Dispose Enqueue Structure: IAreaObserver AreaWritten (Method) IInstance Dispose (Method) ISharedQueue Dequeue (Method) Enqueue (Method)
Buffer ¶ Function Blocks Buffer (FunctionBlock) IBuffer AppendSegmentData (Method) ChainBuffer (Method) CopyBufferData (Method) GetBufferSize (Method) GetSegmentDataPointer (Method) InsertBuffer (Method) MoveToBufferOffset (Method) MoveToNextSegment (Method) SliceBuffer (Method) IDisposable ObjectDispose (Method) ObjectRelease (Method) ObjectRetain (Method) SetDisposable (Method) SetInitialValue (Method) Interfaces IBuffer (Interface) AppendSegmentData (Method) ChainBuffer (Method) CopyBufferData (Method) GetBufferSize (Method) GetSegmentDataPointer (Method) InsertBuffer (Method) MoveToBufferOffset (Method) MoveToNextSegment (Method) SliceBuffer (Method)