Autobinder.h File Reference

Detailed Description

Binder automated marshalling code.

#include <support/Value.h>
#include <support/Parcel.h>

Go to the source code of this file.


struct  BAutobinderDef
class  BAutobinderDummiClass
struct  BEffectMethodDef
struct  BParameterInfo
struct  PPointerToMemberFunction
struct  PTypeMarshaller
class  SMarshallerForType


#define B_FIND_BINDER_I_CLASS_OFFSET(L)   ((((int)static_cast<IInterface*>((L*)10))-10))
#define B_FUNC_INFO(method)   { NULL }
#define B_IMPLEMENT_MARSHAL_PLAN(def, returnValue, remote, binding, which)


typedef status_t(* autobinder_local_hook_t )(const sptr< IInterface > &target, SParcel *in, SParcel *out)
typedef void(BAutobinderDummiClass::* BSomeMethod )()
typedef void(* untyped_func )(void)


enum  { B_IN_PARAM = 0x00000001, B_OUT_PARAM = 0x00000002 }


status_t autobinder_from_parcel (const BEffectMethodDef &def, SParcel &parcel, void **args, uint32_t *outDirs)
 Used by pidgen to unmarshal when receiving a call.
status_t autobinder_marshal_args (const BParameterInfo *pi, const BParameterInfo *pi_end, uint32_t dir, void **inArgs, SParcel &outParcel, uint32_t *outDirs)
 Marshal an argument list into a parcel.
status_t autobinder_to_parcel (const BEffectMethodDef &def, void **args, void *result, SParcel &parcel, uint32_t dirs)
 Used by pidgen to marshal result when receiving a call.
status_t autobinder_unmarshal_args (const BParameterInfo *pi, const BParameterInfo *pi_end, uint32_t dir, SParcel &inParcel, void **outArgs, uint32_t *outDirs)
 Unmarshal an argument list out of a parcel.
status_t execute_autobinder (uint32_t code, const sptr< IInterface > &target, SParcel &data, SParcel *reply, const BAutobinderDef **defs, size_t def_count, uint32_t flags)
status_t InvokeAutobinderFunction (const BEffectMethodDef *def, void *object, const SValue &args, SValue *returnValue)
status_t parameter_from_value (type_code type, const struct PTypeMarshaller *marshaller, const SValue &v, void *result)
status_t parameter_to_value (type_code type, const struct PTypeMarshaller *marshaller, const void *value, SValue *out)
void PerformRemoteBinderCall (int ebp, const BEffectMethodDef *def, unsigned char *returnValue, const sptr< IBinder > &remote, SValue binding, uint32_t which)