shape_shifter.cpp
Go to the documentation of this file.
00001 //=================================================================================================
00002 // Copyright (c) 2013, Johannes Meyer, TU Darmstadt
00003 // All rights reserved.
00004 
00005 // Redistribution and use in source and binary forms, with or without
00006 // modification, are permitted provided that the following conditions are met:
00007 //     * Redistributions of source code must retain the above copyright
00008 //       notice, this list of conditions and the following disclaimer.
00009 //     * Redistributions in binary form must reproduce the above copyright
00010 //       notice, this list of conditions and the following disclaimer in the
00011 //       documentation and/or other materials provided with the distribution.
00012 //     * Neither the name of the Flight Systems and Automatic Control group,
00013 //       TU Darmstadt, nor the names of its contributors may be used to
00014 //       endorse or promote products derived from this software without
00015 //       specific prior written permission.
00016 
00017 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
00018 // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
00019 // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
00020 // DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY
00021 // DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
00022 // (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
00023 // LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
00024 // ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
00025 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
00026 // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00027 //=================================================================================================
00028 
00029 #include <blob/shape_shifter.h>
00030 
00031 namespace blob {
00032 
00033   ShapeShifter::ShapeShifter()
00034   {
00035   }
00036 
00037   ShapeShifter::ShapeShifter(const Blob& blob)
00038     : blob_(blob)
00039   {
00040   }
00041 
00042   ShapeShifter::~ShapeShifter()
00043   {
00044   }
00045 
00046   // Helpers for inspecting shapeshifter
00047   std::string const& ShapeShifter::getDataType()          const { return datatype; }
00048   std::string const& ShapeShifter::getMD5Sum()            const { return md5; }
00049   std::string const& ShapeShifter::getMessageDefinition() const { return msg_def; }
00050 
00051   ShapeShifter& ShapeShifter::morph(const std::string& _md5sum, const std::string& _datatype, const std::string& _msg_def,
00052              const std::string& _latching)
00053   {
00054     md5 = _md5sum;
00055     datatype = _datatype;
00056     msg_def = _msg_def;
00057     latching = _latching;
00058     return *this;
00059   }
00060 
00061   // Helper for advertising
00062   ros::Publisher ShapeShifter::advertise(ros::NodeHandle& nh, const std::string& topic, uint32_t queue_size_, bool latch,
00063                            const ros::SubscriberStatusCallback &connect_cb) const
00064   {
00065     ros::AdvertiseOptions opts(topic, queue_size_, getMD5Sum(), getDataType(), getMessageDefinition(), connect_cb);
00066     opts.latch = latch;
00067     return nh.advertise(opts);
00068   }
00069 
00071   uint32_t ShapeShifter::size() const {
00072     return blob_.size();
00073   }
00074 
00075 } // namespace blob


blob
Author(s): Johannes Meyer
autogenerated on Mon Oct 6 2014 07:55:44