#include <timeseries.h>
You are defining your own time series class, for example:
class Stock {
public:
char const* name;
TYPE_DESCRIPTOR((KEY(name, INDEXED)));
};
class Quote {
public:
int4 tickerDate;
real4 bid;
int4 bidSize;
real4 ask;
int4 askSize;
time_t time() const { return tickerDate; } // this method should be defined
TYPE_DESCRIPTOR((FIELD(tickerDate), FIELD(bid), FIELD(bidSize), FIELD(ask), FIELD(askSize)));
};
typedef dbTimeSeriesBlock<Quote> DailyBlock;
REGISTER(DailyBlock);
Now you can work with time series objects in the followin way:
dbDatabase db;
if (db.open("mydatabase.dbs")) {
dbTimeSeriesProcessor<Quote> proc(db, MIN_ELEMENTS_IN_BLOCK,MAX_ELEMENTS_IN_BLOCK);
Quote quote;
// initialize quote
Stock stock;
stock.name = "AAD";
oid_t stockId = insert(oid).getOid();
proc.add(stockId, quote); // add new element in time series
Quote quoteBuf[MAX_QUOTES];
// select quotes for the specified interval
int n = proc.getInterval(stockId, fromDate, tillDate, quoteBuf, MAX_QUOTES);
for (int i = 0; i < n; i++) {
printf("bid=d ask=d
", quoteBuf[i].bid, quoteBuf[i].ask);
}
}
1.2.18