|
|
@@ -35,7 +35,7 @@ static void unlock(fdb_db_t db)
|
|
|
}
|
|
|
*/
|
|
|
static fdb_time_t get_time(void) {
|
|
|
- // ms to s
|
|
|
+ // ns to ms
|
|
|
return pika_platform_get_tick() / 1000;
|
|
|
}
|
|
|
#endif
|
|
|
@@ -242,14 +242,47 @@ pika_bool _flashdb_TSL_iter_callback(fdb_tsl_t tsl, void* arg) {
|
|
|
return res;
|
|
|
}
|
|
|
|
|
|
+static int _TSDB_iter(PikaObj* self,
|
|
|
+ Arg* callback,
|
|
|
+ Arg* user_data,
|
|
|
+ pika_bool is_reverse) {
|
|
|
+ fdb_tsdb_t tsdb = _OBJ2TSDB(self);
|
|
|
+ tsdb_foreach_context context = {
|
|
|
+ .callback = callback,
|
|
|
+ .user_data = user_data,
|
|
|
+ .tsdb = tsdb,
|
|
|
+ };
|
|
|
+ if (is_reverse) {
|
|
|
+ fdb_tsl_iter_reverse(tsdb, _flashdb_TSL_iter_callback, &context);
|
|
|
+ } else {
|
|
|
+ fdb_tsl_iter(tsdb, _flashdb_TSL_iter_callback, &context);
|
|
|
+ }
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
int _flashdb_TSDB_tsl_iter(PikaObj* self, Arg* callback, Arg* user_data) {
|
|
|
+ return _TSDB_iter(self, callback, user_data, pika_false);
|
|
|
+}
|
|
|
+
|
|
|
+int _flashdb_TSDB_tsl_iter_reverse(PikaObj* self,
|
|
|
+ Arg* callback,
|
|
|
+ Arg* user_data) {
|
|
|
+ return _TSDB_iter(self, callback, user_data, pika_true);
|
|
|
+}
|
|
|
+
|
|
|
+int _flashdb_TSDB_tsl_iter_by_time(PikaObj* self,
|
|
|
+ int64_t from_time,
|
|
|
+ int64_t to_time,
|
|
|
+ Arg* callback,
|
|
|
+ Arg* user_data) {
|
|
|
fdb_tsdb_t tsdb = _OBJ2TSDB(self);
|
|
|
tsdb_foreach_context context = {
|
|
|
.callback = callback,
|
|
|
.user_data = user_data,
|
|
|
.tsdb = tsdb,
|
|
|
};
|
|
|
- fdb_tsl_iter(tsdb, _flashdb_TSL_iter_callback, &context);
|
|
|
+ fdb_tsl_iter_by_time(tsdb, from_time, to_time, _flashdb_TSL_iter_callback,
|
|
|
+ &context);
|
|
|
return 0;
|
|
|
}
|
|
|
|