status_t ArcHmbPlayerBinder::onTransact(uint32_t code, const Parcel& data, Parcel* reply, uint32_t flags) { ALOGE("ArcHmbPlayerBinder::onTransact(%i) %i", code, flags); /* * Before executing actual method, check whether the RPC are from expected client. * Client will write interface token, to identify interface to which those methods * belong. */ if (!data.enforceInterface(ArcHmbPlayerInterface::DESCRIPTOR)) { ALOGE("failed to check Interface, you might call wrong service, this is for '%s'", String8(ArcHmbPlayerInterface::DESCRIPTOR).string()); return BAD_TYPE; } data.print(aout); endl(aout); switch(code) { case ArcHmbPlayerInterface::PRINT: { String16 msg = data.readString16(); print(String8(msg).string()); return NO_ERROR; } case ArcHmbPlayerInterface::ADD: { int32_t a = data.readInt32(); int32_t b = data.readInt32(); int32_t sum = add(a, b); ALOGE("ArcHmbPlayerBinder:onTransact add(%i, %i) = %i", a, b, sum); reply->print(aout); endl(aout); reply->writeInt32(sum); return NO_ERROR; } default: ALOGE("ArcHmbPlayerBinder, bad requesting code, no match found"); } return BBinder::onTransact(code, data, reply, flags); }
status_t BnDemo::onTransact(uint32_t code, const Parcel& data, Parcel* reply, uint32_t flags) { LOGD("BnDemo::onTransact(%i) %i", code, flags); data.checkInterface(this); data.print(PLOG); endl(PLOG); switch(code) { case ALERT: { alert(); // Ignoring the fixed alert string return NO_ERROR; } break; case PUSH: { int32_t inData = data.readInt32(); LOGD("BnDemo::onTransact got %i", inData); push(inData); ASSERT(reply != 0); reply->print(PLOG); endl(PLOG); return NO_ERROR; } break; case ADD: { int32_t inV1 = data.readInt32(); int32_t inV2 = data.readInt32(); int32_t sum = add(inV1, inV2); LOGD("BnDemo::onTransact add(%i, %i) = %i", inV1, inV2, sum); ASSERT(reply != 0); reply->print(PLOG); endl(PLOG); reply->writeInt32(sum); return NO_ERROR; } break; default: return BBinder::onTransact(code, data, reply, flags); } }