26 lines
523 B
C++
26 lines
523 B
C++
|
#pragma once
|
||
|
|
||
|
#include <string>
|
||
|
|
||
|
static char* plugin_error;
|
||
|
|
||
|
// define a schema for plugins
|
||
|
class Plugin {
|
||
|
private:
|
||
|
const char* name;
|
||
|
void* handle;
|
||
|
void* (*fn_init)();
|
||
|
int (*fn_call)(void*, int argc, char* argv[]);
|
||
|
int (*fn_exit)(void*);
|
||
|
void* data;
|
||
|
// Constructor
|
||
|
void init (char* so_path);
|
||
|
public:
|
||
|
Plugin (char* path);
|
||
|
Plugin (std::string path);
|
||
|
Plugin (Plugin&&) = default;
|
||
|
~Plugin ();
|
||
|
int call (int argc, char* argv[]);
|
||
|
int operator()(int argc, char* argv[]);
|
||
|
};
|