OLD | NEW |
1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef V8_OSTREAMS_H_ | 5 #ifndef V8_OSTREAMS_H_ |
6 #define V8_OSTREAMS_H_ | 6 #define V8_OSTREAMS_H_ |
7 | 7 |
8 #include <stddef.h> | 8 #include <stddef.h> |
9 #include <stdio.h> | 9 #include <stdio.h> |
10 #include <string.h> | 10 #include <string.h> |
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
110 virtual OFStream& write(const char* s, size_t n) V8_OVERRIDE; | 110 virtual OFStream& write(const char* s, size_t n) V8_OVERRIDE; |
111 virtual OFStream& flush() V8_OVERRIDE; | 111 virtual OFStream& flush() V8_OVERRIDE; |
112 | 112 |
113 private: | 113 private: |
114 FILE* const f_; | 114 FILE* const f_; |
115 | 115 |
116 DISALLOW_COPY_AND_ASSIGN(OFStream); | 116 DISALLOW_COPY_AND_ASSIGN(OFStream); |
117 }; | 117 }; |
118 | 118 |
119 | 119 |
120 // A wrapper to disambiguate uint16_t and uc16. | 120 // Wrappers to disambiguate uint16_t and uc16. |
121 struct AsUC16 { | 121 struct AsUC16 { |
122 explicit AsUC16(uint16_t v) : value(v) {} | 122 explicit AsUC16(uint16_t v) : value(v) {} |
123 uint16_t value; | 123 uint16_t value; |
124 }; | 124 }; |
125 | 125 |
126 | 126 |
| 127 struct AsReversiblyEscapedUC16 { |
| 128 explicit AsReversiblyEscapedUC16(uint16_t v) : value(v) {} |
| 129 uint16_t value; |
| 130 }; |
| 131 |
| 132 |
| 133 // Writes the given character to the output escaping everything outside |
| 134 // of printable ASCII range. Additionally escapes '\' making escaping |
| 135 // reversible. |
| 136 OStream& operator<<(OStream& os, const AsReversiblyEscapedUC16& c); |
| 137 |
| 138 // Writes the given character to the output escaping everything outside |
| 139 // of printable ASCII range. |
127 OStream& operator<<(OStream& os, const AsUC16& c); | 140 OStream& operator<<(OStream& os, const AsUC16& c); |
128 } } // namespace v8::internal | 141 } } // namespace v8::internal |
129 | 142 |
130 #endif // V8_OSTREAMS_H_ | 143 #endif // V8_OSTREAMS_H_ |
OLD | NEW |