proton/transport.h

Go to the documentation of this file.
00001 #ifndef PROTON_TRANSPORT_H
00002 #define PROTON_TRANSPORT_H 1
00003 
00004 /*
00005  *
00006  * Licensed to the Apache Software Foundation (ASF) under one
00007  * or more contributor license agreements.  See the NOTICE file
00008  * distributed with this work for additional information
00009  * regarding copyright ownership.  The ASF licenses this file
00010  * to you under the Apache License, Version 2.0 (the
00011  * "License"); you may not use this file except in compliance
00012  * with the License.  You may obtain a copy of the License at
00013  *
00014  *   http://www.apache.org/licenses/LICENSE-2.0
00015  *
00016  * Unless required by applicable law or agreed to in writing,
00017  * software distributed under the License is distributed on an
00018  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
00019  * KIND, either express or implied.  See the License for the
00020  * specific language governing permissions and limitations
00021  * under the License.
00022  *
00023  */
00024 
00025 #include <proton/import_export.h>
00026 #include <proton/type_compat.h>
00027 #include <proton/condition.h>
00028 #include <stddef.h>
00029 
00030 #ifdef __cplusplus
00031 extern "C" {
00032 #endif
00033 
00057 typedef int pn_trace_t;
00058 
00062 typedef void (*pn_tracer_t)(pn_transport_t *transport, const char *message);
00063 
00067 #define PN_TRACE_OFF (0)
00068 
00072 #define PN_TRACE_RAW (1)
00073 
00077 #define PN_TRACE_FRM (2)
00078 
00083 #define PN_TRACE_DRV (4)
00084 
00088 #define PN_TRACE_EVT (8)
00089 
00112 PN_EXTERN pn_transport_t *pn_transport(void);
00113 
00119 PN_EXTERN void pn_transport_set_server(pn_transport_t *transport);
00120 
00129 PN_EXTERN void pn_transport_free(pn_transport_t *transport);
00130 
00149 PN_EXTERN const char *pn_transport_get_user(pn_transport_t *transport);
00150 
00165 PN_EXTERN void pn_transport_require_auth(pn_transport_t *transport, bool required);
00166 
00176 PN_EXTERN bool pn_transport_is_authenticated(pn_transport_t *transport);
00177 
00190 PN_EXTERN void pn_transport_require_encryption(pn_transport_t *transport, bool required);
00191 
00201 PN_EXTERN bool pn_transport_is_encrypted(pn_transport_t *transport);
00202 
00215 PN_EXTERN pn_condition_t *pn_transport_condition(pn_transport_t *transport);
00216 
00220 PN_EXTERN pn_error_t *pn_transport_error(pn_transport_t *transport);
00221 
00227 PN_EXTERN int pn_transport_bind(pn_transport_t *transport, pn_connection_t *connection);
00228 
00234 PN_EXTERN int pn_transport_unbind(pn_transport_t *transport);
00235 
00247 PN_EXTERN void pn_transport_trace(pn_transport_t *transport, pn_trace_t trace);
00248 
00261 PN_EXTERN void pn_transport_set_tracer(pn_transport_t *transport, pn_tracer_t tracer);
00262 
00271 PN_EXTERN pn_tracer_t pn_transport_get_tracer(pn_transport_t *transport);
00272 
00284 PN_EXTERN void *pn_transport_get_context(pn_transport_t *transport);
00285 
00297 PN_EXTERN void pn_transport_set_context(pn_transport_t *transport, void *context);
00298 
00305 PN_EXTERN pn_record_t *pn_transport_attachments(pn_transport_t *transport);
00306 
00318 PN_EXTERN void pn_transport_log(pn_transport_t *transport, const char *message);
00319 
00333 PN_EXTERN void pn_transport_vlogf(pn_transport_t *transport, const char *fmt, va_list ap);
00334 
00347 PN_EXTERN void pn_transport_logf(pn_transport_t *transport, const char *fmt, ...);
00348 
00361 PN_EXTERN uint16_t pn_transport_get_channel_max(pn_transport_t *transport);
00362 
00382 PN_EXTERN int pn_transport_set_channel_max(pn_transport_t *transport, uint16_t channel_max);
00383 
00392 PN_EXTERN uint16_t pn_transport_remote_channel_max(pn_transport_t *transport);
00393 
00402 PN_EXTERN uint32_t pn_transport_get_max_frame(pn_transport_t *transport);
00403 
00412 PN_EXTERN void pn_transport_set_max_frame(pn_transport_t *transport, uint32_t size);
00413 
00422 PN_EXTERN uint32_t pn_transport_get_remote_max_frame(pn_transport_t *transport);
00423 
00434 PN_EXTERN pn_millis_t pn_transport_get_idle_timeout(pn_transport_t *transport);
00435 
00446 PN_EXTERN void pn_transport_set_idle_timeout(pn_transport_t *transport, pn_millis_t timeout);
00447 
00458 PN_EXTERN pn_millis_t pn_transport_get_remote_idle_timeout(pn_transport_t *transport);
00459 
00463 PN_EXTERN ssize_t pn_transport_input(pn_transport_t *transport, const char *bytes, size_t available);
00464 
00468 PN_EXTERN ssize_t pn_transport_output(pn_transport_t *transport, char *bytes, size_t size);
00469 
00484 PN_EXTERN ssize_t pn_transport_capacity(pn_transport_t *transport);
00485 
00496 PN_EXTERN char *pn_transport_tail(pn_transport_t *transport);
00497 
00513 PN_EXTERN ssize_t pn_transport_push(pn_transport_t *transport, const char *src, size_t size);
00514 
00528 PN_EXTERN int pn_transport_process(pn_transport_t *transport, size_t size);
00529 
00538 PN_EXTERN int pn_transport_close_tail(pn_transport_t *transport);
00539 
00554 PN_EXTERN ssize_t pn_transport_pending(pn_transport_t *transport);
00555 
00568 PN_EXTERN const char *pn_transport_head(pn_transport_t *transport);
00569 
00582 PN_EXTERN ssize_t pn_transport_peek(pn_transport_t *transport, char *dst, size_t size);
00583 
00595 PN_EXTERN void pn_transport_pop(pn_transport_t *transport, size_t size);
00596 
00605 PN_EXTERN int pn_transport_close_head(pn_transport_t *transport);
00606 
00613 PN_EXTERN bool pn_transport_quiesced(pn_transport_t *transport);
00614 
00618 PN_EXTERN bool pn_transport_head_closed(pn_transport_t *transport);
00619 
00623 PN_EXTERN bool pn_transport_tail_closed(pn_transport_t *transport);
00624 
00628 PN_EXTERN bool pn_transport_closed(pn_transport_t *transport);
00629 
00645 PN_EXTERN pn_timestamp_t pn_transport_tick(pn_transport_t *transport, pn_timestamp_t now);
00646 
00653 PN_EXTERN uint64_t pn_transport_get_frames_output(const pn_transport_t *transport);
00654 
00661 PN_EXTERN uint64_t pn_transport_get_frames_input(const pn_transport_t *transport);
00662 
00670 PN_EXTERN pn_connection_t *pn_transport_connection(pn_transport_t *transport);
00671 
00672 #ifdef __cplusplus
00673 }
00674 #endif
00675 
00680 #endif /* transport.h */

Generated on 28 Nov 2017 for Qpid Proton C by  doxygen 1.6.1