📄 stock_selector_manger.h
字号:
#ifndef __HBSTOCK2_STOCK_SELECTOR_MANGER_H__
#define __HBSTOCK2_STOCK_SELECTOR_MANGER_H__
#include "hbstock2/stock_selector.h"
#include <ace/Singleton.h>
namespace hbstock2
{
class StockSelectorPtrSort
{
public:
bool operator() (const StockSelectorPtr selector_ptr1,const StockSelectorPtr selector_ptr2) const;
};
typedef std::set<StockSelectorPtr,StockSelectorPtrSort> SetStockSelector;
typedef ACE_Refcounted_Auto_Ptr<SetStockSelector ,ACE_Null_Mutex> SetStockSelectorPtr;
class SelectorManger
{
private:
std::map<std::string,gnu::ACE_DLL_Ptr> map_dll_loader;
SetStockSelectorPtr set_selector_ptr;
std::string str_default_dir;
char p_file_prefix_default[256];
bool is_inited ;
protected:
void* dso_loader(const std::string& str_file,const char* symbolname) throw (hbstock_exception);
public:
SelectorManger();
virtual ~SelectorManger();
// dynamic load dataloader
int load_dso_from_dir(const std::string& str_dir,const char* p_file_prefix=NULL);
int load_dso_from_file(const std::string& str_file);
int load_dso_from_default_dir(void);
// manger selector
bool register_selector(StockSelectorPtr selector_ptr);
bool unregister_selector(unsigned int selector_id);
unsigned int get_selector_id(const std::string& str_selector_name);
StockSelectorPtr get_selector(unsigned int selector_id) const;
SetStockSelectorPtr get_all_selectors() const;
void print_info() const;
// init and finit
virtual int init (void);
virtual int fini (void);
}; //SelectorManger
typedef ACE_Singleton<SelectorManger,ACE_Thread_Mutex> SelectorMangerInst;
} // namespace hbstock2
#endif // #ifndef __HBSTOCK2_STOCK_SELECTOR_MANGER_H__
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -