BnByteOutput Class Reference

#include <support/ByteStream.h>

Inheritance diagram for BnByteOutput:

BnInterface< IByteOutput > IByteOutput BBinder IInterface IBinder SAtom SAtom BBufferIO BByteStream BIOSStream BKernelOStr BNullStream BPipe BStreamDatum::Stream BWindowsOutputStream BWriteOnlyStream List of all members.

Public Member Functions

virtual status_t Effect (const SValue &in, const SValue &inBindings, const SValue &outBindings, SValue *out)
 Perform an action on the binder.
virtual status_t Link (const sptr< IBinder > &to, const SValue &bindings, uint32_t flags=0)
 Link registers the IBinder "target" for notification of events.
virtual status_t Transact (uint32_t code, SParcel &data, SParcel *reply=NULL, uint32_t flags=0)
 Low-level data transfer.
virtual status_t Unlink (const wptr< IBinder > &from, const SValue &bindings, uint32_t flags=0)
 Remove a mapping previously added by Link().

Protected Member Functions

 BnByteOutput (const SContext &c)
 BnByteOutput ()
virtual status_t HandleEffect (const SValue &in, const SValue &inBindings, const SValue &outBindings, SValue *out)
virtual ~BnByteOutput ()

Constructor & Destructor Documentation

BnByteOutput  )  [inline, protected]
 

BnByteOutput const SContext c  )  [inline, protected]
 

virtual ~BnByteOutput  )  [inline, protected, virtual]
 


Member Function Documentation

status_t Effect const SValue in,
const SValue inBindings,
const SValue outBindings,
SValue out
[virtual]
 

Perform an action on the binder.

Either a get, put, or invocation, depending on the supplied and requested bindings.

Reimplemented from BBinder.

status_t HandleEffect const SValue in,
const SValue inBindings,
const SValue outBindings,
SValue out
[protected, virtual]
 

Reimplemented from BBinder.

status_t Link const sptr< IBinder > &  to,
const SValue bindings,
uint32_t  flags = 0
[virtual]
 

Link registers the IBinder "target" for notification of events.

The bindings is a mapping of keys that will get pushed on this IBinder, to keys that will get pushed on the "target" IBinder. e.g.

  • If you call link thus: binder1->Link(binder2, SValue("A", "B"));
  • When "A" is pushed on binder1: binder1->Push(SValue("A", "C"));
  • The following will get called on binder2: binder2->Effect(SValue("B", "C"), SValue::wild, SValue::undefined, NULL);

Reimplemented from BBinder.

status_t Transact uint32_t  code,
SParcel data,
SParcel reply = NULL,
uint32_t  flags = 0
[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.

status_t Unlink const wptr< IBinder > &  from,
const SValue bindings,
uint32_t  flags = 0
[virtual]
 

Remove a mapping previously added by Link().

Reimplemented from BBinder.


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