Audaspace 1.4.0
A high level audio library.
Loading...
Searching...
No Matches
PluginManager.h
Go to the documentation of this file.
1/*******************************************************************************
2 * Copyright 2009-2016 Jörg Müller
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 ******************************************************************************/
16
17#pragma once
18
25#include "Audaspace.h"
26
27#include <unordered_map>
28#include <string>
29
31
36{
37private:
38 static std::unordered_map<std::string, void*> m_plugins;
39
40 // delete copy constructor and operator=
41 PluginManager(const PluginManager&) = delete;
42 PluginManager& operator=(const PluginManager&) = delete;
43 PluginManager() = delete;
44
45public:
51 static void* openLibrary(const std::string& path);
52
59 static void* lookupLibrary(void* handle, const std::string& name);
60
65 static void closeLibrary(void* handle);
66
72 static bool loadPlugin(const std::string& path);
73
78 static void loadPlugins(const std::string& path = "");
79};
80
The main header file of the library defining the namespace and basic data types.
#define AUD_NAMESPACE_END
Closes the audaspace namespace aud.
Definition: Audaspace.h:119
#define AUD_NAMESPACE_BEGIN
Opens the audaspace namespace aud.
Definition: Audaspace.h:116
#define AUD_API
Used for exporting symbols in the shared library.
Definition: Audaspace.h:93
This manager provides utilities for plugin loading.
Definition: PluginManager.h:36
static void * lookupLibrary(void *handle, const std::string &name)
Looks up a symbol from an opened library.
static void closeLibrary(void *handle)
Closes an opened shared library.
static void loadPlugins(const std::string &path="")
Loads all plugins found in a folder.
static bool loadPlugin(const std::string &path)
Loads a plugin from a file.
static void * openLibrary(const std::string &path)
Opens a shared library.