25 #ifndef LOGTRANSPORT_H_INCLUDED
26 #define LOGTRANSPORT_H_INCLUDED
31 typedef enum _LogTransportIOCond
65 gssize (*
write)(LogTransport *
self,
const gpointer
buf, gsize count);
66 gssize (*
writev)(LogTransport *
self,
struct iovec *iov, gint iov_count);
81 static inline GIOCondition
87 return (GIOCondition) 0;
95 g_assert_not_reached();
98 g_assert_not_reached();
101 static inline gboolean
102 log_transport_poll_prepare(LogTransport *
self, GIOCondition *cond)
104 *cond = _log_transport_io_cond(
self->cond);
106 if (
self->ra.buf_len !=
self->ra.pos)
113 log_transport_get_io_requirement(LogTransport *
self)
119 log_transport_assign_to_stack(LogTransport *
self, LogTransportStack *stack)
125 log_transport_write(LogTransport *
self,
const gpointer buf, gsize count)
127 return self->write(
self, buf, count);
131 log_transport_writev(LogTransport *
self,
struct iovec *iov, gint iov_count)
133 return self->writev(
self, iov, iov_count);
137 log_transport_shutdown(LogTransport *
self)
140 return self->shutdown(
self);
144 gpointer buf, gsize count,
150 if (G_LIKELY(
self->ra.buf_len == 0))
151 return self->read(
self, buf, count,
aux);
const gchar * name
Definition: debugger.c:265
gssize _log_transport_combined_read_with_read_ahead(LogTransport *self, gpointer buf, gsize count, LogTransportAuxData *aux)
Definition: logtransport.c:31
void log_transport_free_method(LogTransport *s)
Definition: logtransport.c:124
LogTransportIOCond
Definition: logtransport.h:32
@ LTIO_WRITE_WANTS_WRITE
Definition: logtransport.h:36
@ LTIO_NOTHING
Definition: logtransport.h:33
@ LTIO_READ_WANTS_READ
Definition: logtransport.h:34
@ LTIO_WRITE_WANTS_READ
Definition: logtransport.h:37
@ LTIO_READ_WANTS_WRITE
Definition: logtransport.h:35
void log_transport_free(LogTransport *s)
Definition: logtransport.c:138
gssize log_transport_read_ahead(LogTransport *self, gpointer buf, gsize count, gboolean *moved_forward)
Definition: logtransport.c:83
void log_transport_init_instance(LogTransport *s, const gchar *name, gint fd)
Definition: logtransport.c:129
#define self
Definition: rcptid.c:38
Definition: transport-aux-data.h:30
Definition: transport-stack.h:103
Definition: logtransport.h:60
const gchar * name
Definition: logtransport.h:78
gssize(* read)(LogTransport *self, gpointer buf, gsize count, LogTransportAuxData *aux)
Definition: logtransport.h:64
gint pos
Definition: logtransport.h:75
gssize(* writev)(LogTransport *self, struct iovec *iov, gint iov_count)
Definition: logtransport.h:66
struct _LogTransport::@101 ra
gint fd
Definition: logtransport.h:61
gssize(* write)(LogTransport *self, const gpointer buf, gsize count)
Definition: logtransport.h:65
gint buf_len
Definition: logtransport.h:74
gchar buf[16]
Definition: logtransport.h:73
void(* shutdown)(LogTransport *self)
Definition: logtransport.h:67
LogTransportIOCond cond
Definition: logtransport.h:62
LogTransportStack * stack
Definition: logtransport.h:77
void(* free_fn)(LogTransport *self)
Definition: logtransport.h:68
LogTransportAuxData * aux
Definition: test_aux_data.c:28