Gazebo Transport

API Reference

14.0.0~pre1
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
46namespace 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