From 33613a85afc4b1481367fbe92a17ee59c240250b Mon Sep 17 00:00:00 2001 From: Sven Eisenhauer Date: Fri, 10 Nov 2023 15:11:48 +0100 Subject: add new repo --- .../Masterarbeit/src/common/inc/plugin_api_heap.h | 53 ++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 Master/Masterarbeit/src/common/inc/plugin_api_heap.h (limited to 'Master/Masterarbeit/src/common/inc/plugin_api_heap.h') diff --git a/Master/Masterarbeit/src/common/inc/plugin_api_heap.h b/Master/Masterarbeit/src/common/inc/plugin_api_heap.h new file mode 100644 index 0000000..5772a96 --- /dev/null +++ b/Master/Masterarbeit/src/common/inc/plugin_api_heap.h @@ -0,0 +1,53 @@ +/*! + * \file plugin_api_heap.h + * \author S. Eisenhauer + * \date 31.08.2011 + * \brief STL-based interface of a plugin used by \ref CPluginExecutor + * + * This file defines a interface for plugins to \ref CPluginExecutor. + * This interface is based on the STL which uses heap for internal allocations + * + */ + +#ifndef PLUGIN_API_H_ +#define PLUGIN_API_H_ + +#include "global.h" +#include "interface_manager.h" +#include +#include +#include + +struct tstCanTxMessage +{ + uint32_t u32TxCycleMilliseconds; + uint32_t u32MillisecondCounter; + uint32_t u32CanId; + uint8_t au8Data[8]; + uint8_t u8Dlc; +}; +typedef boost::shared_ptr< tstCanTxMessage > tpstCanTxMessage; +typedef std::vector< tpstCanTxMessage > tCanTxMessageList; + +class IPlugin +{ +public: + virtual void vRun( void ) = 0; + virtual tCanTxMessageList& xGetCanTxMessages( void ) = 0; + virtual int32_t i32GetCanInterfaceHandle( void ) = 0; +}; + +typedef IPlugin* tpxCreatePlugin( + IInterfaceManager& xIfMan, + int32_t i32Interface, + uint32_t u32PluginId + ); +typedef void tvDestroyPlugin(IPlugin*); + +extern "C" +{ + tpxCreatePlugin pxCreatePlugin; + tvDestroyPlugin vDestroyPlugin; +} + +#endif /* PLUGIN_API_H_ */ -- cgit v1.2.3