BnDatum Class Reference

#include <support/IDatum.h>

Inheritance diagram for BnDatum:

IDatum BBinder IInterface IBinder SAtom SAtom BGenericDatum BStreamDatum SDatumLord::Datum BValueDatum SDatumGeneratorInt::IndexedDatum List of all members.

Public Member Functions

virtual SValue Inspect (const sptr< IBinder > &caller, const SValue &which, uint32_t flags=0)
 Probe binder for interface information.
virtual sptr< IInterfaceInterfaceFor (const SValue &descriptor, uint32_t flags=0)
 Retrieve direct interface for this binder.
void PushDatumChanged (const sptr< IDatum > &who, const sptr< IBinder > &editor, off_t start, off_t length)
 Pushed when the contents of the datum changes.
void PushSize (off_t value)
void PushValue (const SValue &value)
void PushValueType (uint32_t value)

Protected Member Functions

virtual sptr< const IBinderAsBinderImpl () const
virtual sptr< IBinderAsBinderImpl ()
 BnDatum (const SContext &context)
 BnDatum ()
virtual status_t HandleEffect (const SValue &, const SValue &, const SValue &, SValue *)
virtual status_t Transact (uint32_t code, SParcel &data, SParcel *reply, uint32_t flags)
 Low-level data transfer.
virtual ~BnDatum ()

Constructor & Destructor Documentation

BnDatum  )  [protected]

BnDatum const SContext context  )  [protected]

virtual ~BnDatum  )  [protected, virtual]

Member Function Documentation

virtual sptr<const IBinder> AsBinderImpl  )  const [protected, virtual]

Reimplemented from IInterface.

virtual sptr<IBinder> AsBinderImpl  )  [protected, virtual]

Reimplemented from IInterface.

virtual status_t HandleEffect const SValue ,
const SValue ,
const SValue ,
[protected, virtual]

Reimplemented from BBinder.

virtual SValue Inspect const sptr< IBinder > &  caller,
const SValue which,
uint32_t  flags = 0

Probe binder for interface information.

Return interfaces implemented by this binder object that are requested by which. This is a composition of all interfaces, expressed as { descriptor -> binder } mappings, which are selected through which.

Much more information on Inspect() can be found at Binder Inspect() Details.

Reimplemented from BBinder.

virtual sptr<IInterface> InterfaceFor const SValue descriptor,
uint32_t  flags = 0

Retrieve direct interface for this binder.

Given a SValue interface descriptor, return an IInterface implementing it. The default implementation of this function returns NULL, meaning it does not implement a direct interface to it. If the return is non-NULL, you are guaranteed to be able to static_cast<> the returned interface into the requested subclass and have it work.

Note that this is NOT the same as calling Inspect(), which performs conversion between different IBinder objects. This method converts to an IInterface only for this binder object.

Reimplemented from BBinder.

void PushDatumChanged const sptr< IDatum > &  who,
const sptr< IBinder > &  editor,
off_t  start,
off_t  length

Pushed when the contents of the datum changes.

[in] who The datum that changed.
[in] editor The editor that made the changed (as supplied to Open()).
[in] start The location in the datum where the change started.
[in] length The number of bytes from "start" that changed.
If the contents of the datum is small enough, the "value" property may be pushed at the same time as this event.

void PushSize off_t  value  ) 

void PushValue const SValue value  ) 

void PushValueType uint32_t  value  ) 

virtual status_t Transact uint32_t  code,
SParcel data,
SParcel reply,
uint32_t  flags
[protected, virtual]

Low-level data transfer.

This is the Binder's IPC primitive. It allows you to send a parcel of data to another Binder (possibly in another process or language) and get a parcel of data back. The parcel can contain IBinder objects to transfer references between environments. The code can be any arbitrary value, though some standard codes are defined for parts of the higher-level IBinder protocol (B_EFFECT_TRANSACTION, B_INSPECT_TRANSACTION, etc). The flags are used for internal IPC implementation and must always be set to 0 when calling. If your implementation of Transact() returns an error code (instead of B_OK), that code will be propagated back to the caller WITHOUT any reply data.

Reimplemented from BBinder.

The documentation for this class was generated from the following file: