Gazebo Transport

API Reference

13.4.0
Helpers.hh
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2014 Open Source Robotics Foundation
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  *
16 */
17 
18 #ifndef GZ_TRANSPORT_HELPERS_HH_
19 #define GZ_TRANSPORT_HELPERS_HH_
20 
21 #include <zmq.hpp>
22 
23 #include <cstdint>
24 #include <cstdio>
25 #include <cstring>
26 #include <limits>
27 #include <string>
28 #include <vector>
29 
30 #include "gz/transport/config.hh"
31 #include "gz/transport/Export.hh"
32 
33 // Avoid using deprecated message send/receive function when possible.
34 #if ZMQ_VERSION > ZMQ_MAKE_VERSION(4, 3, 1)
35  #define GZ_ZMQ_POST_4_3_1
36 #endif
37 
38 // Avoid using deprecated set function when possible
39 #if CPPZMQ_VERSION >= ZMQ_MAKE_VERSION(4, 7, 0)
40  // Ubuntu Focal (20.04) packages a different "4.7.0"
41  #ifndef UBUNTU_FOCAL
42  #define GZ_CPPZMQ_POST_4_7_0
43  #endif
44 #endif
45 
46 namespace gz
47 {
48  namespace transport
49  {
50  // Inline bracket to help doxygen filtering.
51  inline namespace GZ_TRANSPORT_VERSION_NAMESPACE {
52  //
55 
60  bool GZ_TRANSPORT_VISIBLE env(const std::string &_name,
61  std::string &_value);
62 
67  std::vector<std::string> GZ_TRANSPORT_VISIBLE split(
68  const std::string &_orig,
69  char _delim);
70 
73  unsigned int GZ_TRANSPORT_VISIBLE getProcessId();
74 
75  // Use safer functions on Windows
76  #ifdef _MSC_VER
77  #define gz_strcat strcat_s
78  #define gz_strcpy strcpy_s
79  #define gz_sprintf sprintf_s
80  #define gz_strdup _strdup
81  #else
82  #define gz_strcat std::strcat
83  #define gz_strcpy std::strcpy
84  #define gz_sprintf std::sprintf
85  #define gz_strdup strdup
86  #endif
87  }
88  }
89 }
90 
91 // GZ_TRANSPORT_HELPERS_HH_
92 #endif