You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ac...@apache.org on 2016/11/25 21:01:04 UTC

[08/48] qpid-proton git commit: PROTON-1350 PROTON-1351: Introduce proton-c core library - Created new core proton library qpid-proton-core which only contains protocol processsing and no IO. - Rearranged source tree to separate core protocol code and

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/a5850716/proton-c/src/reactor/selectable.h
----------------------------------------------------------------------
diff --git a/proton-c/src/reactor/selectable.h b/proton-c/src/reactor/selectable.h
new file mode 100644
index 0000000..7a5b80b
--- /dev/null
+++ b/proton-c/src/reactor/selectable.h
@@ -0,0 +1,36 @@
+#ifndef _PROTON_SRC_SELECTABLE_H
+#define _PROTON_SRC_SELECTABLE_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.
+ *
+ */
+
+#ifndef __cplusplus
+#include <stdbool.h>
+#endif
+
+#include <proton/selectable.h>
+
+void *pni_selectable_get_context(pn_selectable_t *selectable);
+void pni_selectable_set_context(pn_selectable_t *selectable, void *context);
+int pni_selectable_get_index(pn_selectable_t *selectable);
+void pni_selectable_set_index(pn_selectable_t *selectable, int index);
+
+#endif /* selectable.h */

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/a5850716/proton-c/src/reactor/selector.h
----------------------------------------------------------------------
diff --git a/proton-c/src/reactor/selector.h b/proton-c/src/reactor/selector.h
new file mode 100644
index 0000000..2a1e31f
--- /dev/null
+++ b/proton-c/src/reactor/selector.h
@@ -0,0 +1,53 @@
+#ifndef PROTON_SELECTOR_H
+#define PROTON_SELECTOR_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/selectable.h>
+#include <proton/type_compat.h>
+
+#define PN_READABLE (1)
+#define PN_WRITABLE (2)
+#define PN_EXPIRED (4)
+#define PN_ERROR (8)
+
+/**
+ * A ::pn_selector_t provides a selection mechanism that allows
+ * efficient monitoring of a large number of Proton connections and
+ * listeners.
+ *
+ * External (non-Proton) sockets may also be monitored, either solely
+ * for event notification (read, write, and timer) or event
+ * notification and use with pn_io_t interfaces.
+ */
+typedef struct pn_selector_t pn_selector_t;
+
+pn_selector_t *pni_selector(void);
+void pn_selector_free(pn_selector_t *selector);
+void pn_selector_add(pn_selector_t *selector, pn_selectable_t *selectable);
+void pn_selector_update(pn_selector_t *selector, pn_selectable_t *selectable);
+void pn_selector_remove(pn_selector_t *selector, pn_selectable_t *selectable);
+size_t pn_selector_size(pn_selector_t *selector);
+int pn_selector_select(pn_selector_t *select, int timeout);
+pn_selectable_t *pn_selector_next(pn_selector_t *select, int *events);
+
+#endif /* selector.h */

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/a5850716/proton-c/src/sasl/cyrus_sasl.c
----------------------------------------------------------------------
diff --git a/proton-c/src/sasl/cyrus_sasl.c b/proton-c/src/sasl/cyrus_sasl.c
index dfc13d0..0d81489 100644
--- a/proton-c/src/sasl/cyrus_sasl.c
+++ b/proton-c/src/sasl/cyrus_sasl.c
@@ -19,10 +19,10 @@
  *
  */
 
-#include "config.h"
+#include "core/config.h"
+#include "core/engine-internal.h"
 #include "sasl-internal.h"
 
-#include "engine/engine-internal.h"
 
 #include <sasl/sasl.h>
 #include <pthread.h>

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/a5850716/proton-c/src/sasl/none_sasl.c
----------------------------------------------------------------------
diff --git a/proton-c/src/sasl/none_sasl.c b/proton-c/src/sasl/none_sasl.c
index d1ee67f..0408a8f 100644
--- a/proton-c/src/sasl/none_sasl.c
+++ b/proton-c/src/sasl/none_sasl.c
@@ -21,7 +21,7 @@
 
 #include "sasl-internal.h"
 
-#include "engine/engine-internal.h"
+#include "core/engine-internal.h"
 
 static const char ANONYMOUS[] = "ANONYMOUS";
 static const char EXTERNAL[] = "EXTERNAL";

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/a5850716/proton-c/src/sasl/sasl-internal.h
----------------------------------------------------------------------
diff --git a/proton-c/src/sasl/sasl-internal.h b/proton-c/src/sasl/sasl-internal.h
index 063cd0d..2873777 100644
--- a/proton-c/src/sasl/sasl-internal.h
+++ b/proton-c/src/sasl/sasl-internal.h
@@ -22,11 +22,12 @@
 #ifndef PROTON_SASL_INTERNAL_H
 #define PROTON_SASL_INTERNAL_H 1
 
-#include "buffer.h"
+#include "core/buffer.h"
+#include "core/engine-internal.h"
+
 #include "proton/types.h"
 #include "proton/sasl.h"
 
-#include "engine/engine-internal.h"
 
 // SASL APIs used by transport code
 void pn_sasl_free(pn_transport_t *transport);

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/a5850716/proton-c/src/sasl/sasl.c
----------------------------------------------------------------------
diff --git a/proton-c/src/sasl/sasl.c b/proton-c/src/sasl/sasl.c
index 47dc76c..c917d58 100644
--- a/proton-c/src/sasl/sasl.c
+++ b/proton-c/src/sasl/sasl.c
@@ -21,13 +21,14 @@
 
 #include "sasl-internal.h"
 
-#include "dispatch_actions.h"
-#include "engine/engine-internal.h"
+#include "core/autodetect.h"
+#include "core/dispatch_actions.h"
+#include "core/engine-internal.h"
+#include "core/util.h"
 #include "protocol.h"
+
 #include "proton/ssl.h"
 #include "proton/types.h"
-#include "util.h"
-#include "transport/autodetect.h"
 
 #include <assert.h>
 

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/a5850716/proton-c/src/scanner.c
----------------------------------------------------------------------
diff --git a/proton-c/src/scanner.c b/proton-c/src/scanner.c
deleted file mode 100644
index 9a058e9..0000000
--- a/proton-c/src/scanner.c
+++ /dev/null
@@ -1,397 +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/scanner.h>
-#include <proton/error.h>
-#ifndef __cplusplus
-#include <stdbool.h>
-#endif
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include "platform.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 = 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 = 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/blob/a5850716/proton-c/src/selectable.c
----------------------------------------------------------------------
diff --git a/proton-c/src/selectable.c b/proton-c/src/selectable.c
deleted file mode 100644
index 88a60f7..0000000
--- a/proton-c/src/selectable.c
+++ /dev/null
@@ -1,297 +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/error.h>
-#include <proton/io.h>
-#include "selectable.h"
-#include <stdlib.h>
-#include <assert.h>
-
-pn_selectables_t *pn_selectables(void)
-{
-  return pn_iterator();
-}
-
-pn_selectable_t *pn_selectables_next(pn_selectables_t *selectables)
-{
-  return (pn_selectable_t *) pn_iterator_next(selectables);
-}
-
-void pn_selectables_free(pn_selectables_t *selectables)
-{
-  pn_free(selectables);
-}
-
-struct pn_selectable_t {
-  pn_socket_t fd;
-  int index;
-  pn_record_t *attachments;
-  void (*readable)(pn_selectable_t *);
-  void (*writable)(pn_selectable_t *);
-  void (*error)(pn_selectable_t *);
-  void (*expired)(pn_selectable_t *);
-  void (*release) (pn_selectable_t *);
-  void (*finalize)(pn_selectable_t *);
-  pn_collector_t *collector;
-  pn_timestamp_t deadline;
-  bool reading;
-  bool writing;
-  bool registered;
-  bool terminal;
-};
-
-void pn_selectable_initialize(pn_selectable_t *sel)
-{
-  sel->fd = PN_INVALID_SOCKET;
-  sel->index = -1;
-  sel->attachments = pn_record();
-  sel->readable = NULL;
-  sel->writable = NULL;
-  sel->error = NULL;
-  sel->expired = NULL;
-  sel->release = NULL;
-  sel->finalize = NULL;
-  sel->collector = NULL;
-  sel->deadline = 0;
-  sel->reading = false;
-  sel->writing = false;
-  sel->registered = false;
-  sel->terminal = false;
-}
-
-void pn_selectable_finalize(pn_selectable_t *sel)
-{
-  if (sel->finalize) {
-    sel->finalize(sel);
-  }
-  pn_decref(sel->attachments);
-  pn_decref(sel->collector);
-}
-
-#define pn_selectable_hashcode NULL
-#define pn_selectable_inspect NULL
-#define pn_selectable_compare NULL
-
-PN_CLASSDEF(pn_selectable)
-
-pn_selectable_t *pn_selectable(void)
-{
-  return pn_selectable_new();
-}
-
-bool pn_selectable_is_reading(pn_selectable_t *sel) {
-  assert(sel);
-  return sel->reading;
-}
-
-void pn_selectable_set_reading(pn_selectable_t *sel, bool reading) {
-  assert(sel);
-  sel->reading = reading;
-}
-
-bool pn_selectable_is_writing(pn_selectable_t *sel) {
-  assert(sel);
-  return sel->writing;
-}
-
-void pn_selectable_set_writing(pn_selectable_t *sel, bool writing) {
-  assert(sel);
-  sel->writing = writing;
-}
-
-pn_timestamp_t pn_selectable_get_deadline(pn_selectable_t *sel) {
-  assert(sel);
-  return sel->deadline;
-}
-
-void pn_selectable_set_deadline(pn_selectable_t *sel, pn_timestamp_t deadline) {
-  assert(sel);
-  sel->deadline = deadline;
-}
-
-void pn_selectable_on_readable(pn_selectable_t *sel, void (*readable)(pn_selectable_t *)) {
-  assert(sel);
-  sel->readable = readable;
-}
-
-void pn_selectable_on_writable(pn_selectable_t *sel, void (*writable)(pn_selectable_t *)) {
-  assert(sel);
-  sel->writable = writable;
-}
-
-void pn_selectable_on_error(pn_selectable_t *sel, void (*error)(pn_selectable_t *)) {
-  assert(sel);
-  sel->error = error;
-}
-
-void pn_selectable_on_expired(pn_selectable_t *sel, void (*expired)(pn_selectable_t *)) {
-  assert(sel);
-  sel->expired = expired;
-}
-
-void pn_selectable_on_release(pn_selectable_t *sel, void (*release)(pn_selectable_t *)) {
-  assert(sel);
-  sel->release = release;
-}
-
-void pn_selectable_on_finalize(pn_selectable_t *sel, void (*finalize)(pn_selectable_t *)) {
-  assert(sel);
-  sel->finalize = finalize;
-}
-
-pn_record_t *pn_selectable_attachments(pn_selectable_t *sel) {
-  return sel->attachments;
-}
-
-void *pni_selectable_get_context(pn_selectable_t *selectable)
-{
-  assert(selectable);
-  return pn_record_get(selectable->attachments, PN_LEGCTX);
-}
-
-void pni_selectable_set_context(pn_selectable_t *selectable, void *context)
-{
-  assert(selectable);
-  pn_record_set(selectable->attachments, PN_LEGCTX, context);
-}
-
-int pni_selectable_get_index(pn_selectable_t *selectable)
-{
-  assert(selectable);
-  return selectable->index;
-}
-
-void pni_selectable_set_index(pn_selectable_t *selectable, int index)
-{
-  assert(selectable);
-  selectable->index = index;
-}
-
-pn_socket_t pn_selectable_get_fd(pn_selectable_t *selectable)
-{
-  assert(selectable);
-  return selectable->fd;
-}
-
-void pn_selectable_set_fd(pn_selectable_t *selectable, pn_socket_t fd)
-{
-  assert(selectable);
-  selectable->fd = fd;
-}
-
-void pn_selectable_readable(pn_selectable_t *selectable)
-{
-  assert(selectable);
-  if (selectable->readable) {
-    selectable->readable(selectable);
-  }
-}
-
-void pn_selectable_writable(pn_selectable_t *selectable)
-{
-  assert(selectable);
-  if (selectable->writable) {
-    selectable->writable(selectable);
-  }
-}
-
-void pn_selectable_error(pn_selectable_t *selectable)
-{
-  assert(selectable);
-  if (selectable->error) {
-    selectable->error(selectable);
-  }
-}
-
-void pn_selectable_expired(pn_selectable_t *selectable)
-{
-  assert(selectable);
-  if (selectable->expired) {
-    selectable->expired(selectable);
-  }
-}
-
-bool pn_selectable_is_registered(pn_selectable_t *selectable)
-{
-  assert(selectable);
-  return selectable->registered;
-}
-
-void pn_selectable_set_registered(pn_selectable_t *selectable, bool registered)
-{
-  assert(selectable);
-  selectable->registered = registered;
-}
-
-bool pn_selectable_is_terminal(pn_selectable_t *selectable)
-{
-  assert(selectable);
-  return selectable->terminal;
-}
-
-void pn_selectable_terminate(pn_selectable_t *selectable)
-{
-  assert(selectable);
-  selectable->terminal = true;
-}
-
-void pn_selectable_release(pn_selectable_t *selectable)
-{
-  assert(selectable);
-  if (selectable->release) {
-    selectable->release(selectable);
-  }
-}
-
-void pn_selectable_free(pn_selectable_t *selectable)
-{
-  pn_decref(selectable);
-}
-
-static void pni_readable(pn_selectable_t *selectable) {
-  pn_collector_put(selectable->collector, PN_OBJECT, selectable, PN_SELECTABLE_READABLE);
-}
-
-static void pni_writable(pn_selectable_t *selectable) {
-  pn_collector_put(selectable->collector, PN_OBJECT, selectable, PN_SELECTABLE_WRITABLE);
-}
-
-static void pni_error(pn_selectable_t *selectable) {
-  pn_collector_put(selectable->collector, PN_OBJECT, selectable, PN_SELECTABLE_ERROR);
-}
-
-static void pni_expired(pn_selectable_t *selectable) {
-  pn_collector_put(selectable->collector, PN_OBJECT, selectable, PN_SELECTABLE_EXPIRED);
-}
-
-void pn_selectable_collect(pn_selectable_t *selectable, pn_collector_t *collector) {
-  assert(selectable);
-  pn_decref(selectable->collector);
-  selectable->collector = collector;
-  pn_incref(selectable->collector);
-
-  if (collector) {
-    pn_selectable_on_readable(selectable, pni_readable);
-    pn_selectable_on_writable(selectable, pni_writable);
-    pn_selectable_on_error(selectable, pni_error);
-    pn_selectable_on_expired(selectable, pni_expired);
-  }
-}

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/a5850716/proton-c/src/selectable.h
----------------------------------------------------------------------
diff --git a/proton-c/src/selectable.h b/proton-c/src/selectable.h
deleted file mode 100644
index 7a5b80b..0000000
--- a/proton-c/src/selectable.h
+++ /dev/null
@@ -1,36 +0,0 @@
-#ifndef _PROTON_SRC_SELECTABLE_H
-#define _PROTON_SRC_SELECTABLE_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.
- *
- */
-
-#ifndef __cplusplus
-#include <stdbool.h>
-#endif
-
-#include <proton/selectable.h>
-
-void *pni_selectable_get_context(pn_selectable_t *selectable);
-void pni_selectable_set_context(pn_selectable_t *selectable, void *context);
-int pni_selectable_get_index(pn_selectable_t *selectable);
-void pni_selectable_set_index(pn_selectable_t *selectable, int index);
-
-#endif /* selectable.h */

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/a5850716/proton-c/src/ssl/openssl.c
----------------------------------------------------------------------
diff --git a/proton-c/src/ssl/openssl.c b/proton-c/src/ssl/openssl.c
index 48cb051..0d7c40b 100644
--- a/proton-c/src/ssl/openssl.c
+++ b/proton-c/src/ssl/openssl.c
@@ -19,11 +19,12 @@
  *
  */
 
+#include "platform/platform.h"
+#include "core/util.h"
+#include "core/engine-internal.h"
+
 #include <proton/ssl.h>
 #include <proton/engine.h>
-#include "engine/engine-internal.h"
-#include "platform.h"
-#include "util.h"
 
 // openssl on windows expects the user to have already included
 // winsock.h
@@ -749,7 +750,7 @@ bool pn_ssl_get_cipher_name(pn_ssl_t *ssl0, char *buffer, size_t size )
   if (ssl->ssl && (c = SSL_get_current_cipher( ssl->ssl ))) {
     const char *v = SSL_CIPHER_get_name(c);
     if (v) {
-      snprintf( buffer, size, "%s", v );
+      pni_snprintf( buffer, size, "%s", v );
       return true;
     }
   }
@@ -765,7 +766,7 @@ bool pn_ssl_get_protocol_name(pn_ssl_t *ssl0, char *buffer, size_t size )
   if (ssl->ssl && (c = SSL_get_current_cipher( ssl->ssl ))) {
     const char *v = SSL_CIPHER_get_version(c);
     if (v) {
-      snprintf( buffer, size, "%s", v );
+      pni_snprintf( buffer, size, "%s", v );
       return true;
     }
   }
@@ -1345,7 +1346,7 @@ int pn_ssl_get_cert_fingerprint(pn_ssl_t *ssl0, char *fingerprint, size_t finger
         char *cursor = fingerprint;
 
         for (size_t i=0; i<len ; i++) {
-            cursor +=  snprintf((char *)cursor, fingerprint_length, "%02x", bytes[i]);
+            cursor +=  pni_snprintf((char *)cursor, fingerprint_length, "%02x", bytes[i]);
             fingerprint_length = fingerprint_length - 2;
         }
 


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org