当前位置: 首页>>代码示例>>C++>>正文


C++ Page::DoInit方法代码示例

本文整理汇总了C++中Page::DoInit方法的典型用法代码示例。如果您正苦于以下问题:C++ Page::DoInit方法的具体用法?C++ Page::DoInit怎么用?C++ Page::DoInit使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Page的用法示例。


在下文中一共展示了Page::DoInit方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: init

/*
 * 功能:静态初始化设置
 * 编写:Rocky 2009-09-23 14:14:55
 * 返回:正确返回>=0值,出错返<0值;
 */
int Page::init()
{
    FUNCTION_TRACK(); // 函数轨迹跟踪


    int ret;
    static Page page;
    page.m_bParent = true;

    Page *obj = Page::instance( &page );
    if(NULL == obj)
    {
        LOG_ERROR("Page::instance() error");
        return ERR;
    }


    // 动态库文件目录
    const string &path = GlobalConfig::instance()->CgiDir();

    // 取出目录下所有动态库
    GetFileList dll( path );

    GetFileList::file_iterator file(dll);

    // 注册处理页面到队列
    while( file.next() )
    {
        DllLoad::Ptr dll;

        // 打开动态库
        if( dll->Open(file.name()) < 0 )
        {
            LOG_ERROR("加载动态库出错:[%s]", file.name());
            continue;
        }

        typedef void (*FuncPtr)(void *);

        // 取执行对象
        const string sym = "DllEnter";
        FuncPtr pSym = (FuncPtr)dll->GetSymbol(sym);
        if(NULL == pSym)
        {
            LOG_ERROR("取执行对象出错:[%s]", sym.c_str());
            continue;
        }

        // 执行(传入当前进程环境,即主模块的信息)
        (*pSym)( Environment::instance() );

        LOG_INFO("Loaded: [%s]", file.name());
    }

    // 初始化
    Factory::iterator it;

    for(it = Page::instance()->m_Factory.begin(); Page::instance()->m_Factory.end()!= it; it++)
    {
        const string &name = it->first;
        Page *&page = it->second;
        int ret = page->DoInit();
        if( ret < 0 )
        {
            LOG_ERROR("page->DoInit() error, name=[%s]", name.c_str());
            Page::instance()->UnRegister( name );
            continue;
        }
        LOG_DEBUG("Init page obj[%s] OK", name.c_str());
    }


    return OK;
}
开发者ID:rocky2shi,项目名称:NoteSrv,代码行数:79,代码来源:Page.cpp


注:本文中的Page::DoInit方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。