Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Postfix/src/util/   (Postfix Mailserver Version 3.11©)  Datei vom 7.11.2014 mit Größe 2 kB image not shown  

Quelle  nbbio.h

  Sprache: C
 

#ifndef _NBBIO_H_INCLUDED_
#define _NBBIO_H_INCLUDED_

/*++
/* NAME
/* nbbio 3h
/* SUMMARY
/* non-blocking buffered I/O
/* SYNOPSIS
/* #include "nbbio.h"
/* DESCRIPTION
/* .nf

 /*
  * Utility library.
  */

#include <events.h>   /* Needed for EVENT_READ etc. */

 /*
  * External interface. All structure members are private.
  */

typedef void (*NBBIO_ACTION) (intvoid *);

typedef struct {
    int     fd;    /* socket file descriptor */
    ssize_t bufsize;   /* read/write buffer size */
    char   *label;   /* diagnostics */
    NBBIO_ACTION action;  /* call-back routine */
    void   *context;   /* call-back context */
    int     flags;   /* buffer-pair status */

    char   *read_buf;   /* start of buffer */
    ssize_t read_pend;   /* nr of unread bytes */

    char   *write_buf;   /* start of buffer */
    ssize_t write_pend;   /* nr of unwritten bytes */
} NBBIO;

#define NBBIO_FLAG_READ  (1<<0)
#define NBBIO_FLAG_WRITE (1<<1)
#define NBBIO_FLAG_EOF  (1<<2)
#define NBBIO_FLAG_ERROR (1<<3)
#define NBBIO_FLAG_TIMEOUT (1<<4)

#define NBBIO_OP_NAME(np) \
 (((np)->flags & NBBIO_FLAG_READ) ? "read" : \
  ((np)->flags & NBBIO_FLAG_WRITE) ? "write" : \
  "unknown")

#define NBBIO_MASK_ACTIVE \
 (NBBIO_FLAG_READ | NBBIO_FLAG_WRITE)

#define NBBIO_MASK_ERROR \
 (NBBIO_FLAG_EOF | NBBIO_FLAG_ERROR | NBBIO_FLAG_TIMEOUT)

#define NBBIO_BUFSIZE(np)  (((np)->bufsize) + 0/* Read-only */

#define NBBIO_READ_PEND(np)  ((np)->read_pend)
#define NBBIO_READ_BUF(np)  ((np)->read_buf + 0/* Read-only */

#define NBBIO_WRITE_PEND(np)  ((np)->write_pend)
#define NBBIO_WRITE_BUF(np)  ((np)->write_buf + 0/* Read-only */

#define NBBIO_ACTIVE_FLAGS(np)  ((np)->flags & NBBIO_MASK_ACTIVE)
#define NBBIO_ERROR_FLAGS(np)  ((np)->flags & NBBIO_MASK_ERROR)

extern NBBIO *nbbio_create(int, ssize_t, const char *, NBBIO_ACTION, void *);
extern void nbbio_free(NBBIO *);
extern void nbbio_enable_read(NBBIO *, int);
extern void nbbio_enable_write(NBBIO *, int);
extern void nbbio_disable_readwrite(NBBIO *);
extern void nbbio_slumber(NBBIO *, int);

/* LICENSE
/* .ad
/* .fi
/* The Secure Mailer license must be distributed with this software.
/* AUTHOR(S)
/* Wietse Venema
/* IBM T.J. Watson Research
/* P.O. Box 704
/* Yorktown Heights, NY 10598, USA
/*--*/


#endif

Messung V0.5 in Prozent
C=68 H=96 G=83

¤ Dauer der Verarbeitung: 0.9 Sekunden  (vorverarbeitet am  2026-08-08) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.