class McapWriter
Declaration
class McapWriter { /* full declaration omitted */ };Description
Provides a write interface to an MCAP file.
Declared at: mcap/include/mcap/writer.hpp:326
Method Overview
- public void addChannel(mcap::Channel & channel)
- public void addSchema(mcap::Schema & schema)
- public void close()
- public void closeLastChunk()
- public mcap::IWritable * dataSink()
- public static uint64_t getRecordSize(const mcap::Message & message)
- public mcap::Status open(std::string_view filename, const mcap::McapWriterOptions & options)
- public void open(mcap::IWritable & writer, const mcap::McapWriterOptions & options)
- public void open(std::ostream & stream, const mcap::McapWriterOptions & options)
- public const mcap::Statistics & statistics() const
- public void terminate()
- public static uint64_t write(mcap::IWritable & output, const mcap::Record & record)
- public static uint64_t write(mcap::IWritable & output, const mcap::MessageIndex & index)
- public static uint64_t write(mcap::IWritable & output, const mcap::ChunkIndex & index)
- public static uint64_t write(mcap::IWritable & output, const mcap::AttachmentIndex & index)
- public static uint64_t write(mcap::IWritable & output, const mcap::MetadataIndex & index)
- public static uint64_t write(mcap::IWritable & output, const mcap::Statistics & stats)
- public static uint64_t write(mcap::IWritable & output, const mcap::SummaryOffset & summaryOffset)
- public static uint64_t write(mcap::IWritable & output, const mcap::DataEnd & dataEnd)
- public static void write(mcap::IWritable & output, uint32_t value)
- public static void write(mcap::IWritable & output, const std::string_view str)
- public static void write(mcap::IWritable & output, const mcap::ByteArray bytes)
- public static void write(mcap::IWritable & output, const std::byte * data, uint64_t size)
- public static void write(mcap::IWritable & output, uint64_t value)
- public static void write(mcap::IWritable & output, const mcap::KeyValueMap & map, uint32_t size = 0)
- public static void write(mcap::IWritable & output, mcap::OpCode value)
- public static void write(mcap::IWritable & output, uint16_t value)
- public static uint64_t write(mcap::IWritable & output, const mcap::Metadata & metadata)
- public mcap::Status write(const mcap::Message & message)
- public mcap::Status write(const mcap::MessageHeader & header, const mcap::ByteSpan * payload, std::size_t payloadCount)
- public mcap::Status write(mcap::Attachment & attachment)
- public mcap::Status write(const mcap::AttachmentHeader & header, const mcap::ByteSpan * payload, std::size_t payloadCount)
- public mcap::Status write(const mcap::Metadata & metadata)
- public static uint64_t write(mcap::IWritable & output, const mcap::Header & header)
- public static uint64_t write(mcap::IWritable & output, const mcap::Footer & footer, bool crcEnabled)
- public static uint64_t write(mcap::IWritable & output, const mcap::Schema & schema)
- public static uint64_t write(mcap::IWritable & output, const mcap::Channel & channel)
- public static uint64_t write(mcap::IWritable & output, const mcap::Message & message)
- public static uint64_t write(mcap::IWritable & output, const mcap::MessageHeader & header, const mcap::ByteSpan * payload, std::size_t payloadCount)
- public static uint64_t write(mcap::IWritable & output, const mcap::Attachment & attachment)
- public static uint64_t write(mcap::IWritable & output, const mcap::AttachmentHeader & header, const mcap::ByteSpan * payload, std::size_t payloadCount, uint32_t crc)
- public static uint64_t write(mcap::IWritable & output, const mcap::Chunk & chunk)
- public static void writeMagic(mcap::IWritable & output)
- public ~McapWriter()
Methods
¶void addChannel(mcap::Channel& channel)
void addChannel(mcap::Channel& channel)Description
Add a new channel to the MCAP file and set `channel.id` to a generated channel id. The channel id is used when adding messages to the file.
Channels are not cleared when the state is reset via `close`() or `terminate`(). If you're re-using a writer for multiple files in a row, the channels only need to be added once, before first use. This method does not de-duplicate channels.
Declared at: mcap/include/mcap/writer.hpp:404
Parameters
- mcap::Channel& channel
- Description of the channel to register. The `id` value is ignored and will be set to a generated channel id.
¶void addSchema(mcap::Schema& schema)
void addSchema(mcap::Schema& schema)Description
Add a new schema to the MCAP file and set `schema.id` to a generated schema id. The schema id is used when adding channels to the file.
Schemas are not cleared when the state is reset via `close`() or `terminate`(). If you're re-using a writer for multiple files in a row, the schemas only need to be added once, before first use. This method does not de-duplicate schemas.
Declared at: mcap/include/mcap/writer.hpp:388
Parameters
- mcap::Schema& schema
- Description of the schema to register. The `id` field is ignored and will be set to a generated schema id.
¶void close()
void close()Description
Write the MCAP footer, flush pending writes to the output stream, and reset internal state. The writer may be re-used with another call to open afterwards.
Declared at: mcap/include/mcap/writer.hpp:366
¶void closeLastChunk()
void closeLastChunk()Description
finishes the current chunk in progress and writes it to the file, if a chunk is in progress.
Declared at: mcap/include/mcap/writer.hpp:479
¶mcap::IWritable* dataSink()
mcap::IWritable* dataSink()Description
Returns a pointer to the IWritable data destination backing this writer. Will return nullptr if the writer is not open.
Declared at: mcap/include/mcap/writer.hpp:473
¶static uint64_t getRecordSize(
const mcap::Message& message)
static uint64_t getRecordSize(
const mcap::Message& message)Declared at: mcap/include/mcap/writer.hpp:491
Parameters
- const mcap::Message& message
¶mcap::Status open(
std::string_view filename,
const mcap::McapWriterOptions& options)
mcap::Status open(
std::string_view filename,
const mcap::McapWriterOptions& options)Description
Open a new MCAP file for writing and write the header.
If the writer was already opened, this calls `close`() first to reset the state. A writer may be re-used after being reset via `close`() or `terminate`().
Declared at: mcap/include/mcap/writer.hpp:340
Parameters
- std::string_view filename
- Filename of the MCAP file to write.
- const mcap::McapWriterOptions& options
- Options for MCAP writing. `profile` is required.
Returns
A non-success status if the file could not be opened for writing.
¶void open(mcap::IWritable& writer,
const mcap::McapWriterOptions& options)
void open(mcap::IWritable& writer,
const mcap::McapWriterOptions& options)Description
Open a new MCAP file for writing and write the header.
If the writer was already opened, this calls `close`() first to reset the state. A writer may be re-used after being reset via `close`() or `terminate`().
Declared at: mcap/include/mcap/writer.hpp:352
Parameters
- mcap::IWritable& writer
- An implementation of the IWritable interface. Output bytes will be written to this object.
- const mcap::McapWriterOptions& options
- Options for MCAP writing. `profile` is required.
¶void open(std::ostream& stream,
const mcap::McapWriterOptions& options)
void open(std::ostream& stream,
const mcap::McapWriterOptions& options)Description
Open a new MCAP file for writing and write the header.
Declared at: mcap/include/mcap/writer.hpp:360
Parameters
- std::ostream& stream
- Output stream to write to.
- const mcap::McapWriterOptions& options
- Options for MCAP writing. `profile` is required.
¶const mcap::Statistics& statistics() const
const mcap::Statistics& statistics() constDescription
Current MCAP file-level statistics. This is written as a Statistics record in the Summary section of the MCAP file.
Declared at: mcap/include/mcap/writer.hpp:467
¶void terminate()
void terminate()Description
Reset internal state without writing the MCAP footer or flushing pending writes. This should only be used in error cases as the output MCAP file will be truncated. The writer may be re-used with another call to open afterwards.
Declared at: mcap/include/mcap/writer.hpp:373
¶static uint64_t write(mcap::IWritable& output,
const mcap::Record& record)
static uint64_t write(mcap::IWritable& output,
const mcap::Record& record)Declared at: mcap/include/mcap/writer.hpp:507
Parameters
- mcap::IWritable& output
- const mcap::Record& record
¶static uint64_t write(
mcap::IWritable& output,
const mcap::MessageIndex& index)
static uint64_t write(
mcap::IWritable& output,
const mcap::MessageIndex& index)Declared at: mcap/include/mcap/writer.hpp:500
Parameters
- mcap::IWritable& output
- const mcap::MessageIndex& index
¶static uint64_t write(
mcap::IWritable& output,
const mcap::ChunkIndex& index)
static uint64_t write(
mcap::IWritable& output,
const mcap::ChunkIndex& index)Declared at: mcap/include/mcap/writer.hpp:501
Parameters
- mcap::IWritable& output
- const mcap::ChunkIndex& index
¶static uint64_t write(
mcap::IWritable& output,
const mcap::AttachmentIndex& index)
static uint64_t write(
mcap::IWritable& output,
const mcap::AttachmentIndex& index)Declared at: mcap/include/mcap/writer.hpp:502
Parameters
- mcap::IWritable& output
- const mcap::AttachmentIndex& index
¶static uint64_t write(
mcap::IWritable& output,
const mcap::MetadataIndex& index)
static uint64_t write(
mcap::IWritable& output,
const mcap::MetadataIndex& index)Declared at: mcap/include/mcap/writer.hpp:503
Parameters
- mcap::IWritable& output
- const mcap::MetadataIndex& index
¶static uint64_t write(
mcap::IWritable& output,
const mcap::Statistics& stats)
static uint64_t write(
mcap::IWritable& output,
const mcap::Statistics& stats)Declared at: mcap/include/mcap/writer.hpp:504
Parameters
- mcap::IWritable& output
- const mcap::Statistics& stats
¶static uint64_t write(
mcap::IWritable& output,
const mcap::SummaryOffset& summaryOffset)
static uint64_t write(
mcap::IWritable& output,
const mcap::SummaryOffset& summaryOffset)Declared at: mcap/include/mcap/writer.hpp:505
Parameters
- mcap::IWritable& output
- const mcap::SummaryOffset& summaryOffset
¶static uint64_t write(
mcap::IWritable& output,
const mcap::DataEnd& dataEnd)
static uint64_t write(
mcap::IWritable& output,
const mcap::DataEnd& dataEnd)Declared at: mcap/include/mcap/writer.hpp:506
Parameters
- mcap::IWritable& output
- const mcap::DataEnd& dataEnd
¶static void write(mcap::IWritable& output,
uint32_t value)
static void write(mcap::IWritable& output,
uint32_t value)Declared at: mcap/include/mcap/writer.hpp:513
Parameters
- mcap::IWritable& output
- uint32_t value
¶static void write(mcap::IWritable& output,
const std::string_view str)
static void write(mcap::IWritable& output,
const std::string_view str)Declared at: mcap/include/mcap/writer.hpp:509
Parameters
- mcap::IWritable& output
- const std::string_view str
¶static void write(mcap::IWritable& output,
const mcap::ByteArray bytes)
static void write(mcap::IWritable& output,
const mcap::ByteArray bytes)Declared at: mcap/include/mcap/writer.hpp:510
Parameters
- mcap::IWritable& output
- const mcap::ByteArray bytes
¶static void write(mcap::IWritable& output,
const std::byte* data,
uint64_t size)
static void write(mcap::IWritable& output,
const std::byte* data,
uint64_t size)Declared at: mcap/include/mcap/writer.hpp:515
Parameters
- mcap::IWritable& output
- const std::byte* data
- uint64_t size
¶static void write(mcap::IWritable& output,
uint64_t value)
static void write(mcap::IWritable& output,
uint64_t value)Declared at: mcap/include/mcap/writer.hpp:514
Parameters
- mcap::IWritable& output
- uint64_t value
¶static void write(mcap::IWritable& output,
const mcap::KeyValueMap& map,
uint32_t size = 0)
static void write(mcap::IWritable& output,
const mcap::KeyValueMap& map,
uint32_t size = 0)Declared at: mcap/include/mcap/writer.hpp:516
Parameters
- mcap::IWritable& output
- const mcap::KeyValueMap& map
- uint32_t size = 0
¶static void write(mcap::IWritable& output,
mcap::OpCode value)
static void write(mcap::IWritable& output,
mcap::OpCode value)Declared at: mcap/include/mcap/writer.hpp:511
Parameters
- mcap::IWritable& output
- mcap::OpCode value
¶static void write(mcap::IWritable& output,
uint16_t value)
static void write(mcap::IWritable& output,
uint16_t value)Declared at: mcap/include/mcap/writer.hpp:512
Parameters
- mcap::IWritable& output
- uint16_t value
¶static uint64_t write(
mcap::IWritable& output,
const mcap::Metadata& metadata)
static uint64_t write(
mcap::IWritable& output,
const mcap::Metadata& metadata)Declared at: mcap/include/mcap/writer.hpp:498
Parameters
- mcap::IWritable& output
- const mcap::Metadata& metadata
¶mcap::Status write(const mcap::Message& message)
mcap::Status write(const mcap::Message& message)Description
Write a message to the output stream.
Declared at: mcap/include/mcap/writer.hpp:412
Parameters
- const mcap::Message& message
Returns
A non-zero error code on failure.
¶mcap::Status write(
const mcap::MessageHeader& header,
const mcap::ByteSpan* payload,
std::size_t payloadCount)
mcap::Status write(
const mcap::MessageHeader& header,
const mcap::ByteSpan* payload,
std::size_t payloadCount)Description
Write a message to the output stream, gathering its payload from a list of buffers.
The payload written is the concatenation of the spans in `payload`, in the given order.
Declared at: mcap/include/mcap/writer.hpp:427
Parameters
- const mcap::MessageHeader& header
- Message header fields to add.
- const mcap::ByteSpan* payload
- Pointer to an array of spans making up the message payload.
- std::size_t payloadCount
- Number of spans in `payload`.
Returns
A non-zero error code on failure.
¶mcap::Status write(mcap::Attachment& attachment)
mcap::Status write(mcap::Attachment& attachment)Description
Write an attachment to the output stream.
Declared at: mcap/include/mcap/writer.hpp:436
Parameters
- mcap::Attachment& attachment
- Attachment to add. The `attachment.crc` will be calculated and set if configuration options allow CRC calculation.
Returns
A non-zero error code on failure.
¶mcap::Status write(
const mcap::AttachmentHeader& header,
const mcap::ByteSpan* payload,
std::size_t payloadCount)
mcap::Status write(
const mcap::AttachmentHeader& header,
const mcap::ByteSpan* payload,
std::size_t payloadCount)Description
Write an attachment to the output stream, gathering its payload from a list of buffers.
The payload written is the concatenation of the spans in `payload`, in the given order. A CRC covering `header` and `payload` is calculated and written to the output if configuration options allow CRC calculation.
Declared at: mcap/include/mcap/writer.hpp:453
Parameters
- const mcap::AttachmentHeader& header
- Attachment header fields to add.
- const mcap::ByteSpan* payload
- Pointer to an array of spans making up the attachment payload.
- std::size_t payloadCount
- Number of spans in `payload`.
Returns
A non-zero error code on failure.
¶mcap::Status write(const mcap::Metadata& metadata)
mcap::Status write(const mcap::Metadata& metadata)Description
Write a metadata record to the output stream.
Declared at: mcap/include/mcap/writer.hpp:461
Parameters
- const mcap::Metadata& metadata
- Named group of key/value string pairs to add.
Returns
A non-zero error code on failure.
¶static uint64_t write(mcap::IWritable& output,
const mcap::Header& header)
static uint64_t write(mcap::IWritable& output,
const mcap::Header& header)Declared at: mcap/include/mcap/writer.hpp:487
Parameters
- mcap::IWritable& output
- const mcap::Header& header
¶static uint64_t write(mcap::IWritable& output,
const mcap::Footer& footer,
bool crcEnabled)
static uint64_t write(mcap::IWritable& output,
const mcap::Footer& footer,
bool crcEnabled)Declared at: mcap/include/mcap/writer.hpp:488
Parameters
- mcap::IWritable& output
- const mcap::Footer& footer
- bool crcEnabled
¶static uint64_t write(mcap::IWritable& output,
const mcap::Schema& schema)
static uint64_t write(mcap::IWritable& output,
const mcap::Schema& schema)Declared at: mcap/include/mcap/writer.hpp:489
Parameters
- mcap::IWritable& output
- const mcap::Schema& schema
¶static uint64_t write(
mcap::IWritable& output,
const mcap::Channel& channel)
static uint64_t write(
mcap::IWritable& output,
const mcap::Channel& channel)Declared at: mcap/include/mcap/writer.hpp:490
Parameters
- mcap::IWritable& output
- const mcap::Channel& channel
¶static uint64_t write(
mcap::IWritable& output,
const mcap::Message& message)
static uint64_t write(
mcap::IWritable& output,
const mcap::Message& message)Declared at: mcap/include/mcap/writer.hpp:492
Parameters
- mcap::IWritable& output
- const mcap::Message& message
¶static uint64_t write(
mcap::IWritable& output,
const mcap::MessageHeader& header,
const mcap::ByteSpan* payload,
std::size_t payloadCount)
static uint64_t write(
mcap::IWritable& output,
const mcap::MessageHeader& header,
const mcap::ByteSpan* payload,
std::size_t payloadCount)Declared at: mcap/include/mcap/writer.hpp:493
Parameters
- mcap::IWritable& output
- const mcap::MessageHeader& header
- const mcap::ByteSpan* payload
- std::size_t payloadCount
¶static uint64_t write(
mcap::IWritable& output,
const mcap::Attachment& attachment)
static uint64_t write(
mcap::IWritable& output,
const mcap::Attachment& attachment)Declared at: mcap/include/mcap/writer.hpp:495
Parameters
- mcap::IWritable& output
- const mcap::Attachment& attachment
¶static uint64_t write(
mcap::IWritable& output,
const mcap::AttachmentHeader& header,
const mcap::ByteSpan* payload,
std::size_t payloadCount,
uint32_t crc)
static uint64_t write(
mcap::IWritable& output,
const mcap::AttachmentHeader& header,
const mcap::ByteSpan* payload,
std::size_t payloadCount,
uint32_t crc)Declared at: mcap/include/mcap/writer.hpp:496
Parameters
- mcap::IWritable& output
- const mcap::AttachmentHeader& header
- const mcap::ByteSpan* payload
- std::size_t payloadCount
- uint32_t crc
¶static uint64_t write(mcap::IWritable& output,
const mcap::Chunk& chunk)
static uint64_t write(mcap::IWritable& output,
const mcap::Chunk& chunk)Declared at: mcap/include/mcap/writer.hpp:499
Parameters
- mcap::IWritable& output
- const mcap::Chunk& chunk
¶static void writeMagic(mcap::IWritable& output)
static void writeMagic(mcap::IWritable& output)Declared at: mcap/include/mcap/writer.hpp:485
Parameters
- mcap::IWritable& output
¶~McapWriter()
~McapWriter()Declared at: mcap/include/mcap/writer.hpp:328