ARGoS 3
A parallel, multi-engine simulator for swarm robotics
dynamic_loading.h
Go to the documentation of this file.
1
7#ifndef DYNAMIC_LOADING_H
8#define DYNAMIC_LOADING_H
9
10#include <argos3/core/utility/configuration/argos_exception.h>
11#include <argos3/core/utility/logging/argos_log.h>
12
13#include <map>
14#include <string>
15
16#include <dlfcn.h>
17#include <cstdlib>
18
19namespace argos {
20
25
26 public:
27
31 typedef void* TDLHandle;
32
33 public:
34
59 static TDLHandle LoadLibrary(const std::string& str_lib);
60
66 static void UnloadLibrary(const std::string& str_lib);
67
73 static void LoadAllLibraries();
74
79 static void UnloadAllLibraries();
80
81 private:
82
86 typedef std::map<std::string, TDLHandle> TDLHandleMap;
87
91 static TDLHandleMap m_tOpenLibs;
92
96 static const std::string DEFAULT_PLUGIN_PATH;
97 };
98
99}
100
101#endif
The namespace containing all the ARGoS related code.
Definition ci_actuator.h:12
Allows users to dynamically load shared libraries.
void * TDLHandle
The handle to a loaded library.
static void UnloadAllLibraries()
Unloads all the dynamic libraries.
static TDLHandle LoadLibrary(const std::string &str_lib)
Loads a dynamic library.
static void LoadAllLibraries()
Loads all the dynamic libraries in the current ARGOS_PLUGIN_PATH.
static void UnloadLibrary(const std::string &str_lib)
Unloads a dynamic library.