AW: [omniORB] function and sequence
evgeni.rojkov at durr.com
evgeni.rojkov at durr.com
Thu Jan 31 14:13:02 GMT 2008
> You can use also for the strings :
> temp[0] = ( const char * )"klaus at uni.de";
Yes, both operator=(const char*) and CORBA::string_dup() will work correctly
here. I would prefer CORBA::string_dup() to avoid disaster if "const" is missing
and just "char*" used.
> Evgeni, what about reference counting
> with the "_retn( )"?
Here is the code we are talking about:
{
Feld_var temp = new Feld;
....
return temp._retn();
}
Immediately after "return ...;" temp goes out of scope.
Without "temp._retn();", "delete temp.pd_data;" will be called in
temp-destructor, so we would have nothing valid to return. Are there any other
ways except "._retn();" here ?
Kind Regards,
Evgeni
-----Ursprüngliche Nachricht-----
Von: omniorb-list-bounces at omniorb-support.com
[mailto:omniorb-list-bounces at omniorb-support.com] Im Auftrag von DA SILVA
Antonio
Gesendet: Mittwoch, 30. Januar 2008 17:34
An: omniorb-list at omniorb-support.com
Betreff: Re: [omniORB] function and sequence
Hi Ronald,
You can use also for the strings :
temp[0] = ( const char * )"klaus at uni.de";
Evgni, what about reference counting
with the "_retn( )"?
Antonio.
Ronald Andrae a écrit :
> Hello,
>
> thanks, you have fixed my problem. :-)
>
> evgeni.rojkov at durr.com schrieb:
>> Here are 2 improvement suggestions.
>> Regards, Evgeni
>>
>> // 1.
>> // temp[0] = "klaus at uni.de";
>> temp[0] = CORBA::string_dup("klaus at uni.de");
>>
>> // 2.
>> //return temp;
>> return temp._retn();
>>
>>
>> -----Ursprüngliche Nachricht-----
>> Von: omniorb-list-bounces at omniorb-support.com
>> [mailto:omniorb-list-bounces at omniorb-support.com] Im Auftrag von
>> Ronald Andrae
>> Gesendet: Mittwoch, 30. Januar 2008 15:16
>> An: omniorb-list at omniorb-support.com
>> Betreff: [omniORB] function and sequence
>>
>>
>> Hello,
>>
>> I have function, which returns a variable array (sequence).
>>
>> My IDL:
>>
>> typedef sequence<string> Feld;
>>
>> interface Student{
>> Feld getEmails();
>> };
>>
>> My implementation:
>>
>> class Student_impl : public POA_Student
>> {
>> public:
>>
>> Feld * getEmails() {
>> Feld_var temp = new Feld;
>> temp->length(3);
>> temp[0] = "klaus at uni.de";
>> temp[1] = "gustav at uni.de";
>> temp[2] = "dieter at uni.de";
>> return temp;
>> }
>> };
>>
>> There is a problem with the types Feld and Feld_var. Have anyone an
>> idea, how i can fix this problem, so that I can use the array at the
>> client side?
>>
>> Thanks
>>
>> _______________________________________________
>> omniORB-list mailing list
>> omniORB-list at omniorb-support.com
>> http://www.omniorb-support.com/mailman/listinfo/omniorb-list
>>
>>
>
> _______________________________________________
> omniORB-list mailing list
> omniORB-list at omniorb-support.com
> http://www.omniorb-support.com/mailman/listinfo/omniorb-list
>
_______________________________________________
omniORB-list mailing list
omniORB-list at omniorb-support.com
http://www.omniorb-support.com/mailman/listinfo/omniorb-list
More information about the omniORB-list
mailing list