Thanks everyone. I used C++ and I followed Mark's way. It works well then reverseRequest.__isset.int_value = true;
But there is no explaination about this in the tutorial. I think documentation needs to be imporved in the future. Thanks very much. 2010/5/11 Bryan Duxbury <[email protected]> > Or, in Java, use the "private-members" option to force yourself to use the > accessors. > > On Mon, May 10, 2010 at 2:36 PM, Mark Slee <[email protected]> wrote: > > > Is this Java or C++? > > > > > > ReverseRequest reverseRequest; > > > > reverseRequest.text = "test"; > > > > reverseRequest.int_value = 50; > > > > Try adding (C++): > > reverseRequest.__isset.text = true; > > reverseRequest.__isset.int_value = true; > > > > Or (Java): > > reverseRequest.setText("test"); > > reverseRequest.setIntValue(50); > > > > > > If fields are explicitly marked optional, you need to flag the isset bits > > to indicate that they are considered present. > > > > Cheers, > > mcslee > > > > -----Original Message----- > > From: Noam Wolf [mailto:[email protected]] > > Sent: Monday, May 10, 2010 7:28 AM > > To: [email protected] > > Subject: Re: about optinal field > > > > Can you provide more code of how you're actually passing the response > back > > to the client? > > > > On Mon, May 10, 2010 at 10:24 AM, Bryan Duxbury <[email protected]> > wrote: > > > > > What language are your clients and servers? > > > > > > On Mon, May 10, 2010 at 6:41 AM, thrift thrift <[email protected]> > > > wrote: > > > > > > > Hi, > > > > I met a weard problem like below. > > > > > > > > I have two struct > > > > > > > > struct ReverseRequest { > > > > 1: string text, > > > > 2: optional i32 int_value, > > > > } > > > > struct ReverseResponse { > > > > 1: string reversed_text, > > > > 2: optional i32 reversed_int_value, > > > > } > > > > > > > > In client side, it set like > > > > > > > > ReverseRequest reverseRequest; > > > > reverseRequest.text = "test"; > > > > reverseRequest.int_value = 50; > > > > > > > > and > > > > When I tried to get response from client > > > > I used > > > > ReverseResponse reverseResponse; > > > > reverseResponse.reversed_int_value; > > > > > > > > The thing is that if I use optional keyword, then response will be 0, > > if > > > > not, the response is 50. But even when I use optional, I also set the > > > > int_value and reversed_int_value. Why 0 is returned? > > > > > > > > > > > > > > > -- > > Best Regards, > > Noam Wolf > > >
