service_client_options.h
Go to the documentation of this file.
00001 /*
00002  * Copyright (C) 2009, Willow Garage, Inc.
00003  *
00004  * Redistribution and use in source and binary forms, with or without
00005  * modification, are permitted provided that the following conditions are met:
00006  *   * Redistributions of source code must retain the above copyright notice,
00007  *     this list of conditions and the following disclaimer.
00008  *   * Redistributions in binary form must reproduce the above copyright
00009  *     notice, this list of conditions and the following disclaimer in the
00010  *     documentation and/or other materials provided with the distribution.
00011  *   * Neither the names of Stanford University or Willow Garage, Inc. nor the names of its
00012  *     contributors may be used to endorse or promote products derived from
00013  *     this software without specific prior written permission.
00014  *
00015  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00016  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
00017  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
00018  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
00019  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
00020  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
00021  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
00022  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
00023  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
00024  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
00025  * POSSIBILITY OF SUCH DAMAGE.
00026  */
00027 
00028 #ifndef ROSCPP_SERVICE_CLIENT_OPTIONS_H
00029 #define ROSCPP_SERVICE_CLIENT_OPTIONS_H
00030 
00031 #include "ros/forwards.h"
00032 #include "common.h"
00033 #include "ros/service_traits.h"
00034 
00035 namespace ros
00036 {
00037 
00041 struct ROSCPP_DECL ServiceClientOptions
00042 {
00043   ServiceClientOptions()
00044   : persistent(false)
00045   {
00046   }
00047 
00048   /*
00049    * \brief Constructor
00050    * \param _service Name of the service to connect to
00051    * \param _md5sum md5sum of the service
00052    * \param _persistent Whether or not to keep the connection open to the service for future calls
00053    * \param _header Any extra values to be passed along in the connection header
00054    */
00055   ServiceClientOptions(const std::string& _service, const std::string& _md5sum, bool _persistent, const M_string& _header)
00056   : service(_service)
00057   , md5sum(_md5sum)
00058   , persistent(_persistent)
00059   , header(_header)
00060   {
00061   }
00062 
00063   /*
00064    * \brief Templated helper method, preventing you from needing to manually get the service md5sum
00065    * \param MReq [template] Request message type
00066    * \param MRes [template] Response message type
00067    * \param _service Name of the service to connect to
00068    * \param _persistent Whether or not to keep the connection open to the service for future calls
00069    * \param _header Any extra values to be passed along in the connection header
00070    */
00071   template <class MReq, class MRes>
00072   void init(const std::string& _service, bool _persistent, const M_string& _header)
00073   {
00074     namespace st = service_traits;
00075 
00076     service = _service;
00077     md5sum = st::md5sum<MReq>();
00078     persistent = _persistent;
00079     header = _header;
00080   }
00081 
00082   /*
00083    * \brief Templated helper method, preventing you from needing to manually get the service md5sum
00084    * \param Service [template] Service type
00085    * \param _service Name of the service to connect to
00086    * \param _persistent Whether or not to keep the connection open to the service for future calls
00087    * \param _header Any extra values to be passed along in the connection header
00088    */
00089   template <class Service>
00090   void init(const std::string& _service, bool _persistent, const M_string& _header)
00091   {
00092     namespace st = service_traits;
00093 
00094     service = _service;
00095     md5sum = st::md5sum<Service>();
00096     persistent = _persistent;
00097     header = _header;
00098   }
00099 
00100   std::string service;                                                      
00101   std::string md5sum;                                                       
00102   bool persistent;                                                          
00103   M_string header;                                                          
00104 };
00105 
00106 
00107 }
00108 
00109 #endif


roscpp
Author(s): Morgan Quigley, Josh Faust, Brian Gerkey, Troy Straszheim
autogenerated on Tue Mar 7 2017 04:01:03