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 <proton/logger.h>
00029 #include <stddef.h>
00030 
00031 #ifdef __cplusplus
00032 extern "C" {
00033 #endif
00034 
00059 typedef int pn_trace_t;
00060 
00066 typedef void (*pn_tracer_t)(pn_transport_t *transport, const char *message);
00067 
00073 #define PN_TRACE_OFF (0)
00074 
00080 #define PN_TRACE_RAW (1)
00081 
00087 #define PN_TRACE_FRM (2)
00088 
00095 #define PN_TRACE_DRV (4)
00096 
00102 #define PN_TRACE_EVT (8)
00103 
00125 PN_EXTERN pn_transport_t *pn_transport(void);
00126 
00132 PN_EXTERN void pn_transport_set_server(pn_transport_t *transport);
00133 
00142 PN_EXTERN void pn_transport_free(pn_transport_t *transport);
00143 
00162 PN_EXTERN const char *pn_transport_get_user(pn_transport_t *transport);
00163 
00178 PN_EXTERN void pn_transport_require_auth(pn_transport_t *transport, bool required);
00179 
00189 PN_EXTERN bool pn_transport_is_authenticated(pn_transport_t *transport);
00190 
00203 PN_EXTERN void pn_transport_require_encryption(pn_transport_t *transport, bool required);
00204 
00214 PN_EXTERN bool pn_transport_is_encrypted(pn_transport_t *transport);
00215 
00228 PN_EXTERN pn_condition_t *pn_transport_condition(pn_transport_t *transport);
00229 
00241 PN_EXTERN pn_logger_t *pn_transport_logger(pn_transport_t *transport);
00242 
00246 PN_EXTERN pn_error_t *pn_transport_error(pn_transport_t *transport);
00247 
00255 PN_EXTERN int pn_transport_bind(pn_transport_t *transport, pn_connection_t *connection);
00256 
00264 PN_EXTERN int pn_transport_unbind(pn_transport_t *transport);
00265 
00277 PN_EXTERN void pn_transport_trace(pn_transport_t *transport, pn_trace_t trace);
00278 
00291 PN_EXTERN void pn_transport_set_tracer(pn_transport_t *transport, pn_tracer_t tracer);
00292 
00301 PN_EXTERN pn_tracer_t pn_transport_get_tracer(pn_transport_t *transport);
00302 
00312 PN_EXTERN void *pn_transport_get_context(pn_transport_t *transport);
00313 
00323 PN_EXTERN void pn_transport_set_context(pn_transport_t *transport, void *context);
00324 
00331 PN_EXTERN pn_record_t *pn_transport_attachments(pn_transport_t *transport);
00332 
00344 PN_EXTERN void pn_transport_log(pn_transport_t *transport, const char *message);
00345 
00359 PN_EXTERN void pn_transport_vlogf(pn_transport_t *transport, const char *fmt, va_list ap);
00360 
00373 PN_EXTERN void pn_transport_logf(pn_transport_t *transport, const char *fmt, ...);
00374 
00387 PN_EXTERN uint16_t pn_transport_get_channel_max(pn_transport_t *transport);
00388 
00408 PN_EXTERN int pn_transport_set_channel_max(pn_transport_t *transport, uint16_t channel_max);
00409 
00418 PN_EXTERN uint16_t pn_transport_remote_channel_max(pn_transport_t *transport);
00419 
00428 PN_EXTERN uint32_t pn_transport_get_max_frame(pn_transport_t *transport);
00429 
00438 PN_EXTERN void pn_transport_set_max_frame(pn_transport_t *transport, uint32_t size);
00439 
00448 PN_EXTERN uint32_t pn_transport_get_remote_max_frame(pn_transport_t *transport);
00449 
00460 PN_EXTERN pn_millis_t pn_transport_get_idle_timeout(pn_transport_t *transport);
00461 
00472 PN_EXTERN void pn_transport_set_idle_timeout(pn_transport_t *transport, pn_millis_t timeout);
00473 
00484 PN_EXTERN pn_millis_t pn_transport_get_remote_idle_timeout(pn_transport_t *transport);
00485 
00489 PN_EXTERN ssize_t pn_transport_input(pn_transport_t *transport, const char *bytes, size_t available);
00490 
00494 PN_EXTERN ssize_t pn_transport_output(pn_transport_t *transport, char *bytes, size_t size);
00495 
00513 PN_EXTERN ssize_t pn_transport_capacity(pn_transport_t *transport);
00514 
00527 PN_EXTERN char *pn_transport_tail(pn_transport_t *transport);
00528 
00546 PN_EXTERN ssize_t pn_transport_push(pn_transport_t *transport, const char *src, size_t size);
00547 
00563 PN_EXTERN int pn_transport_process(pn_transport_t *transport, size_t size);
00564 
00575 PN_EXTERN int pn_transport_close_tail(pn_transport_t *transport);
00576 
00593 PN_EXTERN ssize_t pn_transport_pending(pn_transport_t *transport);
00594 
00609 PN_EXTERN const char *pn_transport_head(pn_transport_t *transport);
00610 
00625 PN_EXTERN ssize_t pn_transport_peek(pn_transport_t *transport, char *dst, size_t size);
00626 
00640 PN_EXTERN void pn_transport_pop(pn_transport_t *transport, size_t size);
00641 
00652 PN_EXTERN int pn_transport_close_head(pn_transport_t *transport);
00653 
00662 PN_EXTERN bool pn_transport_quiesced(pn_transport_t *transport);
00663 
00669 PN_EXTERN bool pn_transport_head_closed(pn_transport_t *transport);
00670 
00676 PN_EXTERN bool pn_transport_tail_closed(pn_transport_t *transport);
00677 
00683 PN_EXTERN bool pn_transport_closed(pn_transport_t *transport);
00684 
00707 PN_EXTERN int64_t pn_transport_tick(pn_transport_t *transport, int64_t now);
00708 
00717 PN_EXTERN uint64_t pn_transport_get_frames_output(const pn_transport_t *transport);
00718 
00727 PN_EXTERN uint64_t pn_transport_get_frames_input(const pn_transport_t *transport);
00728 
00736 PN_EXTERN pn_connection_t *pn_transport_connection(pn_transport_t *transport);
00737 
00738 #ifdef __cplusplus
00739 }
00740 #endif
00741 
00746 #endif /* transport.h */

Generated on 3 Mar 2020 for Qpid Proton C by  doxygen 1.6.1