thrift-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ben Taitelbaum <btait...@cs.oberlin.edu>
Subject Re: Dependencies
Date Thu, 28 May 2009 00:22:17 GMT
When I've needed to do something like this, and there is a cycle (so I  
can't include another file, or declare things in order), I've just  
been declaring a stub. It works for me in ruby, and I just tried it in  
java and the generated code looked decent (but I didn't try compililng  
it).

struct B {}
struct A {
  10: List<B> myBList
}
struct B{
  10: A myA
}

Does this work in other languages, or do you end up with a situation  
where some classes are multiply / incorrectly defined? If so, is it  
something you can fix with some sed?

-Ben

On May 26, 2009, at 10:59 PM, Kristinn Örn Sigurðsson wrote:

> Hi all.
> I'm having a little trouble with dependencies in Thrift. See this  
> for an
> example:
>
> struct TAccount {
> 1: i32 id,
> 2: string email,
> 3: string name,
> 4: string password,
> 5: list<TPhone> phones,
> 6: string address,
> 7: string postalCode,
> 8: string city,
> 9: string country,
> 10: list<TCritic> critics
> }
>
> struct TCritic {
> 1: i32 id,
> 2: TAccount author,
> 3: i32 rating,
> 4: string text
> }
>
> struct TCompany {
> 1: i32 id,
> 2: string name,
> 3: string email,
> 4: string phone,
> 5: string address,
> 6: string postalCode,
> 7: string city,
> 8: string country,
> 9: list<TAccount> employees,
> 10: list<TCritic> critics
> }
>
> This is just a partial copy/paste. Some structs aren't shown here.
>
> This doesn't compile into Thrift files. The problem here is that  
> TAccount
> depends on TCritic and TCritic depends on TAccount. The thing is that
> structs can't see other structs that are defined after (below) them.  
> Is
> there a workaround for this?
>
> Thanks in advance.
>
> Regards,
> Kristinn.


Mime
View raw message