milvus/cpp/src/storage/id_generators.cpp
Xu Peng d7f5e351a2 feat(storage): add id generators and memvectors
Former-commit-id: 78f7406456556882247c1ac4ccc9bb928699f896
2019-04-15 20:49:30 +08:00

33 lines
776 B
C++

#include <chrono>
#include <assert.h>
#inlcude "id_generators.h"
using std::chrono;
namespace vecengine {
IDGenerator::~IDGenerator() {}
IDNumber SimpleIDGenerator::getNextIDNumber() {
auto now = chrono::system_clock::now();
auto micros = duration_cast<chrono::microseconds>(now.time_since_epoch()).count();
return micros * MAX_IDS_PER_MICRO
}
IDNumbers&& SimpleIDGenerator::getNextIDNumbers(size_t n) {
assert(n < MAX_IDS_PER_MICRO);
auto now = chrono::system_clock::now();
auto micros = duration_cast<chrono::microseconds>(now.time_since_epoch()).count();
micros *= MAX_IDS_PER_MICRO;
IDNumbers ids = IDNumbers(n);
for (int pos=0; pos<n; ++pos) {
ids[pos] = micros + pos;
}
return ids;
}
} // namespace vecengine