kodi
lib
libUPnP
Neptune
Source
Core
NptDynamicLibraries.h
1
/*****************************************************************
2
|
3
| Neptune - Dynamic Libraries
4
|
5
| Copyright (c) 2002-2008, Axiomatic Systems, LLC.
6
| All rights reserved.
7
|
8
| Redistribution and use in source and binary forms, with or without
9
| modification, are permitted provided that the following conditions are met:
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 the
14
| documentation and/or other materials provided with the distribution.
15
| * Neither the name of Axiomatic Systems nor the
16
| names of its contributors may be used to endorse or promote products
17
| derived from this software without specific prior written permission.
18
|
19
| THIS SOFTWARE IS PROVIDED BY AXIOMATIC SYSTEMS ''AS IS'' AND ANY
20
| EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
21
| WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
22
| DISCLAIMED. IN NO EVENT SHALL AXIOMATIC SYSTEMS BE LIABLE FOR ANY
23
| DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
24
| (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
25
| LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
26
| ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27
| (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
28
| SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29
|
30
****************************************************************/
31
32
#ifndef _NPT_DYNAMIC_LIBRARIES_H_
33
#define _NPT_DYNAMIC_LIBRARIES_H_
34
35
/*----------------------------------------------------------------------
36
| includes
37
+---------------------------------------------------------------------*/
38
#include "NptTypes.h"
39
40
/*----------------------------------------------------------------------
41
| constants
42
+---------------------------------------------------------------------*/
43
#define NPT_DYANMIC_LIBRARY_LOAD_FLAG_NOW 1
44
45
/*----------------------------------------------------------------------
46
| NPT_DynamicLibraryInterface
47
+---------------------------------------------------------------------*/
48
class
NPT_DynamicLibraryInterface
49
{
50
public
:
51
virtual
~
NPT_DynamicLibraryInterface
() {}
52
virtual
NPT_Result FindSymbol(
const
char
* name,
void
*& symbol) = 0;
53
virtual
NPT_Result Unload() = 0;
54
};
55
56
/*----------------------------------------------------------------------
57
| NPT_DynamicLibrary
58
+---------------------------------------------------------------------*/
59
class
NPT_DynamicLibrary
:
public
NPT_DynamicLibraryInterface
60
{
61
public
:
62
// class methods
63
static
NPT_Result Load(
const
char
* name, NPT_Flags flags,
NPT_DynamicLibrary
*& library);
64
65
// destructor
66
~
NPT_DynamicLibrary
()
override
{
delete
m_Delegate; }
67
68
// NPT_DynamicLibraryInterface methods
69
NPT_Result FindSymbol(
const
char
* name,
void
*& symbol)
override
{
70
return
m_Delegate->FindSymbol(name, symbol);
71
}
72
NPT_Result Unload()
override
{
73
return
m_Delegate->Unload();
74
}
75
76
private
:
77
// methods
78
NPT_DynamicLibrary
(
NPT_DynamicLibraryInterface
* delegate) : m_Delegate(delegate) {}
79
80
// members
81
NPT_DynamicLibraryInterface
* m_Delegate;
82
};
83
84
#endif // _NPT_DYNAMIC_LIBRARIES_H_
NPT_DynamicLibrary
Definition:
NptDynamicLibraries.h:59
NPT_DynamicLibraryInterface
Definition:
NptDynamicLibraries.h:48
Generated by
1.8.13