//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               = "_LMCPublisher"
	Revision           = "1.0"
	GUID               = "{9C3210A5-099D-4911-B8C5-E636112D5A00}"
	RealtimeTask       = "false"
	CyclicTask         = "false"
	BackgroundTask     = "false"
	Sigmatek           = "true"
	OSInterface        = "false"
	HighPriority       = "false"
	Automatic          = "false"
	UpdateMode         = "Prescan"
	IconPath           = ".\Class\_LMCPublisher\publish.ico"
	SharedCommandTable = "true"
	Objectsize         = "(540,240)"
	Comment            = "this class delivers an interface&#13;&#10;for a publisher subscriber concept">
	<Channels>
		<Server Name="ClassSvr" GUID="{B72A1B64-888D-43CE-8687-BFE6B8F2F800}" Visualized="false" Initialize="false" WriteProtected="true" Retentive="false" Comment="This server is an object channel and serves as an interface for the class _LMCAxisBase"/>
		<Client Name="Config" Required="false" Internal="false" DefValue="0" Comment="define with this client the&#13;&#10;configuration for the Publisher"/>
		<Client Name="ID" Required="false" Internal="false" DefValue="0" Comment="set a unique ID for the Publisher"/>
		<Client Name="Provider" Required="false" Internal="false" Comment="connect this client to a provider&#13;&#10;who handles the given data"/>
	</Channels>
	<RevDoku>
		<Owner Company="Sigmatek" Author="HasHan"/>
		<Dokumentation Revision="1.0" Date="2014-06-13" Author="HasHan" Company="Sigmatek" Description="creation"/>
	</RevDoku>
</Class>
*)
_LMCPublisher : CLASS
	TYPE
	  _Config_ : BDINT  //! <Type Public="true" Name="_Config_"/>
	  [
	    1 VirtualAxis,
	    2 RealAxis,
	  ];
	  _LMCPublisher_Cmd :  //! <Type Public="true" Name="_LMCPublisher_Cmd"/>
	  (
	    _LOGINCMD:=123
	  )$UDINT;
	END_TYPE
  //Servers:
	ClassSvr 	: SvrChCmd_DINT;
  //Clients:
	Provider 	: CltChCmd_ProfileCommandStatus;
	Config 	: CltCh__Config__PTofCls__LMCPublisher;
	ID 	: CltCh_DINT;
  //Variables:
		LoggedIn 	: BOOL;
		CMDPara 	: _LMCPublisher_Cmd;
  //Functions:
				//! <Function Comment="this methode must be called in the first init" Name="LoginAxis"/>
	FUNCTION VIRTUAL GLOBAL LoginAxis
		VAR_INPUT
			ptrThis 	: pVoid;
		END_VAR;
  //Tables:
	FUNCTION @STD
		VAR_OUTPUT
			ret_code	: CONFSTATES;
		END_VAR;
	FUNCTION GLOBAL TAB @CT_;
END_CLASS;

//}}LSL_DECLARATION


FUNCTION GLOBAL TAB _LMCPublisher::@CT_
0$UINT,
2#0100000000000000$UINT, //TY__LMCPUBLISHER
1$UINT, 0$UINT, (SIZEOF(::_LMCPublisher))$UINT, 
1$UINT, 3$UINT, 0$UINT, 
TO_UDINT(1117088251), "_LMCPublisher", //Class
TO_UDINT(0), 0, 0$UINT, 0$UINT, //Baseclass
//Servers:
(::_LMCPublisher.ClassSvr.pMeth)$UINT, _CH_CMD$UINT, 2#0000000000000000$UINT, TO_UDINT(619352855), "ClassSvr", 
//Clients:
(::_LMCPublisher.Provider.pCh)$UINT, _CH_CLT_CMD$UINT, 2#0000000000000000$UINT, TO_UDINT(1425534928), "Provider", 
(::_LMCPublisher.Config.pCh)$UINT, _CH_CLT_DATA$UINT, 2#0000000000000000$UINT, TO_UDINT(611510522), "Config", 
(::_LMCPublisher.ID.pCh)$UINT, _CH_CLT_DATA$UINT, 2#0000000000000000$UINT, TO_UDINT(299066170), "ID", 
END_FUNCTION


#define USER_CNT__LMCPublisher 1

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

FUNCTION _LMCPublisher::@STD
	VAR_OUTPUT
		ret_code	: CONFSTATES;
	END_VAR
	VAR
		vmt	: _LSL_STD_VMETH;
	END_VAR

	//Command Methods
	InitCmdTable (nCmd := nSTDCMD + USER_CNT__LMCPublisher, pCmd := #vmt.CmdTable);
#pragma warning (disable : 74)
	vmt.UserFcts[0]		:= #LoginAxis();

#pragma warning (default : 74)
	ClassSvr.pMeth		:= StoreCmd (pCmd := #vmt.CmdTable, SHARED);

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

END_FUNCTION

//{{LSL_IMPLEMENTATION
//{{LSL_ENCRYPTION 16#800
D9E784F4F342212FF2412A957A14F99504B6A9CC9D8B480CB0E3368DC680CA17BC2EE1E9E63B4FD874DB383B179C1D3A183C8691B99F59C81ABA8419AB91752845C2896BEE8E4CD1F2A976CF1EA8C3BDE023B43F3F75E93EDF768ABBFC8B0FB3D6D3E782
FC1A9F4A0E5DA1E6A57E9FF16B1564D8FFDD409873CA7118AFAEC12C1D5CE35DF78E81E0D6C63C65B5BDA088C9368AF55D5FC34B57B7CA627CB36E7DE5451246895C52A71174B31C8A5D7EE26E3D1F0E96A8724DFD56C4B03C9AA247CCC8B1C9920E8674
918FA939AD2CB62F86D6CA85F599878F3EEB163F149A9FACE417CE4CB8D71DA26B67584AD8296264DCC255312D06025EE5A0DAC18BE5FDDA9EFF4D5CB70AAFE7F0670D1CB898B7A4DA4CF30963AC1565C483CDD33FBFC56A60BE12DF0DD86B354BC7D473
4ADAB7B4B75C13A837C8563F4E0E2FE040A7ED2F6262A7118C1B0816C6FB1B177F94B88EC528D54CF6C6A9CDD7359DE6972C48E2FBE33F57F47443D1222FB51107AC75A489761236E2B90B1E48A3BE619B0BE36D2A02E88A98FDCB1FDB206CA1E41F858F
0536786E75CCA009AFF7077A921EC25EC0C7E89B8A0A4C842470CF9363E9A24B35D7F8A32E04632D7FD6D03E4F5269BC3EE14F71B73A6713A0D6BAE4C09AC7D07E63A71878420583D23ADF05115111353B9B38FA391318F7B4298F8238324B914E224671
C24A1E6E7C4493EB187AB6E486750483DE38E82AFDD931E29AB77E3A5C7D1DF4BB20A9807852A80088A5DE45222401EBED84178B32A3A970D4CB24DC790EED21854131E6343F0A770A6945C2E92A1A255338749DED0B283ACD7DA8A170E12BA3EC0C4CDA
79B10BB355FD44B18303AA20637AD5EA12586030B22FB32A702211B68704E866E1727A06E1299D3B