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   {
00045   }
00046 
00047   /*
00048    * \brief Constructor
00049    * \param _service Name of the service to connect to
00050    * \param _md5sum md5sum of the service
00051    * \param _persistent Whether or not to keep the connection open to the service for future calls
00052    * \param _header Any extra values to be passed along in the connection header
00053    */
00054   ServiceClientOptions(const std::string& _service, const std::string& _md5sum, bool _persistent, const M_string& _header)
00055   : service(_service)
00056   , md5sum(_md5sum)
00057   , persistent(_persistent)
00058   , header(_header)
00059   {
00060   }
00061 
00062   /*
00063    * \brief Templated helper method, preventing you from needing to manually get the service md5sum
00064    * \param MReq [template] Request message type
00065    * \param MRes [template] Response message type
00066    * \param _service Name of the service to connect to
00067    * \param _persistent Whether or not to keep the connection open to the service for future calls
00068    * \param _header Any extra values to be passed along in the connection header
00069    */
00070   template <class MReq, class MRes>
00071   void init(const std::string& _service, bool _persistent, const M_string& _header)
00072   {
00073     namespace st = service_traits;
00074 
00075     service = _service;
00076     md5sum = st::md5sum<MReq>();
00077     persistent = _persistent;
00078     header = _header;
00079   }
00080 
00081   /*
00082    * \brief Templated helper method, preventing you from needing to manually get the service md5sum
00083    * \param Service [template] Service type
00084    * \param _service Name of the service to connect to
00085    * \param _persistent Whether or not to keep the connection open to the service for future calls
00086    * \param _header Any extra values to be passed along in the connection header
00087    */
00088   template <class Service>
00089   void init(const std::string& _service, bool _persistent, const M_string& _header)
00090   {
00091     namespace st = service_traits;
00092 
00093     service = _service;
00094     md5sum = st::md5sum<Service>();
00095     persistent = _persistent;
00096     header = _header;
00097   }
00098 
00099   std::string service;                                                      
00100   std::string md5sum;                                                       
00101   bool persistent;                                                          
00102   M_string header;                                                          
00103 };
00104 
00105 
00106 }
00107 
00108 #endif


roscpp
Author(s): Morgan Quigley, Josh Faust, Brian Gerkey, Troy Straszheim
autogenerated on Mon Oct 6 2014 11:46:44