Gazebo Transport

API Reference

14.0.0
Batch.hh
Go to the documentation of this file.
1/*
2 * Copyright (C) 2018 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_LOG_BATCH_HH_
19#define GZ_TRANSPORT_LOG_BATCH_HH_
20
21#include <memory>
22
23#include <gz/transport/config.hh>
24#include <gz/transport/log/Export.hh>
26
27namespace gz
28{
29 namespace transport
30 {
31 namespace log
32 {
33 // Inline bracket to help doxygen filtering.
34 inline namespace GZ_TRANSPORT_VERSION_NAMESPACE {
35 //
37 class BatchPrivate;
38 class Log;
39
41 class GZ_TRANSPORT_LOG_VISIBLE Batch
42 {
44 public: Batch();
45
48 public: Batch(Batch &&_old); // NOLINT
49
53 public: Batch& operator=(Batch &&_other); // NOLINT
54
56 public: Batch(const Batch& other) = delete;
57
59 public: Batch& operator=(const Batch& other) = delete;
60
62 public: ~Batch();
63
65 public: using iterator = MsgIter;
66
71 public: iterator begin();
72
78 public: iterator end();
79
80#ifdef _WIN32
81// Disable warning C4251 which is triggered by
82// std::*
83#pragma warning(push)
84#pragma warning(disable: 4251)
85#endif
87 private: std::unique_ptr<BatchPrivate> dataPtr;
88#ifdef _WIN32
89#pragma warning(pop)
90#endif
91
95 private: Batch(
96 std::unique_ptr<BatchPrivate> &&_pimpl); // NOLINT(build/c++11)
97
99 friend class Log;
100 };
101 }
102 }
103 }
104}
105#endif