You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ro...@apache.org on 2017/01/10 15:58:24 UTC
[03/55] [partial] qpid-proton-j git commit: PROTON-1385: retain
proton-j content only, the rest remains in the other repo at:
https://git-wip-us.apache.org/repos/asf/qpid-proton.git
http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2f85988e/proton-c/src/core/transport.h
----------------------------------------------------------------------
diff --git a/proton-c/src/core/transport.h b/proton-c/src/core/transport.h
deleted file mode 100644
index 66ebc51..0000000
--- a/proton-c/src/core/transport.h
+++ /dev/null
@@ -1,31 +0,0 @@
-#ifndef _PROTON_TRANSPORT_INTERNAL_H
-#define _PROTON_TRANSPORT_INTERNAL_H 1
-
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
-void pn_delivery_map_init(pn_delivery_map_t *db, pn_sequence_t next);
-void pn_delivery_map_del(pn_delivery_map_t *db, pn_delivery_t *delivery);
-void pn_delivery_map_free(pn_delivery_map_t *db);
-void pn_unmap_handle(pn_session_t *ssn, pn_link_t *link);
-void pn_unmap_channel(pn_transport_t *transport, pn_session_t *ssn);
-
-#endif /* transport.h */
http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2f85988e/proton-c/src/core/types.c
----------------------------------------------------------------------
diff --git a/proton-c/src/core/types.c b/proton-c/src/core/types.c
deleted file mode 100644
index dbd18d0..0000000
--- a/proton-c/src/core/types.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
-#include <proton/types.h>
-
-pn_bytes_t pn_bytes(size_t size, const char *start)
-{
- pn_bytes_t bytes = {size, start};
- return bytes;
-}
-
-pn_rwbytes_t pn_rwbytes(size_t size, char *start)
-{
- pn_rwbytes_t bytes = {size, start};
- return bytes;
-}
http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2f85988e/proton-c/src/core/util.c
----------------------------------------------------------------------
diff --git a/proton-c/src/core/util.c b/proton-c/src/core/util.c
deleted file mode 100644
index 62eec9a..0000000
--- a/proton-c/src/core/util.c
+++ /dev/null
@@ -1,165 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
-#include <stdarg.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <proton/type_compat.h>
-#include <ctype.h>
-#include <string.h>
-#include <proton/error.h>
-#include <proton/types.h>
-#include "util.h"
-
-ssize_t pn_quote_data(char *dst, size_t capacity, const char *src, size_t size)
-{
- int idx = 0;
- for (unsigned i = 0; i < size; i++)
- {
- uint8_t c = src[i];
- if (isprint(c)) {
- if (idx < (int) (capacity - 1)) {
- dst[idx++] = c;
- } else {
- if (idx > 0) {
- dst[idx - 1] = '\0';
- }
- return PN_OVERFLOW;
- }
- } else {
- if (idx < (int) (capacity - 4)) {
- idx += sprintf(dst + idx, "\\x%.2x", c);
- } else {
- if (idx > 0) {
- dst[idx - 1] = '\0';
- }
- return PN_OVERFLOW;
- }
- }
- }
-
- dst[idx] = '\0';
- return idx;
-}
-
-int pn_quote(pn_string_t *dst, const char *src, size_t size)
-{
- while (true) {
- size_t str_size = pn_string_size(dst);
- char *str = pn_string_buffer(dst) + str_size;
- size_t capacity = pn_string_capacity(dst) - str_size;
- ssize_t ssize = pn_quote_data(str, capacity, src, size);
- if (ssize == PN_OVERFLOW) {
- int err = pn_string_grow(dst, (str_size + capacity) ? 2*(str_size + capacity) : 16);
- if (err) return err;
- } else if (ssize >= 0) {
- return pn_string_resize(dst, str_size + ssize);
- } else {
- return ssize;
- }
- }
-}
-
-void pn_fprint_data(FILE *stream, const char *bytes, size_t size)
-{
- char buf[256];
- ssize_t n = pn_quote_data(buf, 256, bytes, size);
- if (n >= 0) {
- fputs(buf, stream);
- } else {
- if (n == PN_OVERFLOW) {
- fputs(buf, stream);
- fputs("... (truncated)", stream);
- }
- else
- fprintf(stderr, "pn_quote_data: %s\n", pn_code(n));
- }
-}
-
-void pn_print_data(const char *bytes, size_t size)
-{
- pn_fprint_data(stdout, bytes, size);
-}
-
-int pn_strcasecmp(const char *a, const char *b)
-{
- int diff;
- while (*b) {
- char aa = *a++, bb = *b++;
- diff = tolower(aa)-tolower(bb);
- if ( diff!=0 ) return diff;
- }
- return *a;
-}
-
-int pn_strncasecmp(const char* a, const char* b, size_t len)
-{
- int diff = 0;
- while (*b && len > 0) {
- char aa = *a++, bb = *b++;
- diff = tolower(aa)-tolower(bb);
- if ( diff!=0 ) return diff;
- --len;
- };
- return len==0 ? diff : *a;
-}
-
-bool pn_env_bool(const char *name)
-{
- char *v = getenv(name);
- return v && (!pn_strcasecmp(v, "true") || !pn_strcasecmp(v, "1") ||
- !pn_strcasecmp(v, "yes") || !pn_strcasecmp(v, "on"));
-}
-
-char *pn_strdup(const char *src)
-{
- if (!src) return NULL;
- char *dest = (char *) malloc(strlen(src)+1);
- if (!dest) return NULL;
- return strcpy(dest, src);
-}
-
-char *pn_strndup(const char *src, size_t n)
-{
- if (src) {
- unsigned size = 0;
- for (const char *c = src; size < n && *c; c++) {
- size++;
- }
-
- char *dest = (char *) malloc(size + 1);
- if (!dest) return NULL;
- strncpy(dest, src, n);
- dest[size] = '\0';
- return dest;
- } else {
- return NULL;
- }
-}
-
-// which timestamp will expire next, or zero if none set
-pn_timestamp_t pn_timestamp_min( pn_timestamp_t a, pn_timestamp_t b )
-{
- if (a && b) return pn_min(a, b);
- if (a) return a;
- return b;
-}
-
http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2f85988e/proton-c/src/core/util.h
----------------------------------------------------------------------
diff --git a/proton-c/src/core/util.h b/proton-c/src/core/util.h
deleted file mode 100644
index b54f689..0000000
--- a/proton-c/src/core/util.h
+++ /dev/null
@@ -1,123 +0,0 @@
-#ifndef _PROTON_SRC_UTIL_H
-#define _PROTON_SRC_UTIL_H 1
-
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
-#include <errno.h>
-#ifndef __cplusplus
-#include <stdbool.h>
-#endif
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <proton/types.h>
-#include <proton/object.h>
-
-ssize_t pn_quote_data(char *dst, size_t capacity, const char *src, size_t size);
-int pn_quote(pn_string_t *dst, const char *src, size_t size);
-void pn_fprint_data(FILE *stream, const char *bytes, size_t size);
-void pn_print_data(const char *bytes, size_t size);
-bool pn_env_bool(const char *name);
-pn_timestamp_t pn_timestamp_min(pn_timestamp_t a, pn_timestamp_t b);
-
-char *pn_strdup(const char *src);
-char *pn_strndup(const char *src, size_t n);
-int pn_strcasecmp(const char* a, const char* b);
-int pn_strncasecmp(const char* a, const char* b, size_t len);
-
-#define DIE_IFR(EXPR, STRERR) \
- do { \
- int __code__ = (EXPR); \
- if (__code__) { \
- fprintf(stderr, "%s:%d: %s: %s (%d)\n", __FILE__, __LINE__, \
- #EXPR, STRERR(__code__), __code__); \
- exit(-1); \
- } \
- } while (0)
-
-#define DIE_IFE(EXPR) \
- do { \
- if ((EXPR) == -1) { \
- int __code__ = errno; \
- fprintf(stderr, "%s:%d: %s: %s (%d)\n", __FILE__, __LINE__, \
- #EXPR, strerror(__code__), __code__); \
- exit(-1); \
- } \
- } while (0)
-
-
-#define LL_HEAD(ROOT, LIST) ((ROOT)-> LIST ## _head)
-#define LL_TAIL(ROOT, LIST) ((ROOT)-> LIST ## _tail)
-#define LL_ADD(ROOT, LIST, NODE) \
- { \
- (NODE)-> LIST ## _next = NULL; \
- (NODE)-> LIST ## _prev = (ROOT)-> LIST ## _tail; \
- if (LL_TAIL(ROOT, LIST)) \
- LL_TAIL(ROOT, LIST)-> LIST ## _next = (NODE); \
- LL_TAIL(ROOT, LIST) = (NODE); \
- if (!LL_HEAD(ROOT, LIST)) LL_HEAD(ROOT, LIST) = (NODE); \
- }
-
-#define LL_POP(ROOT, LIST, TYPE) \
- { \
- if (LL_HEAD(ROOT, LIST)) { \
- TYPE *_old = LL_HEAD(ROOT, LIST); \
- LL_HEAD(ROOT, LIST) = LL_HEAD(ROOT, LIST)-> LIST ## _next; \
- _old-> LIST ## _next = NULL; \
- if (_old == LL_TAIL(ROOT, LIST)) { \
- LL_TAIL(ROOT, LIST) = NULL; \
- } else { \
- LL_HEAD(ROOT, LIST)-> LIST ## _prev = NULL; \
- } \
- } \
- }
-
-#define LL_REMOVE(ROOT, LIST, NODE) \
- { \
- if ((NODE)-> LIST ## _prev) \
- (NODE)-> LIST ## _prev-> LIST ## _next = (NODE)-> LIST ## _next; \
- if ((NODE)-> LIST ## _next) \
- (NODE)-> LIST ## _next-> LIST ## _prev = (NODE)-> LIST ## _prev; \
- if ((NODE) == LL_HEAD(ROOT, LIST)) \
- LL_HEAD(ROOT, LIST) = (NODE)-> LIST ## _next; \
- if ((NODE) == LL_TAIL(ROOT, LIST)) \
- LL_TAIL(ROOT, LIST) = (NODE)-> LIST ## _prev; \
- }
-
-#define pn_min(X,Y) ((X) > (Y) ? (Y) : (X))
-#define pn_max(X,Y) ((X) < (Y) ? (Y) : (X))
-
-#define PN_ENSURE(ARRAY, CAPACITY, COUNT, TYPE) \
- while ((CAPACITY) < (COUNT)) { \
- (CAPACITY) = (CAPACITY) ? 2 * (CAPACITY) : 16; \
- (ARRAY) = (TYPE *) realloc((ARRAY), (CAPACITY) * sizeof (TYPE)); \
- } \
-
-#define PN_ENSUREZ(ARRAY, CAPACITY, COUNT, TYPE) \
- { \
- size_t _old_capacity = (CAPACITY); \
- PN_ENSURE(ARRAY, CAPACITY, COUNT, TYPE); \
- memset((ARRAY) + _old_capacity, 0, \
- sizeof(TYPE)*((CAPACITY) - _old_capacity)); \
- }
-
-#endif /* util.h */
http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2f85988e/proton-c/src/encodings.h.py
----------------------------------------------------------------------
diff --git a/proton-c/src/encodings.h.py b/proton-c/src/encodings.h.py
deleted file mode 100644
index 9f08c6c..0000000
--- a/proton-c/src/encodings.h.py
+++ /dev/null
@@ -1,42 +0,0 @@
-#!/usr/bin/python
-#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-#
-
-from __future__ import print_function
-import mllib, optparse, os, sys
-
-xml = os.path.join(os.path.dirname(__file__), "types.xml")
-doc = mllib.xml_parse(xml)
-
-print("/* generated from %s */" % xml)
-print("#ifndef _PROTON_ENCODINGS_H")
-print("#define _PROTON_ENCODINGS_H 1")
-print()
-print("#define PNE_DESCRIPTOR (0x00)")
-
-for enc in doc.query["amqp/section/type/encoding"]:
- name = enc["@name"] or enc.parent["@name"]
- # XXX: a bit hacky
- if name == "ieee-754":
- name = enc.parent["@name"]
- cname = "PNE_" + name.replace("-", "_").upper()
- print("#define %s%s(%s)" % (cname, " "*(20-len(cname)), enc["@code"]))
-
-print()
-print("#endif /* encodings.h */")
http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2f85988e/proton-c/src/extra/parser.c
----------------------------------------------------------------------
diff --git a/proton-c/src/extra/parser.c b/proton-c/src/extra/parser.c
deleted file mode 100644
index 36fb4fb..0000000
--- a/proton-c/src/extra/parser.c
+++ /dev/null
@@ -1,423 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
-#include <proton/parser.h>
-
-#include "platform/platform.h"
-#include "scanner.h"
-
-#include <proton/error.h>
-
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-
-struct pn_parser_t {
- pn_scanner_t *scanner;
- char *atoms;
- size_t size;
- size_t capacity;
- int error_code;
-};
-
-pn_parser_t *pn_parser()
-{
- pn_parser_t *parser = (pn_parser_t *) malloc(sizeof(pn_parser_t));
- if (parser != NULL) {
- parser->scanner = pn_scanner();
- parser->atoms = NULL;
- parser->size = 0;
- parser->capacity = 0;
- }
- return parser;
-}
-
-static void pni_parser_ensure(pn_parser_t *parser, size_t size)
-{
- while (parser->capacity - parser->size < size) {
- parser->capacity = parser->capacity ? 2 * parser->capacity : 1024;
- parser->atoms = (char *) realloc(parser->atoms, parser->capacity);
- }
-}
-
-int pn_parser_err(pn_parser_t *parser, int code, const char *fmt, ...)
-{
- va_list ap;
- va_start(ap, fmt);
- int err = pn_scanner_verr(parser->scanner, code, fmt, ap);
- va_end(ap);
- return err;
-}
-
-int pn_parser_errno(pn_parser_t *parser)
-{
- return pn_scanner_errno(parser->scanner);
-}
-
-const char *pn_parser_error(pn_parser_t *parser)
-{
- return pn_scanner_error(parser->scanner);
-}
-
-void pn_parser_free(pn_parser_t *parser)
-{
- if (parser) {
- pn_scanner_free(parser->scanner);
- free(parser->atoms);
- free(parser);
- }
-}
-
-static int pni_parser_shift(pn_parser_t *parser)
-{
- return pn_scanner_shift(parser->scanner);
-}
-
-static pn_token_t pni_parser_token(pn_parser_t *parser)
-{
- return pn_scanner_token(parser->scanner);
-}
-
-static int pni_parser_value(pn_parser_t *parser, pn_data_t *data);
-
-static int pni_parser_descriptor(pn_parser_t *parser, pn_data_t *data)
-{
- if (pni_parser_token(parser).type == PN_TOK_AT) {
- int err = pni_parser_shift(parser);
- if (err) return err;
-
- err = pn_data_put_described(data);
- if (err) return pn_parser_err(parser, err, "error writing described");
- pn_data_enter(data);
- for (int i = 0; i < 2; i++) {
- err = pni_parser_value(parser, data);
- if (err) return err;
- }
- pn_data_exit(data);
- return 0;
- } else {
- return pn_parser_err(parser, PN_ERR, "expecting '@'");
- }
-}
-
-static int pni_parser_map(pn_parser_t *parser, pn_data_t *data)
-{
- if (pni_parser_token(parser).type == PN_TOK_LBRACE) {
- int err = pni_parser_shift(parser);
- if (err) return err;
-
- err = pn_data_put_map(data);
- if (err) return pn_parser_err(parser, err, "error writing map");
-
- pn_data_enter(data);
-
- if (pni_parser_token(parser).type != PN_TOK_RBRACE) {
- while (true) {
- err = pni_parser_value(parser, data);
- if (err) return err;
-
- if (pni_parser_token(parser).type == PN_TOK_EQUAL) {
- err = pni_parser_shift(parser);
- if (err) return err;
- } else {
- return pn_parser_err(parser, PN_ERR, "expecting '='");
- }
-
- err = pni_parser_value(parser, data);
- if (err) return err;
-
- if (pni_parser_token(parser).type == PN_TOK_COMMA) {
- err = pni_parser_shift(parser);
- if (err) return err;
- } else {
- break;
- }
- }
- }
-
- pn_data_exit(data);
-
- if (pni_parser_token(parser).type == PN_TOK_RBRACE) {
- return pni_parser_shift(parser);
- } else {
- return pn_parser_err(parser, PN_ERR, "expecting '}'");
- }
- } else {
- return pn_parser_err(parser, PN_ERR, "expecting '{'");
- }
-}
-
-static int pni_parser_list(pn_parser_t *parser, pn_data_t *data)
-{
- int err;
-
- if (pni_parser_token(parser).type == PN_TOK_LBRACKET) {
- err = pni_parser_shift(parser);
- if (err) return err;
-
- err = pn_data_put_list(data);
- if (err) return pn_parser_err(parser, err, "error writing list");
-
- pn_data_enter(data);
-
- if (pni_parser_token(parser).type != PN_TOK_RBRACKET) {
- while (true) {
- err = pni_parser_value(parser, data);
- if (err) return err;
-
- if (pni_parser_token(parser).type == PN_TOK_COMMA) {
- err = pni_parser_shift(parser);
- if (err) return err;
- } else {
- break;
- }
- }
- }
-
- pn_data_exit(data);
-
- if (pni_parser_token(parser).type == PN_TOK_RBRACKET) {
- return pni_parser_shift(parser);
- } else {
- return pn_parser_err(parser, PN_ERR, "expecting ']'");
- }
- } else {
- return pn_parser_err(parser, PN_ERR, "expecting '['");
- }
-}
-
-static void pni_parser_append_tok(pn_parser_t *parser, char *dst, int *idx)
-{
- memcpy(dst + *idx, pni_parser_token(parser).start, pni_parser_token(parser).size);
- *idx += pni_parser_token(parser).size;
-}
-
-static int pni_parser_number(pn_parser_t *parser, pn_data_t *data)
-{
- bool dbl = false;
- char number[1024];
- int idx = 0;
- int err;
-
- bool negate = false;
-
- if (pni_parser_token(parser).type == PN_TOK_NEG || pni_parser_token(parser).type == PN_TOK_POS) {
- if (pni_parser_token(parser).type == PN_TOK_NEG)
- negate = !negate;
- err = pni_parser_shift(parser);
- if (err) return err;
- }
-
- if (pni_parser_token(parser).type == PN_TOK_FLOAT || pni_parser_token(parser).type == PN_TOK_INT) {
- dbl = pni_parser_token(parser).type == PN_TOK_FLOAT;
- pni_parser_append_tok(parser, number, &idx);
- err = pni_parser_shift(parser);
- if (err) return err;
- } else {
- return pn_parser_err(parser, PN_ERR, "expecting FLOAT or INT");
- }
-
- number[idx] = '\0';
-
- if (dbl) {
- double value = atof(number);
- if (negate) {
- value = -value;
- }
- err = pn_data_put_double(data, value);
- if (err) return pn_parser_err(parser, err, "error writing double");
- } else {
- int64_t value = pn_i_atoll(number);
- if (negate) {
- value = -value;
- }
- err = pn_data_put_long(data, value);
- if (err) return pn_parser_err(parser, err, "error writing long");
- }
-
- return 0;
-}
-
-static int pni_parser_unquote(pn_parser_t *parser, char *dst, const char *src, size_t *n)
-{
- size_t idx = 0;
- bool escape = false;
- int start, end;
- if (src[0] != '"') {
- if (src[1] == '"') {
- start = 2;
- end = *n - 1;
- } else {
- start = 1;
- end = *n;
- }
- } else {
- start = 1;
- end = *n - 1;
- }
- for (int i = start; i < end; i++)
- {
- char c = src[i];
- if (escape) {
- switch (c) {
- case '"':
- case '\\':
- case '/':
- dst[idx++] = c;
- escape = false;
- break;
- case 'b':
- dst[idx++] = '\b';
- break;
- case 'f':
- dst[idx++] = '\f';
- break;
- case 'n':
- dst[idx++] = '\n';
- break;
- case 'r':
- dst[idx++] = '\r';
- break;
- case 't':
- dst[idx++] = '\t';
- break;
- case 'x':
- {
- char n1 = toupper(src[i+1]);
- char n2 = n1 ? toupper(src[i+2]) : 0;
- if (!n2) {
- return pn_parser_err(parser, PN_ERR, "truncated escape code");
- }
- int d1 = isdigit(n1) ? n1 - '0' : n1 - 'A' + 10;
- int d2 = isdigit(n2) ? n2 - '0' : n2 - 'A' + 10;
- dst[idx++] = d1*16 + d2;
- i += 2;
- }
- break;
- // XXX: need to handle unicode escapes: 'u'
- default:
- return pn_parser_err(parser, PN_ERR, "unrecognized escape code");
- }
- escape = false;
- } else {
- switch (c)
- {
- case '\\':
- escape = true;
- break;
- default:
- dst[idx++] = c;
- break;
- }
- }
- }
- dst[idx++] = '\0';
- *n = idx;
- return 0;
-}
-
-static int pni_parser_value(pn_parser_t *parser, pn_data_t *data)
-{
- int err;
- size_t n;
- char *dst;
-
- pn_token_t tok = pni_parser_token(parser);
-
- switch (tok.type)
- {
- case PN_TOK_AT:
- return pni_parser_descriptor(parser, data);
- case PN_TOK_LBRACE:
- return pni_parser_map(parser, data);
- case PN_TOK_LBRACKET:
- return pni_parser_list(parser, data);
- case PN_TOK_BINARY:
- case PN_TOK_SYMBOL:
- case PN_TOK_STRING:
- n = tok.size;
- pni_parser_ensure(parser, n);
- dst = parser->atoms + parser->size;
- err = pni_parser_unquote(parser, dst, tok.start, &n);
- if (err) return err;
- parser->size += n;
- switch (tok.type) {
- case PN_TOK_BINARY:
- err = pn_data_put_binary(data, pn_bytes(n - 1, dst));
- break;
- case PN_TOK_STRING:
- err = pn_data_put_string(data, pn_bytes(n - 1, dst));
- break;
- case PN_TOK_SYMBOL:
- err = pn_data_put_symbol(data, pn_bytes(n - 1, dst));
- break;
- default:
- return pn_parser_err(parser, PN_ERR, "internal error");
- }
- if (err) return pn_parser_err(parser, err, "error writing string/binary/symbol");
- return pni_parser_shift(parser);
- case PN_TOK_POS:
- case PN_TOK_NEG:
- case PN_TOK_FLOAT:
- case PN_TOK_INT:
- return pni_parser_number(parser, data);
- case PN_TOK_TRUE:
- err = pn_data_put_bool(data, true);
- if (err) return pn_parser_err(parser, err, "error writing boolean");
- return pni_parser_shift(parser);
- case PN_TOK_FALSE:
- err = pn_data_put_bool(data, false);
- if (err) return pn_parser_err(parser, err, "error writing boolean");
- return pni_parser_shift(parser);
- case PN_TOK_NULL:
- err = pn_data_put_null(data);
- if (err) return pn_parser_err(parser, err, "error writing null");
- return pni_parser_shift(parser);
- default:
- return pn_parser_err(parser, PN_ERR, "expecting one of '[', '{', STRING, "
- "SYMBOL, BINARY, true, false, null, NUMBER");
- }
-}
-
-static int pni_parser_parse_r(pn_parser_t *parser, pn_data_t *data)
-{
- while (true) {
- int err;
- switch (pni_parser_token(parser).type)
- {
- case PN_TOK_EOS:
- return 0;
- case PN_TOK_ERR:
- return PN_ERR;
- default:
- err = pni_parser_value(parser, data);
- if (err) return err;
- }
- }
-}
-
-int pn_parser_parse(pn_parser_t *parser, const char *str, pn_data_t *data)
-{
- int err = pn_scanner_start(parser->scanner, str);
- if (err) return err;
- parser->size = 0;
- return pni_parser_parse_r(parser, data);
-}
http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2f85988e/proton-c/src/extra/scanner.c
----------------------------------------------------------------------
diff --git a/proton-c/src/extra/scanner.c b/proton-c/src/extra/scanner.c
deleted file mode 100644
index beb7322..0000000
--- a/proton-c/src/extra/scanner.c
+++ /dev/null
@@ -1,399 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
-#include "scanner.h"
-
-#include "platform/platform.h"
-
-#include <proton/error.h>
-#ifndef __cplusplus
-#include <stdbool.h>
-#endif
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-
-#define ERROR_SIZE (1024)
-
-struct pn_scanner_t {
- const char *input;
- const char *position;
- pn_token_t token;
- char *atoms;
- size_t size;
- size_t capacity;
- pn_error_t *error;
-};
-
-static const char *pni_token_type(pn_token_type_t type)
-{
- switch (type)
- {
- case PN_TOK_LBRACE: return "LBRACE";
- case PN_TOK_RBRACE: return "RBRACE";
- case PN_TOK_LBRACKET: return "LBRACKET";
- case PN_TOK_RBRACKET: return "RBRACKET";
- case PN_TOK_EQUAL: return "EQUAL";
- case PN_TOK_COMMA: return "COMMA";
- case PN_TOK_POS: return "POS";
- case PN_TOK_NEG: return "NEG";
- case PN_TOK_DOT: return "DOT";
- case PN_TOK_AT: return "AT";
- case PN_TOK_DOLLAR: return "DOLLAR";
- case PN_TOK_BINARY: return "BINARY";
- case PN_TOK_STRING: return "STRING";
- case PN_TOK_SYMBOL: return "SYMBOL";
- case PN_TOK_ID: return "ID";
- case PN_TOK_FLOAT: return "FLOAT";
- case PN_TOK_INT: return "INT";
- case PN_TOK_TRUE: return "TRUE";
- case PN_TOK_FALSE: return "FALSE";
- case PN_TOK_NULL: return "NULL";
- case PN_TOK_EOS: return "EOS";
- case PN_TOK_ERR: return "ERR";
- default: return "<UNKNOWN>";
- }
-}
-
-pn_scanner_t *pn_scanner()
-{
- pn_scanner_t *scanner = (pn_scanner_t *) malloc(sizeof(pn_scanner_t));
- if (scanner) {
- scanner->input = NULL;
- scanner->error = pn_error();
- }
- return scanner;
-}
-
-void pn_scanner_free(pn_scanner_t *scanner)
-{
- if (scanner) {
- pn_error_free(scanner->error);
- free(scanner);
- }
-}
-
-pn_token_t pn_scanner_token(pn_scanner_t *scanner)
-{
- if (scanner) {
- return scanner->token;
- } else {
- pn_token_t tok = {PN_TOK_ERR, 0, (size_t)0};
- return tok;
- }
-}
-
-void pn_scanner_line_info(pn_scanner_t *scanner, int *line, int *col)
-{
- *line = 1;
- *col = 0;
-
- for (const char *c = scanner->input; *c && c <= scanner->token.start; c++) {
- if (*c == '\n') {
- *line += 1;
- *col = -1;
- } else {
- *col += 1;
- }
- }
-}
-
-int pn_scanner_err(pn_scanner_t *scanner, int code, const char *fmt, ...)
-{
- va_list ap;
- va_start(ap, fmt);
- int err = pn_scanner_verr(scanner, code, fmt, ap);
- va_end(ap);
- return err;
-}
-
-int pn_scanner_verr(pn_scanner_t *scanner, int code, const char *fmt, va_list ap)
-{
- char error[ERROR_SIZE];
-
- int line, col;
- pn_scanner_line_info(scanner, &line, &col);
- int size = scanner->token.size;
- int ln = pni_snprintf(error, ERROR_SIZE,
- "input line %i column %i %s:'%.*s': ", line, col,
- pni_token_type(scanner->token.type),
- size, scanner->token.start);
- if (ln >= ERROR_SIZE) {
- return pn_scanner_err(scanner, code, "error info truncated");
- } else if (ln < 0) {
- error[0] = '\0';
- }
-
- int n = pni_snprintf(error + ln, ERROR_SIZE - ln, fmt, ap);
-
- if (n >= ERROR_SIZE - ln) {
- return pn_scanner_err(scanner, code, "error info truncated");
- } else if (n < 0) {
- error[0] = '\0';
- }
-
- return pn_error_set(scanner->error, code, error);
-}
-
-int pn_scanner_errno(pn_scanner_t *scanner)
-{
- return pn_error_code(scanner->error);
-}
-
-const char *pn_scanner_error(pn_scanner_t *scanner)
-{
- return pn_error_text(scanner->error);
-}
-
-static void pni_scanner_emit(pn_scanner_t *scanner, pn_token_type_t type, const char *start, size_t size)
-{
- scanner->token.type = type;
- scanner->token.start = start;
- scanner->token.size = size;
-}
-
-static int pni_scanner_quoted(pn_scanner_t *scanner, const char *str, int start,
- pn_token_type_t type)
-{
- bool escape = false;
-
- for (int i = start; true; i++) {
- char c = str[i];
- if (escape) {
- escape = false;
- } else {
- switch (c) {
- case '\0':
- case '"':
- pni_scanner_emit(scanner, c ? type : PN_TOK_ERR,
- str, c ? i + 1 : i);
- return c ? 0 : pn_scanner_err(scanner, PN_ERR, "missmatched quote");
- case '\\':
- escape = true;
- break;
- }
- }
- }
-}
-
-static int pni_scanner_binary(pn_scanner_t *scanner, const char *str)
-{
- return pni_scanner_quoted(scanner, str, 2, PN_TOK_BINARY);
-}
-
-static int pni_scanner_string(pn_scanner_t *scanner, const char *str)
-{
- return pni_scanner_quoted(scanner, str, 1, PN_TOK_STRING);
-}
-
-static int pni_scanner_alpha_end(pn_scanner_t *scanner, const char *str, int start)
-{
- for (int i = start; true; i++) {
- char c = str[i];
- if (!((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z'))) {
- return i;
- }
- }
-}
-
-static int pni_scanner_alpha(pn_scanner_t *scanner, const char *str)
-{
- int n = pni_scanner_alpha_end(scanner, str, 0);
- pn_token_type_t type;
- if (!strncmp(str, "true", n)) {
- type = PN_TOK_TRUE;
- } else if (!strncmp(str, "false", n)) {
- type = PN_TOK_FALSE;
- } else if (!strncmp(str, "null", n)) {
- type = PN_TOK_NULL;
- } else {
- type = PN_TOK_ID;
- }
-
- pni_scanner_emit(scanner, type, str, n);
- return 0;
-}
-
-static int pni_scanner_symbol(pn_scanner_t *scanner, const char *str)
-{
- char c = str[1];
-
- if (c == '"') {
- return pni_scanner_quoted(scanner, str, 2, PN_TOK_SYMBOL);
- } else {
- int n = pni_scanner_alpha_end(scanner, str, 1);
- pni_scanner_emit(scanner, PN_TOK_SYMBOL, str, n);
- return 0;
- }
-}
-
-static int pni_scanner_number(pn_scanner_t *scanner, const char *str)
-{
- bool dot = false;
- bool exp = false;
-
- int i = 0;
-
- if (str[i] == '+' || str[i] == '-') {
- i++;
- }
-
- for ( ; true; i++) {
- char c = str[i];
- switch (c) {
- case '0': case '1': case '2': case '3': case '4': case '5': case '6':
- case '7': case '8': case '9':
- continue;
- case '.':
- if (dot) {
- pni_scanner_emit(scanner, PN_TOK_FLOAT, str, i);
- return 0;
- } else {
- dot = true;
- }
- continue;
- case 'e':
- case 'E':
- if (exp) {
- pni_scanner_emit(scanner, PN_TOK_FLOAT, str, i);
- return 0;
- } else {
- dot = true;
- exp = true;
- if (str[i+1] == '+' || str[i+1] == '-') {
- i++;
- }
- continue;
- }
- default:
- if (dot || exp) {
- pni_scanner_emit(scanner, PN_TOK_FLOAT, str, i);
- return 0;
- } else {
- pni_scanner_emit(scanner, PN_TOK_INT, str, i);
- return 0;
- }
- }
- }
-}
-
-static int pni_scanner_single(pn_scanner_t *scanner, const char *str, pn_token_type_t type)
-{
- pni_scanner_emit(scanner, type, str, 1);
- return 0;
-}
-
-int pn_scanner_start(pn_scanner_t *scanner, const char *input)
-{
- if (!scanner || !input) return PN_ARG_ERR;
- scanner->input = input;
- scanner->position = input;
- return pn_scanner_scan(scanner);
-}
-
-int pn_scanner_scan(pn_scanner_t *scanner)
-{
- const char *str = scanner->position;
- char n;
-
- for (char c; true; str++) {
- c = *str;
- switch (c)
- {
- case '{':
- return pni_scanner_single(scanner, str, PN_TOK_LBRACE);
- case '}':
- return pni_scanner_single(scanner, str, PN_TOK_RBRACE);
- case'[':
- return pni_scanner_single(scanner, str, PN_TOK_LBRACKET);
- case ']':
- return pni_scanner_single(scanner, str, PN_TOK_RBRACKET);
- case '=':
- return pni_scanner_single(scanner, str, PN_TOK_EQUAL);
- case ',':
- return pni_scanner_single(scanner, str, PN_TOK_COMMA);
- case '.':
- n = *(str+1);
- if ((n >= '0' && n <= '9')) {
- return pni_scanner_number(scanner, str);
- } else {
- return pni_scanner_single(scanner, str, PN_TOK_DOT);
- }
- case '@':
- return pni_scanner_single(scanner, str, PN_TOK_AT);
- case '$':
- return pni_scanner_single(scanner, str, PN_TOK_DOLLAR);
- case '-':
- n = *(str+1);
- if ((n >= '0' && n <= '9') || n == '.') {
- return pni_scanner_number(scanner, str);
- } else {
- return pni_scanner_single(scanner, str, PN_TOK_NEG);
- }
- case '+':
- n = *(str+1);
- if ((n >= '0' && n <= '9') || n == '.') {
- return pni_scanner_number(scanner, str);
- } else {
- return pni_scanner_single(scanner, str, PN_TOK_POS);
- }
- case ' ': case '\t': case '\r': case '\v': case '\f': case '\n':
- break;
- case '0': case '1': case '2': case '3': case '4': case '5': case '6':
- case '7': case '8': case '9':
- return pni_scanner_number(scanner, str);
- case ':':
- return pni_scanner_symbol(scanner, str);
- case '"':
- return pni_scanner_string(scanner, str);
- case 'b':
- if (str[1] == '"') {
- return pni_scanner_binary(scanner, str);
- }
- case 'a': case 'c': case 'd': case 'e': case 'f': case 'g': case 'h':
- case 'i': case 'j': case 'k': case 'l': case 'm': case 'n': case 'o':
- case 'p': case 'q': case 'r': case 's': case 't': case 'u': case 'v':
- case 'w': case 'x': case 'y': case 'z': case 'A': case 'B': case 'C':
- case 'D': case 'E': case 'F': case 'G': case 'H': case 'I': case 'J':
- case 'K': case 'L': case 'M': case 'N': case 'O': case 'P': case 'Q':
- case 'R': case 'S': case 'T': case 'U': case 'V': case 'W': case 'X':
- case 'Y': case 'Z':
- return pni_scanner_alpha(scanner, str);
- case '\0':
- pni_scanner_emit(scanner, PN_TOK_EOS, str, 0);
- return PN_EOS;
- default:
- pni_scanner_emit(scanner, PN_TOK_ERR, str, 1);
- return pn_scanner_err(scanner, PN_ERR, "illegal character");
- }
- }
-}
-
-int pn_scanner_shift(pn_scanner_t *scanner)
-{
- scanner->position = scanner->token.start + scanner->token.size;
- int err = pn_scanner_scan(scanner);
- if (err == PN_EOS) {
- return 0;
- } else {
- return err;
- }
-}
http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2f85988e/proton-c/src/extra/scanner.h
----------------------------------------------------------------------
diff --git a/proton-c/src/extra/scanner.h b/proton-c/src/extra/scanner.h
deleted file mode 100644
index 218babe..0000000
--- a/proton-c/src/extra/scanner.h
+++ /dev/null
@@ -1,74 +0,0 @@
-#ifndef PROTON_SCANNER_H
-#define PROTON_SCANNER_H 1
-
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
-#include <proton/import_export.h>
-#include <stddef.h>
-#include <stdarg.h>
-
-typedef enum {
- PN_TOK_LBRACE,
- PN_TOK_RBRACE,
- PN_TOK_LBRACKET,
- PN_TOK_RBRACKET,
- PN_TOK_EQUAL,
- PN_TOK_COMMA,
- PN_TOK_POS,
- PN_TOK_NEG,
- PN_TOK_DOT,
- PN_TOK_AT,
- PN_TOK_DOLLAR,
- PN_TOK_BINARY,
- PN_TOK_STRING,
- PN_TOK_SYMBOL,
- PN_TOK_ID,
- PN_TOK_FLOAT,
- PN_TOK_INT,
- PN_TOK_TRUE,
- PN_TOK_FALSE,
- PN_TOK_NULL,
- PN_TOK_EOS,
- PN_TOK_ERR
-} pn_token_type_t;
-
-typedef struct pn_scanner_t pn_scanner_t;
-
-typedef struct {
- pn_token_type_t type;
- const char *start;
- size_t size;
-} pn_token_t;
-
-PN_EXTERN pn_scanner_t *pn_scanner(void);
-PN_EXTERN void pn_scanner_free(pn_scanner_t *scanner);
-PN_EXTERN pn_token_t pn_scanner_token(pn_scanner_t *scanner);
-PN_EXTERN int pn_scanner_err(pn_scanner_t *scanner, int code, const char *fmt, ...);
-PN_EXTERN int pn_scanner_verr(pn_scanner_t *scanner, int code, const char *fmt, va_list ap);
-PN_EXTERN void pn_scanner_line_info(pn_scanner_t *scanner, int *line, int *col);
-PN_EXTERN int pn_scanner_errno(pn_scanner_t *scanner);
-PN_EXTERN const char *pn_scanner_error(pn_scanner_t *scanner);
-PN_EXTERN int pn_scanner_start(pn_scanner_t *scanner, const char *input);
-PN_EXTERN int pn_scanner_scan(pn_scanner_t *scanner);
-PN_EXTERN int pn_scanner_shift(pn_scanner_t *scanner);
-
-#endif /* scanner.h */
http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2f85988e/proton-c/src/extra/url.c
----------------------------------------------------------------------
diff --git a/proton-c/src/extra/url.c b/proton-c/src/extra/url.c
deleted file mode 100644
index c1ce628..0000000
--- a/proton-c/src/extra/url.c
+++ /dev/null
@@ -1,272 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
-#include "proton/url.h"
-#include "proton/object.h"
-
-#include "core/util.h"
-
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-
-
-/** URL-encode src and append to dst. */
-static void pni_urlencode(pn_string_t *dst, const char* src) {
- static const char *bad = "@:/";
-
- if (!src) return;
- const char *i = src;
- const char *j = strpbrk(i, bad);
- while (j) {
- pn_string_addf(dst, "%.*s", (int)(j-i), i);
- pn_string_addf(dst, "%%%02X", (int)*j);
- i = j + 1;
- j = strpbrk(i, bad);
- }
- pn_string_addf(dst, "%s", i);
-}
-
-// Low level url parser
-static void pni_urldecode(const char *src, char *dst)
-{
- const char *in = src;
- char *out = dst;
- while (*in != '\0')
- {
- if ('%' == *in)
- {
- if ((in[1] != '\0') && (in[2] != '\0'))
- {
- char esc[3];
- esc[0] = in[1];
- esc[1] = in[2];
- esc[2] = '\0';
- unsigned long d = strtoul(esc, NULL, 16);
- *out = (char)d;
- in += 3;
- out++;
- }
- else
- {
- *out = *in;
- in++;
- out++;
- }
- }
- else
- {
- *out = *in;
- in++;
- out++;
- }
- }
- *out = '\0';
-}
-
-void pni_parse_url(char *url, char **scheme, char **user, char **pass, char **host, char **port, char **path)
-{
- if (!url) return;
-
- char *slash = strchr(url, '/');
-
- if (slash && slash>url) {
- char *scheme_end = strstr(slash-1, "://");
-
- if (scheme_end && scheme_end<slash) {
- *scheme_end = '\0';
- *scheme = url;
- url = scheme_end + 3;
- slash = strchr(url, '/');
- }
- }
-
- if (slash) {
- *slash = '\0';
- *path = slash + 1;
- }
-
- char *at = strchr(url, '@');
- if (at) {
- *at = '\0';
- char *up = url;
- *user = up;
- url = at + 1;
- char *colon = strchr(up, ':');
- if (colon) {
- *colon = '\0';
- *pass = colon + 1;
- }
- }
-
- *host = url;
- char *open = (*url == '[') ? url : 0;
- if (open) {
- char *close = strchr(open, ']');
- if (close) {
- *host = open + 1;
- *close = '\0';
- url = close + 1;
- }
- }
-
- char *colon = strchr(url, ':');
- if (colon) {
- *colon = '\0';
- *port = colon + 1;
- }
-
- if (*user) pni_urldecode(*user, *user);
- if (*pass) pni_urldecode(*pass, *pass);
-}
-
-struct pn_url_t {
- char *scheme;
- char *username;
- char *password;
- char *host;
- char *port;
- char *path;
- pn_string_t *str;
-};
-
-/** Internal use only, returns the pn_string_t. Public function is pn_url_str() */
-static pn_string_t *pn_url_string(pn_url_t* url)
-{
- pn_url_str(url); /* Make sure str is up to date */
- return url->str;
-}
-
-static void pn_url_finalize(void *object)
-{
- pn_url_t *url = (pn_url_t *) object;
- pn_url_clear(url);
- pn_free(url->str);
-}
-
-static uintptr_t pn_url_hashcode(void *object)
-{
- pn_url_t *url = (pn_url_t *) object;
- return pn_hashcode(pn_url_string(url));
-}
-
-static intptr_t pn_url_compare(void *oa, void *ob)
-{
- pn_url_t *a = (pn_url_t *) oa;
- pn_url_t *b = (pn_url_t *) ob;
- return pn_compare(pn_url_string(a), pn_url_string(b));
-}
-
-
-static int pn_url_inspect(void *obj, pn_string_t *dst)
-{
- pn_url_t *url = (pn_url_t *) obj;
- int err = 0;
- err = pn_string_addf(dst, "Url("); if (err) return err;
- err = pn_inspect(pn_url_string(url), dst); if (err) return err;
- return pn_string_addf(dst, ")");
-}
-
-#define pn_url_initialize NULL
-
-
-pn_url_t *pn_url() {
- static const pn_class_t clazz = PN_CLASS(pn_url);
- pn_url_t *url = (pn_url_t*) pn_class_new(&clazz, sizeof(pn_url_t));
- if (!url) return NULL;
- memset(url, 0, sizeof(*url));
- url->str = pn_string(NULL);
- return url;
-}
-
-/** Parse a string URL as a pn_url_t.
- *@param[in] url A URL string.
- *@return The parsed pn_url_t or NULL if url is not a valid URL string.
- */
-pn_url_t *pn_url_parse(const char *str) {
- if (!str || !*str) /* Empty string or NULL is illegal. */
- return NULL;
-
- pn_url_t *url = pn_url();
- char *str2 = pn_strdup(str);
- pni_parse_url(str2, &url->scheme, &url->username, &url->password, &url->host, &url->port, &url->path);
- url->scheme = pn_strdup(url->scheme);
- url->username = pn_strdup(url->username);
- url->password = pn_strdup(url->password);
- url->host = (url->host && !*url->host) ? NULL : pn_strdup(url->host);
- url->port = pn_strdup(url->port);
- url->path = pn_strdup(url->path);
-
- free(str2);
- return url;
-}
-
-/** Free a URL */
-void pn_url_free(pn_url_t *url) { pn_free(url); }
-
-/** Clear the contents of the URL. */
-void pn_url_clear(pn_url_t *url) {
- pn_url_set_scheme(url, NULL);
- pn_url_set_username(url, NULL);
- pn_url_set_password(url, NULL);
- pn_url_set_host(url, NULL);
- pn_url_set_port(url, NULL);
- pn_url_set_path(url, NULL);
- pn_string_clear(url->str);
-}
-
-/** Return the string form of a URL. */
-const char *pn_url_str(pn_url_t *url) {
- if (pn_string_get(url->str) == NULL) {
- pn_string_set(url->str, "");
- if (url->scheme) pn_string_addf(url->str, "%s://", url->scheme);
- if (url->username) pni_urlencode(url->str, url->username);
- if (url->password) {
- pn_string_addf(url->str, ":");
- pni_urlencode(url->str, url->password);
- }
- if (url->username || url->password) pn_string_addf(url->str, "@");
- if (url->host) {
- if (strchr(url->host, ':')) pn_string_addf(url->str, "[%s]", url->host);
- else pn_string_addf(url->str, "%s", url->host);
- }
- if (url->port) pn_string_addf(url->str, ":%s", url->port);
- if (url->path) pn_string_addf(url->str, "/%s", url->path);
- }
- return pn_string_get(url->str);
-}
-
-const char *pn_url_get_scheme(pn_url_t *url) { return url->scheme; }
-const char *pn_url_get_username(pn_url_t *url) { return url->username; }
-const char *pn_url_get_password(pn_url_t *url) { return url->password; }
-const char *pn_url_get_host(pn_url_t *url) { return url->host; }
-const char *pn_url_get_port(pn_url_t *url) { return url->port; }
-const char *pn_url_get_path(pn_url_t *url) { return url->path; }
-
-#define SET(part) free(url->part); url->part = pn_strdup(part); pn_string_clear(url->str)
-void pn_url_set_scheme(pn_url_t *url, const char *scheme) { SET(scheme); }
-void pn_url_set_username(pn_url_t *url, const char *username) { SET(username); }
-void pn_url_set_password(pn_url_t *url, const char *password) { SET(password); }
-void pn_url_set_host(pn_url_t *url, const char *host) { SET(host); }
-void pn_url_set_port(pn_url_t *url, const char *port) { SET(port); }
-void pn_url_set_path(pn_url_t *url, const char *path) { SET(path); }
-
-
http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2f85988e/proton-c/src/handlers/flowcontroller.c
----------------------------------------------------------------------
diff --git a/proton-c/src/handlers/flowcontroller.c b/proton-c/src/handlers/flowcontroller.c
deleted file mode 100644
index d7cc3b9..0000000
--- a/proton-c/src/handlers/flowcontroller.c
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
-#include <proton/link.h>
-#include <proton/handlers.h>
-#include <assert.h>
-
-typedef struct {
- int window;
- int drained;
-} pni_flowcontroller_t;
-
-pni_flowcontroller_t *pni_flowcontroller(pn_handler_t *handler) {
- return (pni_flowcontroller_t *) pn_handler_mem(handler);
-}
-
-static void pni_topup(pn_link_t *link, int window) {
- int delta = window - pn_link_credit(link);
- pn_link_flow(link, delta);
-}
-
-static void pn_flowcontroller_dispatch(pn_handler_t *handler, pn_event_t *event, pn_event_type_t type) {
- pni_flowcontroller_t *fc = pni_flowcontroller(handler);
- int window = fc->window;
- pn_link_t *link = pn_event_link(event);
-
- switch (pn_event_type(event)) {
- case PN_LINK_LOCAL_OPEN:
- case PN_LINK_REMOTE_OPEN:
- case PN_LINK_FLOW:
- case PN_DELIVERY:
- if (pn_link_is_receiver(link)) {
- fc->drained += pn_link_drained(link);
- if (!fc->drained) {
- pni_topup(link, window);
- }
- }
- break;
- default:
- break;
- }
-}
-
-pn_flowcontroller_t *pn_flowcontroller(int window) {
- // XXX: a window of 1 doesn't work because we won't necessarily get
- // notified when the one allowed delivery is settled
- assert(window > 1);
- pn_flowcontroller_t *handler = pn_handler_new(pn_flowcontroller_dispatch, sizeof(pni_flowcontroller_t), NULL);
- pni_flowcontroller_t *fc = pni_flowcontroller(handler);
- fc->window = window;
- fc->drained = 0;
- return handler;
-}
http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2f85988e/proton-c/src/handlers/handshaker.c
----------------------------------------------------------------------
diff --git a/proton-c/src/handlers/handshaker.c b/proton-c/src/handlers/handshaker.c
deleted file mode 100644
index ea406c1..0000000
--- a/proton-c/src/handlers/handshaker.c
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
-#include <proton/connection.h>
-#include <proton/session.h>
-#include <proton/link.h>
-#include <proton/handlers.h>
-#include <assert.h>
-
-typedef struct {
- pn_map_t *handlers;
-} pni_handshaker_t;
-
-pni_handshaker_t *pni_handshaker(pn_handler_t *handler) {
- return (pni_handshaker_t *) pn_handler_mem(handler);
-}
-
-static void pn_handshaker_finalize(pn_handler_t *handler) {
- pni_handshaker_t *handshaker = pni_handshaker(handler);
- pn_free(handshaker->handlers);
-}
-
-static void pn_handshaker_dispatch(pn_handler_t *handler, pn_event_t *event, pn_event_type_t type) {
- switch (type) {
- case PN_CONNECTION_REMOTE_OPEN:
- {
- pn_connection_t *conn = pn_event_connection(event);
- if (pn_connection_state(conn) & PN_LOCAL_UNINIT) {
- pn_connection_open(conn);
- }
- }
- break;
- case PN_SESSION_REMOTE_OPEN:
- {
- pn_session_t *ssn = pn_event_session(event);
- if (pn_session_state(ssn) & PN_LOCAL_UNINIT) {
- pn_session_open(ssn);
- }
- }
- break;
- case PN_LINK_REMOTE_OPEN:
- {
- pn_link_t *link = pn_event_link(event);
- if (pn_link_state(link) & PN_LOCAL_UNINIT) {
- pn_terminus_copy(pn_link_source(link), pn_link_remote_source(link));
- pn_terminus_copy(pn_link_target(link), pn_link_remote_target(link));
- pn_link_open(link);
- }
- }
- break;
- case PN_CONNECTION_REMOTE_CLOSE:
- {
- pn_connection_t *conn = pn_event_connection(event);
- if (!(pn_connection_state(conn) & PN_LOCAL_CLOSED)) {
- pn_connection_close(conn);
- }
- }
- break;
- case PN_SESSION_REMOTE_CLOSE:
- {
- pn_session_t *ssn = pn_event_session(event);
- if (!(pn_session_state(ssn) & PN_LOCAL_CLOSED)) {
- pn_session_close(ssn);
- }
- }
- break;
- case PN_LINK_REMOTE_CLOSE:
- {
- pn_link_t *link = pn_event_link(event);
- if (!(pn_link_state(link) & PN_LOCAL_CLOSED)) {
- pn_link_close(link);
- }
- }
- break;
- default:
- break;
- }
-}
-
-pn_handshaker_t *pn_handshaker(void) {
- pn_handler_t *handler = pn_handler_new(pn_handshaker_dispatch, sizeof(pni_handshaker_t), pn_handshaker_finalize);
- pni_handshaker_t *handshaker = pni_handshaker(handler);
- handshaker->handlers = NULL;
- return handler;
-}
http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2f85988e/proton-c/src/handlers/iohandler.c
----------------------------------------------------------------------
diff --git a/proton-c/src/handlers/iohandler.c b/proton-c/src/handlers/iohandler.c
deleted file mode 100644
index db18c0c..0000000
--- a/proton-c/src/handlers/iohandler.c
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
-#include "reactor/io.h"
-#include "reactor/reactor.h"
-#include "reactor/selector.h"
-
-#include <proton/handlers.h>
-#include <proton/transport.h>
-#include <assert.h>
-
-static const char pni_selector_handle = 0;
-
-#define PN_SELECTOR ((pn_handle_t) &pni_selector_handle)
-
-void pni_handle_quiesced(pn_reactor_t *reactor, pn_selector_t *selector) {
- // check if we are still quiesced, other handlers of
- // PN_REACTOR_QUIESCED could have produced more events to process
- if (!pn_reactor_quiesced(reactor)) { return; }
- pn_selector_select(selector, pn_reactor_get_timeout(reactor));
- pn_selectable_t *sel;
- int events;
- pn_reactor_mark(reactor);
- while ((sel = pn_selector_next(selector, &events))) {
- if (events & PN_READABLE) {
- pn_selectable_readable(sel);
- }
- if (events & PN_WRITABLE) {
- pn_selectable_writable(sel);
- }
- if (events & PN_EXPIRED) {
- pn_selectable_expired(sel);
- }
- if (events & PN_ERROR) {
- pn_selectable_error(sel);
- }
- }
- pn_reactor_yield(reactor);
-}
-
-void pni_handle_transport(pn_reactor_t *reactor, pn_event_t *event);
-void pni_handle_open(pn_reactor_t *reactor, pn_event_t *event);
-void pni_handle_bound(pn_reactor_t *reactor, pn_event_t *event);
-
-static void pn_iodispatch(pn_iohandler_t *handler, pn_event_t *event, pn_event_type_t type) {
- pn_reactor_t *reactor = pn_event_reactor(event);
- pn_record_t *record = pn_reactor_attachments(reactor);
- pn_selector_t *selector = (pn_selector_t *) pn_record_get(record, PN_SELECTOR);
- if (!selector) {
- selector = pn_io_selector(pni_reactor_io(reactor));
- pn_record_def(record, PN_SELECTOR, PN_OBJECT);
- pn_record_set(record, PN_SELECTOR, selector);
- pn_decref(selector);
- }
- switch (type) {
- case PN_SELECTABLE_INIT:
- {
- pn_selectable_t *sel = (pn_selectable_t *) pn_event_context(event);
- pn_selector_add(selector, sel);
- }
- break;
- case PN_SELECTABLE_UPDATED:
- {
- pn_selectable_t *sel = (pn_selectable_t *) pn_event_context(event);
- pn_selector_update(selector, sel);
- }
- break;
- case PN_SELECTABLE_FINAL:
- {
- pn_selectable_t *sel = (pn_selectable_t *) pn_event_context(event);
- pn_selector_remove(selector, sel);
- pn_selectable_release(sel);
- }
- break;
- case PN_CONNECTION_LOCAL_OPEN:
- pni_handle_open(reactor, event);
- break;
- case PN_CONNECTION_BOUND:
- pni_handle_bound(reactor, event);
- break;
- case PN_TRANSPORT:
- pni_handle_transport(reactor, event);
- break;
- case PN_TRANSPORT_CLOSED:
- pn_transport_unbind(pn_event_transport(event));
- break;
- case PN_REACTOR_QUIESCED:
- pni_handle_quiesced(reactor, selector);
- break;
- default:
- break;
- }
-}
-
-pn_iohandler_t *pn_iohandler(void) {
- return pn_handler(pn_iodispatch);
-}
http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2f85988e/proton-c/src/libqpid-proton-core.pc.in
----------------------------------------------------------------------
diff --git a/proton-c/src/libqpid-proton-core.pc.in b/proton-c/src/libqpid-proton-core.pc.in
deleted file mode 100644
index ff99108..0000000
--- a/proton-c/src/libqpid-proton-core.pc.in
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-prefix=@PREFIX@
-exec_prefix=@EXEC_PREFIX@
-libdir=@LIBDIR@
-includedir=@INCLUDEDIR@
-
-Name: Proton Core
-Description: Qpid Proton C core protocol library
-Version: @PN_VERSION@
-URL: http://qpid.apache.org/proton/
-Libs: -L${libdir} -lqpid-proton-core
-Cflags: -I${includedir}
http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2f85988e/proton-c/src/libqpid-proton.pc.in
----------------------------------------------------------------------
diff --git a/proton-c/src/libqpid-proton.pc.in b/proton-c/src/libqpid-proton.pc.in
deleted file mode 100644
index a045c3f..0000000
--- a/proton-c/src/libqpid-proton.pc.in
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-prefix=@PREFIX@
-exec_prefix=@EXEC_PREFIX@
-libdir=@LIBDIR@
-includedir=@INCLUDEDIR@
-
-Name: Proton
-Description: Qpid Proton C library
-Version: @PN_VERSION@
-URL: http://qpid.apache.org/proton/
-Libs: -L${libdir} -lqpid-proton
-Cflags: -I${includedir}
http://git-wip-us.apache.org/repos/asf/qpid-proton-j/blob/2f85988e/proton-c/src/messaging.xml
----------------------------------------------------------------------
diff --git a/proton-c/src/messaging.xml b/proton-c/src/messaging.xml
deleted file mode 100644
index 01c34e7..0000000
--- a/proton-c/src/messaging.xml
+++ /dev/null
@@ -1,168 +0,0 @@
-<?xml version="1.0"?>
-
-<!--
-Copyright Bank of America, N.A., Barclays Bank PLC, Cisco Systems, Credit
-Suisse, Deutsche Boerse, Envoy Technologies Inc., Goldman Sachs, HCL
-Technologies Ltd, IIT Software GmbH, iMatix Corporation, INETCO Systems Limited,
-Informatica Corporation, JPMorgan Chase & Co., Kaazing Corporation, N.A,
-Microsoft Corporation, my-Channels, Novell, Progress Software, Red Hat Inc.,
-Software AG, Solace Systems Inc., StormMQ Ltd., Tervela Inc., TWIST Process
-Innovations Ltd, VMware, Inc., and WS02 Inc. 2006-2011. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-1. Redistributions of source code must retain the above copyright
-notice, this list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-3. The name of the author may not be used to endorse or promote products
-derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
--->
-
-<amqp name="messaging" xmlns="http://www.amqp.org/schema/amqp.xsd">
- <section name="message-format">
- <type name="header" class="composite" source="list" provides="section">
- <descriptor name="amqp:header:list" code="0x00000000:0x00000070"/>
- <field name="durable" type="boolean"/>
- <field name="priority" type="ubyte"/>
- <field name="ttl" type="milliseconds"/>
- <field name="first-acquirer" type="boolean"/>
- <field name="delivery-count" type="uint"/>
- </type>
- <type name="delivery-annotations" class="restricted" source="annotations" provides="section">
- <descriptor name="amqp:delivery-annotations:map" code="0x00000000:0x00000071"/>
- </type>
- <type name="message-annotations" class="restricted" source="annotations" provides="section">
- <descriptor name="amqp:message-annotations:map" code="0x00000000:0x00000072"/>
- </type>
- <type name="properties" class="composite" source="list" provides="section">
- <descriptor name="amqp:properties:list" code="0x00000000:0x00000073"/>
- <field name="message-id" type="*" requires="message-id"/>
- <field name="user-id" type="binary"/>
- <field name="to" type="*" requires="address"/>
- <field name="subject" type="string"/>
- <field name="reply-to" type="*" requires="address"/>
- <field name="correlation-id" type="*" requires="message-id"/>
- <field name="content-type" type="symbol"/>
- <field name="content-encoding" type="symbol"/>
- <field name="absolute-expiry-time" type="timestamp"/>
- <field name="creation-time" type="timestamp"/>
- <field name="group-id" type="string"/>
- <field name="group-sequence" type="sequence-no"/>
- <field name="reply-to-group-id" type="string"/>
- </type>
- <type name="application-properties" class="restricted" source="map" provides="section">
- <descriptor name="amqp:application-properties:map" code="0x00000000:0x00000074"/>
- </type>
- <type name="data" class="restricted" source="binary" provides="section">
- <descriptor name="amqp:data:binary" code="0x00000000:0x00000075"/>
- </type>
- <type name="amqp-sequence" class="restricted" source="list" provides="section">
- <descriptor name="amqp:amqp-sequence:list" code="0x00000000:0x00000076"/>
- </type>
- <type name="amqp-value" class="restricted" source="*" provides="section">
- <descriptor name="amqp:amqp-value:*" code="0x00000000:0x00000077"/>
- </type>
- <type name="footer" class="restricted" source="annotations" provides="section">
- <descriptor name="amqp:footer:map" code="0x00000000:0x00000078"/>
- </type>
- <type name="annotations" class="restricted" source="map"/>
- <type name="message-id-ulong" class="restricted" source="ulong" provides="message-id"/>
- <type name="message-id-uuid" class="restricted" source="uuid" provides="message-id"/>
- <type name="message-id-binary" class="restricted" source="binary" provides="message-id"/>
- <type name="message-id-string" class="restricted" source="string" provides="message-id"/>
- <type name="address-string" class="restricted" source="string" provides="address"/>
- <definition name="MESSAGE-FORMAT" value="0"/>
- </section>
- <section name="delivery-state">
- <type name="received" class="composite" source="list" provides="delivery-state">
- <descriptor name="amqp:received:list" code="0x00000000:0x00000023"/>
- <field name="section-number" type="uint" mandatory="true"/>
- <field name="section-offset" type="ulong" mandatory="true"/>
- </type>
- <type name="accepted" class="composite" source="list" provides="delivery-state, outcome">
- <descriptor name="amqp:accepted:list" code="0x00000000:0x00000024"/>
- </type>
- <type name="rejected" class="composite" source="list" provides="delivery-state, outcome">
- <descriptor name="amqp:rejected:list" code="0x00000000:0x00000025"/>
- <field name="error" type="error"/>
- </type>
- <type name="released" class="composite" source="list" provides="delivery-state, outcome">
- <descriptor name="amqp:released:list" code="0x00000000:0x00000026"/>
- </type>
- <type name="modified" class="composite" source="list" provides="delivery-state, outcome">
- <descriptor name="amqp:modified:list" code="0x00000000:0x00000027"/>
- <field name="delivery-failed" type="boolean"/>
- <field name="undeliverable-here" type="boolean"/>
- <field name="message-annotations" type="fields"/>
- </type>
- </section>
- <section name="addressing">
- <type name="source" class="composite" source="list" provides="source">
- <descriptor name="amqp:source:list" code="0x00000000:0x00000028"/>
- <field name="address" type="*" requires="address"/>
- <field name="durable" type="terminus-durability" default="none"/>
- <field name="expiry-policy" type="terminus-expiry-policy" default="session-end"/>
- <field name="timeout" type="seconds" default="0"/>
- <field name="dynamic" type="boolean" default="false"/>
- <field name="dynamic-node-properties" type="node-properties"/>
- <field name="distribution-mode" type="symbol" requires="distribution-mode"/>
- <field name="filter" type="filter-set"/>
- <field name="default-outcome" type="*" requires="outcome"/>
- <field name="outcomes" type="symbol" multiple="true"/>
- <field name="capabilities" type="symbol" multiple="true"/>
- </type>
- <type name="target" class="composite" source="list" provides="target">
- <descriptor name="amqp:target:list" code="0x00000000:0x00000029"/>
- <field name="address" type="*" requires="address"/>
- <field name="durable" type="terminus-durability" default="none"/>
- <field name="expiry-policy" type="terminus-expiry-policy" default="session-end"/>
- <field name="timeout" type="seconds" default="0"/>
- <field name="dynamic" type="boolean" default="false"/>
- <field name="dynamic-node-properties" type="node-properties"/>
- <field name="capabilities" type="symbol" multiple="true"/>
- </type>
- <type name="terminus-durability" class="restricted" source="uint">
- <choice name="none" value="0"/>
- <choice name="configuration" value="1"/>
- <choice name="unsettled-state" value="2"/>
- </type>
- <type name="terminus-expiry-policy" class="restricted" source="symbol">
- <choice name="link-detach" value="link-detach"/>
- <choice name="session-end" value="session-end"/>
- <choice name="connection-close" value="connection-close"/>
- <choice name="never" value="never"/>
- </type>
- <type name="std-dist-mode" class="restricted" source="symbol" provides="distribution-mode">
- <choice name="move" value="move"/>
- <choice name="copy" value="copy"/>
- </type>
- <type name="filter-set" class="restricted" source="map"/>
- <type name="node-properties" class="restricted" source="fields"/>
- <type name="delete-on-close" class="composite" source="list" provides="lifetime-policy">
- <descriptor name="amqp:delete-on-close:list" code="0x00000000:0x0000002b"/>
- </type>
- <type name="delete-on-no-links" class="composite" source="list" provides="lifetime-policy">
- <descriptor name="amqp:delete-on-no-links:list" code="0x00000000:0x0000002c"/>
- </type>
- <type name="delete-on-no-messages" class="composite" source="list" provides="lifetime-policy">
- <descriptor name="amqp:delete-on-no-messages:list" code="0x00000000:0x0000002d"/>
- </type>
- <type name="delete-on-no-links-or-messages" class="composite" source="list" provides="lifetime-policy">
- <descriptor name="amqp:delete-on-no-links-or-messages:list" code="0x00000000:0x0000002e"/>
- </type>
- </section>
-</amqp>
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org