EMANE
1.2.1
loaderplugin.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2013-2014 - Adjacent Link LLC, Bridgewater, New Jersey
3
* Copyright (c) 2010 - DRS CenGen, LLC, Columbia, Maryland
4
* All rights reserved.
5
*
6
* Redistribution and use in source and binary forms, with or without
7
* modification, are permitted provided that the following conditions
8
* are met:
9
*
10
* * Redistributions of source code must retain the above copyright
11
* notice, this list of conditions and the following disclaimer.
12
* * Redistributions in binary form must reproduce the above copyright
13
* notice, this list of conditions and the following disclaimer in
14
* the documentation and/or other materials provided with the
15
* distribution.
16
* * Neither the name of DRS CenGen, LLC nor the names of its
17
* contributors may be used to endorse or promote products derived
18
* from this software without specific prior written permission.
19
*
20
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
23
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
24
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
25
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
26
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
27
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
28
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
30
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
31
* POSSIBILITY OF SUCH DAMAGE.
32
*
33
*/
34
35
#ifndef EMANEGENERATORSEELLOADERPLUGIN_HEADER_
36
#define EMANEGENERATORSEELLOADERPLUGIN_HEADER_
37
38
#include "
emane/generators/eel/types.h
"
39
40
namespace
EMANE
41
{
42
namespace
Generators
43
{
44
namespace
EEL
45
{
51
class
LoaderPlugin
52
{
53
public
:
57
virtual
~LoaderPlugin
(){};
58
69
virtual
void
load
(
const
ModuleType
& moduleType,
70
const
ModuleId
& moduleId,
71
const
EventType
& eventType,
72
const
InputArguments
& args) = 0;
73
82
virtual
EventInfoList
getEvents
(
EventPublishMode
mode) = 0;
83
84
protected
:
85
LoaderPlugin
(){};
86
};
87
}
88
}
89
}
90
91
#define DECLARE_EEL_LOADER_PLUGIN(X) \
92
extern "C" EMANE::Generators::EEL::LoaderPlugin * create() \
93
{return new X;} \
94
extern "C" void destroy(EMANE::Generators::EEL::LoaderPlugin * p) \
95
{delete p;}
96
97
#endif // EMANEGENERATORSEELLOADERPLUGIN_HEADER_
EMANE::Generators::EEL::LoaderPlugin::LoaderPlugin
LoaderPlugin()
Definition:
loaderplugin.h:85
EMANE::Generators::EEL::InputArguments
std::vector< std::string > InputArguments
Definition:
generators/eel/types.h:56
EMANE::Generators::EEL::EventType
std::string EventType
Definition:
generators/eel/types.h:54
EMANE::Generators::EEL::LoaderPlugin::~LoaderPlugin
virtual ~LoaderPlugin()
Definition:
loaderplugin.h:57
EMANE::Generators::EEL::LoaderPlugin::load
virtual void load(const ModuleType &moduleType, const ModuleId &moduleId, const EventType &eventType, const InputArguments &args)=0
EMANE::Generators::EEL::EventPublishMode
EventPublishMode
Definition:
generators/eel/types.h:60
EMANE::Generators::EEL::LoaderPlugin
Interface used to create an EEL loader plugin implementation.
Definition:
loaderplugin.h:51
EMANE::Generators::EEL::ModuleType
std::string ModuleType
Definition:
generators/eel/types.h:50
EMANE::Generators::EEL::LoaderPlugin::getEvents
virtual EventInfoList getEvents(EventPublishMode mode)=0
EMANE::Generators::EEL::ModuleId
unsigned short ModuleId
Definition:
generators/eel/types.h:52
EMANE::Generators::EEL::EventInfoList
std::list< EventInfo > EventInfoList
Definition:
generators/eel/types.h:58
types.h
EMANE
Definition:
agent.h:43
include
emane
generators
eel
loaderplugin.h
Generated by
1.8.13