#define LLVM_SUPPORT_RAW_OSTREAM_H
#include "llvm/ADT/StringRef.h"
-#include "llvm/Support/DataTypes.h"
+#include "llvm/System/DataTypes.h"
namespace llvm {
class format_object_base;
virtual ~raw_ostream();
/// tell - Return the current offset with the file.
- uint64_t tell() { return current_pos() + GetNumBytesInBuffer(); }
+ uint64_t tell() const { return current_pos() + GetNumBytesInBuffer(); }
/// has_error - Return the value of the flag in this raw_ostream indicating
/// whether an output error has been encountered.
SetBufferAndMode(new char[Size], Size, InternalBuffer);
}
- size_t GetBufferSize() {
+ size_t GetBufferSize() const {
// If we're supposed to be buffered but haven't actually gotten around
// to allocating the buffer yet, return the value that would be used.
if (BufferMode != Unbuffered && OutBufStart == 0)
return *this;
}
- raw_ostream &operator<<(const StringRef &Str) {
+ raw_ostream &operator<<(StringRef Str) {
// Inline fast path, particularly for strings with a known length.
size_t Size = Str.size();
// Inline fast path, particulary for constant strings where a sufficiently
// smart compiler will simplify strlen.
- this->operator<<(StringRef(Str));
- return *this;
+ return this->operator<<(StringRef(Str));
}
raw_ostream &operator<<(const std::string &Str) {
// Avoid the fast path, it would only increase code size for a marginal win.
- write(Str.data(), Str.length());
- return *this;
+ return write(Str.data(), Str.length());
}
raw_ostream &operator<<(unsigned long N);
raw_ostream &operator<<(long long N);
raw_ostream &operator<<(const void *P);
raw_ostream &operator<<(unsigned int N) {
- this->operator<<(static_cast<unsigned long>(N));
- return *this;
+ return this->operator<<(static_cast<unsigned long>(N));
}
raw_ostream &operator<<(int N) {
- this->operator<<(static_cast<long>(N));
- return *this;
+ return this->operator<<(static_cast<long>(N));
}
raw_ostream &operator<<(double N);
/// current_pos - Return the current position within the stream, not
/// counting the bytes currently in the buffer.
- virtual uint64_t current_pos() = 0;
+ virtual uint64_t current_pos() const = 0;
protected:
/// SetBuffer - Use the provided buffer as the raw_ostream buffer. This is
/// preferred_buffer_size - Return an efficient buffer size for the
/// underlying output mechanism.
- virtual size_t preferred_buffer_size();
+ virtual size_t preferred_buffer_size() const;
/// error_detected - Set the flag indicating that an output error has
/// been encountered.
/// current_pos - Return the current position within the stream, not
/// counting the bytes currently in the buffer.
- virtual uint64_t current_pos() { return pos; }
+ virtual uint64_t current_pos() const { return pos; }
/// preferred_buffer_size - Determine an efficient buffer size.
- virtual size_t preferred_buffer_size();
+ virtual size_t preferred_buffer_size() const;
public:
/// current_pos - Return the current position within the stream, not
/// counting the bytes currently in the buffer.
- virtual uint64_t current_pos() { return OS.size(); }
+ virtual uint64_t current_pos() const { return OS.size(); }
public:
explicit raw_string_ostream(std::string &O) : OS(O) {}
~raw_string_ostream();
/// current_pos - Return the current position within the stream, not
/// counting the bytes currently in the buffer.
- virtual uint64_t current_pos();
+ virtual uint64_t current_pos() const;
public:
/// Construct a new raw_svector_ostream.
///
/// current_pos - Return the current position within the stream, not
/// counting the bytes currently in the buffer.
- virtual uint64_t current_pos();
+ virtual uint64_t current_pos() const;
public:
explicit raw_null_ostream() {}