Add std::vector and unsigned variants of raw_ostream.

This commit is contained in:
Peter Johnson
2018-05-06 20:59:26 -07:00
parent dd4230d743
commit 31bb55c319
2 changed files with 173 additions and 0 deletions

View File

@@ -710,6 +710,53 @@ void raw_svector_ostream::pwrite_impl(const char *Ptr, size_t Size,
memcpy(OS.data() + Offset, Ptr, Size);
}
//===----------------------------------------------------------------------===//
// raw_vector_ostream
//===----------------------------------------------------------------------===//
uint64_t raw_vector_ostream::current_pos() const { return OS.size(); }
void raw_vector_ostream::write_impl(const char *Ptr, size_t Size) {
OS.insert(OS.end(), Ptr, Ptr + Size);
}
void raw_vector_ostream::pwrite_impl(const char *Ptr, size_t Size,
uint64_t Offset) {
memcpy(OS.data() + Offset, Ptr, Size);
}
//===----------------------------------------------------------------------===//
// raw_usvector_ostream
//===----------------------------------------------------------------------===//
uint64_t raw_usvector_ostream::current_pos() const { return OS.size(); }
void raw_usvector_ostream::write_impl(const char *Ptr, size_t Size) {
OS.append(reinterpret_cast<const uint8_t *>(Ptr),
reinterpret_cast<const uint8_t *>(Ptr) + Size);
}
void raw_usvector_ostream::pwrite_impl(const char *Ptr, size_t Size,
uint64_t Offset) {
memcpy(OS.data() + Offset, Ptr, Size);
}
//===----------------------------------------------------------------------===//
// raw_uvector_ostream
//===----------------------------------------------------------------------===//
uint64_t raw_uvector_ostream::current_pos() const { return OS.size(); }
void raw_uvector_ostream::write_impl(const char *Ptr, size_t Size) {
OS.insert(OS.end(), reinterpret_cast<const uint8_t *>(Ptr),
reinterpret_cast<const uint8_t *>(Ptr) + Size);
}
void raw_uvector_ostream::pwrite_impl(const char *Ptr, size_t Size,
uint64_t Offset) {
memcpy(OS.data() + Offset, Ptr, Size);
}
//===----------------------------------------------------------------------===//
// raw_null_ostream
//===----------------------------------------------------------------------===//