1 // Copyright 2009 Daniel Erat <dan@erat.org> 2 // All rights reserved. 3 4 #ifndef __XSETTINGSD_DATA_WRITER_H__ 5 #define __XSETTINGSD_DATA_WRITER_H__ 6 7 #include <cstdlib> // for size_t 8 #include <stdint.h> 9 10 #include "common.h" 11 12 namespace xsettingsd { 13 14 // Provides an interface for writing different types of data to a buffer. 15 class DataWriter { 16 public: 17 DataWriter(char* buffer, size_t buf_len); 18 bytes_written()19 size_t bytes_written() const { return bytes_written_; } 20 21 bool WriteBytes(const char* data, size_t bytes_to_write); 22 bool WriteInt8(int8_t num); 23 bool WriteInt16(int16_t num); 24 bool WriteInt32(int32_t num); 25 bool WriteZeros(size_t bytes_to_write); 26 27 private: 28 char* buffer_; // not owned 29 30 size_t buf_len_; 31 32 size_t bytes_written_; 33 34 DISALLOW_COPY_AND_ASSIGN(DataWriter); 35 }; 36 37 } // namespace xsettingsd 38 39 #endif 40