PDF下载 下载

DataArray 数组

DataArray类模块是行情与交易数据查询的标准返回, 表示一个结构体数组。类声明如下:

  1. template <typename T>
  2. class DataArray
  3. {
  4. public:
  5. //获取api调用结果, 0: 成功, 非0: 错误码
  6. virtual int status() = 0;
  7. //返回结构数组的指针
  8. virtual T* data() = 0;
  9. //返回数据的长度
  10. virtual int count() = 0;
  11. //返回下标为i的结构引用,从0开始
  12. virtual T& at(int i) = 0;
  13. //释放数据集合
  14. virtual void release() = 0;
  15. };

典型的使用场景如下:

  1. 调用数据查询函数返回一个DataArray对象指针 DataArray *da;
  2. 调用da->status() 判断函数调用是否成功,0表示成功,非0表示错误码,调用失败,数组长度为0
  3. 如果da->status()返回成功,则可以遍历数组。
  4. 调用da->release() 释放结果集。

使用举例

  1. //查询一段tick行情
  2. DataArray<Tick> *da = history_ticks("SHSE.600000", "2018-07-16 09:30:00", "2018-07-16 10:30:00");
  3. if (da->status() == 0) //判断查询是否成功
  4. {
  5. //遍历行情数组
  6. for (int i = 0; i < da->count(); i++)
  7. {
  8. cout << da->at(i).symbol << " " << da->at(i).price << endl;
  9. }
  10. }
  11. //释放数组
  12. da->release();

另一种遍历方式

  1. //查询一段tick行情
  2. DataArray<Tick> *da = history_ticks("SHSE.600000", "2018-07-16 09:30:00", "2018-07-16 10:30:00");
  3. if (da->status() == 0) //判断查询是否成功
  4. {
  5. //获得原始数组指针
  6. Tick *ticks = da->data();
  7. //遍历行情数组
  8. for (int i = 0; i < da->count(); i++)
  9. {
  10. cout << ticks[i].symbol << " " << ticks[i].price << endl;
  11. }
  12. }
  13. //释放数组
  14. da->release();
0 篇笔记