longkai / lab

广西大学 - 雨无声实验室开放平台
4 stars 6 forks source link

http://help.eclipse.org/helios/index.jsp #32

Open neemo14-15 opened 10 years ago

neemo14-15 commented 10 years ago

Issue 2614: Setting the TypeCode of an Any without setting a value (cxx_revision)

Click here for this issue's archive. Nature: Uncategorized Issue Severity: Summary: Summary: Consider the following IDL:


// IDL typedef long MyArray[1000000];

interface I { void set_array(in MyArray array); };


Now let"s assume that I want to implement this using the DSI:


// C++ void I_impl::invoke(ServerRequest_ptr request) throw() { String_var name = request -> op_name();

 if(strcmp(name, "set_array") == 0)
 {
NVList_ptr list;
orb -> create_list(0, list);

Any* any = list -> add(ARG_IN) -> value();

     XXX

request -> params(list);

MyArray_forany arg;
*any >>= arg;

... // Do something with arg;

return;
 }
 else
 {
     NVList_ptr list;
orb -> create_list(0, list);
request -> params(list);

Any* any = new Any;
*any <<= new BAD_OPERATION();
request -> exception(any);
 }

}


At the line I marked with XXX, I have to set the TypeCode of the Any.