/srv/osrm/osrm-backend/third_party/protozero/include/protozero
NameSizeModeActions
basic_pbf_builder.hpp89370644editdlrm
basic_pbf_writer.hpp364850644editdlrm
buffer_fixed.hpp57980644editdlrm
buffer_string.hpp20710644editdlrm
buffer_tmpl.hpp34640644editdlrm
buffer_vector.hpp21740644editdlrm
byteswap.hpp29310644editdlrm
config.hpp12870644editdlrm
data_view.hpp58690644editdlrm
exception.hpp29740644editdlrm
iterators.hpp153560644editdlrm
pbf_builder.hpp8010644editdlrm
pbf_message.hpp57810644editdlrm
pbf_reader.hpp343140644editdlrm
pbf_writer.hpp27120644editdlrm
types.hpp18370644editdlrm
varint.hpp78220644editdlrm
version.hpp9190644editdlrm
Edit: /srv/osrm/osrm-backend/third_party/protozero/include/protozero/buffer_tmpl.hpp (3464B)
#ifndef PROTOZERO_BUFFER_TMPL_HPP #define PROTOZERO_BUFFER_TMPL_HPP /***************************************************************************** protozero - Minimalistic protocol buffer decoder and encoder in C++. This file is from https://github.com/mapbox/protozero where you can find more documentation. *****************************************************************************/ /** * @file buffer_tmpl.hpp * * @brief Contains the customization points for buffer implementations. */ #include #include #include namespace protozero { // Implementation of buffer customizations points for std::string /// @cond INTERNAL template struct buffer_customization { /** * Get the number of bytes currently used in the buffer. * * @param buffer Pointer to the buffer. * @returns number of bytes used in the buffer. */ static std::size_t size(const std::string* buffer); /** * Append count bytes from data to the buffer. * * @param buffer Pointer to the buffer. * @param data Pointer to the data. * @param count Number of bytes to be added to the buffer. */ static void append(std::string* buffer, const char* data, std::size_t count); /** * Append count zero bytes to the buffer. * * @param buffer Pointer to the buffer. * @param count Number of bytes to be added to the buffer. */ static void append_zeros(std::string* buffer, std::size_t count); /** * Shrink the buffer to the specified size. The new size will always be * smaller than the current size. * * @param buffer Pointer to the buffer. * @param size New size of the buffer. * * @pre size < current size of buffer */ static void resize(std::string* buffer, std::size_t size); /** * Reserve an additional size bytes for use in the buffer. This is used for * variable-sized buffers to tell the buffer implementation that soon more * memory will be used. The implementation can ignore this. * * @param buffer Pointer to the buffer. * @param size Number of bytes to reserve. */ static void reserve_additional(std::string* buffer, std::size_t size); /** * Delete data from the buffer. This must move back the data after the * part being deleted and resize the buffer accordingly. * * @param buffer Pointer to the buffer. * @param from Offset into the buffer where we want to erase from. * @param to Offset into the buffer one past the last byte we want to erase. * * @pre from, to <= size of the buffer, from < to */ static void erase_range(std::string* buffer, std::size_t from, std::size_t to); /** * Return a pointer to the memory at the specified position in the buffer. * * @param buffer Pointer to the buffer. * @param pos The position in the buffer. * @returns pointer to the memory in the buffer at the specified position. * * @pre pos <= size of the buffer */ static char* at_pos(std::string* buffer, std::size_t pos); /** * Add a char to the buffer incrementing the number of chars in the buffer. * * @param buffer Pointer to the buffer. * @param ch The character to add. */ static void push_back(std::string* buffer, char ch); }; /// @endcond } // namespace protozero #endif // PROTOZERO_BUFFER_TMPL_HPP