FB_init
Short summary
The constructor FB_init is needed to create an unique hash code.
The hash code is a pseudo random number create with a xorshift algorithm.
It can be overwritten on derivations, because it will be called implicit, SUPER^.FB_init() is not required.
For more information check: Behavoir with derived function blocks.
- Return type:
BOOL
Parameters
| Name | Type | Comment | Kind |
|---|---|---|---|
| bInitRetains | BOOL | if TRUE, the retain variables are initialized (warm start / cold start) | input |
| bInCopyCode | BOOL | if TRUE, the instance afterwards gets moved into the copy code (online change) | input |
| value | CNM_AbstractObject.IObject | - | input |
| left | CNM_CollectionInterfaces.IBalancedBinarySearchTreeNode | - | input |
| right | CNM_CollectionInterfaces.IBalancedBinarySearchTreeNode | - | input |
Code
Declaration
METHOD FB_init : BOOL
VAR_INPUT
(* if TRUE, the retain variables are initialized (warm start / cold start)*)
bInitRetains :BOOL;
(* if TRUE, the instance afterwards gets moved into the copy code (online change) *)
bInCopyCode :BOOL;
value :CNM_AbstractObject.IObject;
left :CNM_CollectionInterfaces.IBalancedBinarySearchTreeNode;
right :CNM_CollectionInterfaces.IBalancedBinarySearchTreeNode;
END_VAR
VAR
{attribute 'hide'}
newHashstate3 :CNM_AbstractObject.Hashcode;
END_VAR
VAR CONSTANT
{attribute 'hide'}
NUMBER_OF_LEFT_SHIFTS :UINT := 17;
{attribute 'hide'}
NUMBER_OF_LEFT_ROTATIONS :UINT := 45;
OBJECT_NOT_REFERENCED :__XWORD := 0;
END_VAR
Implementation
THIS^.object := value;
THIS^.right := right;
THIS^.left := left;