more ai generated doc with human review
This commit is contained in:
@@ -88,42 +88,55 @@
|
||||
# define __PIP_PLUGIN_STATIC_MERGE_FUNC__ pip_merge_static
|
||||
# define __PIP_PLUGIN_LOADER_VERSION__ 2
|
||||
|
||||
# define PIP_PLUGIN_SET_USER_VERSION(v) \
|
||||
STATIC_INITIALIZER_BEGIN \
|
||||
PIPluginInfo * pi = PIPluginInfoStorage::instance()->currentInfo(); \
|
||||
if (pi) pi->setUserVersion(v); \
|
||||
STATIC_INITIALIZER_END
|
||||
# define PIP_PLUGIN_SET_USER_VERSION(v) \
|
||||
STATIC_INITIALIZER_BEGIN \
|
||||
PIPluginInfo * pi = PIPluginInfoStorage::instance()->currentInfo(); \
|
||||
if (pi) pi->setUserVersion(v); \
|
||||
STATIC_INITIALIZER_END
|
||||
|
||||
# define PIP_PLUGIN_ADD_STATIC_SECTION(type, ptr) \
|
||||
STATIC_INITIALIZER_BEGIN \
|
||||
PIPluginInfo * pi = PIPluginInfoStorage::instance()->currentInfo(); \
|
||||
if (pi) pi->setStaticSection(type, ptr); \
|
||||
STATIC_INITIALIZER_END
|
||||
# define PIP_PLUGIN_ADD_STATIC_SECTION(type, ptr) \
|
||||
STATIC_INITIALIZER_BEGIN \
|
||||
PIPluginInfo * pi = PIPluginInfoStorage::instance()->currentInfo(); \
|
||||
if (pi) pi->setStaticSection(type, ptr); \
|
||||
STATIC_INITIALIZER_END
|
||||
|
||||
# define PIP_PLUGIN \
|
||||
extern "C" { \
|
||||
PIP_PLUGIN_EXPORT int __PIP_PLUGIN_LOADER_VERSION_FUNC__() { \
|
||||
return __PIP_PLUGIN_LOADER_VERSION__; \
|
||||
} \
|
||||
}
|
||||
# define PIP_PLUGIN \
|
||||
extern "C" { \
|
||||
PIP_PLUGIN_EXPORT int __PIP_PLUGIN_LOADER_VERSION_FUNC__() { return __PIP_PLUGIN_LOADER_VERSION__; } \
|
||||
}
|
||||
|
||||
# define PIP_PLUGIN_STATIC_SECTION_MERGE \
|
||||
extern "C" { \
|
||||
PIP_PLUGIN_EXPORT void __PIP_PLUGIN_STATIC_MERGE_FUNC__(int type, void * from, void * to); \
|
||||
} \
|
||||
void __PIP_PLUGIN_STATIC_MERGE_FUNC__(int type, void * from, void * to)
|
||||
# define PIP_PLUGIN_STATIC_SECTION_MERGE \
|
||||
extern "C" { \
|
||||
PIP_PLUGIN_EXPORT void __PIP_PLUGIN_STATIC_MERGE_FUNC__(int type, void * from, void * to); \
|
||||
} \
|
||||
void __PIP_PLUGIN_STATIC_MERGE_FUNC__(int type, void * from, void * to)
|
||||
|
||||
|
||||
# endif
|
||||
|
||||
|
||||
//! \~english Plugin information
|
||||
//! \~russian Информация о плагине
|
||||
class PIP_EXPORT PIPluginInfo {
|
||||
public:
|
||||
//! \~english Constructs empty plugin info
|
||||
//! \~russian Создает пустую информацию о плагине
|
||||
PIPluginInfo();
|
||||
|
||||
//! \~english Sets user version
|
||||
//! \~russian Устанавливает пользовательскую версию
|
||||
void setUserVersion(const PIString & v);
|
||||
|
||||
//! \~english Sets static section pointer
|
||||
//! \~russian Устанавливает указатель статической секции
|
||||
void setStaticSection(int type, void * ptr);
|
||||
|
||||
//! \~english Returns user version
|
||||
//! \~russian Возвращает пользовательскую версию
|
||||
PIString userVersion() const;
|
||||
|
||||
//! \~english Returns all static sections
|
||||
//! \~russian Возвращает все статические секции
|
||||
PIMap<int, void *> staticSections() const;
|
||||
|
||||
private:
|
||||
@@ -132,16 +145,36 @@ private:
|
||||
};
|
||||
|
||||
|
||||
//! \~english Plugin info storage
|
||||
//! \~russian Хранилище информации о плагинах
|
||||
class PIP_EXPORT PIPluginInfoStorage {
|
||||
public:
|
||||
//! \~english Constructs storage
|
||||
//! \~russian Создает хранилище
|
||||
PIPluginInfoStorage();
|
||||
|
||||
//! \~english Returns current plugin info
|
||||
//! \~russian Возвращает информацию о текущем плагине
|
||||
PIPluginInfo * currentInfo();
|
||||
|
||||
//! \~english Returns plugin info by pointer
|
||||
//! \~russian Возвращает информацию о плагине по указателю
|
||||
PIPluginInfo * pluginInfo(void * p);
|
||||
|
||||
//! \~english Returns application plugin info
|
||||
//! \~russian Возвращает информацию о приложении
|
||||
PIPluginInfo * applicationInfo();
|
||||
|
||||
//! \~english Enters plugin context
|
||||
//! \~russian Входит в контекст плагина
|
||||
PIPluginInfo * enterPlugin(void * p);
|
||||
|
||||
//! \~english Unloads plugin
|
||||
//! \~russian Выгружает плагин
|
||||
void unloadPlugin(void * p);
|
||||
|
||||
//! \~english Returns singleton instance
|
||||
//! \~russian Возвращает синглтон
|
||||
static PIPluginInfoStorage * instance();
|
||||
|
||||
private:
|
||||
@@ -223,6 +256,8 @@ public:
|
||||
//! \~russian Вызывает у плагина \a PIP_PLUGIN_STATIC_SECTION_MERGE
|
||||
void mergeStatic();
|
||||
|
||||
//! \~english Returns directories where plugins can be located
|
||||
//! \~russian Возвращает директории где могут располагаться плагины
|
||||
static PIStringList pluginsDirectories(const PIString & name);
|
||||
|
||||
private:
|
||||
|
||||
Reference in New Issue
Block a user