Location:
obexbaseobject.h
Link against: obex.lib
class CObexBaseObject : public CBase;
Objects of this class are used to describe the objects to be transferred and those received via Obex. Consists of a number of attributes describing the object, along with methods to set them. CObexBaseObject is an abstract base class, which defines attribute setting and transferring functionality, but does not specify the storage mechanism for the data part (called the object body) of the object. This body part is defined in derived classes.
Object description attributes are tracked for validity automatically, so that only valid attributes are sent to the remote machine. Also has the concept of "header masks". This selects which of the various attributes will actually be sent out/read in when the object is used in an operation with the remote machine. Objects default to transferring all valid attributes, use the header mask if restriction is required on the headers exchanged.
See the various derived classes for description of object body representation.
The common attributes are defined to be as close to the underlying OBEX headers as usefully possible, hence any OBEX header
specified as a Unicode string (e.g. Name) translate to TDes (variant) EPOC descriptors, "byte sequences" (e.g. Type) are TDes8
(or ASCII invariant), and byte and 32 bit integers (e.g. Length) are TUint32s.
This class is not designed for user derivation (ie. outside of this dll).
CBase
- Base class for all classes to be instantiated on the heap
CObexBaseObject
- Objects of this class are used to describe the objects to be transferred and those received via Obex
Defined in CObexBaseObject
:
AddHeaderL()
, AddHttpL()
, AppParam()
, BytesReceived()
, BytesSent()
, DataSize()
, Description()
, EComplete
, EContinue
, EError
, ELastPacket
, GetData()
, HeaderMask()
, HeaderSet()
, HeaderSet()
, Http()
, Length()
, Name()
, NewData()
, Reset()
, ResetData()
, SetAppParamL()
, SetDescriptionL()
, SetHeaderMask()
, SetLengthL()
, SetNameL()
, SetTargetL()
, SetTimeL()
, SetTypeL()
, TProgress
, Target()
, Time()
, Type()
, ValidHeaders()
, ~CObexBaseObject()
Inherited from CBase
:
Delete()
,
Extension_()
,
operator new()
IMPORT_C void SetHeaderMask(const TObexHeaderMask aHeaderMask);
Sets the header mask. aHeaderMask is built up by bit-wise ‘or’ing any of the KObexHdr... constants. For example, if it is set to KObexHdrName | KObexHdrLength, only these two headers will be specified in transfer operations with the remote machine, even if there are other valid attributes which could be used. In effect, this mask is bit-wise ‘and’ed with the "valid headers" mask when determining which headers are valid for the purposes of transfers.
|
IMPORT_C void SetNameL(const TDesC &aDesc);
Sets the Name attribute of the object.
The Name is used to identify the object to the remote machine (or to identify a received object). Note that in general, this
is quite distinct from the CObexFileObject::DataFile()
attribute, which specifies where the body of the object is stored.
|
IMPORT_C void SetTypeL(const TDesC8 &aDesc);
Sets the Type attribute of the object.
This should be in the form of a valid IANA media type (see http://www.iana.org/assignments/media-types/index.html).
|
IMPORT_C void SetLengthL(const TUint32 aLength);
Sets the Length attribute of the object, in bytes.
Note that this does not necessarily have to match the exact size of the body data, but is used to give an indication of the size to the receiving end.
|
IMPORT_C void SetTimeL(const TTime aLocalTime);
Sets the Time
attribute of the object (stored in UTC).
|
IMPORT_C void SetDescriptionL(const TDesC &aDesc);
Sets the Description attribute of the object.
This is currently the easiest way to send proprietary information along with an object.
|
IMPORT_C void SetTargetL(const TDesC8 &aDesc);
Sets the Target attribute of the object.
Generally, this will only have any useful meaning if the session Who attribute of the remote machine is recognised, and particularly,
when connected to a strict peer (see CObex::IsStrictPeer()
).
|
IMPORT_C void AddHttpL(const TDesC8 &aDesc);
Add an Http header.
|
IMPORT_C void SetAppParamL(const TDesC8 &aDesc);
Sets the Application Parameters attribute of the object.
This is expected to be of the format Tag-Length-Value, but this is not enforced.
|
IMPORT_C void AddHeaderL(CObexHeader &aHeader);
Adds a CObexHeader
into the CObexHeaderSet
|
IMPORT_C TInt BytesSent();
Returns the number of bytes of the body of the object transferred so far while sending this object.
|
IMPORT_C TInt BytesReceived();
Returns the number of bytes of the body of the object transferred while receiving an object.
|
IMPORT_C TObexHeaderMask HeaderMask();
Returns the currently set header mask. This defaults to 0xFF (i.e. allow everything) when Reset () or InitFromFileL is called. This does not specify which headers currently contain valid data--merely which headers will be transferred if they do contain valid data.
|
IMPORT_C TObexHeaderMask ValidHeaders();
Returns the current valid header mask. This allows inspection of the current set of valid headers, particularly useful for determining whether a put object contained a body header (important for deleting files as part of file transfer).
|
IMPORT_C const TDesC &Name();
Gets the object's Name attribute.
|
IMPORT_C const TDesC8 &Type();
Gets the object's Type attribute.
|
IMPORT_C TUint32 Length();
Gets the object's Length attribute.
Note this might not match the size of the file (if any) to transfer.
|
IMPORT_C const TTime Time();
Returns the time attribute of the object in local time. Returns TTime
(0) if no valid time has been set.
|
IMPORT_C const TDesC &Description();
Gets the object's Description attribute.
|
IMPORT_C const TDesC8 &Target();
Gets the object's Target attribute.
|
IMPORT_C const RPointerArray< HBufC8 > *Http() const;
Firstly updates the iHttp list, ensuring that the entries are the same as those HTTP headers within the header set. (The iHttp list could have contained old headers that were removed from the headerset using the DeleteMasked operation) Returns a pointer to the Http header array or null if no headers defined.
|
IMPORT_C const TDesC8 &AppParam() const;
Gets the object's Application Parameters attribute
This function does not parse the Application Parameters attribute into the expected Tag-Length-Value format.
|
IMPORT_C void Reset();
Resets the object, to make it represent nothing.
Call this before setting a CObexObject to represent a new object.
IMPORT_C const CObexHeaderSet &HeaderSet() const;
|
IMPORT_C CObexHeaderSet &HeaderSet();
|
protected: virtual void GetData(TInt aPos, TDes8 &aDes)=0;
|