std::basic_syncbuf
is a wrapper for a std::basic_streambuf (provided at construction time as a pointer). It accumulates output in its own internal buffer, and atomically transmits its entire contents to the wrapped buffer on destruction and when explicitly requested, so that they appear as a contiguous sequence of characters. It guarantees that there are no data races and no interleaving of characters sent to the wrapped buffer as long as all other outputs made to the same buffer are made through, possibly different, instances of std::basic_syncbuf
.
Typical implementation of std::basic_syncbuf
holds a pointer to the wrapped std::basic_streambuf, a boolean flag indicating whether the buffer will transmit its contents to the wrapped buffer on sync (flush), a boolean flag indicating a pending flush when the policy is to not emit on sync, an internal buffer that uses Allocator
(such as std::string), and a pointer to a mutex used to synchronize emit between multiple threads accessing the same wrapped stream buffer (these mutexes may be in a hash map with pointers to std::basic_streambuf objects used as keys).
Like other streambuf classes, std::basic_syncbuf
is normally only accessed through the corresponding stream, std::osyncstream, not directly.
Several typedefs for common character types are provided:
Type Definitionstd::syncbuf
std::basic_syncbuf<char> std::wsyncbuf
std::basic_syncbuf<wchar_t> [edit] Member types Member type Definition char_type
CharT
[edit] traits_type
Traits
; the program is ill-formed if Traits::char_type
is not CharT
.[edit] int_type
Traits::int_type
[edit] pos_type
Traits::pos_type
[edit] off_type
Traits::off_type
[edit] allocator_type
Allocator
streambuf_type
std::basic_streambuf<CharT, Traits> [edit] Member functions Public member functions constructs a basic_syncbuf
object
basic_syncbuf
object
basic_syncbuf
objects
basic_syncbuf
and emits its internal buffer
basic_syncbuf
char_type
CharT
[edit] traits_type
Traits
; the program is ill-formed if Traits::char_type
is not CharT
.[edit] int_type
Traits::int_type
[edit] pos_type
Traits::pos_type
[edit] off_type
Traits::off_type
[edit] Member functions destructs the basic_streambuf
object
std::basic_streambuf<CharT,Traits>
) [edit] Locales changes the associated locale and invokes imbue()
std::basic_streambuf<CharT,Traits>
) [edit] obtains a copy of the associated locale
std::basic_streambuf<CharT,Traits>
) [edit] Positioning invokes setbuf()
std::basic_streambuf<CharT,Traits>
) [edit] invokes seekoff()
std::basic_streambuf<CharT,Traits>
) [edit] invokes seekpos()
std::basic_streambuf<CharT,Traits>
) [edit] invokes sync()
std::basic_streambuf<CharT,Traits>
) [edit] Get area obtains the number of characters immediately available in the get area
std::basic_streambuf<CharT,Traits>
) [edit] advances the input sequence, then reads one character without advancing again
std::basic_streambuf<CharT,Traits>
) [edit] reads one character from the input sequence and advances the sequence
std::basic_streambuf<CharT,Traits>
) [edit] reads one character from the input sequence without advancing the sequence
std::basic_streambuf<CharT,Traits>
) [edit] invokes xsgetn()
std::basic_streambuf<CharT,Traits>
) [edit] Put area writes one character to the put area and advances the next pointer
std::basic_streambuf<CharT,Traits>
) [edit] invokes xsputn()
std::basic_streambuf<CharT,Traits>
) [edit] Putback puts one character back in the input sequence
std::basic_streambuf<CharT,Traits>
) [edit] moves the next pointer in the input sequence back by one
std::basic_streambuf<CharT,Traits>
) [edit] Protected member functions constructs a basic_streambuf
object
basic_streambuf
object
basic_streambuf
objects
std::basic_streambuf<CharT,Traits>
) [edit] Positioning replaces the buffer with user-defined array, if permitted
std::basic_streambuf<CharT,Traits>
) [edit] repositions the next pointer in the input sequence, output sequence, or both, using relative addressing
std::basic_streambuf<CharT,Traits>
) [edit] repositions the next pointer in the input sequence, output sequence, or both using absolute addressing
std::basic_streambuf<CharT,Traits>
) [edit] synchronizes the buffers with the associated character sequence
std::basic_streambuf<CharT,Traits>
) [edit] Get area obtains the number of characters available for input in the associated input sequence, if known
std::basic_streambuf<CharT,Traits>
) [edit] reads characters from the associated input sequence to the get area
std::basic_streambuf<CharT,Traits>
) [edit] reads characters from the associated input sequence to the get area and advances the next pointer
std::basic_streambuf<CharT,Traits>
) [edit] reads multiple characters from the input sequence
std::basic_streambuf<CharT,Traits>
) [edit] returns a pointer to the beginning, current character and the end of the get area
std::basic_streambuf<CharT,Traits>
) [edit] writes characters to the associated output sequence from the put area
std::basic_streambuf<CharT,Traits>
) [edit] returns a pointer to the beginning, current character and the end of the put area
std::basic_streambuf<CharT,Traits>
) [edit] [edit] Notes
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4