//// General Comment
module Test {
	apiVersion = 16;
	
	enum	Fred { E1, E2 };

	//// A Data class
	struct Data {
		Int32	a;	///< The Id
		String	b;
		Int32	c;
	};
	
	struct Data1 {
		Int32	a;	///< The Id
		Int32	b;
		Int32	c;
		Int16	c;
	};

	interface Obj1 {
		Error setData(in Int32 a1, in Data a2);		///< Set some data
		Error getData(out Int32 a1, out Data a2);	///< Get some data

		Error setData1(in Int32 a1, in Array<Int32> a2);		///< Set some data
		Error getData1(out Int32 a1, out Array<Int32> a2);	///< Get some data

		Error setData2(in Int32 a1, in Array<Data1> a2);		///< Set some data
		Error getData2(out Int32 a1, out Array<Data1> a2);	///< Get some data

		Error setData3(in Int32 a1, in Array<Data> a2);		///< Set some data
		Error getData3(out Int32 a1, out Array<Data> a2);	///< Get some data
	};
};
