com_private.h 714 Bytes
Newer Older
Valentin Platzgummer's avatar
Valentin Platzgummer committed
1 2 3 4 5
#pragma once

#include "ros_bridge/rapidjson/include/rapidjson/document.h"

#include <deque>
Valentin Platzgummer's avatar
Valentin Platzgummer committed
6
#include <memory>
7
#include <unordered_map>
Valentin Platzgummer's avatar
Valentin Platzgummer committed
8

9 10
namespace ros_bridge {
namespace com_private {
Valentin Platzgummer's avatar
Valentin Platzgummer committed
11 12 13 14

typedef rapidjson::Document JsonDoc;
typedef std::unique_ptr<JsonDoc> JsonDocUPtr;
typedef std::deque<JsonDocUPtr> JsonQueue;
Valentin Platzgummer's avatar
Valentin Platzgummer committed
15
typedef std::size_t HashType;
16 17

using ClientMap = std::unordered_map<HashType, std::string>;
Valentin Platzgummer's avatar
Valentin Platzgummer committed
18

Valentin Platzgummer's avatar
Valentin Platzgummer committed
19 20 21
std::size_t getHash(const std::string &str);
std::size_t getHash(const char *str);

22 23 24 25 26 27
bool getTopic(const JsonDoc &doc, std::string &topic);
bool getType(const JsonDoc &doc, std::string &type);

bool removeTopic(JsonDoc &doc);
bool removeType(JsonDoc &doc);

Valentin Platzgummer's avatar
Valentin Platzgummer committed
28 29
} // namespace com_private
} // namespace ros_bridge