shape_shifter.cpp
Go to the documentation of this file.
1 //=================================================================================================
2 // Copyright (c) 2013, Johannes Meyer, TU Darmstadt
3 // All rights reserved.
4 
5 // Redistribution and use in source and binary forms, with or without
6 // modification, are permitted provided that the following conditions are met:
7 // * Redistributions of source code must retain the above copyright
8 // notice, this list of conditions and the following disclaimer.
9 // * Redistributions in binary form must reproduce the above copyright
10 // notice, this list of conditions and the following disclaimer in the
11 // documentation and/or other materials provided with the distribution.
12 // * Neither the name of the Flight Systems and Automatic Control group,
13 // TU Darmstadt, nor the names of its contributors may be used to
14 // endorse or promote products derived from this software without
15 // specific prior written permission.
16 
17 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
18 // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
19 // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
20 // DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY
21 // DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
22 // (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
23 // LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
24 // ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
26 // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 //=================================================================================================
28 
29 #include <blob/shape_shifter.h>
30 
31 namespace blob {
32 
34  {
35  }
36 
38  : blob_(blob)
39  {
40  }
41 
43  {
44  }
45 
46  // Helpers for inspecting shapeshifter
47  std::string const& ShapeShifter::getDataType() const { return datatype; }
48  std::string const& ShapeShifter::getMD5Sum() const { return md5; }
49  std::string const& ShapeShifter::getMessageDefinition() const { return msg_def; }
50 
51  ShapeShifter& ShapeShifter::morph(const std::string& _md5sum, const std::string& _datatype, const std::string& _msg_def,
52  const std::string& _latching)
53  {
54  md5 = _md5sum;
55  datatype = _datatype;
56  msg_def = _msg_def;
57  latching = _latching;
58  return *this;
59  }
60 
61  // Helper for advertising
62  ros::Publisher ShapeShifter::advertise(ros::NodeHandle& nh, const std::string& topic, uint32_t queue_size_, bool latch,
63  const ros::SubscriberStatusCallback &connect_cb) const
64  {
65  ros::AdvertiseOptions opts(topic, queue_size_, getMD5Sum(), getDataType(), getMessageDefinition(), connect_cb);
66  opts.latch = latch;
67  return nh.advertise(opts);
68  }
69 
71  uint32_t ShapeShifter::size() const {
72  return blob_.size();
73  }
74 
75 } // namespace blob
boost::function< void(const SingleSubscriberPublisher &)> SubscriberStatusCallback
std::string latching
Definition: shape_shifter.h:82
std::string msg_def
Definition: shape_shifter.h:82
std::string const & getMD5Sum() const
std::string const & getDataType() const
uint32_t size() const
Return the size of the serialized message.
ShapeShifter & morph(const std::string &md5sum, const std::string &datatype, const std::string &msg_def=std::string(), const std::string &latching=std::string())
std::string datatype
Definition: shape_shifter.h:82
size_type size() const
Definition: Blob.h:91
Definition: Blob.h:43
Publisher advertise(const std::string &topic, uint32_t queue_size, bool latch=false)
std::string const & getMessageDefinition() const
ros::Publisher advertise(ros::NodeHandle &nh, const std::string &topic, uint32_t queue_size_, bool latch=false, const ros::SubscriberStatusCallback &connect_cb=ros::SubscriberStatusCallback()) const


blob
Author(s): Johannes Meyer
autogenerated on Sat Jul 27 2019 03:35:24