blob: baff37d87ee8066865c5a20b24df27c506a99181 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2017 fortiss GmbH
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0.
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* Monika Wenger
* - initial API and implementation and/or initial documentation
*******************************************************************************/
#ifndef SRC_CORE_LUAADAPTERTYPEENTRY_H_
#define SRC_CORE_LUAADAPTERTYPEENTRY_H_
#include "typelib.h"
#include "../funcbloc.h"
class CResource;
class CAdapter;
class CLuaEngine;
class CLuaAdapterTypeEntry: public CTypeLib::CAdapterTypeEntry {
private:
const CIEC_STRING cm_sLuaScriptAsString;
SFBInterfaceSpec mSocketInterfaceSpec;
SFBInterfaceSpec mPlugInterfaceSpec;
CLuaAdapterTypeEntry(CStringDictionary::TStringId typeNameId, CIEC_STRING paLuaScriptAsString, SFBInterfaceSpec& interfaceSpec);
virtual ~CLuaAdapterTypeEntry();
static bool initInterfaceSpec(SFBInterfaceSpec& interfaceSpec, CLuaEngine* luaEngine, int index);
bool initPlugInterfaceSpec(SFBInterfaceSpec& interfaceSpec);
static void deleteInterfaceSpec(SFBInterfaceSpec& interfaceSpec);
public:
static CLuaAdapterTypeEntry* createLuaAdapterTypeEntry(CStringDictionary::TStringId typeNameId, CIEC_STRING& paLuaScriptAsString);
virtual CAdapter* createAdapterInstance(CStringDictionary::TStringId pa_nInstanceNameId, CResource *pa_poSrcRes, bool pa_bIsPlug);
const SFBInterfaceSpec* getSocketInterfaceSpec() const {
return &mSocketInterfaceSpec;
}
const SFBInterfaceSpec* getPlugInterfaceSpec() const {
return &mPlugInterfaceSpec;
}
};
#endif /* SRC_CORE_LUAADAPTERTYPEENTRY_H_ */