LibLogicalAccess  2.5.0
An Open Source RFID Library
Loading...
Searching...
No Matches
idynlibrary.hpp
Go to the documentation of this file.
1#ifndef IDYNLIBRARY_HPP_
2#define IDYNLIBRARY_HPP_
3
7#include <string>
8
9#if defined __APPLE__
10#define CDECL_WIN32_
11#define EXTENSION_LIB ".dylib"
12#elif defined(__unix__) || defined(ANDROID)
13#define CDECL_WIN32_
14#define EXTENSION_LIB ".so"
15#else
16#define CDECL_WIN32_ _cdecl
17#define EXTENSION_LIB ".dll"
18#endif
19
20namespace logicalaccess
21{
22typedef char *(*getlibname)();
23typedef void(CDECL_WIN32_ *getprovider)(std::shared_ptr<ReaderProvider> *);
24typedef void(CDECL_WIN32_ *getcard)(std::shared_ptr<Chip> *);
25typedef void(CDECL_WIN32_ *getdiversification)(std::shared_ptr<KeyDiversification> *);
26typedef void(CDECL_WIN32_ *getcommands)(std::shared_ptr<Commands> *);
27typedef void(CDECL_WIN32_ *setcryptocontext)(std::shared_ptr<Commands> *,
28 std::shared_ptr<Chip> *);
29typedef bool(CDECL_WIN32_ *getobjectinfoat)(unsigned int, char *, size_t, void **);
30
32{
33 public:
34 virtual ~IDynLibrary()
35 {
36 }
37
38 virtual const std::string &getName() const = 0;
39 virtual void *getSymbol(const char *symName) = 0;
40 virtual bool hasSymbol(const char *name) = 0;
41};
42
43IDynLibrary *newDynLibrary(const std::string &dlName);
44}
45
46#endif
Chip descriptor.
Definition: idynlibrary.hpp:32
virtual bool hasSymbol(const char *name)=0
virtual void * getSymbol(const char *symName)=0
virtual const std::string & getName() const =0
virtual ~IDynLibrary()
Definition: idynlibrary.hpp:34
#define CDECL_WIN32_
Definition: idynlibrary.hpp:16
Definition: asn1.hpp:9
void(CDECL_WIN32_ * getcommands)(std::shared_ptr< Commands > *)
Definition: idynlibrary.hpp:26
bool(CDECL_WIN32_ * getobjectinfoat)(unsigned int, char *, size_t, void **)
Definition: idynlibrary.hpp:29
void(CDECL_WIN32_ * getcard)(std::shared_ptr< Chip > *)
Definition: idynlibrary.hpp:24
IDynLibrary * newDynLibrary(const std::string &dlName)
Definition: windowsdynlibrary.cpp:10
void(CDECL_WIN32_ * getprovider)(std::shared_ptr< ReaderProvider > *)
Definition: idynlibrary.hpp:23
void(CDECL_WIN32_ * setcryptocontext)(std::shared_ptr< Commands > *, std::shared_ptr< Chip > *)
Definition: idynlibrary.hpp:27
void(CDECL_WIN32_ * getdiversification)(std::shared_ptr< KeyDiversification > *)
Definition: idynlibrary.hpp:25
Reader provider.