/******************************************************************************* | |
* Copyright (c) 2012 - 2015 ACIN, 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: | |
* Ingo Hegny, Alois Zoitl | |
* - initial implementation and rework communication infrastructure | |
*******************************************************************************/ | |
#ifndef MGMCMDSTRUCT_H_ | |
#define MGMCMDSTRUCT_H_ | |
#include <mgmcmd.h> | |
#include <forte_string.h> | |
#include <fixedcapvector.h> | |
namespace forte { | |
namespace core { | |
/** \ingroup CORE \defgroup MGMCommands Management Command Exchange Representation | |
* \brief In this section the FORTE-internal data-exchange-structure for management command passing is described. | |
*/ | |
/*@{*/ | |
typedef util::CFixedCapazityVector<CStringDictionary::TStringId, | |
FORTE_MGM_MAX_SUPPORTED_NAME_HIERARCHY> TNameIdentifier; | |
/*!\brief All the data necessary for processing a management command. | |
* | |
* The data of this structure is the internal FORTE representation of an IEC 61499 management command. | |
* e.g. create \<FB name="START" type="E_RESTART"\> will result in the following data values: | |
* - m_nCMD = 0x30 | |
* - m_sDestination = "" | |
* - m_sFistParam = "START" | |
* - m_sSecondParam = "E_RESTART" | |
* - m_sAdditionalParams = "" | |
*/ | |
struct SManagementCMD{ | |
/*!\brief An identification number for the requested command based on the definitons in the standard. | |
* | |
* See the constants in devadmin.h for the available commands | |
*/ | |
EMGMCommandType mCMD; | |
/*!\brief The destination of the command. | |
* | |
* if the destination is scm_nInvalidStringID device is the target. | |
* Otherwise a the TStringId of the resource's name the command | |
* should be exectued in is the target. | |
* FIXME if more than the resource should be supported (e.g. composite FBs) the type needs to be changed . | |
*/ | |
CStringDictionary::TStringId mDestination; | |
/*!\brief The first parameter of the command e.g. the FB name to create or the src of an connection. | |
* | |
* The data is stored as an array TStringIds for the hierarchical FB name identifier (e.g., SubApp1.FB, CFB.FB, FB.Port) | |
* Each level is stored as one entry in the vector. Top hierarchy is the first entry. | |
*/ | |
TNameIdentifier mFirstParam; | |
/*!\brief The second parameter of the command e.g. the FB name to create or the src of an connection. | |
* | |
* The data is stored as an array TStringIds for the hierarchical FB name identifier (e.g., SubApp1.FB, CFB.FB, FB.Port) | |
* Each level is stored as one entry in the vector. Top hierarchy is the first entry. | |
*/ | |
TNameIdentifier mSecondParam; | |
/*!\brief Additional params needed by a MGM command (e.g., to return results of query commands) | |
*/ | |
CIEC_STRING mAdditionalParams; | |
/*\brief pointer to the ID to generate the correct response */ | |
char *mID; | |
#ifdef FORTE_SUPPORT_MONITORING | |
/*\brief pointer to the response to generate the correct response */ | |
CIEC_STRING mMonitorResponse; | |
#endif | |
}; | |
} // namespace core | |
} // namespace forte | |
#endif /* MGMCMDSTRUCT_H_ */ |