AllJoyn-跨平台方法调用返回值为自定义类型

来源:互联网 发布:淘宝盗用视频举报 编辑:程序博客网 时间:2024/06/14 08:39
AllJoyn-跨平台方法调用返回值为自定义类型
         service端代码:
    public class MyStruct{        @Position(0)        public String fileName;        @Position(1)        public int isoValue;        @Position(2)        public boolean dateTaken;    }    @BusMethod(replySignature = "sib")    MyStruct catStruct(String a,String b)throws BusException;
        方法实现:
        public MyStruct catStruct(String a,String b){            MyStruct temp=new MyStruct();            temp.fileName=a;            temp.isoValue=a.length();            temp.dateTaken=a.length()>b.length()?true:false;            return temp;        }
        client端:
        增加的接口方法:
testIntf->AddMethod("catStruct", "ss", "sib", "inStr1,inStr2,outStrStruct", 0);
        调用:
QStatus status = remoteObj.MethodCall(INTERFACE_NAME, "catStruct", inputs, 2, reply, 5000);
        解析自定义类型的数据:
//structstruct {char* str1;int aInt;bool bBool;}myStruct;printf("%s\n",reply->GetSignature());reply->GetArgs("sib", &myStruct.str1, &myStruct.aInt, &myStruct.bBool);printf("%s-%d-%s\n", myStruct.str1, myStruct.aInt, myStruct.bBool == true ? "true" : "false");
        调用实现结果截图:






0 0