|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
public interface Operation
The Operation
interface provides ways to manipulate a single
OBEX PUT or GET operation. The implementation of this interface sends
OBEX packets as they are built. If during the operation the peer in the
operation ends the operation, an IOException
is thrown on
the next read from the input stream, write to the output stream, or call to
sendHeaders()
.
Definition of methods inherited from ContentConnection
getEncoding()
will always return null
.
getLength()
will return the length specified by the OBEX Length
header or -1 if the OBEX Length header was not included.
getType()
will return the value specified in the OBEX Type
header or null
if the OBEX Type header was not included.
How Headers are Handled
As headers are received, they may be retrieved through the
getReceivedHeaders()
method. If new headers are set during the
operation, the new headers will be sent during the next packet exchange.
PUT example
void putObjectViaOBEX(ClientSession conn, HeaderSet head, byte[] obj) throws IOException { // Include the length header head.setHeader(head.LENGTH, new Long(obj.length)); // Initiate the PUT request Operation op = conn.put(head); // Open the output stream to put the object to it DataOutputStream out = op.openDataOutputStream(); // Send the object to the server out.write(obj); // End the transaction out.close(); op.close(); }
GET example
byte[] getObjectViaOBEX(ClientSession conn, HeaderSet head) throws IOException { // Send the initial GET request to the server Operation op = conn.get(head); // Retrieve the length of the object being sent back int length = op.getLength(); // Create space for the object byte[] obj = new byte[length]; // Get the object from the input stream DataInputStream in = op.openDataInputStream(); in.read(obj); // End the transaction in.close(); op.close(); return obj; }
close()
the OutputStream
returned from openOutputStream()
or openDataOutputStream()
will signal that the request is done. (In OBEX terms, the End-Of-Body header should
be sent and the final bit in the request will be set.) At this point, the
reply from the server may begin to be processed. A call to
getResponseCode()
will do an implicit close on the
OutputStream
and therefore signal that the request is done.
openInputStream()
or openDataInputStream()
signals that the request is complete. (In OBEX terms, the final bit in the request is set.)
A call to getResponseCode()
causes an implicit close on the
OutputStream
and therefore signal that the request is done.
Method Summary | |
---|---|
void |
abort()
Sends an ABORT message to the server. |
HeaderSet |
getReceivedHeaders()
Returns the headers that have been received during the operation. |
int |
getResponseCode()
Returns the response code received from the server. |
void |
sendHeaders(HeaderSet headers)
Specifies the headers that should be sent in the next OBEX message that is sent. |
Method Detail |
---|
void abort() throws java.io.IOException
close()
will be called by this method.
java.io.IOException
- if the transaction has already ended or if an
OBEX server calls this methodHeaderSet getReceivedHeaders() throws java.io.IOException
Operation
java.io.IOException
- if this Operation
has been closedvoid sendHeaders(HeaderSet headers) throws java.io.IOException
headers
- the headers to send in the next message
java.io.IOException
- if this Operation
has been closed
or the transaction has ended and no further messages will be exchanged
java.lang.IllegalArgumentException
- if headers
was not created
by a call to ServerRequestHandler.createHeaderSet()
or
ClientSession.createHeaderSet()
java.lang.NullPointerException
- if headers
if null
int getResponseCode() throws java.io.IOException
ResponseCodes
class. The OBEX response
code of CONTINUE (0x10 or 0x90) must never be returned from this method.
java.io.IOException
- if an error occurred in the transport layer during
the transaction; if this Operation
object has been closed;
if this object was created by an OBEX serverResponseCodes
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |