You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by cl...@apache.org on 2013/02/15 08:08:48 UTC

svn commit: r1446466 [1/2] - in /qpid/proton/trunk/proton-c/include/proton: buffer.h codec.h cproton.i driver.h driver_extras.h engine.h error.h framing.h import_export.h message.h messenger.h parser.h sasl.h scanner.h ssl.h types.h util.h

Author: cliffjansen
Date: Fri Feb 15 07:08:48 2013
New Revision: 1446466

URL: http://svn.apache.org/r1446466
Log:
PROTON-68: symbol import/export macros for Windows, with corrected smaller macro names

Added:
    qpid/proton/trunk/proton-c/include/proton/import_export.h
Modified:
    qpid/proton/trunk/proton-c/include/proton/buffer.h
    qpid/proton/trunk/proton-c/include/proton/codec.h
    qpid/proton/trunk/proton-c/include/proton/cproton.i
    qpid/proton/trunk/proton-c/include/proton/driver.h
    qpid/proton/trunk/proton-c/include/proton/driver_extras.h
    qpid/proton/trunk/proton-c/include/proton/engine.h
    qpid/proton/trunk/proton-c/include/proton/error.h
    qpid/proton/trunk/proton-c/include/proton/framing.h
    qpid/proton/trunk/proton-c/include/proton/message.h
    qpid/proton/trunk/proton-c/include/proton/messenger.h
    qpid/proton/trunk/proton-c/include/proton/parser.h
    qpid/proton/trunk/proton-c/include/proton/sasl.h
    qpid/proton/trunk/proton-c/include/proton/scanner.h
    qpid/proton/trunk/proton-c/include/proton/ssl.h
    qpid/proton/trunk/proton-c/include/proton/types.h
    qpid/proton/trunk/proton-c/include/proton/util.h

Modified: qpid/proton/trunk/proton-c/include/proton/buffer.h
URL: http://svn.apache.org/viewvc/qpid/proton/trunk/proton-c/include/proton/buffer.h?rev=1446466&r1=1446465&r2=1446466&view=diff
==============================================================================
--- qpid/proton/trunk/proton-c/include/proton/buffer.h (original)
+++ qpid/proton/trunk/proton-c/include/proton/buffer.h Fri Feb 15 07:08:48 2013
@@ -22,6 +22,7 @@
  *
  */
 
+#include <proton/import_export.h>
 #include <proton/types.h>
 
 #ifdef __cplusplus
@@ -30,20 +31,20 @@ extern "C" {
 
 typedef struct pn_buffer_t pn_buffer_t;
 
-pn_buffer_t *pn_buffer(size_t capacity);
-void pn_buffer_free(pn_buffer_t *buf);
-size_t pn_buffer_size(pn_buffer_t *buf);
-size_t pn_buffer_capacity(pn_buffer_t *buf);
-size_t pn_buffer_available(pn_buffer_t *buf);
-int pn_buffer_ensure(pn_buffer_t *buf, size_t size);
-int pn_buffer_append(pn_buffer_t *buf, const char *bytes, size_t size);
-int pn_buffer_prepend(pn_buffer_t *buf, const char *bytes, size_t size);
-size_t pn_buffer_get(pn_buffer_t *buf, size_t offset, size_t size, char *dst);
-int pn_buffer_trim(pn_buffer_t *buf, size_t left, size_t right);
-void pn_buffer_clear(pn_buffer_t *buf);
-int pn_buffer_defrag(pn_buffer_t *buf);
-pn_bytes_t pn_buffer_bytes(pn_buffer_t *buf);
-int pn_buffer_print(pn_buffer_t *buf);
+PN_EXTERN pn_buffer_t *pn_buffer(size_t capacity);
+PN_EXTERN void pn_buffer_free(pn_buffer_t *buf);
+PN_EXTERN size_t pn_buffer_size(pn_buffer_t *buf);
+PN_EXTERN size_t pn_buffer_capacity(pn_buffer_t *buf);
+PN_EXTERN size_t pn_buffer_available(pn_buffer_t *buf);
+PN_EXTERN int pn_buffer_ensure(pn_buffer_t *buf, size_t size);
+PN_EXTERN int pn_buffer_append(pn_buffer_t *buf, const char *bytes, size_t size);
+PN_EXTERN int pn_buffer_prepend(pn_buffer_t *buf, const char *bytes, size_t size);
+PN_EXTERN size_t pn_buffer_get(pn_buffer_t *buf, size_t offset, size_t size, char *dst);
+PN_EXTERN int pn_buffer_trim(pn_buffer_t *buf, size_t left, size_t right);
+PN_EXTERN void pn_buffer_clear(pn_buffer_t *buf);
+PN_EXTERN int pn_buffer_defrag(pn_buffer_t *buf);
+PN_EXTERN pn_bytes_t pn_buffer_bytes(pn_buffer_t *buf);
+PN_EXTERN int pn_buffer_print(pn_buffer_t *buf);
 
 #ifdef __cplusplus
 }

Modified: qpid/proton/trunk/proton-c/include/proton/codec.h
URL: http://svn.apache.org/viewvc/qpid/proton/trunk/proton-c/include/proton/codec.h?rev=1446466&r1=1446465&r2=1446466&view=diff
==============================================================================
--- qpid/proton/trunk/proton-c/include/proton/codec.h (original)
+++ qpid/proton/trunk/proton-c/include/proton/codec.h Fri Feb 15 07:08:48 2013
@@ -22,6 +22,7 @@
  *
  */
 
+#include <proton/import_export.h>
 #include <proton/types.h>
 #ifndef __cplusplus
 #include <stdbool.h>
@@ -92,94 +93,94 @@ typedef struct {
 
 typedef struct pn_data_t pn_data_t;
 
-pn_data_t *pn_data(size_t capacity);
-void pn_data_free(pn_data_t *data);
-int pn_data_errno(pn_data_t *data);
-const char *pn_data_error(pn_data_t *data);
-int pn_data_vfill(pn_data_t *data, const char *fmt, va_list ap);
-int pn_data_fill(pn_data_t *data, const char *fmt, ...);
-int pn_data_vscan(pn_data_t *data, const char *fmt, va_list ap);
-int pn_data_scan(pn_data_t *data, const char *fmt, ...);
-
-void pn_data_clear(pn_data_t *data);
-size_t pn_data_size(pn_data_t *data);
-void pn_data_rewind(pn_data_t *data);
-bool pn_data_next(pn_data_t *data);
-bool pn_data_prev(pn_data_t *data);
-bool pn_data_enter(pn_data_t *data);
-bool pn_data_exit(pn_data_t *data);
-
-pn_type_t pn_data_type(pn_data_t *data);
-
-int pn_data_print(pn_data_t *data);
-int pn_data_format(pn_data_t *data, char *bytes, size_t *size);
-ssize_t pn_data_encode(pn_data_t *data, char *bytes, size_t size);
-ssize_t pn_data_decode(pn_data_t *data, const char *bytes, size_t size);
-
-int pn_data_put_list(pn_data_t *data);
-int pn_data_put_map(pn_data_t *data);
-int pn_data_put_array(pn_data_t *data, bool described, pn_type_t type);
-int pn_data_put_described(pn_data_t *data);
-int pn_data_put_null(pn_data_t *data);
-int pn_data_put_bool(pn_data_t *data, bool b);
-int pn_data_put_ubyte(pn_data_t *data, uint8_t ub);
-int pn_data_put_byte(pn_data_t *data, int8_t b);
-int pn_data_put_ushort(pn_data_t *data, uint16_t us);
-int pn_data_put_short(pn_data_t *data, int16_t s);
-int pn_data_put_uint(pn_data_t *data, uint32_t ui);
-int pn_data_put_int(pn_data_t *data, int32_t i);
-int pn_data_put_char(pn_data_t *data, pn_char_t c);
-int pn_data_put_ulong(pn_data_t *data, uint64_t ul);
-int pn_data_put_long(pn_data_t *data, int64_t l);
-int pn_data_put_timestamp(pn_data_t *data, pn_timestamp_t t);
-int pn_data_put_float(pn_data_t *data, float f);
-int pn_data_put_double(pn_data_t *data, double d);
-int pn_data_put_decimal32(pn_data_t *data, pn_decimal32_t d);
-int pn_data_put_decimal64(pn_data_t *data, pn_decimal64_t d);
-int pn_data_put_decimal128(pn_data_t *data, pn_decimal128_t d);
-int pn_data_put_uuid(pn_data_t *data, pn_uuid_t u);
-int pn_data_put_binary(pn_data_t *data, pn_bytes_t bytes);
-int pn_data_put_string(pn_data_t *data, pn_bytes_t string);
-int pn_data_put_symbol(pn_data_t *data, pn_bytes_t symbol);
-int pn_data_put_atom(pn_data_t *data, pn_atom_t atom);
-
-size_t pn_data_get_list(pn_data_t *data);
-size_t pn_data_get_map(pn_data_t *data);
-size_t pn_data_get_array(pn_data_t *data);
-bool pn_data_is_array_described(pn_data_t *data);
-pn_type_t pn_data_get_array_type(pn_data_t *data);
-bool pn_data_is_described(pn_data_t *data);
-bool pn_data_is_null(pn_data_t *data);
-bool pn_data_get_bool(pn_data_t *data);
-uint8_t pn_data_get_ubyte(pn_data_t *data);
-int8_t pn_data_get_byte(pn_data_t *data);
-uint16_t pn_data_get_ushort(pn_data_t *data);
-int16_t pn_data_get_short(pn_data_t *data);
-uint32_t pn_data_get_uint(pn_data_t *data);
-int32_t pn_data_get_int(pn_data_t *data);
-pn_char_t pn_data_get_char(pn_data_t *data);
-uint64_t pn_data_get_ulong(pn_data_t *data);
-int64_t pn_data_get_long(pn_data_t *data);
-pn_timestamp_t pn_data_get_timestamp(pn_data_t *data);
-float pn_data_get_float(pn_data_t *data);
-double pn_data_get_double(pn_data_t *data);
-pn_decimal32_t pn_data_get_decimal32(pn_data_t *data);
-pn_decimal64_t pn_data_get_decimal64(pn_data_t *data);
-pn_decimal128_t pn_data_get_decimal128(pn_data_t *data);
-pn_uuid_t pn_data_get_uuid(pn_data_t *data);
-pn_bytes_t pn_data_get_binary(pn_data_t *data);
-pn_bytes_t pn_data_get_string(pn_data_t *data);
-pn_bytes_t pn_data_get_symbol(pn_data_t *data);
-pn_bytes_t pn_data_get_bytes(pn_data_t *data);
-pn_atom_t pn_data_get_atom(pn_data_t *data);
-
-int pn_data_copy(pn_data_t *data, pn_data_t *src);
-int pn_data_append(pn_data_t *data, pn_data_t *src);
-int pn_data_appendn(pn_data_t *data, pn_data_t *src, int limit);
-void pn_data_narrow(pn_data_t *data);
-void pn_data_widen(pn_data_t *data);
+PN_EXTERN pn_data_t *pn_data(size_t capacity);
+PN_EXTERN void pn_data_free(pn_data_t *data);
+PN_EXTERN int pn_data_errno(pn_data_t *data);
+PN_EXTERN const char *pn_data_error(pn_data_t *data);
+PN_EXTERN int pn_data_vfill(pn_data_t *data, const char *fmt, va_list ap);
+PN_EXTERN int pn_data_fill(pn_data_t *data, const char *fmt, ...);
+PN_EXTERN int pn_data_vscan(pn_data_t *data, const char *fmt, va_list ap);
+PN_EXTERN int pn_data_scan(pn_data_t *data, const char *fmt, ...);
+
+PN_EXTERN void pn_data_clear(pn_data_t *data);
+PN_EXTERN size_t pn_data_size(pn_data_t *data);
+PN_EXTERN void pn_data_rewind(pn_data_t *data);
+PN_EXTERN bool pn_data_next(pn_data_t *data);
+PN_EXTERN bool pn_data_prev(pn_data_t *data);
+PN_EXTERN bool pn_data_enter(pn_data_t *data);
+PN_EXTERN bool pn_data_exit(pn_data_t *data);
+
+PN_EXTERN pn_type_t pn_data_type(pn_data_t *data);
+
+PN_EXTERN int pn_data_print(pn_data_t *data);
+PN_EXTERN int pn_data_format(pn_data_t *data, char *bytes, size_t *size);
+PN_EXTERN ssize_t pn_data_encode(pn_data_t *data, char *bytes, size_t size);
+PN_EXTERN ssize_t pn_data_decode(pn_data_t *data, const char *bytes, size_t size);
+
+PN_EXTERN int pn_data_put_list(pn_data_t *data);
+PN_EXTERN int pn_data_put_map(pn_data_t *data);
+PN_EXTERN int pn_data_put_array(pn_data_t *data, bool described, pn_type_t type);
+PN_EXTERN int pn_data_put_described(pn_data_t *data);
+PN_EXTERN int pn_data_put_null(pn_data_t *data);
+PN_EXTERN int pn_data_put_bool(pn_data_t *data, bool b);
+PN_EXTERN int pn_data_put_ubyte(pn_data_t *data, uint8_t ub);
+PN_EXTERN int pn_data_put_byte(pn_data_t *data, int8_t b);
+PN_EXTERN int pn_data_put_ushort(pn_data_t *data, uint16_t us);
+PN_EXTERN int pn_data_put_short(pn_data_t *data, int16_t s);
+PN_EXTERN int pn_data_put_uint(pn_data_t *data, uint32_t ui);
+PN_EXTERN int pn_data_put_int(pn_data_t *data, int32_t i);
+PN_EXTERN int pn_data_put_char(pn_data_t *data, pn_char_t c);
+PN_EXTERN int pn_data_put_ulong(pn_data_t *data, uint64_t ul);
+PN_EXTERN int pn_data_put_long(pn_data_t *data, int64_t l);
+PN_EXTERN int pn_data_put_timestamp(pn_data_t *data, pn_timestamp_t t);
+PN_EXTERN int pn_data_put_float(pn_data_t *data, float f);
+PN_EXTERN int pn_data_put_double(pn_data_t *data, double d);
+PN_EXTERN int pn_data_put_decimal32(pn_data_t *data, pn_decimal32_t d);
+PN_EXTERN int pn_data_put_decimal64(pn_data_t *data, pn_decimal64_t d);
+PN_EXTERN int pn_data_put_decimal128(pn_data_t *data, pn_decimal128_t d);
+PN_EXTERN int pn_data_put_uuid(pn_data_t *data, pn_uuid_t u);
+PN_EXTERN int pn_data_put_binary(pn_data_t *data, pn_bytes_t bytes);
+PN_EXTERN int pn_data_put_string(pn_data_t *data, pn_bytes_t string);
+PN_EXTERN int pn_data_put_symbol(pn_data_t *data, pn_bytes_t symbol);
+PN_EXTERN int pn_data_put_atom(pn_data_t *data, pn_atom_t atom);
+
+PN_EXTERN size_t pn_data_get_list(pn_data_t *data);
+PN_EXTERN size_t pn_data_get_map(pn_data_t *data);
+PN_EXTERN size_t pn_data_get_array(pn_data_t *data);
+PN_EXTERN bool pn_data_is_array_described(pn_data_t *data);
+PN_EXTERN pn_type_t pn_data_get_array_type(pn_data_t *data);
+PN_EXTERN bool pn_data_is_described(pn_data_t *data);
+PN_EXTERN bool pn_data_is_null(pn_data_t *data);
+PN_EXTERN bool pn_data_get_bool(pn_data_t *data);
+PN_EXTERN uint8_t pn_data_get_ubyte(pn_data_t *data);
+PN_EXTERN int8_t pn_data_get_byte(pn_data_t *data);
+PN_EXTERN uint16_t pn_data_get_ushort(pn_data_t *data);
+PN_EXTERN int16_t pn_data_get_short(pn_data_t *data);
+PN_EXTERN uint32_t pn_data_get_uint(pn_data_t *data);
+PN_EXTERN int32_t pn_data_get_int(pn_data_t *data);
+PN_EXTERN pn_char_t pn_data_get_char(pn_data_t *data);
+PN_EXTERN uint64_t pn_data_get_ulong(pn_data_t *data);
+PN_EXTERN int64_t pn_data_get_long(pn_data_t *data);
+PN_EXTERN pn_timestamp_t pn_data_get_timestamp(pn_data_t *data);
+PN_EXTERN float pn_data_get_float(pn_data_t *data);
+PN_EXTERN double pn_data_get_double(pn_data_t *data);
+PN_EXTERN pn_decimal32_t pn_data_get_decimal32(pn_data_t *data);
+PN_EXTERN pn_decimal64_t pn_data_get_decimal64(pn_data_t *data);
+PN_EXTERN pn_decimal128_t pn_data_get_decimal128(pn_data_t *data);
+PN_EXTERN pn_uuid_t pn_data_get_uuid(pn_data_t *data);
+PN_EXTERN pn_bytes_t pn_data_get_binary(pn_data_t *data);
+PN_EXTERN pn_bytes_t pn_data_get_string(pn_data_t *data);
+PN_EXTERN pn_bytes_t pn_data_get_symbol(pn_data_t *data);
+PN_EXTERN pn_bytes_t pn_data_get_bytes(pn_data_t *data);
+PN_EXTERN pn_atom_t pn_data_get_atom(pn_data_t *data);
+
+PN_EXTERN int pn_data_copy(pn_data_t *data, pn_data_t *src);
+PN_EXTERN int pn_data_append(pn_data_t *data, pn_data_t *src);
+PN_EXTERN int pn_data_appendn(pn_data_t *data, pn_data_t *src, int limit);
+PN_EXTERN void pn_data_narrow(pn_data_t *data);
+PN_EXTERN void pn_data_widen(pn_data_t *data);
 
-void pn_data_dump(pn_data_t *data);
+PN_EXTERN void pn_data_dump(pn_data_t *data);
 
 #ifdef __cplusplus
 }

Modified: qpid/proton/trunk/proton-c/include/proton/cproton.i
URL: http://svn.apache.org/viewvc/qpid/proton/trunk/proton-c/include/proton/cproton.i?rev=1446466&r1=1446465&r2=1446466&view=diff
==============================================================================
--- qpid/proton/trunk/proton-c/include/proton/cproton.i (original)
+++ qpid/proton/trunk/proton-c/include/proton/cproton.i Fri Feb 15 07:08:48 2013
@@ -28,6 +28,7 @@ typedef unsigned long long int uint64_t;
 typedef long long int int64_t;
 
 /* Parse these interface header files to generate APIs for script languages */
+%include "proton/import_export.h"
 %include "proton/types.h"
 %ignore pn_error_format;
 %ignore pn_error_vformat;

Modified: qpid/proton/trunk/proton-c/include/proton/driver.h
URL: http://svn.apache.org/viewvc/qpid/proton/trunk/proton-c/include/proton/driver.h?rev=1446466&r1=1446465&r2=1446466&view=diff
==============================================================================
--- qpid/proton/trunk/proton-c/include/proton/driver.h (original)
+++ qpid/proton/trunk/proton-c/include/proton/driver.h Fri Feb 15 07:08:48 2013
@@ -22,6 +22,7 @@
  *
  */
 
+#include <proton/import_export.h>
 #include <proton/error.h>
 #include <proton/engine.h>
 #include <proton/sasl.h>
@@ -60,7 +61,7 @@ typedef enum {
  *  Call pn_driver_free() to release the driver object.
  *  @return new driver object, NULL if error
  */
-pn_driver_t *pn_driver(void);
+PN_EXTERN pn_driver_t *pn_driver(void);
 
 /** Return the most recent error code.
  *
@@ -68,7 +69,7 @@ pn_driver_t *pn_driver(void);
  *
  * @return the most recent error text for d
  */
-int pn_driver_errno(pn_driver_t *d);
+PN_EXTERN int pn_driver_errno(pn_driver_t *d);
 
 /** Return the most recent error text for d.
  *
@@ -76,7 +77,7 @@ int pn_driver_errno(pn_driver_t *d);
  *
  * @return the most recent error text for d
  */
-const char *pn_driver_error(pn_driver_t *d);
+PN_EXTERN const char *pn_driver_error(pn_driver_t *d);
 
 /** Set the tracing level for the given driver.
  *
@@ -84,7 +85,7 @@ const char *pn_driver_error(pn_driver_t 
  * @param[in] trace the trace level to use.
  * @todo pn_trace_t needs documentation
  */
-void pn_driver_trace(pn_driver_t *driver, pn_trace_t trace);
+PN_EXTERN void pn_driver_trace(pn_driver_t *driver, pn_trace_t trace);
 
 /** Force pn_driver_wait() to return
  *
@@ -92,7 +93,7 @@ void pn_driver_trace(pn_driver_t *driver
  *
  * @return zero on success, an error code on failure
  */
-int pn_driver_wakeup(pn_driver_t *driver);
+PN_EXTERN int pn_driver_wakeup(pn_driver_t *driver);
 
 /** Wait for an active connector or listener
  *
@@ -102,14 +103,14 @@ int pn_driver_wakeup(pn_driver_t *driver
  *
  * @return zero on success, an error code on failure
  */
-int pn_driver_wait(pn_driver_t *driver, int timeout);
+PN_EXTERN int pn_driver_wait(pn_driver_t *driver, int timeout);
 
 /** Get the next listener with pending data in the driver.
  *
  * @param[in] driver the driver
  * @return NULL if no active listener available
  */
-pn_listener_t *pn_driver_listener(pn_driver_t *driver);
+PN_EXTERN pn_listener_t *pn_driver_listener(pn_driver_t *driver);
 
 /** Get the next active connector in the driver.
  *
@@ -119,7 +120,7 @@ pn_listener_t *pn_driver_listener(pn_dri
  * @param[in] driver the driver
  * @return NULL if no active connector available
  */
-pn_connector_t *pn_driver_connector(pn_driver_t *driver);
+PN_EXTERN pn_connector_t *pn_driver_connector(pn_driver_t *driver);
 
 /** Free the driver allocated via pn_driver, and all associated
  *  listeners and connectors.
@@ -127,7 +128,7 @@ pn_connector_t *pn_driver_connector(pn_d
  * @param[in] driver the driver to free, no longer valid on
  *                   return
  */
-void pn_driver_free(pn_driver_t *driver);
+PN_EXTERN void pn_driver_free(pn_driver_t *driver);
 
 
 /** pn_listener - the server API **/
@@ -141,7 +142,7 @@ void pn_driver_free(pn_driver_t *driver)
  *                    pn_listener_context()
  * @return a new listener on the given host:port, NULL if error
  */
-pn_listener_t *pn_listener(pn_driver_t *driver, const char *host,
+PN_EXTERN pn_listener_t *pn_listener(pn_driver_t *driver, const char *host,
                            const char *port, void* context);
 
 /** Access the head listener for a driver.
@@ -150,7 +151,7 @@ pn_listener_t *pn_listener(pn_driver_t *
  *
  * @return the head listener for driver or NULL if there is none
  */
-pn_listener_t *pn_listener_head(pn_driver_t *driver);
+PN_EXTERN pn_listener_t *pn_listener_head(pn_driver_t *driver);
 
 /** Access the next listener.
  *
@@ -159,19 +160,19 @@ pn_listener_t *pn_listener_head(pn_drive
  *
  * @return the next listener
  */
-pn_listener_t *pn_listener_next(pn_listener_t *listener);
+PN_EXTERN pn_listener_t *pn_listener_next(pn_listener_t *listener);
 
 /**
  * @todo pn_listener_trace needs documentation
  */
-void pn_listener_trace(pn_listener_t *listener, pn_trace_t trace);
+PN_EXTERN void pn_listener_trace(pn_listener_t *listener, pn_trace_t trace);
 
 /** Accept a connection that is pending on the listener.
  *
  * @param[in] listener the listener to accept the connection on
  * @return a new connector for the remote, or NULL on error
  */
-pn_connector_t *pn_listener_accept(pn_listener_t *listener);
+PN_EXTERN pn_connector_t *pn_listener_accept(pn_listener_t *listener);
 
 /** Access the application context that is associated with the listener.
  *
@@ -179,15 +180,15 @@ pn_connector_t *pn_listener_accept(pn_li
  * @return the application context that was passed to pn_listener() or
  *         pn_listener_fd()
  */
-void *pn_listener_context(pn_listener_t *listener);
+PN_EXTERN void *pn_listener_context(pn_listener_t *listener);
 
-void pn_listener_set_context(pn_listener_t *listener, void *context);
+PN_EXTERN void pn_listener_set_context(pn_listener_t *listener, void *context);
 
 /** Close the socket used by the listener.
  *
  * @param[in] listener the listener whose socket will be closed.
  */
-void pn_listener_close(pn_listener_t *listener);
+PN_EXTERN void pn_listener_close(pn_listener_t *listener);
 
 /** Frees the given listener.
  *
@@ -196,7 +197,7 @@ void pn_listener_close(pn_listener_t *li
  * @param[in] listener the listener object to free, no longer valid
  *            on return
  */
-void pn_listener_free(pn_listener_t *listener);
+PN_EXTERN void pn_listener_free(pn_listener_t *listener);
 
 
 
@@ -212,7 +213,7 @@ void pn_listener_free(pn_listener_t *lis
  *                    pn_connector_context() @return a new connector
  *                    to the given remote, or NULL on error.
  */
-pn_connector_t *pn_connector(pn_driver_t *driver, const char *host,
+PN_EXTERN pn_connector_t *pn_connector(pn_driver_t *driver, const char *host,
                              const char *port, void* context);
 
 /** Access the head connector for a driver.
@@ -221,7 +222,7 @@ pn_connector_t *pn_connector(pn_driver_t
  *
  * @return the head connector for driver or NULL if there is none
  */
-pn_connector_t *pn_connector_head(pn_driver_t *driver);
+PN_EXTERN pn_connector_t *pn_connector_head(pn_driver_t *driver);
 
 /** Access the next connector.
  *
@@ -230,14 +231,14 @@ pn_connector_t *pn_connector_head(pn_dri
  *
  * @return the next connector
  */
-pn_connector_t *pn_connector_next(pn_connector_t *connector);
+PN_EXTERN pn_connector_t *pn_connector_next(pn_connector_t *connector);
 
 /** Set the tracing level for the given connector.
  *
  * @param[in] connector the connector to trace
  * @param[in] trace the trace level to use.
  */
-void pn_connector_trace(pn_connector_t *connector, pn_trace_t trace);
+PN_EXTERN void pn_connector_trace(pn_connector_t *connector, pn_trace_t trace);
 
 /** Service the given connector.
  *
@@ -246,7 +247,7 @@ void pn_connector_trace(pn_connector_t *
  *
  * @param[in] connector the connector to process.
  */
-void pn_connector_process(pn_connector_t *connector);
+PN_EXTERN void pn_connector_process(pn_connector_t *connector);
 
 /** Access the listener which opened this connector.
  *
@@ -255,7 +256,7 @@ void pn_connector_process(pn_connector_t
  *         connector has no listener (e.g. an outbound client
  *         connection)
  */
-pn_listener_t *pn_connector_listener(pn_connector_t *connector);
+PN_EXTERN pn_listener_t *pn_connector_listener(pn_connector_t *connector);
 
 /** Access the Authentication and Security context of the connector.
  *
@@ -264,7 +265,7 @@ pn_listener_t *pn_connector_listener(pn_
  * @return the Authentication and Security context for the connector,
  *         or NULL if none
  */
-pn_sasl_t *pn_connector_sasl(pn_connector_t *connector);
+PN_EXTERN pn_sasl_t *pn_connector_sasl(pn_connector_t *connector);
 
 /** Access the AMQP Connection associated with the connector.
  *
@@ -272,7 +273,7 @@ pn_sasl_t *pn_connector_sasl(pn_connecto
  *                      returned
  * @return the connection context for the connector, or NULL if none
  */
-pn_connection_t *pn_connector_connection(pn_connector_t *connector);
+PN_EXTERN pn_connection_t *pn_connector_connection(pn_connector_t *connector);
 
 /** Assign the AMQP Connection associated with the connector.
  *
@@ -280,7 +281,7 @@ pn_connection_t *pn_connector_connection
  * @param[in] connection the connection to associate with the
  *                       connector
  */
-void pn_connector_set_connection(pn_connector_t *connector, pn_connection_t *connection);
+PN_EXTERN void pn_connector_set_connection(pn_connector_t *connector, pn_connection_t *connection);
 
 /** Access the application context that is associated with the
  *  connector.
@@ -290,7 +291,7 @@ void pn_connector_set_connection(pn_conn
  * @return the application context that was passed to pn_connector()
  *         or pn_connector_fd()
  */
-void *pn_connector_context(pn_connector_t *connector);
+PN_EXTERN void *pn_connector_context(pn_connector_t *connector);
 
 /** Assign a new application context to the connector.
  *
@@ -298,26 +299,26 @@ void *pn_connector_context(pn_connector_
  * @param[in] context new application context to associate with the
  *                    connector
  */
-void pn_connector_set_context(pn_connector_t *connector, void *context);
+PN_EXTERN void pn_connector_set_context(pn_connector_t *connector, void *context);
 
 /** Access the transport used by this connector.
  *
  * @param[in] connector connector whose transport will be returned
  * @return the transport, or NULL if none
  */
-pn_transport_t *pn_connector_transport(pn_connector_t *connector);
+PN_EXTERN pn_transport_t *pn_connector_transport(pn_connector_t *connector);
 
 /** Close the socket used by the connector.
  *
  * @param[in] connector the connector whose socket will be closed
  */
-void pn_connector_close(pn_connector_t *connector);
+PN_EXTERN void pn_connector_close(pn_connector_t *connector);
 
 /** Determine if the connector is closed.
  *
  * @return True if closed, otherwise false
  */
-bool pn_connector_closed(pn_connector_t *connector);
+PN_EXTERN bool pn_connector_closed(pn_connector_t *connector);
 
 /** Destructor for the given connector.
  *
@@ -326,7 +327,7 @@ bool pn_connector_closed(pn_connector_t 
  * @param[in] connector the connector object to free. No longer
  *                      valid on return
  */
-void pn_connector_free(pn_connector_t *connector);
+PN_EXTERN void pn_connector_free(pn_connector_t *connector);
 
 /** Activate a connector when a criteria is met
  *
@@ -336,7 +337,7 @@ void pn_connector_free(pn_connector_t *c
  * @param[in] connector The connector object to activate
  * @param[in] criteria  The criteria that must be met prior to activating the connector
  */
-void pn_connector_activate(pn_connector_t *connector, pn_activate_criteria_t criteria);
+PN_EXTERN void pn_connector_activate(pn_connector_t *connector, pn_activate_criteria_t criteria);
 
 /** Return the activation status of the connector for a criteria
  *
@@ -352,7 +353,7 @@ void pn_connector_activate(pn_connector_
  *                      in the work list?"
  * @return true iff the criteria is activated on the connector.
  */
-bool pn_connector_activated(pn_connector_t *connector, pn_activate_criteria_t criteria);
+PN_EXTERN bool pn_connector_activated(pn_connector_t *connector, pn_activate_criteria_t criteria);
 
 
 #ifdef __cplusplus

Modified: qpid/proton/trunk/proton-c/include/proton/driver_extras.h
URL: http://svn.apache.org/viewvc/qpid/proton/trunk/proton-c/include/proton/driver_extras.h?rev=1446466&r1=1446465&r2=1446466&view=diff
==============================================================================
--- qpid/proton/trunk/proton-c/include/proton/driver_extras.h (original)
+++ qpid/proton/trunk/proton-c/include/proton/driver_extras.h Fri Feb 15 07:08:48 2013
@@ -26,6 +26,8 @@
 extern "C" {
 #endif
 
+#include <proton/import_export.h>
+
 /** @file
  * Additional API for the Driver Layer.
  *
@@ -48,7 +50,7 @@ typedef int pn_socket_t;
  *                    pn_listener_context()
  * @return a new listener on the given host:port, NULL if error
  */
-pn_listener_t *pn_listener_fd(pn_driver_t *driver, pn_socket_t fd, void *context);
+PN_EXTERN pn_listener_t *pn_listener_fd(pn_driver_t *driver, pn_socket_t fd, void *context);
 
 /** Create a connector using the existing file descriptor.
  *
@@ -58,7 +60,7 @@ pn_listener_t *pn_listener_fd(pn_driver_
  *                    pn_connector_context()
  * @return a new connector to the given host:port, NULL if error.
  */
-pn_connector_t *pn_connector_fd(pn_driver_t *driver, pn_socket_t fd, void *context);
+PN_EXTERN pn_connector_t *pn_connector_fd(pn_driver_t *driver, pn_socket_t fd, void *context);
 
 
 #ifdef __cplusplus

Modified: qpid/proton/trunk/proton-c/include/proton/engine.h
URL: http://svn.apache.org/viewvc/qpid/proton/trunk/proton-c/include/proton/engine.h?rev=1446466&r1=1446465&r2=1446466&view=diff
==============================================================================
--- qpid/proton/trunk/proton-c/include/proton/engine.h (original)
+++ qpid/proton/trunk/proton-c/include/proton/engine.h Fri Feb 15 07:08:48 2013
@@ -22,6 +22,7 @@
  *
  */
 
+#include <proton/import_export.h>
 #ifndef __cplusplus
 #include <stdbool.h>
 #endif
@@ -116,30 +117,30 @@ typedef int pn_trace_t;
  *
  * @return pointer to a new connection object.
  */
-pn_connection_t *pn_connection(void);
+PN_EXTERN pn_connection_t *pn_connection(void);
 
 /** Retrieve the state of the connection.
  *
  * @param[in] connection the connection
  * @return the connection's state flags
  */
-pn_state_t pn_connection_state(pn_connection_t *connection);
+PN_EXTERN pn_state_t pn_connection_state(pn_connection_t *connection);
 /** @todo: needs documentation */
-pn_error_t *pn_connection_error(pn_connection_t *connection);
+PN_EXTERN pn_error_t *pn_connection_error(pn_connection_t *connection);
 /** @todo: needs documentation */
-const char *pn_connection_get_container(pn_connection_t *connection);
+PN_EXTERN const char *pn_connection_get_container(pn_connection_t *connection);
 /** @todo: needs documentation */
-void pn_connection_set_container(pn_connection_t *connection, const char *container);
+PN_EXTERN void pn_connection_set_container(pn_connection_t *connection, const char *container);
 /** @todo: needs documentation */
-const char *pn_connection_get_hostname(pn_connection_t *connection);
+PN_EXTERN const char *pn_connection_get_hostname(pn_connection_t *connection);
 /** @todo: needs documentation */
-void pn_connection_set_hostname(pn_connection_t *connection, const char *hostname);
-const char *pn_connection_remote_container(pn_connection_t *connection);
-const char *pn_connection_remote_hostname(pn_connection_t *connection);
-pn_data_t *pn_connection_offered_capabilities(pn_connection_t *connection);
-pn_data_t *pn_connection_desired_capabilities(pn_connection_t *connection);
-pn_data_t *pn_connection_remote_offered_capabilities(pn_connection_t *connection);
-pn_data_t *pn_connection_remote_desired_capabilities(pn_connection_t *connection);
+PN_EXTERN void pn_connection_set_hostname(pn_connection_t *connection, const char *hostname);
+PN_EXTERN const char *pn_connection_remote_container(pn_connection_t *connection);
+PN_EXTERN const char *pn_connection_remote_hostname(pn_connection_t *connection);
+PN_EXTERN pn_data_t *pn_connection_offered_capabilities(pn_connection_t *connection);
+PN_EXTERN pn_data_t *pn_connection_desired_capabilities(pn_connection_t *connection);
+PN_EXTERN pn_data_t *pn_connection_remote_offered_capabilities(pn_connection_t *connection);
+PN_EXTERN pn_data_t *pn_connection_remote_desired_capabilities(pn_connection_t *connection);
 
 
 /** Extracts the first delivery on the connection that has pending
@@ -157,7 +158,7 @@ pn_data_t *pn_connection_remote_desired_
  * @return the first delivery object that needs to be serviced, else
  * NULL if none
  */
-pn_delivery_t *pn_work_head(pn_connection_t *connection);
+PN_EXTERN pn_delivery_t *pn_work_head(pn_connection_t *connection);
 
 /** Get the next delivery on the connection that needs has pending
  *  operations.
@@ -167,7 +168,7 @@ pn_delivery_t *pn_work_head(pn_connectio
  * @return the next delivery that has pending operations, else
  * NULL if none
  */
-pn_delivery_t *pn_work_next(pn_delivery_t *delivery);
+PN_EXTERN pn_delivery_t *pn_work_next(pn_delivery_t *delivery);
 
 /** Factory for creating a new session on the connection.
  *
@@ -177,7 +178,7 @@ pn_delivery_t *pn_work_next(pn_delivery_
  * @param[in] connection the session will exist over this connection
  * @return pointer to new session
  */
-pn_session_t *pn_session(pn_connection_t *connection);
+PN_EXTERN pn_session_t *pn_session(pn_connection_t *connection);
 
 /** Factory for creating a transport.
  *
@@ -187,16 +188,16 @@ pn_session_t *pn_session(pn_connection_t
  *
  * @return pointer to new transport
  */
-pn_transport_t *pn_transport(void);
+PN_EXTERN pn_transport_t *pn_transport(void);
 
 /** Binds the transport to an AMQP connection endpoint.
  *
  * @return an error code, or 0 on success
  */
 
-int pn_transport_bind(pn_transport_t *transport, pn_connection_t *connection);
+PN_EXTERN int pn_transport_bind(pn_transport_t *transport, pn_connection_t *connection);
 
-int pn_transport_unbind(pn_transport_t *transport);
+PN_EXTERN int pn_transport_unbind(pn_transport_t *transport);
 
 /** Retrieve the first Session that matches the given state mask.
  *
@@ -212,7 +213,7 @@ int pn_transport_unbind(pn_transport_t *
  * @return the first session owned by the connection that matches the
  * mask, else NULL if no sessions match
  */
-pn_session_t *pn_session_head(pn_connection_t *connection, pn_state_t state);
+PN_EXTERN pn_session_t *pn_session_head(pn_connection_t *connection, pn_state_t state);
 
 /** Retrieve the next Session that matches the given state mask.
  *
@@ -226,7 +227,7 @@ pn_session_t *pn_session_head(pn_connect
  * @return the next session owned by the connection that matches the
  * mask, else NULL if no sessions match
  */
-pn_session_t *pn_session_next(pn_session_t *session, pn_state_t state);
+PN_EXTERN pn_session_t *pn_session_next(pn_session_t *session, pn_state_t state);
 
 /** Retrieve the first Link that matches the given state mask.
  *
@@ -242,7 +243,7 @@ pn_session_t *pn_session_next(pn_session
  * @return the first Link owned by the connection that matches the
  * mask, else NULL if no Links match
  */
-pn_link_t *pn_link_head(pn_connection_t *connection, pn_state_t state);
+PN_EXTERN pn_link_t *pn_link_head(pn_connection_t *connection, pn_state_t state);
 
 /** Retrieve the next Link that matches the given state mask.
  *
@@ -256,12 +257,12 @@ pn_link_t *pn_link_head(pn_connection_t 
  * @return the next session owned by the connection that matches the
  * mask, else NULL if no sessions match
  */
-pn_link_t *pn_link_next(pn_link_t *link, pn_state_t state);
+PN_EXTERN pn_link_t *pn_link_next(pn_link_t *link, pn_state_t state);
 
-void pn_connection_reset(pn_connection_t *connection);
-void pn_connection_open(pn_connection_t *connection);
-void pn_connection_close(pn_connection_t *connection);
-void pn_connection_free(pn_connection_t *connection);
+PN_EXTERN void pn_connection_reset(pn_connection_t *connection);
+PN_EXTERN void pn_connection_open(pn_connection_t *connection);
+PN_EXTERN void pn_connection_close(pn_connection_t *connection);
+PN_EXTERN void pn_connection_free(pn_connection_t *connection);
 
 /** Access the application context that is associated with the
  *  connection.
@@ -270,7 +271,7 @@ void pn_connection_free(pn_connection_t 
  *
  * @return the application context that was passed to pn_connection_set_context()
  */
-void *pn_connection_get_context(pn_connection_t *connection);
+PN_EXTERN void *pn_connection_get_context(pn_connection_t *connection);
 
 /** Assign a new application context to the connection.
  *
@@ -278,13 +279,13 @@ void *pn_connection_get_context(pn_conne
  * @param[in] context new application context to associate with the
  *                    connection
  */
-void pn_connection_set_context(pn_connection_t *connection, void *context);
+PN_EXTERN void pn_connection_set_context(pn_connection_t *connection, void *context);
 
 
 // transport
-pn_error_t *pn_transport_error(pn_transport_t *transport);
-ssize_t pn_transport_input(pn_transport_t *transport, const char *bytes, size_t available);
-ssize_t pn_transport_output(pn_transport_t *transport, char *bytes, size_t size);
+PN_EXTERN pn_error_t *pn_transport_error(pn_transport_t *transport);
+PN_EXTERN ssize_t pn_transport_input(pn_transport_t *transport, const char *bytes, size_t available);
+PN_EXTERN ssize_t pn_transport_output(pn_transport_t *transport, char *bytes, size_t size);
 /** Process any pending transport timer events.
  *
  * This method should be called after all pending input has been processed by the
@@ -298,135 +299,135 @@ ssize_t pn_transport_output(pn_transport
  * transport.  The caller must invoke pn_transport_tick again at least once at or before
  * this deadline occurs.
  */
-pn_timestamp_t pn_transport_tick(pn_transport_t *transport, pn_timestamp_t now);
-void pn_transport_trace(pn_transport_t *transport, pn_trace_t trace);
+PN_EXTERN pn_timestamp_t pn_transport_tick(pn_transport_t *transport, pn_timestamp_t now);
+PN_EXTERN void pn_transport_trace(pn_transport_t *transport, pn_trace_t trace);
 // max frame of zero means "unlimited"
-uint32_t pn_transport_get_max_frame(pn_transport_t *transport);
-void pn_transport_set_max_frame(pn_transport_t *transport, uint32_t size);
-uint32_t pn_transport_get_remote_max_frame(pn_transport_t *transport);
+PN_EXTERN uint32_t pn_transport_get_max_frame(pn_transport_t *transport);
+PN_EXTERN void pn_transport_set_max_frame(pn_transport_t *transport, uint32_t size);
+PN_EXTERN uint32_t pn_transport_get_remote_max_frame(pn_transport_t *transport);
 /* timeout of zero means "no timeout" */
-pn_millis_t pn_transport_get_idle_timeout(pn_transport_t *transport);
-void pn_transport_set_idle_timeout(pn_transport_t *transport, pn_millis_t timeout);
-pn_millis_t pn_transport_get_remote_idle_timeout(pn_transport_t *transport);
-uint64_t pn_transport_get_frames_output(const pn_transport_t *transport);
-uint64_t pn_transport_get_frames_input(const pn_transport_t *transport);
-void pn_transport_free(pn_transport_t *transport);
+PN_EXTERN pn_millis_t pn_transport_get_idle_timeout(pn_transport_t *transport);
+PN_EXTERN void pn_transport_set_idle_timeout(pn_transport_t *transport, pn_millis_t timeout);
+PN_EXTERN pn_millis_t pn_transport_get_remote_idle_timeout(pn_transport_t *transport);
+PN_EXTERN uint64_t pn_transport_get_frames_output(const pn_transport_t *transport);
+PN_EXTERN uint64_t pn_transport_get_frames_input(const pn_transport_t *transport);
+PN_EXTERN void pn_transport_free(pn_transport_t *transport);
 
 // session
-pn_state_t pn_session_state(pn_session_t *session);
-pn_error_t *pn_session_error(pn_session_t *session);
-pn_connection_t *pn_session_connection(pn_session_t *session);
-void pn_session_open(pn_session_t *session);
-void pn_session_close(pn_session_t *session);
-void pn_session_free(pn_session_t *session);
-void *pn_session_get_context(pn_session_t *session);
-void pn_session_set_context(pn_session_t *session, void *context);
+PN_EXTERN pn_state_t pn_session_state(pn_session_t *session);
+PN_EXTERN pn_error_t *pn_session_error(pn_session_t *session);
+PN_EXTERN pn_connection_t *pn_session_connection(pn_session_t *session);
+PN_EXTERN void pn_session_open(pn_session_t *session);
+PN_EXTERN void pn_session_close(pn_session_t *session);
+PN_EXTERN void pn_session_free(pn_session_t *session);
+PN_EXTERN void *pn_session_get_context(pn_session_t *session);
+PN_EXTERN void pn_session_set_context(pn_session_t *session, void *context);
 
 // link
-pn_link_t *pn_sender(pn_session_t *session, const char *name);
-pn_link_t *pn_receiver(pn_session_t *session, const char *name);
-const char *pn_link_name(pn_link_t *link);
-bool pn_link_is_sender(pn_link_t *link);
-bool pn_link_is_receiver(pn_link_t *link);
-pn_state_t pn_link_state(pn_link_t *link);
-pn_error_t *pn_link_error(pn_link_t *link);
-pn_session_t *pn_link_session(pn_link_t *link);
-pn_terminus_t *pn_link_source(pn_link_t *link);
-pn_terminus_t *pn_link_target(pn_link_t *link);
-pn_terminus_t *pn_link_remote_source(pn_link_t *link);
-pn_terminus_t *pn_link_remote_target(pn_link_t *link);
-pn_delivery_t *pn_link_current(pn_link_t *link);
-bool pn_link_advance(pn_link_t *link);
-int pn_link_credit(pn_link_t *link);
-int pn_link_queued(pn_link_t *link);
-int pn_link_available(pn_link_t *link);
-
-int pn_link_unsettled(pn_link_t *link);
-pn_delivery_t *pn_unsettled_head(pn_link_t *link);
-pn_delivery_t *pn_unsettled_next(pn_delivery_t *delivery);
-
-void pn_link_open(pn_link_t *sender);
-void pn_link_close(pn_link_t *sender);
-void pn_link_free(pn_link_t *sender);
-void *pn_link_get_context(pn_link_t *link);
-void pn_link_set_context(pn_link_t *link, void *context);
+PN_EXTERN pn_link_t *pn_sender(pn_session_t *session, const char *name);
+PN_EXTERN pn_link_t *pn_receiver(pn_session_t *session, const char *name);
+PN_EXTERN const char *pn_link_name(pn_link_t *link);
+PN_EXTERN bool pn_link_is_sender(pn_link_t *link);
+PN_EXTERN bool pn_link_is_receiver(pn_link_t *link);
+PN_EXTERN pn_state_t pn_link_state(pn_link_t *link);
+PN_EXTERN pn_error_t *pn_link_error(pn_link_t *link);
+PN_EXTERN pn_session_t *pn_link_session(pn_link_t *link);
+PN_EXTERN pn_terminus_t *pn_link_source(pn_link_t *link);
+PN_EXTERN pn_terminus_t *pn_link_target(pn_link_t *link);
+PN_EXTERN pn_terminus_t *pn_link_remote_source(pn_link_t *link);
+PN_EXTERN pn_terminus_t *pn_link_remote_target(pn_link_t *link);
+PN_EXTERN pn_delivery_t *pn_link_current(pn_link_t *link);
+PN_EXTERN bool pn_link_advance(pn_link_t *link);
+PN_EXTERN int pn_link_credit(pn_link_t *link);
+PN_EXTERN int pn_link_queued(pn_link_t *link);
+PN_EXTERN int pn_link_available(pn_link_t *link);
+
+PN_EXTERN int pn_link_unsettled(pn_link_t *link);
+PN_EXTERN pn_delivery_t *pn_unsettled_head(pn_link_t *link);
+PN_EXTERN pn_delivery_t *pn_unsettled_next(pn_delivery_t *delivery);
+
+PN_EXTERN void pn_link_open(pn_link_t *sender);
+PN_EXTERN void pn_link_close(pn_link_t *sender);
+PN_EXTERN void pn_link_free(pn_link_t *sender);
+PN_EXTERN void *pn_link_get_context(pn_link_t *link);
+PN_EXTERN void pn_link_set_context(pn_link_t *link, void *context);
 
 // sender
-void pn_link_offered(pn_link_t *sender, int credit);
-ssize_t pn_link_send(pn_link_t *sender, const char *bytes, size_t n);
-void pn_link_drained(pn_link_t *sender);
+PN_EXTERN void pn_link_offered(pn_link_t *sender, int credit);
+PN_EXTERN ssize_t pn_link_send(pn_link_t *sender, const char *bytes, size_t n);
+PN_EXTERN void pn_link_drained(pn_link_t *sender);
 //void pn_link_abort(pn_sender_t *sender);
 
 // receiver
-void pn_link_flow(pn_link_t *receiver, int credit);
-void pn_link_drain(pn_link_t *receiver, int credit);
-ssize_t pn_link_recv(pn_link_t *receiver, char *bytes, size_t n);
+PN_EXTERN void pn_link_flow(pn_link_t *receiver, int credit);
+PN_EXTERN void pn_link_drain(pn_link_t *receiver, int credit);
+PN_EXTERN ssize_t pn_link_recv(pn_link_t *receiver, char *bytes, size_t n);
 
 // terminus
-pn_terminus_type_t pn_terminus_get_type(pn_terminus_t *terminus);
-int pn_terminus_set_type(pn_terminus_t *terminus, pn_terminus_type_t type);
+PN_EXTERN pn_terminus_type_t pn_terminus_get_type(pn_terminus_t *terminus);
+PN_EXTERN int pn_terminus_set_type(pn_terminus_t *terminus, pn_terminus_type_t type);
 
-const char *pn_terminus_get_address(pn_terminus_t *terminus);
-int pn_terminus_set_address(pn_terminus_t *terminus, const char *address);
-pn_durability_t pn_terminus_get_durability(pn_terminus_t *terminus);
-int pn_terminus_set_durability(pn_terminus_t *terminus,
+PN_EXTERN const char *pn_terminus_get_address(pn_terminus_t *terminus);
+PN_EXTERN int pn_terminus_set_address(pn_terminus_t *terminus, const char *address);
+PN_EXTERN pn_durability_t pn_terminus_get_durability(pn_terminus_t *terminus);
+PN_EXTERN int pn_terminus_set_durability(pn_terminus_t *terminus,
                                pn_durability_t durability);
-pn_expiry_policy_t pn_terminus_get_expiry_policy(pn_terminus_t *terminus);
-int pn_terminus_set_expiry_policy(pn_terminus_t *terminus, pn_expiry_policy_t policy);
-pn_seconds_t pn_terminus_get_timeout(pn_terminus_t *terminus);
-int pn_terminus_set_timeout(pn_terminus_t *terminus, pn_seconds_t);
-bool pn_terminus_is_dynamic(pn_terminus_t *terminus);
-int pn_terminus_set_dynamic(pn_terminus_t *terminus, bool dynamic);
-pn_data_t *pn_terminus_properties(pn_terminus_t *terminus);
-pn_data_t *pn_terminus_capabilities(pn_terminus_t *terminus);
-pn_data_t *pn_terminus_outcomes(pn_terminus_t *terminus);
-pn_data_t *pn_terminus_filter(pn_terminus_t *terminus);
-int pn_terminus_copy(pn_terminus_t *terminus, pn_terminus_t *src);
+PN_EXTERN pn_expiry_policy_t pn_terminus_get_expiry_policy(pn_terminus_t *terminus);
+PN_EXTERN int pn_terminus_set_expiry_policy(pn_terminus_t *terminus, pn_expiry_policy_t policy);
+PN_EXTERN pn_seconds_t pn_terminus_get_timeout(pn_terminus_t *terminus);
+PN_EXTERN int pn_terminus_set_timeout(pn_terminus_t *terminus, pn_seconds_t);
+PN_EXTERN bool pn_terminus_is_dynamic(pn_terminus_t *terminus);
+PN_EXTERN int pn_terminus_set_dynamic(pn_terminus_t *terminus, bool dynamic);
+PN_EXTERN pn_data_t *pn_terminus_properties(pn_terminus_t *terminus);
+PN_EXTERN pn_data_t *pn_terminus_capabilities(pn_terminus_t *terminus);
+PN_EXTERN pn_data_t *pn_terminus_outcomes(pn_terminus_t *terminus);
+PN_EXTERN pn_data_t *pn_terminus_filter(pn_terminus_t *terminus);
+PN_EXTERN int pn_terminus_copy(pn_terminus_t *terminus, pn_terminus_t *src);
 
 // delivery
-pn_delivery_t *pn_delivery(pn_link_t *link, pn_delivery_tag_t tag);
-pn_delivery_tag_t pn_delivery_tag(pn_delivery_t *delivery);
-pn_link_t *pn_delivery_link(pn_delivery_t *delivery);
+PN_EXTERN pn_delivery_t *pn_delivery(pn_link_t *link, pn_delivery_tag_t tag);
+PN_EXTERN pn_delivery_tag_t pn_delivery_tag(pn_delivery_t *delivery);
+PN_EXTERN pn_link_t *pn_delivery_link(pn_delivery_t *delivery);
 // how do we do delivery state?
-pn_disposition_t pn_delivery_local_state(pn_delivery_t *delivery);
-pn_disposition_t pn_delivery_remote_state(pn_delivery_t *delivery);
-bool pn_delivery_settled(pn_delivery_t *delivery);
-size_t pn_delivery_pending(pn_delivery_t *delivery);
-bool pn_delivery_partial(pn_delivery_t *delivery);
-bool pn_delivery_writable(pn_delivery_t *delivery);
-bool pn_delivery_readable(pn_delivery_t *delivery);
-bool pn_delivery_updated(pn_delivery_t *delivery);
-void pn_delivery_update(pn_delivery_t *delivery, pn_disposition_t disposition);
-void pn_delivery_clear(pn_delivery_t *delivery);
+PN_EXTERN pn_disposition_t pn_delivery_local_state(pn_delivery_t *delivery);
+PN_EXTERN pn_disposition_t pn_delivery_remote_state(pn_delivery_t *delivery);
+PN_EXTERN bool pn_delivery_settled(pn_delivery_t *delivery);
+PN_EXTERN size_t pn_delivery_pending(pn_delivery_t *delivery);
+PN_EXTERN bool pn_delivery_partial(pn_delivery_t *delivery);
+PN_EXTERN bool pn_delivery_writable(pn_delivery_t *delivery);
+PN_EXTERN bool pn_delivery_readable(pn_delivery_t *delivery);
+PN_EXTERN bool pn_delivery_updated(pn_delivery_t *delivery);
+PN_EXTERN void pn_delivery_update(pn_delivery_t *delivery, pn_disposition_t disposition);
+PN_EXTERN void pn_delivery_clear(pn_delivery_t *delivery);
 //int pn_delivery_format(pn_delivery_t *delivery);
-void pn_delivery_settle(pn_delivery_t *delivery);
-void pn_delivery_dump(pn_delivery_t *delivery);
-void *pn_delivery_get_context(pn_delivery_t *delivery);
-void pn_delivery_set_context(pn_delivery_t *delivery, void *context);
+PN_EXTERN void pn_delivery_settle(pn_delivery_t *delivery);
+PN_EXTERN void pn_delivery_dump(pn_delivery_t *delivery);
+PN_EXTERN void *pn_delivery_get_context(pn_delivery_t *delivery);
+PN_EXTERN void pn_delivery_set_context(pn_delivery_t *delivery, void *context);
 
-pn_condition_t *pn_connection_condition(pn_connection_t *connection);
-pn_condition_t *pn_connection_remote_condition(pn_connection_t *connection);
+PN_EXTERN pn_condition_t *pn_connection_condition(pn_connection_t *connection);
+PN_EXTERN pn_condition_t *pn_connection_remote_condition(pn_connection_t *connection);
 
-pn_condition_t *pn_session_condition(pn_session_t *session);
-pn_condition_t *pn_session_remote_condition(pn_session_t *session);
+PN_EXTERN pn_condition_t *pn_session_condition(pn_session_t *session);
+PN_EXTERN pn_condition_t *pn_session_remote_condition(pn_session_t *session);
 
-pn_condition_t *pn_link_condition(pn_link_t *link);
-pn_condition_t *pn_link_remote_condition(pn_link_t *link);
+PN_EXTERN pn_condition_t *pn_link_condition(pn_link_t *link);
+PN_EXTERN pn_condition_t *pn_link_remote_condition(pn_link_t *link);
 
-bool pn_condition_is_set(pn_condition_t *condition);
-void pn_condition_clear(pn_condition_t *condition);
+PN_EXTERN bool pn_condition_is_set(pn_condition_t *condition);
+PN_EXTERN void pn_condition_clear(pn_condition_t *condition);
 
-const char *pn_condition_get_name(pn_condition_t *condition);
-int pn_condition_set_name(pn_condition_t *condition, const char *name);
+PN_EXTERN const char *pn_condition_get_name(pn_condition_t *condition);
+PN_EXTERN int pn_condition_set_name(pn_condition_t *condition, const char *name);
 
-const char *pn_condition_get_description(pn_condition_t *condition);
-int pn_condition_set_description(pn_condition_t *condition, const char *description);
+PN_EXTERN const char *pn_condition_get_description(pn_condition_t *condition);
+PN_EXTERN int pn_condition_set_description(pn_condition_t *condition, const char *description);
 
-pn_data_t *pn_condition_info(pn_condition_t *condition);
+PN_EXTERN pn_data_t *pn_condition_info(pn_condition_t *condition);
 
-bool pn_condition_is_redirect(pn_condition_t *condition);
-const char *pn_condition_redirect_host(pn_condition_t *condition);
-int pn_condition_redirect_port(pn_condition_t *condition);
+PN_EXTERN bool pn_condition_is_redirect(pn_condition_t *condition);
+PN_EXTERN const char *pn_condition_redirect_host(pn_condition_t *condition);
+PN_EXTERN int pn_condition_redirect_port(pn_condition_t *condition);
 
 #ifdef __cplusplus
 }

Modified: qpid/proton/trunk/proton-c/include/proton/error.h
URL: http://svn.apache.org/viewvc/qpid/proton/trunk/proton-c/include/proton/error.h?rev=1446466&r1=1446465&r2=1446466&view=diff
==============================================================================
--- qpid/proton/trunk/proton-c/include/proton/error.h (original)
+++ qpid/proton/trunk/proton-c/include/proton/error.h Fri Feb 15 07:08:48 2013
@@ -22,6 +22,7 @@
  *
  */
 
+#include <proton/import_export.h>
 #include <stdarg.h>
 
 #ifdef __cplusplus
@@ -39,16 +40,16 @@ typedef struct pn_error_t pn_error_t;
 #define PN_TIMEOUT (-7)
 #define PN_INTR (-8)
 
-const char *pn_code(int code);
+PN_EXTERN const char *pn_code(int code);
 
-pn_error_t *pn_error();
-void pn_error_free(pn_error_t *error);
-void pn_error_clear(pn_error_t *error);
-int pn_error_set(pn_error_t *error, int code, const char *text);
-int pn_error_vformat(pn_error_t *error, int code, const char *fmt, va_list ap);
-int pn_error_format(pn_error_t *error, int code, const char *fmt, ...);
-int pn_error_code(pn_error_t *error);
-const char *pn_error_text(pn_error_t *error);
+PN_EXTERN pn_error_t *pn_error();
+PN_EXTERN void pn_error_free(pn_error_t *error);
+PN_EXTERN void pn_error_clear(pn_error_t *error);
+PN_EXTERN int pn_error_set(pn_error_t *error, int code, const char *text);
+PN_EXTERN int pn_error_vformat(pn_error_t *error, int code, const char *fmt, va_list ap);
+PN_EXTERN int pn_error_format(pn_error_t *error, int code, const char *fmt, ...);
+PN_EXTERN int pn_error_code(pn_error_t *error);
+PN_EXTERN const char *pn_error_text(pn_error_t *error);
 
 #ifdef __cplusplus
 }

Modified: qpid/proton/trunk/proton-c/include/proton/framing.h
URL: http://svn.apache.org/viewvc/qpid/proton/trunk/proton-c/include/proton/framing.h?rev=1446466&r1=1446465&r2=1446466&view=diff
==============================================================================
--- qpid/proton/trunk/proton-c/include/proton/framing.h (original)
+++ qpid/proton/trunk/proton-c/include/proton/framing.h Fri Feb 15 07:08:48 2013
@@ -22,6 +22,7 @@
  *
  */
 
+#include <proton/import_export.h>
 #ifndef __cplusplus
 #include <stdint.h>
 #else
@@ -45,8 +46,8 @@ typedef struct {
   const char *payload;
 } pn_frame_t;
 
-size_t pn_read_frame(pn_frame_t *frame, const char *bytes, size_t available);
-size_t pn_write_frame(char *bytes, size_t size, pn_frame_t frame);
+PN_EXTERN size_t pn_read_frame(pn_frame_t *frame, const char *bytes, size_t available);
+PN_EXTERN size_t pn_write_frame(char *bytes, size_t size, pn_frame_t frame);
 
 #ifdef __cplusplus
 }

Added: qpid/proton/trunk/proton-c/include/proton/import_export.h
URL: http://svn.apache.org/viewvc/qpid/proton/trunk/proton-c/include/proton/import_export.h?rev=1446466&view=auto
==============================================================================
--- qpid/proton/trunk/proton-c/include/proton/import_export.h (added)
+++ qpid/proton/trunk/proton-c/include/proton/import_export.h Fri Feb 15 07:08:48 2013
@@ -0,0 +1,57 @@
+#ifndef PROTON_IMPORT_EXPORT_H
+#define PROTON_IMPORT_EXPORT_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.
+ *
+ */
+
+//
+// Compiler specific mechanisms for managing the import and export of
+// symbols between shared objects.
+//
+// PN_EXPORT         - Export declaration
+// PN_IMPORT         - Import declaration
+//
+
+#if defined(WIN32) && !defined(PROTON_DECLARE_STATIC)
+  //
+  // Import and Export definitions for Windows:
+  //
+#  define PN_EXPORT __declspec(dllexport)
+#  define PN_IMPORT __declspec(dllimport)
+#else
+  //
+  // Non-Windows (Linux, etc.) definitions:
+  //
+#  define PN_EXPORT
+#  define PN_IMPORT
+#endif
+
+
+// For core proton library symbols
+
+#ifdef qpid_proton_EXPORTS
+#  define PN_EXTERN PN_EXPORT
+#else
+#  define PN_EXTERN PN_IMPORT
+#endif
+
+
+#endif /* import_export.h */

Modified: qpid/proton/trunk/proton-c/include/proton/message.h
URL: http://svn.apache.org/viewvc/qpid/proton/trunk/proton-c/include/proton/message.h?rev=1446466&r1=1446465&r2=1446466&view=diff
==============================================================================
--- qpid/proton/trunk/proton-c/include/proton/message.h (original)
+++ qpid/proton/trunk/proton-c/include/proton/message.h Fri Feb 15 07:08:48 2013
@@ -22,6 +22,7 @@
  *
  */
 
+#include <proton/import_export.h>
 #include <proton/types.h>
 #include <proton/codec.h>
 #include <sys/types.h>
@@ -44,97 +45,97 @@ typedef enum {
 
 #define PN_DEFAULT_PRIORITY (4)
 
-pn_message_t * pn_message();
-void           pn_message_free(pn_message_t *msg);
+PN_EXTERN pn_message_t * pn_message();
+PN_EXTERN void           pn_message_free(pn_message_t *msg);
 
-void           pn_message_clear(pn_message_t *msg);
-int            pn_message_errno(pn_message_t *msg);
-const char *   pn_message_error(pn_message_t *msg);
+PN_EXTERN void           pn_message_clear(pn_message_t *msg);
+PN_EXTERN int            pn_message_errno(pn_message_t *msg);
+PN_EXTERN const char *   pn_message_error(pn_message_t *msg);
 
-bool           pn_message_is_inferred(pn_message_t *msg);
-int            pn_message_set_inferred(pn_message_t *msg, bool inferred);
+PN_EXTERN bool           pn_message_is_inferred(pn_message_t *msg);
+PN_EXTERN int            pn_message_set_inferred(pn_message_t *msg, bool inferred);
 
 // standard message headers and properties
-bool           pn_message_is_durable            (pn_message_t *msg);
-int            pn_message_set_durable           (pn_message_t *msg, bool durable);
+PN_EXTERN bool           pn_message_is_durable            (pn_message_t *msg);
+PN_EXTERN int            pn_message_set_durable           (pn_message_t *msg, bool durable);
 
-uint8_t        pn_message_get_priority          (pn_message_t *msg);
-int            pn_message_set_priority          (pn_message_t *msg, uint8_t priority);
+PN_EXTERN uint8_t        pn_message_get_priority          (pn_message_t *msg);
+PN_EXTERN int            pn_message_set_priority          (pn_message_t *msg, uint8_t priority);
 
-pn_millis_t    pn_message_get_ttl               (pn_message_t *msg);
-int            pn_message_set_ttl               (pn_message_t *msg, pn_millis_t ttl);
+PN_EXTERN pn_millis_t    pn_message_get_ttl               (pn_message_t *msg);
+PN_EXTERN int            pn_message_set_ttl               (pn_message_t *msg, pn_millis_t ttl);
 
-bool           pn_message_is_first_acquirer     (pn_message_t *msg);
-int            pn_message_set_first_acquirer    (pn_message_t *msg, bool first);
+PN_EXTERN bool           pn_message_is_first_acquirer     (pn_message_t *msg);
+PN_EXTERN int            pn_message_set_first_acquirer    (pn_message_t *msg, bool first);
 
-uint32_t       pn_message_get_delivery_count    (pn_message_t *msg);
-int            pn_message_set_delivery_count    (pn_message_t *msg, uint32_t count);
+PN_EXTERN uint32_t       pn_message_get_delivery_count    (pn_message_t *msg);
+PN_EXTERN int            pn_message_set_delivery_count    (pn_message_t *msg, uint32_t count);
 
-pn_data_t *    pn_message_id                    (pn_message_t *msg);
-pn_atom_t      pn_message_get_id                (pn_message_t *msg);
-int            pn_message_set_id                (pn_message_t *msg, pn_atom_t id);
+PN_EXTERN pn_data_t *    pn_message_id                    (pn_message_t *msg);
+PN_EXTERN pn_atom_t      pn_message_get_id                (pn_message_t *msg);
+PN_EXTERN int            pn_message_set_id                (pn_message_t *msg, pn_atom_t id);
 
-pn_bytes_t     pn_message_get_user_id           (pn_message_t *msg);
-int            pn_message_set_user_id           (pn_message_t *msg, pn_bytes_t user_id);
+PN_EXTERN pn_bytes_t     pn_message_get_user_id           (pn_message_t *msg);
+PN_EXTERN int            pn_message_set_user_id           (pn_message_t *msg, pn_bytes_t user_id);
 
-const char *   pn_message_get_address           (pn_message_t *msg);
-int            pn_message_set_address           (pn_message_t *msg, const char *address);
+PN_EXTERN const char *   pn_message_get_address           (pn_message_t *msg);
+PN_EXTERN int            pn_message_set_address           (pn_message_t *msg, const char *address);
 
-const char *   pn_message_get_subject           (pn_message_t *msg);
-int            pn_message_set_subject           (pn_message_t *msg, const char *subject);
+PN_EXTERN const char *   pn_message_get_subject           (pn_message_t *msg);
+PN_EXTERN int            pn_message_set_subject           (pn_message_t *msg, const char *subject);
 
-const char *   pn_message_get_reply_to          (pn_message_t *msg);
-int            pn_message_set_reply_to          (pn_message_t *msg, const char *reply_to);
+PN_EXTERN const char *   pn_message_get_reply_to          (pn_message_t *msg);
+PN_EXTERN int            pn_message_set_reply_to          (pn_message_t *msg, const char *reply_to);
 
-pn_data_t *    pn_message_correlation_id        (pn_message_t *msg);
-pn_atom_t      pn_message_get_correlation_id    (pn_message_t *msg);
-int            pn_message_set_correlation_id    (pn_message_t *msg, pn_atom_t atom);
+PN_EXTERN pn_data_t *    pn_message_correlation_id        (pn_message_t *msg);
+PN_EXTERN pn_atom_t      pn_message_get_correlation_id    (pn_message_t *msg);
+PN_EXTERN int            pn_message_set_correlation_id    (pn_message_t *msg, pn_atom_t atom);
 
-const char *   pn_message_get_content_type      (pn_message_t *msg);
-int            pn_message_set_content_type      (pn_message_t *msg, const char *type);
+PN_EXTERN const char *   pn_message_get_content_type      (pn_message_t *msg);
+PN_EXTERN int            pn_message_set_content_type      (pn_message_t *msg, const char *type);
 
-const char *   pn_message_get_content_encoding  (pn_message_t *msg);
-int            pn_message_set_content_encoding  (pn_message_t *msg, const char *encoding);
+PN_EXTERN const char *   pn_message_get_content_encoding  (pn_message_t *msg);
+PN_EXTERN int            pn_message_set_content_encoding  (pn_message_t *msg, const char *encoding);
 
-pn_timestamp_t pn_message_get_expiry_time       (pn_message_t *msg);
-int            pn_message_set_expiry_time       (pn_message_t *msg, pn_timestamp_t time);
+PN_EXTERN pn_timestamp_t pn_message_get_expiry_time       (pn_message_t *msg);
+PN_EXTERN int            pn_message_set_expiry_time       (pn_message_t *msg, pn_timestamp_t time);
 
-pn_timestamp_t pn_message_get_creation_time     (pn_message_t *msg);
-int            pn_message_set_creation_time     (pn_message_t *msg, pn_timestamp_t time);
+PN_EXTERN pn_timestamp_t pn_message_get_creation_time     (pn_message_t *msg);
+PN_EXTERN int            pn_message_set_creation_time     (pn_message_t *msg, pn_timestamp_t time);
 
-const char *   pn_message_get_group_id          (pn_message_t *msg);
-int            pn_message_set_group_id          (pn_message_t *msg, const char *group_id);
+PN_EXTERN const char *   pn_message_get_group_id          (pn_message_t *msg);
+PN_EXTERN int            pn_message_set_group_id          (pn_message_t *msg, const char *group_id);
 
-pn_sequence_t  pn_message_get_group_sequence    (pn_message_t *msg);
-int            pn_message_set_group_sequence    (pn_message_t *msg, pn_sequence_t n);
+PN_EXTERN pn_sequence_t  pn_message_get_group_sequence    (pn_message_t *msg);
+PN_EXTERN int            pn_message_set_group_sequence    (pn_message_t *msg, pn_sequence_t n);
 
-const char *   pn_message_get_reply_to_group_id (pn_message_t *msg);
-int            pn_message_set_reply_to_group_id (pn_message_t *msg, const char *reply_to_group_id);
+PN_EXTERN const char *   pn_message_get_reply_to_group_id (pn_message_t *msg);
+PN_EXTERN int            pn_message_set_reply_to_group_id (pn_message_t *msg, const char *reply_to_group_id);
 
-pn_format_t pn_message_get_format(pn_message_t *message);
-int pn_message_set_format(pn_message_t *message, pn_format_t format);
+PN_EXTERN pn_format_t pn_message_get_format(pn_message_t *message);
+PN_EXTERN int pn_message_set_format(pn_message_t *message, pn_format_t format);
 
-int pn_message_load(pn_message_t *message, const char *data, size_t size);
-int pn_message_load_data(pn_message_t *message, const char *data, size_t size);
-int pn_message_load_text(pn_message_t *message, const char *data, size_t size);
-int pn_message_load_amqp(pn_message_t *message, const char *data, size_t size);
-int pn_message_load_json(pn_message_t *message, const char *data, size_t size);
+PN_EXTERN int pn_message_load(pn_message_t *message, const char *data, size_t size);
+PN_EXTERN int pn_message_load_data(pn_message_t *message, const char *data, size_t size);
+PN_EXTERN int pn_message_load_text(pn_message_t *message, const char *data, size_t size);
+PN_EXTERN int pn_message_load_amqp(pn_message_t *message, const char *data, size_t size);
+PN_EXTERN int pn_message_load_json(pn_message_t *message, const char *data, size_t size);
 
-int pn_message_save(pn_message_t *message, char *data, size_t *size);
-int pn_message_save_data(pn_message_t *message, char *data, size_t *size);
-int pn_message_save_text(pn_message_t *message, char *data, size_t *size);
-int pn_message_save_amqp(pn_message_t *message, char *data, size_t *size);
-int pn_message_save_json(pn_message_t *message, char *data, size_t *size);
+PN_EXTERN int pn_message_save(pn_message_t *message, char *data, size_t *size);
+PN_EXTERN int pn_message_save_data(pn_message_t *message, char *data, size_t *size);
+PN_EXTERN int pn_message_save_text(pn_message_t *message, char *data, size_t *size);
+PN_EXTERN int pn_message_save_amqp(pn_message_t *message, char *data, size_t *size);
+PN_EXTERN int pn_message_save_json(pn_message_t *message, char *data, size_t *size);
 
-pn_data_t *pn_message_instructions(pn_message_t *msg);
-pn_data_t *pn_message_annotations(pn_message_t *msg);
-pn_data_t *pn_message_properties(pn_message_t *msg);
-pn_data_t *pn_message_body(pn_message_t *msg);
+PN_EXTERN pn_data_t *pn_message_instructions(pn_message_t *msg);
+PN_EXTERN pn_data_t *pn_message_annotations(pn_message_t *msg);
+PN_EXTERN pn_data_t *pn_message_properties(pn_message_t *msg);
+PN_EXTERN pn_data_t *pn_message_body(pn_message_t *msg);
 
-int pn_message_decode(pn_message_t *msg, const char *bytes, size_t size);
-int pn_message_encode(pn_message_t *msg, char *bytes, size_t *size);
+PN_EXTERN int pn_message_decode(pn_message_t *msg, const char *bytes, size_t size);
+PN_EXTERN int pn_message_encode(pn_message_t *msg, char *bytes, size_t *size);
 
-ssize_t pn_message_data(char *dst, size_t available, const char *src, size_t size);
+PN_EXTERN ssize_t pn_message_data(char *dst, size_t available, const char *src, size_t size);
 
 #ifdef __cplusplus
 }

Modified: qpid/proton/trunk/proton-c/include/proton/messenger.h
URL: http://svn.apache.org/viewvc/qpid/proton/trunk/proton-c/include/proton/messenger.h?rev=1446466&r1=1446465&r2=1446466&view=diff
==============================================================================
--- qpid/proton/trunk/proton-c/include/proton/messenger.h (original)
+++ qpid/proton/trunk/proton-c/include/proton/messenger.h Fri Feb 15 07:08:48 2013
@@ -22,6 +22,7 @@
  *
  */
 
+#include <proton/import_export.h>
 #include <proton/message.h>
 
 #ifdef __cplusplus
@@ -56,7 +57,7 @@ typedef enum {
  *
  * @return pointer to a new Messenger
  */
-pn_messenger_t *pn_messenger(const char *name);
+PN_EXTERN pn_messenger_t *pn_messenger(const char *name);
 
 /** Retrieves the name of a Messenger.
  *
@@ -64,7 +65,7 @@ pn_messenger_t *pn_messenger(const char 
  *
  * @return the name of the messenger
  */
-const char *pn_messenger_name(pn_messenger_t *messenger);
+PN_EXTERN const char *pn_messenger_name(pn_messenger_t *messenger);
 
 /** Sets the certificate file for a Messenger.
  *
@@ -73,14 +74,14 @@ const char *pn_messenger_name(pn_messeng
  *
  * @return an error code of zero if there is no error
  */
-int pn_messenger_set_certificate(pn_messenger_t *messenger, const char *certificate);
+PN_EXTERN int pn_messenger_set_certificate(pn_messenger_t *messenger, const char *certificate);
 
 /** Gets the certificate file fora Messenger.
  *
  * @param[in] messenger the messenger
  * @return the certificate file path
  */
-const char *pn_messenger_get_certificate(pn_messenger_t *messenger);
+PN_EXTERN const char *pn_messenger_get_certificate(pn_messenger_t *messenger);
 
 /** Sets the private key file for a Messenger.
  *
@@ -89,14 +90,14 @@ const char *pn_messenger_get_certificate
  *
  * @return an error code of zero if there is no error
  */
-int pn_messenger_set_private_key(pn_messenger_t *messenger, const char *private_key);
+PN_EXTERN int pn_messenger_set_private_key(pn_messenger_t *messenger, const char *private_key);
 
 /** Gets the private key file for a Messenger.
  *
  * @param[in] messenger the messenger
  * @return the private key file path
  */
-const char *pn_messenger_get_private_key(pn_messenger_t *messenger);
+PN_EXTERN const char *pn_messenger_get_private_key(pn_messenger_t *messenger);
 
 /** Sets the private key password for a Messenger.
  *
@@ -105,14 +106,14 @@ const char *pn_messenger_get_private_key
  *
  * @return an error code of zero if there is no error
  */
-int pn_messenger_set_password(pn_messenger_t *messenger, const char *password);
+PN_EXTERN int pn_messenger_set_password(pn_messenger_t *messenger, const char *password);
 
 /** Gets the private key file password for a Messenger.
  *
  * @param[in] messenger the messenger
  * @return password for the private key file
  */
-const char *pn_messenger_get_password(pn_messenger_t *messenger);
+PN_EXTERN const char *pn_messenger_get_password(pn_messenger_t *messenger);
 
 /** Sets the trusted certificates database for a Messenger.
  *
@@ -121,14 +122,14 @@ const char *pn_messenger_get_password(pn
  *
  * @return an error code of zero if there is no error
  */
-int pn_messenger_set_trusted_certificates(pn_messenger_t *messenger, const char *cert_db);
+PN_EXTERN int pn_messenger_set_trusted_certificates(pn_messenger_t *messenger, const char *cert_db);
 
 /** Gets the trusted certificates database for a Messenger.
  *
  * @param[in] messenger the messenger
  * @return path to the trusted certificates database
  */
-const char *pn_messenger_get_trusted_certificates(pn_messenger_t *messenger);
+PN_EXTERN const char *pn_messenger_get_trusted_certificates(pn_messenger_t *messenger);
 
 /** Sets the timeout for a Messenger. A negative timeout means
  * infinite.
@@ -138,7 +139,7 @@ const char *pn_messenger_get_trusted_cer
  *
  * @return an error code or zero if there is no error
  */
-int pn_messenger_set_timeout(pn_messenger_t *messenger, int timeout);
+PN_EXTERN int pn_messenger_set_timeout(pn_messenger_t *messenger, int timeout);
 
 /** Retrieves the timeout for a Messenger.
  *
@@ -146,14 +147,14 @@ int pn_messenger_set_timeout(pn_messenge
  *
  * @return the timeout for the messenger, in milliseconds
  */
-int pn_messenger_get_timeout(pn_messenger_t *messenger);
+PN_EXTERN int pn_messenger_get_timeout(pn_messenger_t *messenger);
 
 /** Frees a Messenger.
  *
  * @param[in] messenger the messenger to free, no longer valid on
  *                      return
  */
-void pn_messenger_free(pn_messenger_t *messenger);
+PN_EXTERN void pn_messenger_free(pn_messenger_t *messenger);
 
 /** Returns the error code for the Messenger.
  *
@@ -162,7 +163,7 @@ void pn_messenger_free(pn_messenger_t *m
  * @return an error code or zero if there is no error
  * @see error.h
  */
-int pn_messenger_errno(pn_messenger_t *messenger);
+PN_EXTERN int pn_messenger_errno(pn_messenger_t *messenger);
 
 /** Returns the error info for a Messenger.
  *
@@ -171,7 +172,7 @@ int pn_messenger_errno(pn_messenger_t *m
  * @return a descriptive error message or NULL if no error has
  *         occurred
  */
-const char *pn_messenger_error(pn_messenger_t *messenger);
+PN_EXTERN const char *pn_messenger_error(pn_messenger_t *messenger);
 
 /** Gets the accept mode for a Messenger. @see
  * ::pn_messenger_set_accept_mode
@@ -180,7 +181,7 @@ const char *pn_messenger_error(pn_messen
  *
  * @return one of PN_ACCEPT_MODE_AUTO or PN_ACCEPT_MODE_MANUAL
  */
-pn_accept_mode_t pn_messenger_get_accept_mode(pn_messenger_t *messenger);
+PN_EXTERN pn_accept_mode_t pn_messenger_get_accept_mode(pn_messenger_t *messenger);
 
 /** Set the accept mode for a Messenger. If set to
  * PN_ACCEPT_MODE_AUTO, the messenger will automatically accept every
@@ -195,7 +196,7 @@ pn_accept_mode_t pn_messenger_get_accept
  * @return an error code or zero on success
  * @see error.h
  */
-int pn_messenger_set_accept_mode(pn_messenger_t *messenger, pn_accept_mode_t mode);
+PN_EXTERN int pn_messenger_set_accept_mode(pn_messenger_t *messenger, pn_accept_mode_t mode);
 
 /** Gets the outgoing window for a Messenger. @see
  * ::pn_messenger_set_outgoing_window
@@ -204,7 +205,7 @@ int pn_messenger_set_accept_mode(pn_mess
  *
  * @return the outgoing window
  */
-int pn_messenger_get_outgoing_window(pn_messenger_t *messenger);
+PN_EXTERN int pn_messenger_get_outgoing_window(pn_messenger_t *messenger);
 
 /** Sets the outgoing window for a Messenger. If the outgoing window
  *  is set to a positive value, then after each call to
@@ -217,7 +218,7 @@ int pn_messenger_get_outgoing_window(pn_
  * @return an error or zero on success
  * @see error.h
  */
-int pn_messenger_set_outgoing_window(pn_messenger_t *messenger, int window);
+PN_EXTERN int pn_messenger_set_outgoing_window(pn_messenger_t *messenger, int window);
 
 /** Gets the incoming window for a Messenger. @see
  * ::pn_messenger_set_incoming_window
@@ -226,7 +227,7 @@ int pn_messenger_set_outgoing_window(pn_
  *
  * @return the incoming window
  */
-int pn_messenger_get_incoming_window(pn_messenger_t *messenger);
+PN_EXTERN int pn_messenger_get_incoming_window(pn_messenger_t *messenger);
 
 /** Sets the incoming window for a Messenger. If the incoming window
  *  is set to a positive value, then after each call to
@@ -240,7 +241,7 @@ int pn_messenger_get_incoming_window(pn_
  * @return an error or zero on success
  * @see error.h
  */
-int pn_messenger_set_incoming_window(pn_messenger_t *messenger, int window);
+PN_EXTERN int pn_messenger_set_incoming_window(pn_messenger_t *messenger, int window);
 
 /** Starts a messenger. A messenger cannot send or recv messages until
  * it is started.
@@ -250,7 +251,7 @@ int pn_messenger_set_incoming_window(pn_
  * @return an error code or zero on success
  * @see error.h
  */
-int pn_messenger_start(pn_messenger_t *messenger);
+PN_EXTERN int pn_messenger_start(pn_messenger_t *messenger);
 
 /** Stops a messenger. A messenger cannot send or recv messages when
  *  it is stopped.
@@ -260,7 +261,7 @@ int pn_messenger_start(pn_messenger_t *m
  * @return an error code or zero on success
  * @see error.h
  */
-int pn_messenger_stop(pn_messenger_t *messenger);
+PN_EXTERN int pn_messenger_stop(pn_messenger_t *messenger);
 
 /** Subscribes a messenger to messages from the specified source.
  *
@@ -269,11 +270,11 @@ int pn_messenger_stop(pn_messenger_t *me
  *
  * @return a subscription
  */
-pn_subscription_t *pn_messenger_subscribe(pn_messenger_t *messenger, const char *source);
+PN_EXTERN pn_subscription_t *pn_messenger_subscribe(pn_messenger_t *messenger, const char *source);
 
-void *pn_subscription_get_context(pn_subscription_t *sub);
+PN_EXTERN void *pn_subscription_get_context(pn_subscription_t *sub);
 
-void pn_subscription_set_context(pn_subscription_t *sub, void *context);
+PN_EXTERN void pn_subscription_set_context(pn_subscription_t *sub, void *context);
 
 /** Puts a message on the outgoing message queue for a messenger.
  *
@@ -283,7 +284,7 @@ void pn_subscription_set_context(pn_subs
  * @return an error code or zero on success
  * @see error.h
  */
-int pn_messenger_put(pn_messenger_t *messenger, pn_message_t *msg);
+PN_EXTERN int pn_messenger_put(pn_messenger_t *messenger, pn_message_t *msg);
 
 /** Gets the last known remote state of the delivery associated with
  * the given tracker.
@@ -293,7 +294,7 @@ int pn_messenger_put(pn_messenger_t *mes
  *
  * @return a status code for the delivery
  */
-pn_status_t pn_messenger_status(pn_messenger_t *messenger, pn_tracker_t tracker);
+PN_EXTERN pn_status_t pn_messenger_status(pn_messenger_t *messenger, pn_tracker_t tracker);
 
 /** Frees a Messenger from tracking the status associated with a given
  * tracker. Use the PN_CUMULATIVE flag to indicate everything up to
@@ -306,7 +307,7 @@ pn_status_t pn_messenger_status(pn_messe
  * @return an error code or zero on success
  * @see error.h
  */
-int pn_messenger_settle(pn_messenger_t *messenger, pn_tracker_t tracker, int flags);
+PN_EXTERN int pn_messenger_settle(pn_messenger_t *messenger, pn_tracker_t tracker, int flags);
 
 /** Gets the tracker for the message most recently provided to
  * pn_messenger_put.
@@ -316,7 +317,7 @@ int pn_messenger_settle(pn_messenger_t *
  * @return a pn_tracker_t or an undefined value if pn_messenger_get
  *         has never been called for the given messenger
  */
-pn_tracker_t pn_messenger_outgoing_tracker(pn_messenger_t *messenger);
+PN_EXTERN pn_tracker_t pn_messenger_outgoing_tracker(pn_messenger_t *messenger);
 
 /** Sends any messages in the outgoing message queue for a messenger.
  * This will block until the messages have been sent.
@@ -326,7 +327,7 @@ pn_tracker_t pn_messenger_outgoing_track
  * @return an error code or zero on success
  * @see error.h
  */
-int pn_messenger_send(pn_messenger_t *messenger);
+PN_EXTERN int pn_messenger_send(pn_messenger_t *messenger);
 
 /** Receives up to n message into the incoming message queue of a
  * messenger. Blocks until at least one message is available in the
@@ -338,7 +339,7 @@ int pn_messenger_send(pn_messenger_t *me
  * @return an error code or zero on success
  * @see error.h
  */
-int pn_messenger_recv(pn_messenger_t *messenger, int n);
+PN_EXTERN int pn_messenger_recv(pn_messenger_t *messenger, int n);
 
 /** Gets a message from the head of the incoming message queue of a
  * messenger.
@@ -349,7 +350,7 @@ int pn_messenger_recv(pn_messenger_t *me
  * @return an error code or zero on success
  * @see error.h
  */
-int pn_messenger_get(pn_messenger_t *messenger, pn_message_t *msg);
+PN_EXTERN int pn_messenger_get(pn_messenger_t *messenger, pn_message_t *msg);
 
 /** Gets the tracker for the message most recently fetched by
  * pn_messenger_get.
@@ -359,9 +360,9 @@ int pn_messenger_get(pn_messenger_t *mes
  * @return a pn_tracker_t or an undefined value if pn_messenger_get
  *         has never been called for the given messenger
  */
-pn_tracker_t pn_messenger_incoming_tracker(pn_messenger_t *messenger);
+PN_EXTERN pn_tracker_t pn_messenger_incoming_tracker(pn_messenger_t *messenger);
 
-pn_subscription_t *pn_messenger_incoming_subscription(pn_messenger_t *messenger);
+PN_EXTERN pn_subscription_t *pn_messenger_incoming_subscription(pn_messenger_t *messenger);
 
 #define PN_CUMULATIVE (0x1)
 
@@ -376,7 +377,7 @@ pn_subscription_t *pn_messenger_incoming
  * @return an error code or zero on success
  * @see error.h
  */
-int pn_messenger_accept(pn_messenger_t *messenger, pn_tracker_t tracker, int flags);
+PN_EXTERN int pn_messenger_accept(pn_messenger_t *messenger, pn_tracker_t tracker, int flags);
 
 /** Rejects the incoming messages identified by the tracker. Use the
  * PN_CUMULATIVE flag to reject everything prior to the supplied
@@ -389,7 +390,7 @@ int pn_messenger_accept(pn_messenger_t *
  * @return an error code or zero on success
  * @see error.h
  */
-int pn_messenger_reject(pn_messenger_t *messenger, pn_tracker_t tracker, int flags);
+PN_EXTERN int pn_messenger_reject(pn_messenger_t *messenger, pn_tracker_t tracker, int flags);
 
 /** Returns the number of messages in the outgoing message queue of a messenger.
  *
@@ -397,7 +398,7 @@ int pn_messenger_reject(pn_messenger_t *
  *
  * @return the outgoing queue depth
  */
-int pn_messenger_outgoing(pn_messenger_t *messenger);
+PN_EXTERN int pn_messenger_outgoing(pn_messenger_t *messenger);
 
 /** Returns the number of messages in the incoming message queue of a messenger.
  *
@@ -405,7 +406,7 @@ int pn_messenger_outgoing(pn_messenger_t
  *
  * @return the incoming queue depth
  */
-int pn_messenger_incoming(pn_messenger_t *messenger);
+PN_EXTERN int pn_messenger_incoming(pn_messenger_t *messenger);
 
 #ifdef __cplusplus
 }

Modified: qpid/proton/trunk/proton-c/include/proton/parser.h
URL: http://svn.apache.org/viewvc/qpid/proton/trunk/proton-c/include/proton/parser.h?rev=1446466&r1=1446465&r2=1446466&view=diff
==============================================================================
--- qpid/proton/trunk/proton-c/include/proton/parser.h (original)
+++ qpid/proton/trunk/proton-c/include/proton/parser.h Fri Feb 15 07:08:48 2013
@@ -22,6 +22,7 @@
  *
  */
 
+#include <proton/import_export.h>
 #include <proton/codec.h>
 
 #ifdef __cplusplus
@@ -30,11 +31,11 @@ extern "C" {
 
 typedef struct pn_parser_t pn_parser_t;
 
-pn_parser_t *pn_parser(void);
-int pn_parser_parse(pn_parser_t *parser, const char *str, pn_data_t *data);
-int pn_parser_errno(pn_parser_t *parser);
-const char *pn_parser_error(pn_parser_t *parser);
-void pn_parser_free(pn_parser_t *parser);
+PN_EXTERN pn_parser_t *pn_parser(void);
+PN_EXTERN int pn_parser_parse(pn_parser_t *parser, const char *str, pn_data_t *data);
+PN_EXTERN int pn_parser_errno(pn_parser_t *parser);
+PN_EXTERN const char *pn_parser_error(pn_parser_t *parser);
+PN_EXTERN void pn_parser_free(pn_parser_t *parser);
 
 #ifdef __cplusplus
 }

Modified: qpid/proton/trunk/proton-c/include/proton/sasl.h
URL: http://svn.apache.org/viewvc/qpid/proton/trunk/proton-c/include/proton/sasl.h?rev=1446466&r1=1446465&r2=1446466&view=diff
==============================================================================
--- qpid/proton/trunk/proton-c/include/proton/sasl.h (original)
+++ qpid/proton/trunk/proton-c/include/proton/sasl.h Fri Feb 15 07:08:48 2013
@@ -22,6 +22,7 @@
  *
  */
 
+#include <proton/import_export.h>
 #include <sys/types.h>
 #ifndef __cplusplus
 #include <stdbool.h>
@@ -67,14 +68,14 @@ typedef enum {
  *
  * @return a new SASL object representing the layer.
  */
-pn_sasl_t *pn_sasl(pn_transport_t *transport);
+PN_EXTERN pn_sasl_t *pn_sasl(pn_transport_t *transport);
 
 /** Access the current state of the layer.
  *
  * @param[in] sasl the layer to retrieve the state from.
  * @return The state of the sasl layer.
  */
-pn_sasl_state_t pn_sasl_state(pn_sasl_t *sasl);
+PN_EXTERN pn_sasl_state_t pn_sasl_state(pn_sasl_t *sasl);
 
 /** Set the acceptable SASL mechanisms for the layer.
  *
@@ -82,7 +83,7 @@ pn_sasl_state_t pn_sasl_state(pn_sasl_t 
  * @param[in] mechanisms a list of acceptable SASL mechanisms,
  *                       separated by space
  */
-void pn_sasl_mechanisms(pn_sasl_t *sasl, const char *mechanisms);
+PN_EXTERN void pn_sasl_mechanisms(pn_sasl_t *sasl, const char *mechanisms);
 
 /** Retrieve the list of SASL mechanisms provided by the remote.
  *
@@ -90,7 +91,7 @@ void pn_sasl_mechanisms(pn_sasl_t *sasl,
  * @return a string containing a list of the SASL mechanisms
  *         advertised by the remote (separated by spaces)
  */
-const char *pn_sasl_remote_mechanisms(pn_sasl_t *sasl);
+PN_EXTERN const char *pn_sasl_remote_mechanisms(pn_sasl_t *sasl);
 
 /** Configure the SASL layer to act as a SASL client.
  *
@@ -99,7 +100,7 @@ const char *pn_sasl_remote_mechanisms(pn
  *
  * @param[in] sasl the SASL layer to configure as a client
  */
-void pn_sasl_client(pn_sasl_t *sasl);
+PN_EXTERN void pn_sasl_client(pn_sasl_t *sasl);
 
 /** Configure the SASL layer to act as a server.
  *
@@ -108,7 +109,7 @@ void pn_sasl_client(pn_sasl_t *sasl);
  *
  * @param[in] sasl the SASL layer to configure as a server
  */
-void pn_sasl_server(pn_sasl_t *sasl);
+PN_EXTERN void pn_sasl_server(pn_sasl_t *sasl);
 
 /** Configure the SASL layer to use the "PLAIN" mechanism.
  *
@@ -121,7 +122,7 @@ void pn_sasl_server(pn_sasl_t *sasl);
  * @param[in] password credential for the PLAIN authentication
  *                     mechanism
  */
-void pn_sasl_plain(pn_sasl_t *sasl, const char *username, const char *password);
+PN_EXTERN void pn_sasl_plain(pn_sasl_t *sasl, const char *username, const char *password);
 
 /** Determine the size of the bytes available via pn_sasl_recv().
  *
@@ -130,7 +131,7 @@ void pn_sasl_plain(pn_sasl_t *sasl, cons
  * @param[in] sasl the SASL layer.
  * @return The number of bytes available, zero if no available data.
  */
-size_t pn_sasl_pending(pn_sasl_t *sasl);
+PN_EXTERN size_t pn_sasl_pending(pn_sasl_t *sasl);
 
 /** Read challenge/response data sent from the peer.
  *
@@ -141,7 +142,7 @@ size_t pn_sasl_pending(pn_sasl_t *sasl);
  * @param[in] size maximum number of bytes that bytes can accept.
  * @return The number of bytes written to bytes, or an error code if < 0.
  */
-ssize_t pn_sasl_recv(pn_sasl_t *sasl, char *bytes, size_t size);
+PN_EXTERN ssize_t pn_sasl_recv(pn_sasl_t *sasl, char *bytes, size_t size);
 
 /** Send challenge or response data to the peer.
  *
@@ -150,7 +151,7 @@ ssize_t pn_sasl_recv(pn_sasl_t *sasl, ch
  * @param[in] size The number of data octets in bytes.
  * @return The number of octets read from bytes, or an error code if < 0
  */
-ssize_t pn_sasl_send(pn_sasl_t *sasl, const char *bytes, size_t size);
+PN_EXTERN ssize_t pn_sasl_send(pn_sasl_t *sasl, const char *bytes, size_t size);
 
 /** Set the outcome of SASL negotiation
  *
@@ -158,13 +159,13 @@ ssize_t pn_sasl_send(pn_sasl_t *sasl, co
  *
  * @todo
  */
-void pn_sasl_done(pn_sasl_t *sasl, pn_sasl_outcome_t outcome);
+PN_EXTERN void pn_sasl_done(pn_sasl_t *sasl, pn_sasl_outcome_t outcome);
 
 /** Retrieve the outcome of SASL negotiation.
  *
  * @todo
  */
-pn_sasl_outcome_t pn_sasl_outcome(pn_sasl_t *sasl);
+PN_EXTERN pn_sasl_outcome_t pn_sasl_outcome(pn_sasl_t *sasl);
 
 #ifdef __cplusplus
 }

Modified: qpid/proton/trunk/proton-c/include/proton/scanner.h
URL: http://svn.apache.org/viewvc/qpid/proton/trunk/proton-c/include/proton/scanner.h?rev=1446466&r1=1446465&r2=1446466&view=diff
==============================================================================
--- qpid/proton/trunk/proton-c/include/proton/scanner.h (original)
+++ qpid/proton/trunk/proton-c/include/proton/scanner.h Fri Feb 15 07:08:48 2013
@@ -22,6 +22,7 @@
  *
  */
 
+#include <proton/import_export.h>
 #include <sys/types.h>
 #include <stdarg.h>
 
@@ -62,17 +63,17 @@ typedef struct {
   size_t size;
 } pn_token_t;
 
-pn_scanner_t *pn_scanner();
-void pn_scanner_free(pn_scanner_t *scanner);
-pn_token_t pn_scanner_token(pn_scanner_t *scanner);
-int pn_scanner_err(pn_scanner_t *scanner, int code, const char *fmt, ...);
-int pn_scanner_verr(pn_scanner_t *scanner, int code, const char *fmt, va_list ap);
-void pn_scanner_line_info(pn_scanner_t *scanner, int *line, int *col);
-int pn_scanner_errno(pn_scanner_t *scanner);
-const char *pn_scanner_error(pn_scanner_t *scanner);
-int pn_scanner_start(pn_scanner_t *scanner, const char *input);
-int pn_scanner_scan(pn_scanner_t *scanner);
-int pn_scanner_shift(pn_scanner_t *scanner);
+PN_EXTERN pn_scanner_t *pn_scanner();
+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);
 
 #ifdef __cplusplus
 }



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