OpenOBEX  1.5
Data Structures | Defines
obex_const.h File Reference

OpenOBEX library - Free implementation of the Object Exchange protocol. More...

#include <inttypes.h>

Data Structures

union  obex_headerdata_t
struct  obex_ctrans_t
struct  obex_usb_intf_t
 USB-specific OBEX interface information. More...
union  obex_interface_t
 Generic OBEX interface information. More...

Defines

#define OBEX_MODE_CLIENT   0
#define OBEX_MODE_SERVER   1
#define OBEX_CLIENT   OBEX_MODE_CLIENT
#define OBEX_SERVER   OBEX_MODE_SERVER
#define OBEX_EV_PROGRESS   0 /* Progress has been made */
#define OBEX_EV_REQHINT   1 /* An incoming request is about to come */
#define OBEX_EV_REQ   2 /* An incoming request has arrived */
#define OBEX_EV_REQDONE   3 /* Request has finished */
#define OBEX_EV_LINKERR   4 /* Link has been disconnected */
#define OBEX_EV_PARSEERR   5 /* Malformed data encountered */
#define OBEX_EV_ACCEPTHINT   6 /* Connection accepted */
#define OBEX_EV_ABORT   7 /* Request was aborted */
#define OBEX_EV_STREAMEMPTY   8 /* Need to feed more data when sending a stream */
#define OBEX_EV_STREAMAVAIL   9 /* Time to pick up data when receiving a stream */
#define OBEX_EV_UNEXPECTED   10 /* Unexpected data, not fatal */
#define OBEX_EV_REQCHECK   11 /* First packet of an incoming request has been parsed */
#define OBEX_FL_KEEPSERVER   0x02 /* Keep the server alive */
#define OBEX_FL_FILTERHINT   0x04 /* Filter devices based on hint bit */
#define OBEX_FL_FILTERIAS   0x08 /* Filter devices based on IAS entry */
#define OBEX_FL_FIT_ONE_PACKET   0x01 /* This header must fit in one packet */
#define OBEX_FL_STREAM_START   0x02 /* Start of streaming body */
#define OBEX_FL_STREAM_DATA   0x04 /* Body-stream data */
#define OBEX_FL_STREAM_DATAEND   0x08 /* Body stream last data */
#define OBEX_FL_SUSPEND   0x10 /* Suspend after sending this header */
#define OBEX_TRANS_IRDA   1
#define OBEX_TRANS_INET   2
#define OBEX_TRANS_CUST   3 /* Fixme: This will go away in future */
#define OBEX_TRANS_CUSTOM   3
#define OBEX_TRANS_BLUETOOTH   4
#define OBEX_TRANS_FD   5
#define OBEX_TRANS_USB   6
#define OBEX_HDR_TYPE_UNICODE   (0 << 6) /* zero terminated unicode string (network byte order) */
#define OBEX_HDR_TYPE_BYTES   (1 << 6) /* byte array */
#define OBEX_HDR_TYPE_UINT8   (2 << 6) /* 8bit unsigned integer */
#define OBEX_HDR_TYPE_UINT32   (3 << 6) /* 32bit unsigned integer */
#define OBEX_HDR_TYPE_MASK   0xc0
#define OBEX_HDR_ID_COUNT   0x00 /* Number of objects (used by connect) */
#define OBEX_HDR_ID_NAME   0x01 /* Name of the object */
#define OBEX_HDR_ID_TYPE   0x02 /* Type of the object */
#define OBEX_HDR_ID_LENGTH   0x03 /* Total length of object */
#define OBEX_HDR_ID_TIME   0x04 /* Last modification time of (ISO8601) */
#define OBEX_HDR_ID_DESCRIPTION   0x05 /* Description of object */
#define OBEX_HDR_ID_TARGET   0x06 /* Identifies the target for the object */
#define OBEX_HDR_ID_HTTP   0x07 /* An HTTP 1.x header */
#define OBEX_HDR_ID_BODY   0x08 /* Data part of the object */
#define OBEX_HDR_ID_BODY_END   0x09 /* Last data part of the object */
#define OBEX_HDR_ID_WHO   0x0a /* Identifies the sender of the object */
#define OBEX_HDR_ID_CONNECTION   0x0b /* Connection identifier */
#define OBEX_HDR_ID_APPARAM   0x0c /* Application parameters */
#define OBEX_HDR_ID_AUTHCHAL   0x0d /* Authentication challenge */
#define OBEX_HDR_ID_AUTHRESP   0x0e /* Authentication response */
#define OBEX_HDR_ID_CREATOR   0x0f /* indicates the creator of an object */
#define OBEX_HDR_ID_WANUUID   0x10 /* uniquely identifies the network client (OBEX server) */
#define OBEX_HDR_ID_OBJECTCLASS   0x11 /* OBEX Object class of object */
#define OBEX_HDR_ID_SESSIONPARAM   0x12 /* Parameters used in session commands/responses */
#define OBEX_HDR_ID_SESSIONSEQ   0x13 /* Sequence number used in each OBEX packet for reliability */
#define OBEX_HDR_ID_MASK   0x3f
#define OBEX_HDR_EMPTY   0x00 /* Empty header (buggy OBEX servers) */
#define OBEX_HDR_COUNT   (OBEX_HDR_ID_COUNT | OBEX_HDR_TYPE_UINT32 )
#define OBEX_HDR_NAME   (OBEX_HDR_ID_NAME | OBEX_HDR_TYPE_UNICODE)
#define OBEX_HDR_TYPE   (OBEX_HDR_ID_TYPE | OBEX_HDR_TYPE_BYTES )
#define OBEX_HDR_LENGTH   (OBEX_HDR_ID_LENGTH | OBEX_HDR_TYPE_UINT32 )
#define OBEX_HDR_TIME   (OBEX_HDR_ID_TIME | OBEX_HDR_TYPE_BYTES ) /* Format: ISO 8601 */
#define OBEX_HDR_TIME2   (OBEX_HDR_ID_TIME | OBEX_HDR_TYPE_UINT32 ) /* Deprecated use HDR_TIME instead */
#define OBEX_HDR_DESCRIPTION   (OBEX_HDR_ID_DESCRIPTION | OBEX_HDR_TYPE_UNICODE)
#define OBEX_HDR_TARGET   (OBEX_HDR_ID_TARGET | OBEX_HDR_TYPE_BYTES )
#define OBEX_HDR_HTTP   (OBEX_HDR_ID_HTTP | OBEX_HDR_TYPE_BYTES )
#define OBEX_HDR_BODY   (OBEX_HDR_ID_BODY | OBEX_HDR_TYPE_BYTES )
#define OBEX_HDR_BODY_END   (OBEX_HDR_ID_BODY_END | OBEX_HDR_TYPE_BYTES )
#define OBEX_HDR_WHO   (OBEX_HDR_ID_WHO | OBEX_HDR_TYPE_BYTES )
#define OBEX_HDR_CONNECTION   (OBEX_HDR_ID_CONNECTION | OBEX_HDR_TYPE_UINT32 )
#define OBEX_HDR_APPARAM   (OBEX_HDR_ID_APPARAM | OBEX_HDR_TYPE_BYTES )
#define OBEX_HDR_AUTHCHAL   (OBEX_HDR_ID_AUTHCHAL | OBEX_HDR_TYPE_BYTES )
#define OBEX_HDR_AUTHRESP   (OBEX_HDR_ID_AUTHRESP | OBEX_HDR_TYPE_BYTES )
#define OBEX_HDR_CREATOR   (OBEX_HDR_ID_CREATOR | OBEX_HDR_TYPE_BYTES )
#define OBEX_HDR_WANUUID   (OBEX_HDR_ID_WANUUID | OBEX_HDR_TYPE_BYTES )
#define OBEX_HDR_OBJECTCLASS   (OBEX_HDR_ID_OBJECTCLASS | OBEX_HDR_TYPE_BYTES )
#define OBEX_HDR_SESSIONPARAM   (OBEX_HDR_ID_SESSIONPARAM | OBEX_HDR_TYPE_BYTES )
#define OBEX_HDR_SESSIONSEQ   (OBEX_HDR_ID_SESSIONSEQ | OBEX_HDR_TYPE_UINT8 )
#define OBEX_CMD_CONNECT   0x00
#define OBEX_CMD_DISCONNECT   0x01
#define OBEX_CMD_PUT   0x02
#define OBEX_CMD_GET   0x03
#define OBEX_CMD_SETPATH   0x05
#define OBEX_CMD_SESSION   0x07 /* used for reliable session support */
#define OBEX_CMD_ABORT   0x7f
#define OBEX_FINAL   0x80
#define OBEX_RSP_CONTINUE   0x10
#define OBEX_RSP_SWITCH_PRO   0x11
#define OBEX_RSP_SUCCESS   0x20
#define OBEX_RSP_CREATED   0x21
#define OBEX_RSP_ACCEPTED   0x22
#define OBEX_RSP_NON_AUTHORITATIVE   0x23
#define OBEX_RSP_NO_CONTENT   0x24
#define OBEX_RSP_RESET_CONTENT   0x25
#define OBEX_RSP_PARTIAL_CONTENT   0x26
#define OBEX_RSP_MULTIPLE_CHOICES   0x30
#define OBEX_RSP_MOVED_PERMANENTLY   0x31
#define OBEX_RSP_MOVED_TEMPORARILY   0x32
#define OBEX_RSP_SEE_OTHER   0x33
#define OBEX_RSP_NOT_MODIFIED   0x34
#define OBEX_RSP_USE_PROXY   0x35
#define OBEX_RSP_BAD_REQUEST   0x40
#define OBEX_RSP_UNAUTHORIZED   0x41
#define OBEX_RSP_PAYMENT_REQUIRED   0x42
#define OBEX_RSP_FORBIDDEN   0x43
#define OBEX_RSP_NOT_FOUND   0x44
#define OBEX_RSP_METHOD_NOT_ALLOWED   0x45
#define OBEX_RSP_NOT_ACCEPTABLE   0x46
#define OBEX_RSP_PROXY_AUTH_REQUIRED   0x47
#define OBEX_RSP_REQUEST_TIME_OUT   0x48
#define OBEX_RSP_CONFLICT   0x49
#define OBEX_RSP_GONE   0x4a
#define OBEX_RSP_LENGTH_REQUIRED   0x4b
#define OBEX_RSP_PRECONDITION_FAILED   0x4c
#define OBEX_RSP_REQ_ENTITY_TOO_LARGE   0x4d
#define OBEX_RSP_REQ_URL_TOO_LARGE   0x4e
#define OBEX_RSP_UNSUPPORTED_MEDIA_TYPE   0x4f
#define OBEX_RSP_INTERNAL_SERVER_ERROR   0x50
#define OBEX_RSP_NOT_IMPLEMENTED   0x51
#define OBEX_RSP_BAD_GATEWAY   0x52
#define OBEX_RSP_SERVICE_UNAVAILABLE   0x53
#define OBEX_RSP_GATEWAY_TIMEOUT   0x54
#define OBEX_RSP_VERSION_NOT_SUPPORTED   0x55
#define OBEX_RSP_DATABASE_FULL   0x60
#define OBEX_RSP_DATABASE_LOCKED   0x61
#define OBEX_DEFAULT_MTU   1024
#define OBEX_MINIMUM_MTU   255
#define OBEX_MAXIMUM_MTU   65535
#define OBEX_IRDA_OPT_MTU   (7 * 2039) /* 7 IrLAP frames */
 Optimum MTU for various transport (optimum for throughput).

Detailed Description

OpenOBEX library - Free implementation of the Object Exchange protocol.

Copyright (C) 1999-2000 Dag Brattli <dagb@cs.uit.no> Copyright (C) 1999-2000 Pontus Fuchs <pontus.fuchs@tactel.se> Copyright (C) 2001-2002 Jean Tourrilhes <jt@hpl.hp.com> Copyright (C) 2002-2006 Marcel Holtmann <marcel@holtmann.org> Copyright (C) 2002-2008 Christian W. Zuckschwerdt <zany@triq.net> Copyright (C) 2002 Dmitry Kasatkin <dmitry.kasatkin@nokia.com> Copyright (C) 2005 Herton Ronaldo Krzesinski <herton@conectiva.com.br> Copyright (C) 2005-2008 Alex Kanavin <ak@sensi.org> Copyright (C) 2006 Johan Hedberg <johan.hedberg@nokia.com> Copyright (C) 2007-2008 Hendrik Sattler <post@hendrik-sattler.de>

OpenOBEX is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with OpenOBEX. If not, see <http://www.gnu.org/>.


Define Documentation

#define OBEX_CMD_ABORT   0x7f
#define OBEX_CMD_CONNECT   0x00
#define OBEX_CMD_DISCONNECT   0x01
#define OBEX_CMD_GET   0x03
#define OBEX_CMD_PUT   0x02
#define OBEX_CMD_SESSION   0x07 /* used for reliable session support */
#define OBEX_CMD_SETPATH   0x05
#define OBEX_DEFAULT_MTU   1024
#define OBEX_EV_ABORT   7 /* Request was aborted */
#define OBEX_EV_ACCEPTHINT   6 /* Connection accepted */
#define OBEX_EV_LINKERR   4 /* Link has been disconnected */
#define OBEX_EV_PARSEERR   5 /* Malformed data encountered */
#define OBEX_EV_PROGRESS   0 /* Progress has been made */
#define OBEX_EV_REQ   2 /* An incoming request has arrived */
#define OBEX_EV_REQCHECK   11 /* First packet of an incoming request has been parsed */
#define OBEX_EV_REQDONE   3 /* Request has finished */
#define OBEX_EV_REQHINT   1 /* An incoming request is about to come */
#define OBEX_EV_STREAMAVAIL   9 /* Time to pick up data when receiving a stream */
#define OBEX_EV_STREAMEMPTY   8 /* Need to feed more data when sending a stream */
#define OBEX_EV_UNEXPECTED   10 /* Unexpected data, not fatal */
#define OBEX_FINAL   0x80
#define OBEX_FL_FILTERHINT   0x04 /* Filter devices based on hint bit */
#define OBEX_FL_FILTERIAS   0x08 /* Filter devices based on IAS entry */
#define OBEX_FL_FIT_ONE_PACKET   0x01 /* This header must fit in one packet */
#define OBEX_FL_KEEPSERVER   0x02 /* Keep the server alive */
#define OBEX_FL_STREAM_DATA   0x04 /* Body-stream data */
#define OBEX_FL_STREAM_DATAEND   0x08 /* Body stream last data */
#define OBEX_FL_STREAM_START   0x02 /* Start of streaming body */
#define OBEX_FL_SUSPEND   0x10 /* Suspend after sending this header */
#define OBEX_HDR_EMPTY   0x00 /* Empty header (buggy OBEX servers) */
#define OBEX_HDR_ID_APPARAM   0x0c /* Application parameters */
#define OBEX_HDR_ID_AUTHCHAL   0x0d /* Authentication challenge */
#define OBEX_HDR_ID_AUTHRESP   0x0e /* Authentication response */
#define OBEX_HDR_ID_BODY   0x08 /* Data part of the object */
#define OBEX_HDR_ID_BODY_END   0x09 /* Last data part of the object */
#define OBEX_HDR_ID_CONNECTION   0x0b /* Connection identifier */
#define OBEX_HDR_ID_COUNT   0x00 /* Number of objects (used by connect) */
#define OBEX_HDR_ID_CREATOR   0x0f /* indicates the creator of an object */
#define OBEX_HDR_ID_DESCRIPTION   0x05 /* Description of object */
#define OBEX_HDR_ID_HTTP   0x07 /* An HTTP 1.x header */
#define OBEX_HDR_ID_LENGTH   0x03 /* Total length of object */
#define OBEX_HDR_ID_MASK   0x3f
#define OBEX_HDR_ID_NAME   0x01 /* Name of the object */
#define OBEX_HDR_ID_OBJECTCLASS   0x11 /* OBEX Object class of object */
#define OBEX_HDR_ID_SESSIONPARAM   0x12 /* Parameters used in session commands/responses */
#define OBEX_HDR_ID_SESSIONSEQ   0x13 /* Sequence number used in each OBEX packet for reliability */
#define OBEX_HDR_ID_TARGET   0x06 /* Identifies the target for the object */
#define OBEX_HDR_ID_TIME   0x04 /* Last modification time of (ISO8601) */
#define OBEX_HDR_ID_TYPE   0x02 /* Type of the object */
#define OBEX_HDR_ID_WANUUID   0x10 /* uniquely identifies the network client (OBEX server) */
#define OBEX_HDR_ID_WHO   0x0a /* Identifies the sender of the object */
#define OBEX_HDR_TIME   (OBEX_HDR_ID_TIME | OBEX_HDR_TYPE_BYTES ) /* Format: ISO 8601 */
#define OBEX_HDR_TIME2   (OBEX_HDR_ID_TIME | OBEX_HDR_TYPE_UINT32 ) /* Deprecated use HDR_TIME instead */
#define OBEX_HDR_TYPE_BYTES   (1 << 6) /* byte array */
#define OBEX_HDR_TYPE_MASK   0xc0
#define OBEX_HDR_TYPE_UINT32   (3 << 6) /* 32bit unsigned integer */
#define OBEX_HDR_TYPE_UINT8   (2 << 6) /* 8bit unsigned integer */
#define OBEX_HDR_TYPE_UNICODE   (0 << 6) /* zero terminated unicode string (network byte order) */
#define OBEX_IRDA_OPT_MTU   (7 * 2039) /* 7 IrLAP frames */

Optimum MTU for various transport (optimum for throughput).

The user/application has to set them via OBEX_SetTransportMTU(). If you are worried about safety or latency, stick with the current default... - Jean II

#define OBEX_MAXIMUM_MTU   65535
#define OBEX_MINIMUM_MTU   255
#define OBEX_MODE_CLIENT   0
#define OBEX_MODE_SERVER   1
#define OBEX_RSP_ACCEPTED   0x22
#define OBEX_RSP_BAD_GATEWAY   0x52
#define OBEX_RSP_BAD_REQUEST   0x40
#define OBEX_RSP_CONFLICT   0x49
#define OBEX_RSP_CONTINUE   0x10
#define OBEX_RSP_CREATED   0x21
#define OBEX_RSP_DATABASE_FULL   0x60
#define OBEX_RSP_DATABASE_LOCKED   0x61
#define OBEX_RSP_FORBIDDEN   0x43
#define OBEX_RSP_GATEWAY_TIMEOUT   0x54
#define OBEX_RSP_GONE   0x4a
#define OBEX_RSP_INTERNAL_SERVER_ERROR   0x50
#define OBEX_RSP_LENGTH_REQUIRED   0x4b
#define OBEX_RSP_METHOD_NOT_ALLOWED   0x45
#define OBEX_RSP_MOVED_PERMANENTLY   0x31
#define OBEX_RSP_MOVED_TEMPORARILY   0x32
#define OBEX_RSP_MULTIPLE_CHOICES   0x30
#define OBEX_RSP_NO_CONTENT   0x24
#define OBEX_RSP_NON_AUTHORITATIVE   0x23
#define OBEX_RSP_NOT_ACCEPTABLE   0x46
#define OBEX_RSP_NOT_FOUND   0x44
#define OBEX_RSP_NOT_IMPLEMENTED   0x51
#define OBEX_RSP_NOT_MODIFIED   0x34
#define OBEX_RSP_PARTIAL_CONTENT   0x26
#define OBEX_RSP_PAYMENT_REQUIRED   0x42
#define OBEX_RSP_PRECONDITION_FAILED   0x4c
#define OBEX_RSP_PROXY_AUTH_REQUIRED   0x47
#define OBEX_RSP_REQ_ENTITY_TOO_LARGE   0x4d
#define OBEX_RSP_REQ_URL_TOO_LARGE   0x4e
#define OBEX_RSP_REQUEST_TIME_OUT   0x48
#define OBEX_RSP_RESET_CONTENT   0x25
#define OBEX_RSP_SEE_OTHER   0x33
#define OBEX_RSP_SERVICE_UNAVAILABLE   0x53
#define OBEX_RSP_SUCCESS   0x20
#define OBEX_RSP_SWITCH_PRO   0x11
#define OBEX_RSP_UNAUTHORIZED   0x41
#define OBEX_RSP_USE_PROXY   0x35
#define OBEX_RSP_VERSION_NOT_SUPPORTED   0x55
#define OBEX_TRANS_BLUETOOTH   4
#define OBEX_TRANS_CUST   3 /* Fixme: This will go away in future */
#define OBEX_TRANS_CUSTOM   3
#define OBEX_TRANS_FD   5
#define OBEX_TRANS_INET   2
#define OBEX_TRANS_IRDA   1
#define OBEX_TRANS_USB   6