3#ifndef AWKWARD_FORTHOUTPUTBUFFER_H_ 
    4#define AWKWARD_FORTHOUTPUTBUFFER_H_ 
   11  #define NATIVELY_BIG_ENDIAN (*(uint16_t *)"\0\xff" < 0x100) 
   49      rewind(int64_t num_items, 
util::ForthError& err) noexcept;
 
   57      dup(int64_t num_times, 
util::ForthError& err) noexcept = 0;
 
   60    virtual const std::shared_ptr<
void>
 
   61      ptr() const noexcept = 0;
 
  124      write_bool(int64_t num_items, 
bool* values, 
bool byteswap) noexcept = 0;
 
  128      write_int8(int64_t num_items, int8_t* values, 
bool byteswap) noexcept = 0;
 
  132      write_int16(int64_t num_items, int16_t* values, 
bool byteswap) noexcept = 0;
 
  136      write_int32(int64_t num_items, int32_t* values, 
bool byteswap) noexcept = 0;
 
  140      write_int64(int64_t num_items, int64_t* values, 
bool byteswap) noexcept = 0;
 
  144      write_intp(int64_t num_items, ssize_t* values, 
bool byteswap) noexcept = 0;
 
  152      write_uint8(int64_t num_items, uint8_t* values, 
bool byteswap) noexcept = 0;
 
  156      write_uint16(int64_t num_items, uint16_t* values, 
bool byteswap) noexcept = 0;
 
  160      write_uint32(int64_t num_items, uint32_t* values, 
bool byteswap) noexcept = 0;
 
  164      write_uint64(int64_t num_items, uint64_t* values, 
bool byteswap) noexcept = 0;
 
  168      write_uintp(int64_t num_items, 
size_t* values, 
bool byteswap) noexcept = 0;
 
  172      write_float32(int64_t num_items, 
float* values, 
bool byteswap) noexcept = 0;
 
  176      write_float64(int64_t num_items, 
double* values, 
bool byteswap) noexcept = 0;
 
 
  195  template <typename OUT>
 
  201      dup(int64_t num_times, util::ForthError& err) 
noexcept override;
 
  203    const std::shared_ptr<void>
 
  204      ptr() const noexcept override;
 
  252      write_bool(int64_t num_items, 
bool* values, 
bool byteswap) noexcept override;
 
  255      write_int8(int64_t num_items, int8_t* values, 
bool byteswap) noexcept override;
 
  258      write_int16(int64_t num_items, int16_t* values, 
bool byteswap) noexcept override;
 
  261      write_int32(int64_t num_items, int32_t* values, 
bool byteswap) noexcept override;
 
  264      write_int64(int64_t num_items, int64_t* values, 
bool byteswap) noexcept override;
 
  267      write_intp(int64_t num_items, ssize_t* values, 
bool byteswap) noexcept override;
 
  273      write_uint8(int64_t num_items, uint8_t* values, 
bool byteswap) noexcept override;
 
  276      write_uint16(int64_t num_items, uint16_t* values, 
bool byteswap) noexcept override;
 
  279      write_uint32(int64_t num_items, uint32_t* values, 
bool byteswap) noexcept override;
 
  282      write_uint64(int64_t num_items, uint64_t* values, 
bool byteswap) noexcept override;
 
  285      write_uintp(int64_t num_items, 
size_t* values, 
bool byteswap) noexcept override;
 
  288      write_float32(int64_t num_items, 
float* values, 
bool byteswap) noexcept override;
 
  291      write_float64(int64_t num_items, 
double* values, 
bool byteswap) noexcept override;
 
  305      maybe_resize(int64_t next);
 
  308    template <typename IN>
 
  309    inline 
void write_one(IN value) noexcept {
 
  312      ptr_.get()[
length_ - 1] = (OUT)value;
 
  316    template <
typename IN>
 
  317    inline void write_copy(int64_t num_items, 
const IN* values) 
noexcept {
 
  318      int64_t next = length_ + num_items;
 
  320      for (int64_t i = 0;  i < num_items;  i++) {
 
  321        ptr_.get()[length_ + i] = (OUT)values[i];
 
  326    std::shared_ptr<OUT> ptr_;
 
 
void write_int32(int64_t num_items, int32_t *values, bool byteswap) noexcept override
HERE.
 
void dup(int64_t num_times, util::ForthError &err) noexcept override
HERE.
 
void write_uint8(int64_t num_items, uint8_t *values, bool byteswap) noexcept override
HERE.
 
void write_one_bool(bool value, bool byteswap) noexcept override
HERE.
 
void write_one_uint64(uint64_t value, bool byteswap) noexcept override
HERE.
 
void write_one_string(char *string_buffer, int64_t length) noexcept override
HERE.
 
void write_one_int16(int16_t value, bool byteswap) noexcept override
HERE.
 
ForthOutputBufferOf(int64_t initial, double resize)
 
void write_int8(int64_t num_items, int8_t *values, bool byteswap) noexcept override
HERE.
 
void write_one_float64(double value, bool byteswap) noexcept override
HERE.
 
void write_int16(int64_t num_items, int16_t *values, bool byteswap) noexcept override
HERE.
 
void write_intp(int64_t num_items, ssize_t *values, bool byteswap) noexcept override
HERE.
 
void write_one_intp(ssize_t value, bool byteswap) noexcept override
HERE.
 
void write_add_int64(int64_t value) noexcept override
HERE.
 
void write_uintp(int64_t num_items, size_t *values, bool byteswap) noexcept override
HERE.
 
void write_float64(int64_t num_items, double *values, bool byteswap) noexcept override
HERE.
 
void write_one_uintp(size_t value, bool byteswap) noexcept override
HERE.
 
void write_one_uint8(uint8_t value, bool byteswap) noexcept override
HERE.
 
void write_int64(int64_t num_items, int64_t *values, bool byteswap) noexcept override
HERE.
 
void write_one_int8(int8_t value, bool byteswap) noexcept override
HERE.
 
void write_one_uint32(uint32_t value, bool byteswap) noexcept override
HERE.
 
std::string tostring() const override
 
const std::shared_ptr< void > ptr() const noexcept override
HERE.
 
void write_add_int32(int32_t value) noexcept override
HERE.
 
void write_one_uint16(uint16_t value, bool byteswap) noexcept override
HERE.
 
void write_bool(int64_t num_items, bool *values, bool byteswap) noexcept override
HERE.
 
void write_uint64(int64_t num_items, uint64_t *values, bool byteswap) noexcept override
HERE.
 
void write_float32(int64_t num_items, float *values, bool byteswap) noexcept override
HERE.
 
void write_const_uint8(int64_t num_items, const uint8_t *values) noexcept override
HERE.
 
void write_one_float32(float value, bool byteswap) noexcept override
HERE.
 
util::dtype dtype() const override
 
void write_uint32(int64_t num_items, uint32_t *values, bool byteswap) noexcept override
HERE.
 
void write_one_int32(int32_t value, bool byteswap) noexcept override
HERE.
 
void write_uint16(int64_t num_items, uint16_t *values, bool byteswap) noexcept override
HERE.
 
void write_one_int64(int64_t value, bool byteswap) noexcept override
HERE.
 
virtual util::dtype dtype() const =0
 
virtual void write_int16(int64_t num_items, int16_t *values, bool byteswap) noexcept=0
HERE.
 
virtual void write_int8(int64_t num_items, int8_t *values, bool byteswap) noexcept=0
HERE.
 
virtual void write_bool(int64_t num_items, bool *values, bool byteswap) noexcept=0
HERE.
 
void reset() noexcept
HERE.
 
virtual void write_uint8(int64_t num_items, uint8_t *values, bool byteswap) noexcept=0
HERE.
 
virtual void write_one_int64(int64_t value, bool byteswap) noexcept=0
HERE.
 
virtual void write_const_uint8(int64_t num_items, const uint8_t *values) noexcept=0
HERE.
 
virtual void write_intp(int64_t num_items, ssize_t *values, bool byteswap) noexcept=0
HERE.
 
virtual void write_one_uintp(size_t value, bool byteswap) noexcept=0
HERE.
 
ForthOutputBuffer(int64_t initial, double resize)
 
virtual void write_add_int32(int32_t value) noexcept=0
HERE.
 
virtual void write_one_uint32(uint32_t value, bool byteswap) noexcept=0
HERE.
 
virtual void dup(int64_t num_times, util::ForthError &err) noexcept=0
HERE.
 
virtual void write_float32(int64_t num_items, float *values, bool byteswap) noexcept=0
HERE.
 
virtual void write_uint32(int64_t num_items, uint32_t *values, bool byteswap) noexcept=0
HERE.
 
int64_t length_
Definition ForthOutputBuffer.h:190
 
virtual void write_one_float32(float value, bool byteswap) noexcept=0
HERE.
 
virtual void write_one_float64(double value, bool byteswap) noexcept=0
HERE.
 
void rewind(int64_t num_items, util::ForthError &err) noexcept
HERE.
 
virtual void write_one_bool(bool value, bool byteswap) noexcept=0
HERE.
 
virtual void write_int64(int64_t num_items, int64_t *values, bool byteswap) noexcept=0
HERE.
 
virtual void write_one_int16(int16_t value, bool byteswap) noexcept=0
HERE.
 
virtual void write_uint64(int64_t num_items, uint64_t *values, bool byteswap) noexcept=0
HERE.
 
virtual void write_int32(int64_t num_items, int32_t *values, bool byteswap) noexcept=0
HERE.
 
virtual void write_add_int64(int64_t value) noexcept=0
HERE.
 
virtual void write_one_uint8(uint8_t value, bool byteswap) noexcept=0
HERE.
 
int64_t len() const noexcept
HERE.
 
virtual void write_one_uint16(uint16_t value, bool byteswap) noexcept=0
HERE.
 
virtual std::string tostring() const =0
 
double resize_
Definition ForthOutputBuffer.h:192
 
virtual void write_uint16(int64_t num_items, uint16_t *values, bool byteswap) noexcept=0
HERE.
 
virtual void write_one_intp(ssize_t value, bool byteswap) noexcept=0
HERE.
 
virtual ~ForthOutputBuffer()
Virtual destructor acts as a first non-inline virtual function that determines a specific translation...
 
virtual const std::shared_ptr< void > ptr() const noexcept=0
HERE.
 
virtual void write_float64(int64_t num_items, double *values, bool byteswap) noexcept=0
HERE.
 
virtual void write_one_int32(int32_t value, bool byteswap) noexcept=0
HERE.
 
virtual void write_one_uint64(uint64_t value, bool byteswap) noexcept=0
HERE.
 
virtual void write_uintp(int64_t num_items, size_t *values, bool byteswap) noexcept=0
HERE.
 
virtual void write_one_string(char *string_buffer, int64_t length) noexcept=0
HERE.
 
int64_t reserved_
Definition ForthOutputBuffer.h:191
 
virtual void write_one_int8(int8_t value, bool byteswap) noexcept=0
HERE.
 
#define EXPORT_SYMBOL
Definition common.h:14
 
Definition ArrayBuilder.h:14
 
void byteswap_intp(int64_t num_items, T &value)
HERE.
 
void byteswap64(int64_t num_items, T &value)
HERE.
 
void byteswap16(int64_t num_items, T &value)
HERE.
 
void byteswap32(int64_t num_items, T &value)
HERE.