LibSWOC++ 1.5.14
Solid Wall of C++
Loading...
Searching...
No Matches
ArenaWriter.h
Go to the documentation of this file.
1// SPDX-License-Identifier: Apache-2.0
2// Copyright Verizon Media 2020
6#pragma once
7
8#include "swoc/swoc_version.h"
9#include "swoc/MemSpan.h"
10#include "swoc/bwf_base.h"
11#include "swoc/MemArena.h"
12
13namespace swoc { inline namespace SWOC_VERSION_NS {
22 using self_type = ArenaWriter;
23 using super_type = FixedBufferWriter;
24public:
29 ArenaWriter(MemArena &arena);
30
37 ArenaWriter &write(void const *data, size_t n) override;
38
40 ArenaWriter &write(char c) override;
41
42 using super_type::write; // import super class write.
43
49 bool commit(size_t n) override;
50
51protected:
53
58 void realloc(size_t n);
59};
60
61inline swoc::ArenaWriter::ArenaWriter(swoc::MemArena &arena) : super_type(arena.remnant()), _arena(arena) {}
62
63}} // namespace swoc::SWOC_VERSION_NS
MemArena & _arena
Arena for the buffer.
Definition ArenaWriter.h:52
bool commit(size_t n) override
ArenaWriter & write(void const *data, size_t n) override
void realloc(size_t n)
ArenaWriter(MemArena &arena)
Definition ArenaWriter.h:61
FixedBufferWriter(char *buffer, size_t capacity)
const char * data() const override
Return the output buffer.
FixedBufferWriter & write(char c) override
Write a single character c to the buffer.
For template deduction guides.
Definition ArenaWriter.cc:9