virtual void add(std::string ts, std::string id, double value) { aku_Status status = AKU_EBUSY; while(status == AKU_EBUSY) { aku_Sample sample; if (aku_parse_timestamp(ts.c_str(), &sample) != AKU_SUCCESS) { std::runtime_error err("invalid timestamp"); BOOST_THROW_EXCEPTION(err); } if (aku_series_to_param_id(db_, id.data(), id.data() + id.size(), &sample) != AKU_SUCCESS) { std::runtime_error err("invalid series name"); BOOST_THROW_EXCEPTION(err); } sample.payload.type = AKU_PAYLOAD_FLOAT; sample.payload.float64 = value; status = aku_write(db_, &sample); } throw_on_error(status); }
aku_Status AkumuliConnection::write(aku_Sample const& sample) { return aku_write(db_, &sample); }