5#ifndef V8_UTILS_OSTREAMS_H_
6#define V8_UTILS_OSTREAMS_H_
30 int_type
overflow(int_type c)
override;
31 std::streamsize xsputn(
const char* s, std::streamsize n)
override;
66#if defined(ANDROID) && !defined(V8_ANDROID_LOG_STDOUT)
69 virtual ~AndroidLogStream();
72 std::streamsize xsputn(
const char* s, std::streamsize n)
override;
75 std::string line_buffer_;
78class StdoutStream :
public std::ostream {
87 AndroidLogStream stream_;
113 explicit AsUC16(uint16_t v) : value(v) {}
162 requires requires(T t, std::ostream& os) { os << *t; }
177 this->separator = new_separator;
187 typename std::common_type<
decltype(std::begin(collection)),
188 decltype(std::end(collection))>::type> {
189 return {std::begin(collection), std::end(collection)};
195std::ostream&
operator<<(std::ostream& os,
const AsReversiblyEscapedUC16& c);
199 const AsEscapedUC16ForJSON& c);
203std::ostream&
operator<<(std::ostream& os,
const AsUC16& c);
207std::ostream&
operator<<(std::ostream& os,
const AsUC32& c);
211 const AsHexBytes& v);
216 os << range.startBracket;
217 for (T it = range.start; it != range.end; ++it,
separator = range.separator) {
220 os << range.endBracket;
uint8_t data_[MAX_STACK_LENGTH]
~DbgStdoutStream() override=default
~OFStreamBase() override=default
~OFStream() override=default
base::RecursiveMutexGuard mutex_guard_
base::RecursiveMutexGuard mutex_guard_
friend class StderrStream
static V8_EXPORT_PRIVATE base::RecursiveMutex * GetStdoutMutex()
LockGuard< RecursiveMutex > RecursiveMutexGuard
constexpr int kSystemPointerHexDigits
std::ostream & operator<<(std::ostream &os, AtomicMemoryOrder order)
auto PrintCollection(const T &collection) -> PrintIteratorRange< typename std::common_type< decltype(std::begin(collection)), decltype(std::end(collection))>::type >
#define V8_EXPORT_PRIVATE
AsEscapedUC16ForJSON(uint16_t v)
AsHexBytes(uint64_t v, uint8_t min_bytes=1, ByteOrder byte_order=kLittleEndian)
AsHex(uint64_t v, uint8_t min_width=1, bool with_prefix=false)
static AsHex Address(Address a)
AsReversiblyEscapedUC16(uint16_t v)
PrintIteratorRange & WithoutBrackets()
PrintIteratorRange & WithSeparator(const char *new_separator)
PrintIteratorRange(T start, T end)
const char * startBracket