Ice插件開發

ICE插件開發都要從Ice::Plugin繼承,實現initialize()和destroy()兩個接口,如ICEloggerPlugin的實現:

Class  ICE_API  LoggerPlugin : public Ice::Plugin

{

Public:

LoggerPlugin(constCommunicatorPtr& communicator, const LoggerPtr&);

    Virtual void initialize();

    Virtual void destroy();

};

 

除了繼承Ice::Plugin繼承外,還需提供程序加載插件的入口函數,函數類型定義

Typedef  ::Ice::Plugin* (func)( const Ice::CommunicatorPtr&communicator, const string& s, const Ice::StringSeq& seq)

返回值必須是繼承::Ice::Plugin的實現,入參1是application創建的communicator,入參2是插件的名稱,入參3是插件的參數列表。

如:

extern ”C”

{

ICE_DECLSPEC_EXPORT::Ice::Plugin*

    CreateLogger(const Ice::CommunicatiorPtr&communicator, const string& s, const Ice::StringSeq& seq)

{

                   return newIce::LoggerPlugin(communicator, new Ice::LoggerI(appname(), seq[0]));

}

}

 

修改配置文件加載插件,是通過Ice.Plugin.{PluginName}加載插件的


參考源碼${ICE_SOURCE}/cpp/demo/Ice/plugin

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章