Blame | Last modification | View Log | RSS feed
#ifndef _PLUGIN_H#define _PLUGIN_H#include <map>#include <string>#include <vector>#include <unistd.h>//#include "tokenizer.h"using namespace std;//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%//%% Functions exported by this DLL//%% Should always be only SetEventFunc and InvokeFunction//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%// g++ requires extern "C" otherwise the names of SetEventFunc and InvokeFunction// are mangled C++ style. MS Visual Studio doesn't seem to care though.extern "C"{typedef void (*SendPluginEv)( const char* szEvent, void* pContext );char* SetEventFunc(SendPluginEv funcPtr);char* InvokeFunction( const char* szCommand, void* pContext );}// JNEXT Framework function of the form:// typedef void (*SendPluginEv)( const char* szEvent );// used to notify JavaScript of an asynchronous eventextern SendPluginEv SendPluginEvent;/////////////////////////////////////////////////////////////////////////// Constants and methods common to all JNEXT extensions types/////////////////////////////////////////////////////////////////////////#define szERROR "Error "#define szOK "Ok "#define szDISPOSE "Dispose"#define szINVOKE "InvokeMethod"#define szCREATE "CreateObj"/////////////////////////////////////////////////////////////////////////// Utility functions/////////////////////////////////////////////////////////////////////////string& g_trim( string& str );void g_tokenize(const string& str,const string& delimiters, vector<string>& tokens);char* g_str2static( const string& strRetVal );void g_sleep( unsigned int mseconds );bool g_unregisterObject( const string& strObjId, void* pContext );/////////////////////////////////////////////////////////////////////////// Abstract extension object/////////////////////////////////////////////////////////////////////////class JSExt{public:virtual ~JSExt() {};virtual string InvokeMethod( const string& strCommand ) = 0;virtual bool CanDelete( void ) = 0;virtual void TryDelete( void ) {}public:void* m_pContext;};/////////////////////////////////////////////////////////////////////////// Callback functions to be implemented by the plugin implementation/////////////////////////////////////////////////////////////////////////extern char* onGetObjList( void );extern JSExt* onCreateObject( const string& strClassName, const string& strObjId );#endif