Add load_frozen_state also to LoadStateFromFile gRPC requests. (#1423)
parent
5cbe09fef2
commit
a21ecf9b99
|
@ -197,10 +197,11 @@ std::map<int, int> MapBuilderStub::LoadState(
|
||||||
}
|
}
|
||||||
|
|
||||||
std::map<int, int> MapBuilderStub::LoadStateFromFile(
|
std::map<int, int> MapBuilderStub::LoadStateFromFile(
|
||||||
const std::string& filename) {
|
const std::string& filename, const bool load_frozen_state) {
|
||||||
proto::LoadStateFromFileRequest request;
|
proto::LoadStateFromFileRequest request;
|
||||||
request.set_file_path(filename);
|
request.set_file_path(filename);
|
||||||
request.set_client_id(client_id_);
|
request.set_client_id(client_id_);
|
||||||
|
request.set_load_frozen_state(load_frozen_state);
|
||||||
async_grpc::Client<handlers::LoadStateFromFileSignature> client(
|
async_grpc::Client<handlers::LoadStateFromFileSignature> client(
|
||||||
client_channel_);
|
client_channel_);
|
||||||
CHECK(client.Write(request));
|
CHECK(client.Write(request));
|
||||||
|
|
|
@ -52,7 +52,8 @@ class MapBuilderStub : public mapping::MapBuilderInterface {
|
||||||
io::ProtoStreamWriterInterface* writer) override;
|
io::ProtoStreamWriterInterface* writer) override;
|
||||||
std::map<int, int> LoadState(io::ProtoStreamReaderInterface* reader,
|
std::map<int, int> LoadState(io::ProtoStreamReaderInterface* reader,
|
||||||
bool load_frozen_state) override;
|
bool load_frozen_state) override;
|
||||||
std::map<int, int> LoadStateFromFile(const std::string& filename) override;
|
std::map<int, int> LoadStateFromFile(const std::string& filename,
|
||||||
|
bool load_frozen_state) override;
|
||||||
int num_trajectory_builders() const override;
|
int num_trajectory_builders() const override;
|
||||||
mapping::PoseGraphInterface* pose_graph() override;
|
mapping::PoseGraphInterface* pose_graph() override;
|
||||||
const std::vector<mapping::proto::TrajectoryBuilderOptionsWithSensorIds>&
|
const std::vector<mapping::proto::TrajectoryBuilderOptionsWithSensorIds>&
|
||||||
|
|
|
@ -32,7 +32,7 @@ void LoadStateFromFileHandler::OnRequest(
|
||||||
// background.
|
// background.
|
||||||
auto trajectory_remapping =
|
auto trajectory_remapping =
|
||||||
GetContext<MapBuilderContextInterface>()->map_builder().LoadStateFromFile(
|
GetContext<MapBuilderContextInterface>()->map_builder().LoadStateFromFile(
|
||||||
request.file_path());
|
request.file_path(), request.load_frozen_state());
|
||||||
for (const auto& entry : trajectory_remapping) {
|
for (const auto& entry : trajectory_remapping) {
|
||||||
GetContext<MapBuilderContextInterface>()->RegisterClientIdForTrajectory(
|
GetContext<MapBuilderContextInterface>()->RegisterClientIdForTrajectory(
|
||||||
request.client_id(), entry.second);
|
request.client_id(), entry.second);
|
||||||
|
|
|
@ -161,6 +161,7 @@ message LoadStateResponse {
|
||||||
message LoadStateFromFileRequest {
|
message LoadStateFromFileRequest {
|
||||||
string file_path = 1;
|
string file_path = 1;
|
||||||
string client_id = 2;
|
string client_id = 2;
|
||||||
|
bool load_frozen_state = 3;
|
||||||
}
|
}
|
||||||
|
|
||||||
message LoadStateFromFileResponse {
|
message LoadStateFromFileResponse {
|
||||||
|
|
|
@ -50,7 +50,8 @@ class MockMapBuilder : public mapping::MapBuilderInterface {
|
||||||
MOCK_METHOD2(SerializeState, void(bool, io::ProtoStreamWriterInterface *));
|
MOCK_METHOD2(SerializeState, void(bool, io::ProtoStreamWriterInterface *));
|
||||||
MOCK_METHOD2(LoadState,
|
MOCK_METHOD2(LoadState,
|
||||||
std::map<int, int>(io::ProtoStreamReaderInterface *, bool));
|
std::map<int, int>(io::ProtoStreamReaderInterface *, bool));
|
||||||
MOCK_METHOD1(LoadStateFromFile, std::map<int, int>(const std::string &));
|
MOCK_METHOD2(LoadStateFromFile,
|
||||||
|
std::map<int, int>(const std::string &, bool));
|
||||||
MOCK_CONST_METHOD0(num_trajectory_builders, int());
|
MOCK_CONST_METHOD0(num_trajectory_builders, int());
|
||||||
MOCK_METHOD0(pose_graph, mapping::PoseGraphInterface *());
|
MOCK_METHOD0(pose_graph, mapping::PoseGraphInterface *());
|
||||||
MOCK_CONST_METHOD0(
|
MOCK_CONST_METHOD0(
|
||||||
|
|
|
@ -391,7 +391,7 @@ std::map<int, int> MapBuilder::LoadState(
|
||||||
}
|
}
|
||||||
|
|
||||||
std::map<int, int> MapBuilder::LoadStateFromFile(
|
std::map<int, int> MapBuilder::LoadStateFromFile(
|
||||||
const std::string& state_filename) {
|
const std::string& state_filename, const bool load_frozen_state) {
|
||||||
const std::string suffix = ".pbstream";
|
const std::string suffix = ".pbstream";
|
||||||
if (state_filename.substr(
|
if (state_filename.substr(
|
||||||
std::max<int>(state_filename.size() - suffix.size(), 0)) != suffix) {
|
std::max<int>(state_filename.size() - suffix.size(), 0)) != suffix) {
|
||||||
|
@ -400,7 +400,7 @@ std::map<int, int> MapBuilder::LoadStateFromFile(
|
||||||
}
|
}
|
||||||
LOG(INFO) << "Loading saved state '" << state_filename << "'...";
|
LOG(INFO) << "Loading saved state '" << state_filename << "'...";
|
||||||
io::ProtoStreamReader stream(state_filename);
|
io::ProtoStreamReader stream(state_filename);
|
||||||
return LoadState(&stream, true);
|
return LoadState(&stream, load_frozen_state);
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace mapping
|
} // namespace mapping
|
||||||
|
|
|
@ -62,7 +62,8 @@ class MapBuilder : public MapBuilderInterface {
|
||||||
std::map<int, int> LoadState(io::ProtoStreamReaderInterface *reader,
|
std::map<int, int> LoadState(io::ProtoStreamReaderInterface *reader,
|
||||||
bool load_frozen_state) override;
|
bool load_frozen_state) override;
|
||||||
|
|
||||||
std::map<int, int> LoadStateFromFile(const std::string &filename) override;
|
std::map<int, int> LoadStateFromFile(const std::string &filename,
|
||||||
|
const bool load_frozen_state) override;
|
||||||
|
|
||||||
mapping::PoseGraphInterface *pose_graph() override {
|
mapping::PoseGraphInterface *pose_graph() override {
|
||||||
return pose_graph_.get();
|
return pose_graph_.get();
|
||||||
|
|
|
@ -89,10 +89,10 @@ class MapBuilderInterface {
|
||||||
virtual std::map<int /* trajectory id in proto */, int /* trajectory id */>
|
virtual std::map<int /* trajectory id in proto */, int /* trajectory id */>
|
||||||
LoadState(io::ProtoStreamReaderInterface* reader, bool load_frozen_state) = 0;
|
LoadState(io::ProtoStreamReaderInterface* reader, bool load_frozen_state) = 0;
|
||||||
|
|
||||||
// Loads the SLAM state froma a pbstream file. Returns the remapping of new
|
// Loads the SLAM state from a pbstream file. Returns the remapping of new
|
||||||
// trajectory_ids.
|
// trajectory_ids.
|
||||||
virtual std::map<int /* trajectory id in proto */, int /* trajectory id */>
|
virtual std::map<int /* trajectory id in proto */, int /* trajectory id */>
|
||||||
LoadStateFromFile(const std::string& filename) = 0;
|
LoadStateFromFile(const std::string& filename, bool load_frozen_state) = 0;
|
||||||
|
|
||||||
virtual int num_trajectory_builders() const = 0;
|
virtual int num_trajectory_builders() const = 0;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue