Qpid Proton C API  0.16.0
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
connection_driver.h
Go to the documentation of this file.
1 #ifndef PROTON_CONNECTION_DRIVER_H
2 #define PROTON_CONNECTION_DRIVER_H 1
3 
4 /*
5  * Licensed to the Apache Software Foundation (ASF) under one
6  * or more contributor license agreements. See the NOTICE file
7  * distributed with this work for additional information
8  * regarding copyright ownership. The ASF licenses this file
9  * to you under the Apache License, Version 2.0 (the
10  * "License"); you may not use this file except in compliance
11  * with the License. You may obtain a copy of the License at
12  *
13  * http://www.apache.org/licenses/LICENSE-2.0
14  *
15  * Unless required by applicable law or agreed to in writing,
16  * software distributed under the License is distributed on an
17  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
18  * KIND, either express or implied. See the License for the
19  * specific language governing permissions and limitations
20  * under the License.
21  */
22 
77 #include <proton/import_export.h>
78 #include <proton/event.h>
79 #include <proton/types.h>
80 
81 #include <stdarg.h>
82 
83 #ifdef __cplusplus
84 extern "C" {
85 #endif
86 
90 typedef struct pn_connection_driver_t {
91  pn_connection_t *connection;
92  pn_transport_t *transport;
93  pn_event_batch_t batch;
95 
113 
120 
126 
136 
141 PN_EXTERN void pn_connection_driver_read_done(pn_connection_driver_t *, size_t n);
142 
147 
152 
162 
167 PN_EXTERN void pn_connection_driver_write_done(pn_connection_driver_t *, size_t n);
168 
173 
178 
183 
192 
197 
205 
215 PN_EXTERN void pn_connection_driver_errorf(pn_connection_driver_t *d, const char *name, const char *fmt, ...);
216 
220 PN_EXTERN void pn_connection_driver_verrorf(pn_connection_driver_t *d, const char *name, const char *fmt, va_list);
221 
225 PN_EXTERN void pn_connection_driver_log(pn_connection_driver_t *d, const char *msg);
226 
230 PN_EXTERN void pn_connection_driver_logf(pn_connection_driver_t *d, char *fmt, ...);
231 
235 PN_EXTERN void pn_connection_driver_vlogf(pn_connection_driver_t *d, const char *fmt, va_list ap);
236 
242 
247 #ifdef __cplusplus
248 }
249 #endif
250 
251 #endif /* connection_driver.h */
void pn_connection_driver_log(pn_connection_driver_t *d, const char *msg)
Log a string message using the connection&#39;s transport log.
AMQP and API data types.
struct pn_connection_driver_t pn_connection_driver_t
The elements needed to drive AMQP IO and events.
int pn_connection_driver_bind(pn_connection_driver_t *d)
Force binding of the transport.
void pn_connection_driver_errorf(pn_connection_driver_t *d, const char *name, const char *fmt,...)
Set IO error information.
void pn_connection_driver_vlogf(pn_connection_driver_t *d, const char *fmt, va_list ap)
Log a printf formatted message using the connection&#39;s transport log.
pn_connection_driver_t * pn_event_batch_connection_driver(pn_event_batch_t *batch)
If batch is part of a connection_driver, return the connection_driver address, else return NULL...
pn_event_t * pn_connection_driver_next_event(pn_connection_driver_t *)
Get the next event to handle.
bool pn_connection_driver_has_event(pn_connection_driver_t *)
True if pn_connection_driver_next_event() will return a non-NULL event.
struct pn_transport_t pn_transport_t
An AMQP Transport object.
Definition: types.h:419
pn_rwbytes_t pn_connection_driver_read_buffer(pn_connection_driver_t *)
Get the read buffer.
A non-const byte buffer.
Definition: types.h:225
struct pn_event_batch_t pn_event_batch_t
Experimental - A batch of events to handle.
Definition: event.h:544
The elements needed to drive AMQP IO and events.
Definition: connection_driver.h:90
void pn_connection_driver_logf(pn_connection_driver_t *d, char *fmt,...)
Log a printf formatted message using the connection&#39;s transport log.
bool pn_connection_driver_write_closed(pn_connection_driver_t *)
True if write side is closed.
void pn_connection_driver_read_close(pn_connection_driver_t *)
Close the read side.
bool pn_connection_driver_read_closed(pn_connection_driver_t *)
True if read side is closed.
pn_bytes_t pn_connection_driver_write_buffer(pn_connection_driver_t *)
Get the write buffer.
void pn_connection_driver_verrorf(pn_connection_driver_t *d, const char *name, const char *fmt, va_list)
Set IO error information via a va_list, see pn_connection_driver_errorf()
int pn_connection_driver_init(pn_connection_driver_t *, pn_connection_t *, pn_transport_t *)
Set connection and transport to the provided values, or create a new pn_connection_t or pn_transport_...
void pn_connection_driver_close(pn_connection_driver_t *c)
Close both sides side.
bool pn_connection_driver_finished(pn_connection_driver_t *)
Return true if the the driver is closed for reading and writing and there are no more events...
Protocol and transport events.
void pn_connection_driver_write_close(pn_connection_driver_t *)
Close the write side.
struct pn_connection_t pn_connection_t
An AMQP Connection object.
Definition: types.h:275
void pn_connection_driver_destroy(pn_connection_driver_t *)
Unbind, release and free the connection and transport.
void pn_connection_driver_write_done(pn_connection_driver_t *, size_t n)
Call when the first n bytes of pn_connection_driver_write_buffer() have been written to IO...
void pn_connection_driver_read_done(pn_connection_driver_t *, size_t n)
Process the first n bytes of data in pn_connection_driver_read_buffer() and reclaim the buffer space...
A const byte buffer.
Definition: types.h:206
struct pn_event_t pn_event_t
Notification of a state change in the protocol engine.
Definition: event.h:75