mirror of
https://github.com/eclipse-openvehicle-api/openvehicle-api.git
synced 2026-04-18 10:38:16 +00:00
81 lines
2.7 KiB
C++
81 lines
2.7 KiB
C++
/********************************************************************************
|
|
* Copyright (c) 2025-2026 ZF Friedrichshafen AG
|
|
*
|
|
* This program and the accompanying materials are made available under the
|
|
* terms of the Apache License Version 2.0 which is available at
|
|
* https://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*
|
|
* Contributors:
|
|
* Erik Verhoeven - initial API and implementation
|
|
********************************************************************************/
|
|
|
|
#ifndef META_ENTITY_H
|
|
#define META_ENTITY_H
|
|
|
|
#include "entity_base.h"
|
|
|
|
/**
|
|
* @brief The meta data inserted into the code.
|
|
*/
|
|
class CMetaEntity : public CEntity, public sdv::idl::IMetaEntity
|
|
{
|
|
public:
|
|
/**
|
|
* @brief Constructor
|
|
* @param[in] rptrContext Reference to the smart pointer holding the parse context. Must not be NULL.
|
|
* @param[in] ptrParent Pointer to the parent class holding this entity. This must not be NULL.
|
|
* @param[in] rtokenMeta The meta data content
|
|
* @param[in] lstComments Any preceding comments
|
|
*/
|
|
CMetaEntity(const CContextPtr& rptrContext, CEntityPtr ptrParent, const CToken& rtokenMeta,
|
|
const CTokenList lstComments);
|
|
|
|
/**
|
|
* @brief Destructor
|
|
*/
|
|
virtual ~CMetaEntity() override = default;
|
|
|
|
/**
|
|
* @brief Get the type of the entity. Overload of CEntity::GetType.
|
|
* @return Returns the meta entity type.
|
|
*/
|
|
virtual sdv::idl::EEntityType GetType() const override { return sdv::idl::EEntityType::type_meta; }
|
|
|
|
/**
|
|
* @brief Get the name of the entity. Overload of CEntity::GetName.
|
|
* @return The entity name.
|
|
*/
|
|
virtual sdv::u8string GetName() const override { return "meta"; }
|
|
|
|
/**
|
|
* @brief Get access to another interface. Overload of sdv::IInterfaceAccess::GetInterface.
|
|
* @param[in] idInterface The interface id to get access to.
|
|
* @return Returns a pointer to the interface or NULL when the interface is not supported.
|
|
*/
|
|
virtual sdv::interface_t GetInterface(sdv::interface_id idInterface) override;
|
|
|
|
/**
|
|
* @brief Get the meta data type.
|
|
* @return Returns meta entity type.
|
|
*/
|
|
virtual sdv::idl::IMetaEntity::EType GetMetaType() const override;
|
|
|
|
/**
|
|
* @brief Get the meta data content.
|
|
* @return Returns a string object.
|
|
*/
|
|
virtual sdv::u8string GetContent() const override;
|
|
|
|
/**
|
|
* @brief Process the code. Since there is none... nothing to do. Overload of CEntity::Process.
|
|
*/
|
|
virtual void Process() override {};
|
|
|
|
private:
|
|
sdv::idl::IMetaEntity::EType m_eType; ///< Type of meta data
|
|
std::string m_ssContent; ///< The meta data string
|
|
};
|
|
|
|
#endif ///defined(META_ENTITY_H)
|