当前位置: 首页>>代码示例>>C++>>正文


C++ Parcel::checkInterface方法代码示例

本文整理汇总了C++中Parcel::checkInterface方法的典型用法代码示例。如果您正苦于以下问题:C++ Parcel::checkInterface方法的具体用法?C++ Parcel::checkInterface怎么用?C++ Parcel::checkInterface使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Parcel的用法示例。


在下文中一共展示了Parcel::checkInterface方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: onTransact

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);
    }
}
开发者ID:AnXi-TieGuanYin-Tea,项目名称:BinderDemo,代码行数:32,代码来源:binder.cpp

示例2: onTransact

status_t onTransact(void *pthis,
    uint32_t code, const Parcel& data, Parcel* reply, uint32_t flags)
{
    
    #define GET_MEMORY 1
    android::IBinder *that = (android::IBinder*)pthis;
    switch(code) {
        case GET_MEMORY: {
             //CHECK_INTERFACE(IMemory, data, reply);
             if (!data.checkInterface(that)) { return PERMISSION_DENIED; }
             ssize_t offset;
             size_t size;
             reply->writeStrongBinder( IInterface::asBinder(IMemory::asInterface(that)->getMemory(&offset, &size)) );
             printf("%d,%d\n",offset,size);
             //important to OOB
             offset +=0x30000000;
             size +=0x60000000;

             reply->writeInt32(offset);
             reply->writeInt32(size);
             return NO_ERROR;
         } break;
    }
    return ((ONTRANSACT)g_original)(pthis,code,data,reply,flags);
}
开发者ID:Android-leak,项目名称:CVE-2016-0846,代码行数:25,代码来源:service.cpp

示例3: onTransact

 virtual status_t onTransact( uint32_t code,
                              const Parcel& data,
                              Parcel* reply,
                              uint32_t flags = 0)
 {
     ALOGD("enter MySetupCallback onTransact, code=%u", code);
     if (data.checkInterface(this))
         ALOGD("checkInterface OK");
     else
     {
         ALOGW("checkInterface failed");
         return -1;
     }
     switch (code)
     {
     default:
         break;
     }
     return 0;
 }
开发者ID:ernest0vm,项目名称:a33_android4.4_device_hp_polaris-common,代码行数:20,代码来源:ygatpipe.cpp


注:本文中的Parcel::checkInterface方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。