/* ==========================================================================
* libevnet/src/bufio-membuf.h - Network server library for libevent.
* --------------------------------------------------------------------------
* Copyright (c) 2006 Barracuda Networks, Inc.
* Copyright (c) 2006 William Ahern
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to permit
* persons to whom the Software is furnished to do so, subject to the
* following conditions:
*
* The above copyright notice and this permission notice shall be included
* in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
* NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
* USE OR OTHER DEALINGS IN THE SOFTWARE.
* ==========================================================================
*/
#ifndef EVNET_BUFIO_MEMBUF_H
#define EVNET_BUFIO_MEMBUF_H
struct bufio_membuf_options {
int oneshot;
}; /* bufio_membuf_options */
#define BUFIO_MEMBUF_ONESHOT (&bufio_membuf_oneshot)
extern const struct bufio_membuf_options bufio_membuf_oneshot;
#define BUFIO_MEMBUF_DEFAULTS (&bufio_membuf_defaults)
extern const struct bufio_membuf_options bufio_membuf_defaults;
struct bufio_membuf {
struct bufio_page page;
struct bufio_membuf_options opts;
BUFIO_IMPLEMENTS(bufio_membuf, bufio_source);
BUFIO_IMPLEMENTS(bufio_membuf, bufio_sink);
}; /* struct bufio_membuf */
struct bufio_membuf *bufio_membuf_init(struct bufio_membuf *, const struct bufio_membuf_options *);
struct bufio_source *bufio_membuf_init_source(struct bufio_membuf *, const struct bufio_membuf_options *, const void *, size_t);
struct bufio_sink *bufio_membuf_init_sink(struct bufio_membuf *, const struct bufio_membuf_options *, void *, size_t);
struct bufio_source *bufio_membuf_to_source(struct bufio_membuf *);
struct bufio_sink *bufio_membuf_to_sink(struct bufio_membuf *);
#endif /* EVNET_BUFIO_MEMBUF_H */
syntax highlighted by Code2HTML, v. 0.9.1