DataArray 数组
DataArray类模块是行情与交易数据查询的标准返回, 表示一个结构体数组。类声明如下:
template <typename T>class DataArray{public://获取api调用结果, 0: 成功, 非0: 错误码virtual int status() = 0;//返回结构数组的指针virtual T* data() = 0;//返回数据的长度virtual int count() = 0;//返回下标为i的结构引用,从0开始virtual T& at(int i) = 0;//释放数据集合virtual void release() = 0;};
典型的使用场景如下:
- 调用数据查询函数返回一个DataArray
对象指针 DataArray *da; - 调用
da->status()判断函数调用是否成功,0表示成功,非0表示错误码,调用失败,数组长度为0 - 如果
da->status()返回成功,则可以遍历数组。 - 调用
da->release()释放结果集。
使用举例
//查询一段tick行情DataArray<Tick> *da = history_ticks("SHSE.600000", "2018-07-16 09:30:00", "2018-07-16 10:30:00");if (da->status() == 0) //判断查询是否成功{//遍历行情数组for (int i = 0; i < da->count(); i++){cout << da->at(i).symbol << " " << da->at(i).price << endl;}}//释放数组da->release();
另一种遍历方式
//查询一段tick行情DataArray<Tick> *da = history_ticks("SHSE.600000", "2018-07-16 09:30:00", "2018-07-16 10:30:00");if (da->status() == 0) //判断查询是否成功{//获得原始数组指针Tick *ticks = da->data();//遍历行情数组for (int i = 0; i < da->count(); i++){cout << ticks[i].symbol << " " << ticks[i].price << endl;}}//释放数组da->release();