ROSBridge.cpp 823 Bytes
Newer Older
Valentin Platzgummer's avatar
Valentin Platzgummer committed
1 2 3 4 5
#include "ros_bridge/include/ROSBridge.h"

ROSBridge::ROSBridge::ROSBridge() :
    _casePacker(&_typeFactory, &_jsonFactory)
  , _rbc("localhost:9090")
Valentin Platzgummer's avatar
Valentin Platzgummer committed
6
  , _topicPublisher(&_casePacker, &_rbc)
Valentin Platzgummer's avatar
Valentin Platzgummer committed
7
  , _topicSubscriber(&_casePacker, &_rbc)
Valentin Platzgummer's avatar
Valentin Platzgummer committed
8 9 10 11
{

}

Valentin Platzgummer's avatar
Valentin Platzgummer committed
12
void ROSBridge::ROSBridge::publish(ROSBridge::ROSBridge::JsonDocUPtr doc)
Valentin Platzgummer's avatar
Valentin Platzgummer committed
13
{
Valentin Platzgummer's avatar
Valentin Platzgummer committed
14
    _topicPublisher.publish(std::move(doc));
Valentin Platzgummer's avatar
Valentin Platzgummer committed
15 16
}

Valentin Platzgummer's avatar
Valentin Platzgummer committed
17
void ROSBridge::ROSBridge::subscribe(const char *topic, const std::function<void(JsonDocUPtr)> &callBack)
Valentin Platzgummer's avatar
Valentin Platzgummer committed
18
{
Valentin Platzgummer's avatar
Valentin Platzgummer committed
19
    _topicSubscriber.subscribe(topic, callBack);
Valentin Platzgummer's avatar
Valentin Platzgummer committed
20 21
}

Valentin Platzgummer's avatar
Valentin Platzgummer committed
22
const ROSBridge::CasePacker *ROSBridge::ROSBridge::casePacker() const
Valentin Platzgummer's avatar
Valentin Platzgummer committed
23
{
Valentin Platzgummer's avatar
Valentin Platzgummer committed
24
    return &_casePacker;
Valentin Platzgummer's avatar
Valentin Platzgummer committed
25 26
}

Valentin Platzgummer's avatar
Valentin Platzgummer committed
27
void ROSBridge::ROSBridge::start()
Valentin Platzgummer's avatar
Valentin Platzgummer committed
28
{
Valentin Platzgummer's avatar
Valentin Platzgummer committed
29 30 31 32
    _topicPublisher.start();
    _topicSubscriber.start();
}

33
void ROSBridge::ROSBridge::reset()
Valentin Platzgummer's avatar
Valentin Platzgummer committed
34
{
35 36
    _topicPublisher.reset();
    _topicSubscriber.reset();
Valentin Platzgummer's avatar
Valentin Platzgummer committed
37 38
}