dmpserverloader.h 1.2 KB
/**************************************************************************
* file:              dmpservernativeloader.h

* Author:            wanzhongping
* Date:              2020-12-31 17:10:36
* Email:             zhongpingw@chinadci.com
* copyright:         广州城市信息研究所有限公司
***************************************************************************/

#ifndef __dmpservernativeloader_h__
#define __dmpservernativeloader_h__

#include <iostream>
#include <string>
#include <map>
#include <memory>
#include <boost/function.hpp>
#include <boost/filesystem.hpp>
#include "dmap_server.h"

class DmpServerModule;
class DmpServerRegistry;

class SERVER_EXPORT DmpServerLoader
{                   
  public:
    DmpServerLoader() = default;
    void loadModules(const boost::filesystem::path &module_path, DmpServerRegistry &registry);
    void unloadModules();
    std::shared_ptr<DmpServerModule> loadModule( const std::string &location );

  private:
    typedef std::map<std::string, std::shared_ptr<DmpServerModule>> ModuleMap;
    std::shared_ptr<DmpServerModule> findModule(const std::string &location);
    ModuleMap modules_;
};

#endif // __dmpservernativeloader_h__