Main Page | Modules | Alphabetical List | Data Structures | Directories | File List | Data Fields | Related Pages

obuf: Output Buffer Management


Data Structures

struct  obuf
 Output specific buffer. More...

Defines

#define OBUF_CREATE   O_CREAT
#define OBUF_EXCLUSIVE   O_EXCL
#define OBUF_TRUNCATE   O_TRUNC
#define OBUF_APPEND   O_APPEND
#define obuf_error(out)   iobuf_error(&(out)->io)
#define obuf_closed(out)   iobuf_closed(&(out)->io)
#define obuf_timedout(out)   iobuf_timedout(&((out)->io))
#define obuf_rewind(out)   obuf_seek(out,0)
#define obuf_tell(out)   ((out)->io.offset+(out)->bufpos)
#define obuf_puts(out, str)   obuf_write(out,str,strlen(str))
#define obuf_putstr(out, str)   obuf_write(out,(str)->s,(str)->len)

Typedefs

typedef int(* obuf_fn )(int, const void *, unsigned long)
typedef obuf obuf

Functions

int obuf_init (obuf *out, int fd, obuf_fn fn, unsigned flags, unsigned bufsize)
int obuf_open (obuf *out, const char *filename, int oflags, int mode, unsigned bufsize)
int obuf_close (obuf *out)
int obuf_flush (obuf *out)
int obuf_sync (obuf *out)
int obuf_write_large (obuf *out, const char *data, unsigned datalen)
int obuf_write (obuf *out, const char *data, unsigned datalen)
int obuf_seek (obuf *out, unsigned offset)
int obuf_pad (obuf *out, unsigned width, char ch)
int obuf_endl (obuf *out)
int obuf_putc (obuf *out, char ch)
int obuf_put2s (obuf *out, const char *s1, const char *s2)
int obuf_put3s (obuf *out, const char *s1, const char *s2, const char *s3)
int obuf_put4s (obuf *out, const char *s1, const char *s2, const char *s3, const char *s4)
int obuf_put5s (obuf *out, const char *s1, const char *s2, const char *s3, const char *s4, const char *s5)
int obuf_put6s (obuf *out, const char *s1, const char *s2, const char *s3, const char *s4, const char *s5, const char *s6)
int obuf_put7s (obuf *out, const char *s1, const char *s2, const char *s3, const char *s4, const char *s5, const char *s6, const char *s7)
int obuf_putns (obuf *out, unsigned int count,...)
int obuf_putf (obuf *out, const char *format,...)
int obuf_putfv (obuf *out, const char *format, va_list ap)
int obuf_putsflush (obuf *out, const char *s)
int obuf_puti (obuf *out, long data)
int obuf_putiw (obuf *out, long data, unsigned width, char pad)
int obuf_putu (obuf *out, unsigned long data)
int obuf_putuw (obuf *out, unsigned long data, unsigned width, char pad)
int obuf_putill (obuf *out, long long data)
int obuf_putiwll (obuf *out, long long data, unsigned width, char pad)
int obuf_putull (obuf *out, unsigned long long data)
int obuf_putuwll (obuf *out, unsigned long long data, unsigned width, char pad)
int obuf_putx (obuf *out, unsigned long data)
int obuf_putxw (obuf *out, unsigned long data, unsigned width, char pad)
int obuf_putX (obuf *out, unsigned long data)
int obuf_putXw (obuf *out, unsigned long data, unsigned width, char pad)
int obuf_putxll (obuf *out, unsigned long long data)
int obuf_putxwll (obuf *out, unsigned long long data, unsigned width, char pad)
int obuf_putXll (obuf *out, unsigned long long data)
int obuf_putXwll (obuf *out, unsigned long long data, unsigned width, char pad)
int obuf_putsnumw (obuf *out, long num, unsigned width, char pad, unsigned base, const char *digits)
int obuf_putunumw (obuf *out, unsigned long num, unsigned width, char pad, unsigned base, const char *digits)
int obuf_putsllnumw (obuf *out, long long num, unsigned width, char pad, unsigned base, const char *digits)
int obuf_putullnumw (obuf *out, unsigned long long num, unsigned width, char pad, unsigned base, const char *digits)
int obuf_putnetstring (obuf *out, const char *data, unsigned datalen)
int obuf_sign_pad (obuf *out, int sign, unsigned width, char pad)

Variables

obuf outbuf
obuf errbuf
const char obuf_dec_digits [10]
const char obuf_hex_lcase_digits [16]
const char obuf_hex_ucase_digits [16]

Detailed Description

Calling Convention
Unless otherwise specified, the return value is non-zero (true) if the entire requested operation completed, and 0 (false) otherwise.

Define Documentation

#define OBUF_APPEND   O_APPEND
 

All writes go to the end of the file.

#define obuf_closed out   )     iobuf_closed(&(out)->io)
 

Test if the obuf has been closed.

#define OBUF_CREATE   O_CREAT
 

Create the file if it does not already exist.

#define obuf_error out   )     iobuf_error(&(out)->io)
 

Test if the obuf is in an error state.

#define OBUF_EXCLUSIVE   O_EXCL
 

If OBUF_CREATE is set, fail to create the file if it already exists.

#define obuf_puts out,
str   )     obuf_write(out,str,strlen(str))
 

Write a C string to the obuf.

#define obuf_putstr out,
str   )     obuf_write(out,(str)->s,(str)->len)
 

Write a dynamic string to the iobuf.

#define obuf_rewind out   )     obuf_seek(out,0)
 

Set the effective write position to the start of the file.

#define obuf_tell out   )     ((out)->io.offset+(out)->bufpos)
 

Look up the current effective write position.

#define obuf_timedout out   )     iobuf_timedout(&((out)->io))
 

Test if the last obuf write timed out.

#define OBUF_TRUNCATE   O_TRUNC
 

If the file exists, truncate it to length 0.


Typedef Documentation

typedef struct obuf obuf
 

Output specific buffer typedef.

typedef int(* obuf_fn)(int, const void *, unsigned long)
 

obuf write function pointer prototype.


Function Documentation

int obuf_close obuf out  ) 
 

Flush and close the obuf.

int obuf_endl obuf out  ) 
 

Write a newline to the obuf and flush it.

int obuf_flush obuf out  ) 
 

Write all pending data in the obuf to the file descriptor.

int obuf_init obuf out,
int  fd,
obuf_fn  fn,
unsigned  flags,
unsigned  bufsize
 

Initialize an obuf from an already-opened file descriptor.

int obuf_open obuf out,
const char *  filename,
int  oflags,
int  mode,
unsigned  bufsize
 

Initialize an obuf by opening a file for writing.

int obuf_pad obuf out,
unsigned  width,
char  ch
 

Pad the output with width instances of the single character ch.

int obuf_put2s obuf out,
const char *  s1,
const char *  s2
 

Write 2 C strings to the obuf.

int obuf_put3s obuf out,
const char *  s1,
const char *  s2,
const char *  s3
 

Write 3 C strings to the obuf.

int obuf_put4s obuf out,
const char *  s1,
const char *  s2,
const char *  s3,
const char *  s4
 

Write 4 C strings to the obuf.

int obuf_put5s obuf out,
const char *  s1,
const char *  s2,
const char *  s3,
const char *  s4,
const char *  s5
 

Write 5 C strings to the obuf.

int obuf_put6s obuf out,
const char *  s1,
const char *  s2,
const char *  s3,
const char *  s4,
const char *  s5,
const char *  s6
 

Write 6 C strings to the obuf.

int obuf_put7s obuf out,
const char *  s1,
const char *  s2,
const char *  s3,
const char *  s4,
const char *  s5,
const char *  s6,
const char *  s7
 

Write 7 C strings to the obuf.

int obuf_putc obuf out,
char  ch
 

Write a single character to the obuf.

int obuf_putf obuf out,
const char *  format,
  ...
 

Write a formatted string using fmt_multi from variable arguments.

int obuf_putfv obuf out,
const char *  format,
va_list  ap
 

Write a formatted string using fmt_multi from a va_list.

int obuf_puti obuf out,
long  data
 

Write a signed integer as decimal to the obuf.

int obuf_putill obuf out,
long long  data
 

Write a signed long long integer as decimal to the obuf.

int obuf_putiw obuf out,
long  data,
unsigned  width,
char  pad
 

Write a signed integer as decimal to the obuf with padding.

int obuf_putiwll obuf out,
long long  data,
unsigned  width,
char  pad
 

Write a signed long long integer as decimal to the obuf with padding.

int obuf_putnetstring obuf out,
const char *  data,
unsigned  datalen
 

Write the binary block to the obuf as a "netstring".

int obuf_putns obuf out,
unsigned int  count,
  ...
 

Write N C strings to the obuf.

int obuf_putsflush obuf out,
const char *  s
 

Write a C string to the obuf and flush it.

int obuf_putsllnumw obuf out,
long long  num,
unsigned  width,
char  pad,
unsigned  base,
const char *  digits
 

Write a signed long long integer to the obuf with optional padding.

int obuf_putsnumw obuf out,
long  num,
unsigned  width,
char  pad,
unsigned  base,
const char *  digits
 

Write a signed integer to the obuf with optional padding.

int obuf_putu obuf out,
unsigned long  data
 

Write an unsigned integer as decimal to the obuf.

int obuf_putull obuf out,
unsigned long long  data
 

Write an unsigned long long integer as decimal to the obuf.

int obuf_putullnumw obuf out,
unsigned long long  num,
unsigned  width,
char  pad,
unsigned  base,
const char *  digits
 

Write an unsigned long long integer to the obuf with optional padding.

int obuf_putunumw obuf out,
unsigned long  num,
unsigned  width,
char  pad,
unsigned  base,
const char *  digits
 

Write an unsigned integer to the obuf with optional padding.

int obuf_putuw obuf out,
unsigned long  data,
unsigned  width,
char  pad
 

Write an unsigned integer as decimal to the obuf with padding.

int obuf_putuwll obuf out,
unsigned long long  data,
unsigned  width,
char  pad
 

Write an unsigned long long integer as decimal to the obuf with padding.

int obuf_putX obuf out,
unsigned long  data
 

Write an unsigned integer as (upper-case) hexadecimal to the obuf.

int obuf_putx obuf out,
unsigned long  data
 

Write an unsigned integer as (lower-case) hexadecimal to the obuf.

int obuf_putXll obuf out,
unsigned long long  data
 

Write an unsigned long long integer as (upper-case) hexadecimal to the obuf.

int obuf_putxll obuf out,
unsigned long long  data
 

Write an unsigned long long integer as (lower-case) hexadecimal to the obuf.

int obuf_putXw obuf out,
unsigned long  data,
unsigned  width,
char  pad
 

Write an unsigned integer as (upper-case) hexadecimal to the obuf with padding.

int obuf_putxw obuf out,
unsigned long  data,
unsigned  width,
char  pad
 

Write an unsigned integer as (lower-case) hexadecimal to the obuf with padding.

int obuf_putXwll obuf out,
unsigned long long  data,
unsigned  width,
char  pad
 

Write an unsigned long long integer as (upper-case) hexadecimal to the obuf with padding.

int obuf_putxwll obuf out,
unsigned long long  data,
unsigned  width,
char  pad
 

Write an unsigned long long integer as (lower-case) hexadecimal to the obuf with padding.

int obuf_seek obuf out,
unsigned  offset
 

Set the effective write position.

int obuf_sign_pad obuf out,
int  sign,
unsigned  width,
char  pad
 

Pad the output with width instances of the single character ch, preceded by an optional negative sign at an appropriate place.

If the pad character is '0' then any negative sign is placed as the first character, followed by padding. Otherwise, it is preceded by the padding.

int obuf_sync obuf out  ) 
 

Flush the obuf and then fsync the file descriptor.

int obuf_write obuf out,
const char *  data,
unsigned  datalen
 

Write a block of data to the obuf.

int obuf_write_large obuf out,
const char *  data,
unsigned  datalen
 

Write a large block of data to the obuf, avoiding copying.


Variable Documentation

obuf errbuf
 

Output buffer for stderr.

obuf outbuf
 

Output buffer for stdout.


Generated on Tue Aug 23 12:22:59 2005 for bglibs by  doxygen 1.4.2