std::basic_syncbuf
<syncstream>
class CharT,
class Traits = std::char_traits <CharT>,
class Allocator = std::allocator <CharT>
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:
<syncstream>
std::syncbuf
std::basic_syncbuf<char>
std::wsyncbuf
std::basic_syncbuf<wchar_t>
Contents
[edit] Member types
allocator_type
Allocator
streambuf_type
std::basic_streambuf <CharT, Traits>
[edit] Member functions
Public member functions
(public member function) [edit]
Protected member functions
(public member function) [edit]
[edit] Non-member functions
Inherited from std::basic_streambuf
Member types
Member functions
basic_streambuf
object (virtual public member function of
std::basic_streambuf<CharT,Traits>
) [edit]
Locales
(public member function of
std::basic_streambuf<CharT,Traits>
) [edit]
(public member function of
std::basic_streambuf<CharT,Traits>
) [edit]
Positioning
Get area
(public member function of
std::basic_streambuf<CharT,Traits>
) [edit]
(public member function of
std::basic_streambuf<CharT,Traits>
) [edit]
(public member function of
std::basic_streambuf<CharT,Traits>
) [edit]
(public member function of
std::basic_streambuf<CharT,Traits>
) [edit]
Put area
(public member function of
std::basic_streambuf<CharT,Traits>
) [edit]
Putback
(public member function of
std::basic_streambuf<CharT,Traits>
) [edit]
(public member function of
std::basic_streambuf<CharT,Traits>
) [edit]
Protected member functions
Locales
(virtual protected member function of
std::basic_streambuf<CharT,Traits>
) [edit]
Positioning
(virtual protected member function of
std::basic_streambuf<CharT,Traits>
) [edit]
(virtual protected member function of
std::basic_streambuf<CharT,Traits>
) [edit]
(virtual protected member function of
std::basic_streambuf<CharT,Traits>
) [edit]
(virtual protected member function of
std::basic_streambuf<CharT,Traits>
) [edit]
Get area
(virtual protected member function of
std::basic_streambuf<CharT,Traits>
) [edit]
(virtual protected member function of
std::basic_streambuf<CharT,Traits>
) [edit]
(virtual protected member function of
std::basic_streambuf<CharT,Traits>
) [edit]
(virtual protected member function of
std::basic_streambuf<CharT,Traits>
) [edit]
(protected member function) [edit]
(protected member function) [edit]
Put area
(virtual protected member function of
std::basic_streambuf<CharT,Traits>
) [edit]
(virtual protected member function of
std::basic_streambuf<CharT,Traits>
) [edit]
(protected member function) [edit]
(protected member function) [edit]
Putback
[edit] Notes
Feature-test macro | Value | Std | Feature |
---|---|---|---|
__cpp_lib_syncbuf |
201803L |
(C++20) | Synchronized buffered ostream (std::syncbuf , std::osyncstream) and manipulators
|