Gazebo Fuel_tools

API Reference

9.1.0
ModelIter.hh
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2017 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_FUEL_TOOLS_MODELITER_HH_
19 #define GZ_FUEL_TOOLS_MODELITER_HH_
20 
21 #include <memory>
22 
23 #include "gz/fuel_tools/Helpers.hh"
24 #include "gz/fuel_tools/Model.hh"
25 
26 #ifdef _WIN32
27 // Disable warning C4251 which is triggered by
28 // std::unique_ptr
29 #pragma warning(push)
30 #pragma warning(disable: 4251)
31 #endif
32 
33 namespace gz::fuel_tools
34 {
36  class FuelClient;
37  class ModelIterPrivate;
38  class ModelIterFactory;
39 
41  class GZ_FUEL_TOOLS_VISIBLE ModelIter
42  {
43  friend ModelIterFactory;
44 
47  protected: explicit ModelIter(std::unique_ptr<ModelIterPrivate> _dptr);
48 
51  public: ModelIter(ModelIter && _old);
52 
54  public: ~ModelIter();
55 
58  public: operator bool();
59 
62  public: operator bool() const;
63 
66  public: ModelIter &operator++();
67 
70  public: Model &operator*();
71 
74  public: Model *operator->();
75 
77  private: std::unique_ptr<ModelIterPrivate> dataPtr;
78  };
79 } // namespace gz::fuel_tools
80 
81 #ifdef _MSC_VER
82 #pragma warning(pop)
83 #endif
84 
85 #endif // GZ_FUEL_TOOLS_MODELITER_HH_