📄 stock_selector.h
字号:
#ifndef __HBSTOCK2_STOCK_SELECTOR_H__
#define __HBSTOCK2_STOCK_SELECTOR_H__
#include <vector>
#include <map>
#include <set>
#include <string>
#include <ace/Service_Object.h>
#include <ace/Refcounted_Auto_Ptr.h>
#include <ace/Null_Mutex.h>
#include <ace/DLL.h>
#include "hbstock2/data_config.h"
#include "hbstock2/hbstock_exception.h"
#include "gnu/app_config.h"
#include "hbstock2/model_base.h"
namespace hbstock2
{
enum PeriodType {SHORT_LINE,MIDDLE_LINE,LONG_LINE};
struct SelectorData
{
unsigned long id;
char code[LEN_CODE+1];
char day[LEN_DATE+1];
int selector_id;
char selector_name[LEN_NAME+1];
char selector_title[LEN_NAME+1];
float priority;
PeriodType period_type;
bool is_up;
bool is_expect_selected;
bool is_selected;
public :
SelectorData() :
id(0),
selector_id(0),
priority(0),
period_type(MIDDLE_LINE),
is_up(true),
is_expect_selected(true),
is_selected(true)
{
code[0] = 0;
day[0] = 0;
selector_name[0] = 0;
selector_title[0] = 0;
}
};
bool SelectorDataSort (const SelectorData& data1,const SelectorData& data2) ;
typedef std::vector<SelectorData> VectSelectorData;
typedef ACE_Refcounted_Auto_Ptr<VectSelectorData,ACE_Null_Mutex> VectSelectorDataPtr;
class SelectorPriority
{
public :
bool set_priority(const unsigned int i_index,const float f_priority);
bool set_weigh(const unsigned int i_index,const float f_weigh);
bool get_priority(const unsigned int i_index,float f_priority) const;
bool get_weigh(const unsigned int i_index,float f_weigh) const;
void init_priority(const unsigned int i_size,const float f_priority=100);
void init_priority(const float f_priority=100);
void init_weigh();
void init_weigh(const std::vector<float>& vect_weigh);
float result();
private :
std::vector<float> m_vect_weigh;
std::vector<float> m_vect_priority;
};
class StockSelector : public ModelConfigParameter,
public ModelBaseInfo,
public ACE_Service_Object
{
public:
virtual ~StockSelector(){}
virtual int init (int argc, ACE_TCHAR *argv[]) = 0;
virtual int fini (void) = 0;
virtual int info (ACE_TCHAR **str, size_t len) const = 0;
// select function
virtual bool is_up() const = 0;
virtual PeriodType get_period_type() const = 0;
virtual bool prepare() = 0;
virtual bool exec_select(SelectorData& data,
const char* p_ch_code,const char* p_ch_date=0) = 0;
virtual bool post(VectSelectorData& vect_selector_data) = 0;
}; //StockSelector
typedef ACE_Refcounted_Auto_Ptr<StockSelector,ACE_Null_Mutex> StockSelectorPtr;
} // namespace hbstock2
#endif // #ifndef __HBSTOCK2_STOCK_SELECTOR_H__
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -