LogPlay.hh
Go to the documentation of this file.
1/*
2 * Copyright (C) 2012 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#ifndef _GAZEBO_UTIL_LOGPLAY_HH_
18#define _GAZEBO_UTIL_LOGPLAY_HH_
19
20#include <memory>
21#include <string>
22
24#include "gazebo/common/Time.hh"
25#include "gazebo/util/system.hh"
26
28GZ_SINGLETON_DECLARE(GZ_UTIL_VISIBLE, gazebo, util, LogPlay)
29
30namespace gazebo
31{
32 namespace util
33 {
34 // Forward declare private data class
35 class LogPlayPrivate;
36
39
50 class GZ_UTIL_VISIBLE LogPlay : public SingletonT<LogPlay>
51 {
53 private: LogPlay();
54
56 private: virtual ~LogPlay();
57
64 public: void Open(const std::string &_logFile);
65
68 public: bool IsOpen() const;
69
73 public: std::string LogVersion() const;
74
78 public: std::string GazeboVersion() const;
79
83 public: uint32_t RandSeed() const;
84
87 public: common::Time LogStartTime() const;
88
91 public: common::Time LogEndTime() const;
92
95 public: std::string Filename() const;
96
99 public: std::string FullPathFilename() const;
100
103 public: uintmax_t FileSize() const;
104
107 public: bool Step(std::string &_data);
108
111 public: bool StepBack(std::string &_data);
112
116 public: bool Step(const int _step, std::string &_data);
117
122 public: bool Seek(const common::Time &_time);
123
127 public: bool Rewind();
128
131 public: bool Forward();
132
135 public: unsigned int ChunkCount() const;
136
141 public: bool Chunk(const unsigned int _index, std::string &_data) const;
142
147 public: std::string Encoding() const;
148
152 public: std::string Header() const;
153
156 public: uint64_t InitialIterations() const;
157
162 public: bool HasIterations() const;
163
165 private: void ReadHeader();
166
169 private: void ReadLogTimes();
170
175 private: bool ReadIterations();
176
180 private: bool NextChunk();
181
185 private: bool PrevChunk();
186
189 private: std::unique_ptr<LogPlayPrivate> dataPtr;
190
192 private: friend class SingletonT<LogPlay>;
193 };
195 }
196}
197
198#endif
util
Definition Diagnostics.hh:33
gazebo
Definition LogPlay.hh:28
util
Definition LogPlay.hh:28
Singleton template class.
Definition SingletonT.hh:34
A Time class, can be used to hold wall- or sim-time.
Definition Time.hh:48
Definition LogPlay.hh:51
bool Seek(const common::Time &_time)
Jump to the closest sample that has its simulation time lower than the time specified as a parameter.
common::Time LogEndTime() const
Get the log end time of the open log file.
std::string Encoding() const
Get the type of encoding used for current chunck in the open log file.
uint32_t RandSeed() const
Get the random number seed of the open log file.
bool IsOpen() const
Return true if a file is open.
bool Step(std::string &_data)
Step through the open log file.
bool Rewind()
Jump to the beginning of the log file.
uint64_t InitialIterations() const
Get the initial simulation iterations from a log file.
bool Step(const int _step, std::string &_data)
Step through the open log file.
std::string LogVersion() const
Get the log version number of the open log file.
std::string Header() const
Get the header that was read from a log file.
std::string GazeboVersion() const
Get the Gazebo version number of the open log file.
bool HasIterations() const
Return if the log file contains the <iterations> tag.
std::string FullPathFilename() const
Get the full path of the log file.
bool Forward()
Jump to the end of the log file.
unsigned int ChunkCount() const
Get the number of chunks (steps) in the open log file.
common::Time LogStartTime() const
Get the log start time of the open log file.
void Open(const std::string &_logFile)
Open a log file for reading.
std::string Filename() const
Get the name of the log file.
bool Chunk(const unsigned int _index, std::string &_data) const
Get data for a particular chunk index.
uintmax_t FileSize() const
Get the size of the log file.
bool StepBack(std::string &_data)
Step through the open log file backwards.
#define GZ_SINGLETON_DECLARE(visibility, n1, n2, singletonType)
Helper to declare typed SingletonT.
Definition SingletonT.hh:58
Forward declarations for the common classes.
Definition Animation.hh:27