[xsde-users] Re: validation false error

Boris Kolpackov boris at codesynthesis.com
Sun May 22 16:50:59 EDT 2011


Hi James,

James Sutton <jrs at jmsutton.co.uk> writes:
 
> > Can you please from now on send technical questions like these to the
> > xsde-users mailing list (CC'ed)? This way others who may have similar
> > questions in the future will hopefully be able to find the answers.
> 
> do you mean <xsde-users at codesynthesis.com>?

Yes.

 
> >> 4. Nested sequence_type classes can be very confusing. Rather than
> >> reuse sequence_type, sequence1_type, sequence2_type... for each level
> >> of nesting it would be easier if you used unique numbers for every
> >> sequence_type defined in an outer class.
> > 
> > In a sense that's exactly what we do. What "uniquifiers" other than
> > numbers would you suggest we use?
> 
> numbers are fine - just don't reuse numbers (ie names) when nested in
> a single outer class
> 
> ie you generate:
> 
> class outer
> {
> 	class sequence_type
> 	{
> 	..
> 		class sequence_type
> 		{
> 			...
> 		};
> 		const sequence_type sequence() const;
> 		...
> 		class sequence1_type
> 		{
> 			...
> 		};
> 		const sequence1_type sequence1() const;
> 	};
> 
> 	const sequence_type sequence() const;
> 
> 	class sequence1_type
> 	{
> 		...
> 	};
> 	const sequence1_type sequence1() const;
> 	...
> };
> 
> while I am suggesting something like:
> 
> class outer
> {
> 	class sequence0_type
> 	{
> 	..
> 		class sequence2_type
> 		{
> 			...
> 		};
> 		const sequence2_type sequence2() const;
> 		...
> 		class sequence3_type
> 		{
> 			...
> 		};
> 		const sequence3_type sequence3() const;
> 	};
> 
> 	const sequence0_type sequence0() const;
> 
> 	class sequence1_type
> 	{
> 		...
> 	};
> 	const sequence1_type sequence1() const;
> 	...
> };
> 
> or alternatively:
> 
> class outer
> {
> 	class sequence0_type
> 	{
> 	..
> 		class sequence1_1_type
> 		{
> 			...
> 		};
> 		const sequence1_1_type sequence1_1() const;
> 		...
> 		class sequence1_2_type
> 		{
> 			...
> 		};
> 		const sequence1_2_type sequence1_2() const;
> 	};
> 
> 	const sequence0_type sequence0() const;
> 
> 	class sequence1_type
> 	{
> 		...
> 	};
> 	const sequence1_type sequence1() const;
> 	...
> };
> 
> so you don't get the same class name recurring at different levels 
> of the hierarchy within the same class.

Hm, I see the utility of your suggestion. However, it will be hard
to do such numbering in the code generator since the outer counters
will have to be passed around when generating classes for nested 
compositors.

As a workaround, you can always assign custom names to the individual
types using typedef. Something like this:

typedef outer::sequence_type foo_seq;
typedef outer::sequence1_type bar_seq;

typedef foo_seq::sequence_type foo_x_seq;
typedef foo_seq::sequence1_type foo_y_seq;

Where 'foo', 'bar', 'x', and 'y' would be some meaningful names in your
vocabulary.

Boris



More information about the xsde-users mailing list