//This file was generated by the LASAL2 CodeGenerator  -- 
//Please, do not edit this file (it might be overwritten by the next generator run)
//{{LSL_DECLARATION

(*!
<Class
	Name               = "String"
	Revision           = "1.11"
	GUID               = "{26C84422-A6E4-4372-A53C-A964595DA01D}"
	RealtimeTask       = "false"
	CyclicTask         = "false"
	BackgroundTask     = "false"
	Sigmatek           = "true"
	OSInterface        = "false"
	HighPriority       = "false"
	Automatic          = "false"
	UpdateMode         = "Prescan"
	SharedCommandTable = "true"
	Objectsize         = "(300,120)"
	Comment            = "handels character strings">
	<Channels>
		<Server
			Name           = "Data"
			Initialize     = "true"
			Visualized     = "true"
			WriteProtected = "false"
			Comment        = "use this channel to access the string functions">
		</Server>
		<Client Name="MerkerEx0" Required="true" Internal="true"/>
	</Channels>
	<RevDoku>
		<Owner Company="Sigmatek Gmbh &amp; Co KG"/>
		<Dokumentation Revision="1.11" Date="2020-01-30" Author="kolott" Company="Sigmatek Gmbh &amp; Co KG" Description="Visualized Flag of embedded object &quot;MerkerEx0&quot; set to &quot;false&quot;."/>
		<Dokumentation Revision="1.10" Date="2012-11-05" Author="spimar" Company="Sigmatek Gmbh &amp; Co KG" Description="New client (SingleRealloc) which is used for an optimized memory handling!"/>
	</RevDoku>
	<Network Name="String">
		<!-- List of Components in this network -->
		<Components>
			<Object
				Name       = "_base"
				GUID       = "{B9D2D328-1416-469A-BE13-9F6CBBB1958D}"
				Class      = "StringInternal"
				Position   = "(720,360)"
				Visualized = "true">
				<Channels>
					<Server Name="Data"/>
					<Client Name="DataBuffer"/>
					<Client Name="SingleRealloc"/>
				</Channels>
			</Object>
			<Object
				Name       = "MerkerEx0"
				GUID       = "{53955FF7-8ABE-4B49-B914-227100C3FDEF}"
				Class      = "MerkerEx"
				Position   = "(300,360)"
				Visualized = "false">
				<Channels>
					<Server Name="m_udLength"/>
					<Client Name="ThreadSafe" Value="0"/>
				</Channels>
			</Object>
		</Components>
		<Comments>
		</Comments>
		<!-- List of Connections in this network -->
		<Connections>
			<Connection Source="_base.DataBuffer" Destination="MerkerEx0.m_udLength" Vertices="(720,450),(600,450),"/>
			<Connection Source="this.Data" Destination="_base.Data" Vertices="(1192,210),(1020,450),"/>
			<Connection Source="this.MerkerEx0" Destination="MerkerEx0.m_udLength"/>
			<Connection Source="_base.SingleRealloc" Destination="this.SingleRealloc" Vertices="(720,510),(240,510),(240,210),(38,210),"/>
		</Connections>
		<!-- Headerfiles -->
		<Options>
		</Options>
	</Network>
</Class>
*)
#pragma using StringInternal

String : CLASS
: StringInternal
  //Servers:
  //Clients:
	MerkerEx0 	: CltChCmd_MerkerEx;
  //Variables:
  //Functions:
  //Tables:
	FUNCTION @STD
		VAR_OUTPUT
			ret_code	: CONFSTATES;
		END_VAR;
	FUNCTION GLOBAL TAB @CT_;
END_CLASS;

#pragma using MerkerEx


//}}LSL_DECLARATION


FUNCTION GLOBAL TAB String::@CT_
0$UINT,
2#0100000000000000$UINT, //TY_STRING
1$UINT, 11$UINT, (SIZEOF(::String))$UINT, 
0$UINT, 1$UINT, 0$UINT, 
TO_UDINT(1850111279), "String", //Class
TO_UDINT(2898603620), "StringInternal", 1$UINT, 85$UINT, //Baseclass
//Servers:
//Clients:
(::String.MerkerEx0.pCh)$UINT, _CH_CLT_OBJ$UINT, 2#0000000000000010$UINT, TO_UDINT(2860615309), "MerkerEx0", TO_UDINT(2225119864), "MerkerEx", 1$UINT, 22$UINT, 
END_FUNCTION


#define USER_CNT_String 52

TYPE
	_LSL_STD_VMETH	: STRUCT
			CmdTable	: CMDMETH;
			UserFcts	: ARRAY[0..USER_CNT_String] OF ^Void;
	END_STRUCT;
END_TYPE

FUNCTION String::@STD
	VAR_OUTPUT
		ret_code	: CONFSTATES;
	END_VAR
	VAR
		vmt	: _LSL_STD_VMETH;
		nCmdSize	: UINT;
	END_VAR

	ret_code	:= StringInternal::@STD();
	IF ret_code <> C_OK THEN
		RETURN;
	END_IF;
	nCmdSize		:= VirtualBaseInit::Data.pMeth^.nCmds$UINT*SIZEOF(pVoid) + CMDMETH.Init;

	_memcpy((#vmt.CmdTable)$^USINT, VirtualBaseInit::Data.pMeth, nCmdSize);
	vmt.CmdTable.nCmds		:= nSTDCMD + USER_CNT_String;
	VirtualBaseInit::Data.pMeth		:= StoreCmd (pCmd := #vmt.CmdTable, SHARED);

	IF VirtualBaseInit::Data.pMeth THEN
		ret_code	:= C_OK;
	ELSE
		ret_code	:= C_OUTOF_NEAR;
		RETURN;
	END_IF;

END_FUNCTION

//{{LSL_IMPLEMENTATION

