public class ServerRequestHandler extends Object
ServerRequestHandler
class defines an event listener that
will respond to OBEX requests made to the server.
The onConnect()
, onSetPath()
,
onDelete()
, onGet()
, and onPut()
methods may return any response code defined in the
ResponseCodes
class except for OBEX_HTTP_CONTINUE
.
If OBEX_HTTP_CONTINUE
or a value not defined in the
ResponseCodes
class is returned, the server implementation will
send an OBEX_HTTP_INTERNAL_ERROR
response to the client.
Connection ID and Target Headers
According to the IrOBEX specification, a packet may not contain a Connection
ID and Target header. Since the Connection ID header is managed by the
implementation, it will not send a Connection ID header, if a Connection ID
was specified, in a packet that has a Target header. In other words, if an
application adds a Target header to a HeaderSet
object used in
an OBEX operation and a Connection ID was specified, no Connection ID will be
sent in the packet containing the Target header.
CREATE-EMPTY Requests
A CREATE-EMPTY request allows clients to create empty objects on the server.
When a CREATE-EMPTY request is received, the onPut()
method will
be called by the implementation. To differentiate between a normal PUT
request and a CREATE-EMPTY request, an application must open the
InputStream
from the Operation
object passed to the
onPut()
method. For a PUT request, the application will be able
to read Body data from this InputStream
. For a CREATE-EMPTY
request, there will be no Body data to read. Therefore, a call to
InputStream.read()
will return -1.
Modifier | Constructor and Description |
---|---|
protected |
ServerRequestHandler()
Creates a
ServerRequestHandler . |
Modifier and Type | Method and Description |
---|---|
long |
getConnectionId()
Retrieves the connection ID that is being used in the present connection.
|
boolean |
isSrmSupported()
Override to add Single Response Mode support - e.g. if the supplied
transport is l2cap.
|
int |
onAbort(HeaderSet request,
HeaderSet reply)
Called when a ABORT request is received.
|
void |
onAuthenticationFailure(byte[] userName)
Called when this object attempts to authenticate a client and the
authentication request fails because the response digest in the
authentication response header was wrong.
|
void |
onClose()
Called when session is closed.
|
int |
onConnect(HeaderSet request,
HeaderSet reply)
Called when a CONNECT request is received.
|
int |
onDelete(HeaderSet request,
HeaderSet reply)
Called when a DELETE request is received.
|
void |
onDisconnect(HeaderSet request,
HeaderSet reply)
Called when a DISCONNECT request is received.
|
int |
onGet(Operation operation)
Called when a GET request is received.
|
int |
onPut(Operation operation)
Called when a PUT request is received.
|
int |
onSetPath(HeaderSet request,
HeaderSet reply,
boolean backup,
boolean create)
Called when a SETPATH request is received.
|
void |
setConnectionId(long connectionId)
Sets the connection ID header to include in the reply packets.
|
void |
updateStatus(String message)
Called by ServerSession to update the status of current transaction
If this method is not implemented by the class that extends this class,
this method will do nothing.
|
protected ServerRequestHandler()
ServerRequestHandler
.public void setConnectionId(long connectionId)
connectionId
- the connection ID to use; -1 if no connection ID
should be sentIllegalArgumentException
- if id
is not in the range
-1 to 232-1public long getConnectionId()
public int onConnect(HeaderSet request, HeaderSet reply)
If this method is not implemented by the class that extends this class,
onConnect()
will always return an OBEX_HTTP_OK
response code.
The headers received in the request can be retrieved from the
request
argument. The headers that should be sent in the
reply must be specified in the reply
argument.
request
- contains the headers sent by the client;
request
will never be null
reply
- the headers that should be sent in the reply;
reply
will never be null
ResponseCodes
that will
be returned to the client; if an invalid response code is
provided, the OBEX_HTTP_INTERNAL_ERROR
response code
will be usedpublic void onDisconnect(HeaderSet request, HeaderSet reply)
The headers received in the request can be retrieved from the
request
argument. The headers that should be sent in the
reply must be specified in the reply
argument.
request
- contains the headers sent by the client;
request
will never be null
reply
- the headers that should be sent in the reply;
reply
will never be null
public int onSetPath(HeaderSet request, HeaderSet reply, boolean backup, boolean create)
If this method is not implemented by the class that extends this class,
onSetPath()
will always return an
OBEX_HTTP_NOT_IMPLEMENTED
response code.
The headers received in the request can be retrieved from the
request
argument. The headers that should be sent in the
reply must be specified in the reply
argument.
request
- contains the headers sent by the client;
request
will never be null
reply
- the headers that should be sent in the reply;
reply
will never be null
backup
- true
if the client requests that the server
back up one directory before changing to the path described by
name
; false
to apply the request to the
present pathcreate
- true
if the path should be created if it does
not already exist; false
if the path should not be
created if it does not exist and an error code should be returnedResponseCodes
that will
be returned to the client; if an invalid response code is
provided, the OBEX_HTTP_INTERNAL_ERROR
response code
will be usedpublic int onDelete(HeaderSet request, HeaderSet reply)
If this method is not implemented by the class that extends this class,
onDelete()
will always return an
OBEX_HTTP_NOT_IMPLEMENTED
response code.
The headers received in the request can be retrieved from the
request
argument. The headers that should be sent in the
reply must be specified in the reply
argument.
request
- contains the headers sent by the client;
request
will never be null
reply
- the headers that should be sent in the reply;
reply
will never be null
ResponseCodes
that will
be returned to the client; if an invalid response code is
provided, the OBEX_HTTP_INTERNAL_ERROR
response code
will be usedpublic int onAbort(HeaderSet request, HeaderSet reply)
public int onPut(Operation operation)
If this method is not implemented by the class that extends this class,
onPut()
will always return an
OBEX_HTTP_NOT_IMPLEMENTED
response code.
If an ABORT request is received during the processing of a PUT request,
op
will be closed by the implementation.
operation
- contains the headers sent by the client and allows new
headers to be sent in the reply; op
will never be
null
ResponseCodes
that will
be returned to the client; if an invalid response code is
provided, the OBEX_HTTP_INTERNAL_ERROR
response code
will be usedpublic int onGet(Operation operation)
If this method is not implemented by the class that extends this class,
onGet()
will always return an
OBEX_HTTP_NOT_IMPLEMENTED
response code.
If an ABORT request is received during the processing of a GET request,
op
will be closed by the implementation.
operation
- contains the headers sent by the client and allows new
headers to be sent in the reply; op
will never be
null
ResponseCodes
that will
be returned to the client; if an invalid response code is
provided, the OBEX_HTTP_INTERNAL_ERROR
response code
will be usedpublic void onAuthenticationFailure(byte[] userName)
If this method is not implemented by the class that extends this class, this method will do nothing.
userName
- the user name returned in the authentication response;
null
if no user name was provided in the responsepublic void updateStatus(String message)
If this method is not implemented by the class that extends this class, this method will do nothing.
public void onClose()
If this method is not implemented by the class that extends this class, this method will do nothing.
public boolean isSrmSupported()