/**************************************************************
 * 
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 * 
 *   http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 * 
 *************************************************************/

/* In this file the idl struct will be tested.
  bla
 */

#include <enum.idl>

typedef short Error;

/// idlc defines a test module
module idlc
{

typedef long Error;

/// test defines a test module
module test
{

/** bla
   BaseStruct defines an * intial struct
 */
struct BaseStruct
{
	/// a long member
	long 	m1;
	/// a string member
	string 	m2;
	/// a byte member
	byte	m3;
	/// a type member
	type 	m4;
	/// a enum member, Error in moudle idlc::test
	Error	m5;
	/// a typedef member, global Error (typedef short)
	::Error	m6;
	/// a typedef member, Error in moudle idlc (typedef long)
	::idlc::Error	m7;
	/// a typedef member, Error in moudle idlc (typedef long)
	idlc::Error	m8;	
	/// a enum member, Error in moudle idlc::test
	test::Error	m9;	
};

/** TestStruct deinfes a struct which inherits 
    from the base strcut type BaseStruct. 
*/
struct TestStruct : BaseStruct
{
	/// a short member
	short 			ms1;
	/// a hyper member
	hyper			ms2;
	/// a sequence<long> member
	sequence< long > 	ms3;
	/// a long array member with dimesion 5,10
	long			ms4[5][10];
	/// a string array member with dimension 4,8
	long[5][10]		ms5;
};

}; // test

}; // idlc
