00001 00011 #ifndef SPATIAL_TEMPORAL_LEARNING_WORLDLIB_REMOTE_INTERACTIVE_WORLD_MODEL_CLIENT_H_ 00012 #define SPATIAL_TEMPORAL_LEARNING_WORLDLIB_REMOTE_INTERACTIVE_WORLD_MODEL_CLIENT_H_ 00013 00014 // worldlib 00015 #include "HttpClient.h" 00016 #include "../model/TaskModel.h" 00017 #include "../world/Item.h" 00018 00019 namespace rail 00020 { 00021 namespace spatial_temporal_learning 00022 { 00023 namespace worldlib 00024 { 00025 namespace remote 00026 { 00027 00034 class InteractiveWorldModelClient : public HttpClient 00035 { 00036 public: 00038 static const uint32_t TASK_ID_TABLE_SETTING = 1; 00040 static const uint32_t TASK_ID_MAGAZINE_PLACEMENT = 2; 00042 static const uint32_t TASK_ID_DIRTY_DISHES = 3; 00044 static const uint32_t TASK_ID_PUT_AWAY_GENERAL = 4; 00045 00053 InteractiveWorldModelClient(const InteractiveWorldModelClient &client); 00054 00063 InteractiveWorldModelClient(const std::string &host = "robotsfor.me", const uint16_t port = HttpClient::DEFAULT_PORT); 00064 00075 bool getTaskModel(const uint32_t task_id, model::TaskModel &task_model) const; 00076 00087 bool getTaskItems(const uint32_t task_id, std::vector<world::Item> &items) const; 00088 00099 bool getTaskSurfaces(const uint32_t task_id, std::vector<world::Surface> &surfaces) const; 00100 }; 00101 00102 } 00103 } 00104 } 00105 } 00106 00107 #endif