Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
std::basic_syncbuf(3)	      C++ Standard Libary	 std::basic_syncbuf(3)

NAME
       std::basic_syncbuf - std::basic_syncbuf

Synopsis
	  Defined in header <syncstream>
	  template<

	      class CharT,
	      class	     Traits	    =	      std::char_traits<CharT>,
       (since C++20)
	      class Allocator =	std::allocator<CharT>

	  > class basic_syncbuf	: public std::basic_streambuf<CharT, Traits>

	  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 char-
       acters 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 indi-
       cating 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 mu-
       texes 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:

	  Defined in header <syncstream>
	  Type		Definition
	  std::syncbuf	std::basic_syncbuf<char>
	  std::wsyncbuf	std::basic_syncbuf<wchar_t>

Member types
	  Member type	 Definition
	  char_type	 CharT
	  traits_type	   Traits;    the    program	is    ill-formed    if
       Traits::char_type is not
			 CharT.
	  int_type	 Traits::int_type
	  pos_type	 Traits::pos_type
	  off_type	 Traits::off_type
	  allocator_type Allocator
	  streambuf_type std::basic_streambuf<CharT, Traits>

Member functions
Public member functions
	  constructor	   constructs a	basic_syncbuf object
			   (public member function)
	  operator=	   assigns a basic_syncbuf object
			   (public member function)
	  swap		   swaps two basic_syncbuf objects
			   (public member function)
	  destructor	    destroys  the basic_syncbuf	and emits its internal
       buffer
			   (public member function)
			   atomically transmits	the entire internal buffer  to
       the wrapped
	  emit		   streambuf
			   (public member function)
	  get_wrapped	   retrieves the wrapped streambuf pointer
			   (public member function)
	  get_allocator	   retrieves the allocator used	by this	basic_syncbuf
			   (public member function)
	  set_emit_on_sync changes the current emit-on-sync policy
			   (public member function)

Protected member functions
			   either emits, or records a pending flush, depending
       on the current
	  sync		   emit-on-sync	policy
			   (public member function)

Non-member functions
	  std::swap(std::basic_syncbuf)	specializes the	std::swap algorithm
	  (C++20)			(function template)

       Inherited from std::basic_streambuf

Member types
	  Member type Definition
	  char_type   CharT
	  traits_type  Traits;	the program is ill-formed if Traits::char_type
       is not
		      CharT.
	  int_type    Traits::int_type
	  pos_type    Traits::pos_type
	  off_type    Traits::off_type

Member functions
	  destructor	     destructs the basic_streambuf object
	  [virtual]	     (virtual public member function of
			     std::basic_streambuf<CharT,Traits>)

Locales
			     invokes imbue()
	  pubimbue	     (public  member  function	of  std::basic_stream-
       buf<CharT,Traits>)

			     obtains a copy of the associated locale
	  getloc	      (public  member  function	 of std::basic_stream-
       buf<CharT,Traits>)

Positioning
			     invokes setbuf()
	  pubsetbuf	     (public  member  function	of  std::basic_stream-
       buf<CharT,Traits>)

			     invokes seekoff()
	  pubseekoff	      (public  member  function	 of std::basic_stream-
       buf<CharT,Traits>)

			     invokes seekpos()
	  pubseekpos	     (public  member  function	of  std::basic_stream-
       buf<CharT,Traits>)

			     invokes sync()
	  pubsync	      (public  member  function	 of std::basic_stream-
       buf<CharT,Traits>)

Get area
			     obtains  the  number  of  characters  immediately
       available in the	get
	  in_avail	     area
			     (public  member  function	of  std::basic_stream-
       buf<CharT,Traits>)

			     advances the input	sequence, then reads one char-
       acter without
	  snextc	     advancing again
			     (public  member  function	of  std::basic_stream-
       buf<CharT,Traits>)

	  sbumpc	      reads  one character from	the input sequence and
       advances	the
	  stossc	     sequence
	  (removed in C++17) (public  member  function	of  std::basic_stream-
       buf<CharT,Traits>)

			     reads one character from the input	sequence with-
       out advancing the
	  sgetc		     sequence
			     (public  member  function	of  std::basic_stream-
       buf<CharT,Traits>)

			     invokes xsgetn()
	  sgetn		     (public  member  function	of  std::basic_stream-
       buf<CharT,Traits>)

Put area
			     writes one	character to the put area and advances
       the next
	  sputc		     pointer
			     (public  member  function	of  std::basic_stream-
       buf<CharT,Traits>)

			     invokes xsputn()
	  sputn		     (public  member  function	of  std::basic_stream-
       buf<CharT,Traits>)

Putback
			     puts one character	back in	the input sequence
	  sputbackc	      (public  member  function	 of std::basic_stream-
       buf<CharT,Traits>)

			     moves the next pointer in the input sequence back
       by one
	  sungetc	     (public  member  function	of  std::basic_stream-
       buf<CharT,Traits>)

Protected member functions
	  constructor	constructs a basic_streambuf object
			(protected member function)
	  operator=	replaces a basic_streambuf object
	  (C++11)	(protected member function)
	  swap		swaps two basic_streambuf objects
	  (C++11)	(protected member function)

Locales
	  imbue		changes	the associated locale
	  [virtual]	(virtual protected member function of
			std::basic_streambuf<CharT,Traits>)

Positioning
	  setbuf	 replaces  the buffer with user-defined	array, if per-
       mitted
	  [virtual]	(virtual protected member function of
			std::basic_streambuf<CharT,Traits>)
			repositions the	next pointer in	 the  input  sequence,
       output sequence,
	  seekoff	or both, using relative	addressing
	  [virtual]	(virtual protected member function of
			std::basic_streambuf<CharT,Traits>)
			repositions  the  next	pointer	in the input sequence,
       output sequence,
	  seekpos	or both	using absolute addressing
	  [virtual]	(virtual protected member function of
			std::basic_streambuf<CharT,Traits>)
	  sync		synchronizes the buffers with the associated character
       sequence
	  [virtual]	(virtual protected member function of
			std::basic_streambuf<CharT,Traits>)

Get area
			obtains	the number of characters available  for	 input
       in the associated
	  showmanyc	input sequence,	if known
	  [virtual]	(virtual protected member function of
			std::basic_streambuf<CharT,Traits>)
	  underflow	reads characters from the associated input sequence to
       the get area
	  [virtual]	(virtual protected member function of
			std::basic_streambuf<CharT,Traits>)
			reads characters from the associated input sequence to
       the get area
	  uflow		and advances the next pointer
	  [virtual]	(virtual protected member function of
			std::basic_streambuf<CharT,Traits>)
	  xsgetn	reads multiple characters from the input sequence
	  [virtual]	(virtual protected member function of
			std::basic_streambuf<CharT,Traits>)
	  eback		 returns a pointer to the beginning, current character
       and the end of
	  gptr		the get	area
	  egptr		(protected member function)
	  gbump		advances the next pointer in the input sequence
			(protected member function)
			repositions the	beginning, next, and end  pointers  of
       the input
	  setg		sequence
			(protected member function)

Put area
	  xsputn	writes multiple	characters to the output sequence
	  [virtual]	(virtual protected member function of
			std::basic_streambuf<CharT,Traits>)
	  overflow	 writes	 characters  to	the associated output sequence
       from the	put area
	  [virtual]	(virtual protected member function of
			std::basic_streambuf<CharT,Traits>)
	  pbase		returns	a pointer to the beginning, current  character
       and the end of
	  pptr		the put	area
	  epptr		(protected member function)
	  pbump		advances the next pointer of the output	sequence
			(protected member function)
			repositions  the  beginning, next, and end pointers of
       the output
	  setp		sequence
			(protected member function)

Putback
			puts a character back into the input sequence,	possi-
       bly modifying the
	  pbackfail	input sequence
	  [virtual]	(virtual protected member function of
			std::basic_streambuf<CharT,Traits>)

Notes
	  Feature-test macro  Value    Std			  Feature
	  __cpp_lib_syncbuf   201803L  (C++20)	Synchronized  buffered ostream
       (std::syncbuf,
					     std::osyncstream)	and  manipula-
       tors

http://cppreference.com		  2024.06.10		 std::basic_syncbuf(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::basic_syncbuf&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help