40 #include <typelib/endian_swap.hh> 41 #include <logger/LoggerTypes.hpp> 51 static const size_t nstream =
static_cast<size_t>(-1);
53 std::ostream& m_stream;
58 void write(
const T& data)
60 T little_endian = Typelib::Endian::to_little(data);
61 m_stream.write( reinterpret_cast<const char*>(&little_endian),
sizeof(T) );
68 std::ostream& getStream();
72 void writeStreamDeclaration(
int stream_index,
StreamType type,
73 std::string
const& name, std::string
const& type_name,
74 std::string
const& cxx_type_name, std::string
const& type_def,
75 std::vector<logger::StreamMetadata>
const& metadata);
76 void writeSampleHeader(
int stream_index, base::Time
const& realtime, base::Time
const& logical,
size_t size);
77 void writeSample(
int stream_index, base::Time
const& realtime, base::Time
const& logical,
void* payload_data,
size_t payload_size);
97 { output.write(value);
return output; }
101 { output.write(value);
return output; }
105 { output.write(value);
return output; }
110 uint32_t length(value.length());
111 output.write(length);
112 output.m_stream.write(reinterpret_cast<const char*>(value.c_str()), length);
119 timeval tv = time.toTimeval();
120 output << (uint32_t)tv.tv_sec << (uint32_t)tv.tv_usec;
148 {
return output << static_cast<uint8_t>(type); }
152 {
return output << static_cast<uint8_t>(type); }
156 {
return output << static_cast<uint8_t>(type); }
164 std::string
const m_name;
165 std::string
const m_type_name;
166 std::string
const m_cxx_type_name;
167 std::string
const m_type_def;
168 std::vector<logger::StreamMetadata> m_metadata;
169 int const m_stream_idx;
170 size_t const m_type_size;
171 base::Time m_sampling;
186 StreamLogger(std::string
const& name, std::string
const& type_name, std::string
const& cxx_type_name, std::vector<logger::StreamMetadata>
const& metadata,
Logfile& file);
199 StreamLogger(std::string
const& name, std::string
const& type_name, std::string
const& cxx_type_name, Typelib::Registry
const& type_def, std::vector<logger::StreamMetadata>
const& metadata,
Logfile& file);
202 void registerStream();
207 void setSampling(base::Time
const& period);
209 bool writeSampleHeader(
const base::Time& timestamp,
size_t size);
211 std::ostream& getStream();
Logfile & operator<<(Logfile &output, const CommandType &type)
Definition: Logfile.hpp:155
Definition: Logfile.cpp:63
BlockType
Definition: Logging.hh:138
void writePrologue(std::ostream &stream)
Definition: Logfile.cpp:49
Definition: Logfile.hpp:162
Definition: Logfile.hpp:43
CommandType
Definition: Logging.hh:151
StreamType
Definition: Logging.hh:145
Definition: Logfile.hpp:82
Definition: Logfile.hpp:48