/* $Id$ * * Copyright 2007-2008 Cisco Systems Inc. * * Licensed 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. */ module etch.tests /** The first big test */ @Direction(Both) @Timeout(4000) service Test1 { /** blah */ const boolean BOOL1 = false /** blah */ const boolean BOOL2 = true /** blah */ const byte BYTE1 = -128 /** blah */ const byte BYTE2 = -1 /** blah */ const byte BYTE3 = 0 /** blah */ const byte BYTE4 = 1 /** blah */ const byte BYTE5 = 127 /** blah */ const short SHORT1 = -32768 /** blah */ const short SHORT2 = -1 /** blah */ const short SHORT3 = 0 /** blah */ const short SHORT4 = 1 /** blah */ const short SHORT5 = 32767 /** blah */ const int INT1 = -2147483648 /** blah */ const int INT2 = -1 /** blah */ const int INT3 = 0 /** blah */ const int INT4 = 1 /** blah */ const int INT5 = 2147483647 /** blah */ const long LONG1 = -9223372036854775808 /** blah */ const long LONG2 = -1 /** blah */ const long LONG3 = 0 /** blah */ const long LONG4 = 1 /** blah */ const long LONG5 = 9223372036854775807 /** blah */ const float FLOAT1 = 1.4e-45 /** blah */ const float FLOAT2 = -1 /** blah */ const float FLOAT3 = 0 /** blah */ const float FLOAT4 = 1 /** blah */ const float FLOAT5 = 3.4028235e38 /** blah */ const double DOUBLE1 = 4.9e-324 /** blah */ const double DOUBLE2 = -1 /** blah */ const double DOUBLE3 = 0 /** blah */ const double DOUBLE4 = 1 /** blah */ const double DOUBLE5 = 1.7976931348623157e308 /** blah */ const string STRING1 = "" /** blah */ const string STRING2 = "a" /** blah */ const string STRING3 = "abc" /** blah */ const string STRING4 = "a\tb\tc\r\n" /** blah */ const string STRING5 = "x\u0020x" // space /** blah */ const string STRING6 = "x\u00bfx" // inverted question mark /** blah */ const string STRING7 = "x\u03a9x" // greek omega /** blah */ const string STRING8 = "x\\x" // backslash /** blah */ const string STRING9 = "x'x" // apostrophe /** blah */ const string STRING10 = "x\"x" // double quote /** blah */ enum E1( /** value */ A, /** value */ B, /** value */ C ) /** blah */ struct S1( /** value */ int x, /** value */ int y, /** value */ int z ) /** blah */ struct S2( /** value */ S1 a, /** value */ S1 b, /** value */ E1 c ) /** struct with object as param */ struct S3 ( /** value */ string tipe, /** value */ object x ) /** struct with array of object as param */ struct S4 ( /** value */ string tipe, /** value */ object[] x ) /** blah */ @Extern(java, "StrIntHashMap", "etch.bindings.java.util.StrIntHashMap", "StrIntHashMapSerializer", "etch.bindings.java.util.StrIntHashMapSerializer") @Extern(csharp, "StrIntHashMap", "Etch.Util", "StrIntHashMapSerializer", "Etch.Util") extern Blob /** blah */ exception Excp1( /** value */ string msg, /** value */ int code ) /** blah */ @Unchecked exception Excp2() /** blah */ @Unchecked(true) exception Excp3() /** blah */ @Unchecked(false) exception Excp4() /** Exception with object as param */ exception Excp5( /** value */ string msg, /** value */ int code, /** value */ object x ) /** Exception with array of object as param */ exception Excp6( /** value */ string msg, /** value */ int code, /** value */ object[] x ) /** do absolutely nothing */ @AsyncReceiver(Free) void nothing() /** * Increments a value by one. * @param x a value * @return a value one larger. */ @AsyncReceiver(Queued) int incr( int x ) /** * @param x a value * @param y a value * @return a value */ int add(int x, int y ) /** * @param x a value * @param y a value * @return a value */ int sub( int x, int y ) /** * @param x a value * @return a value */ int sum( int[] x ) /** * @param e a value * @param x a value * @return a value */ int trans( E1 e, int x ) /** * @param a a value * @param b a value * @return a value */ double dist( S1 a, S1 b ) /** * @param n a value * @param x a value * @return a value */ int[] fill( int n, int x ) /** * @param n a value * @param o a value * @return a value */ object[] fillObject( int n, object o) /** * @param msg a value * @param code a value * @throws Excp1 */ void blow( string msg, int code ) throws Excp1 /** * @param e a value * @return a value * @throws Excp3 * @throws Excp4 */ int beets( E1 e ) throws Excp3, Excp4 /** * @param msg * @param code * @param value * @throws Excp5 */ void throwExcp5 ( string msg, int code, object value ) throws Excp5 /** * @param msg * @param code * @param value * @throws Excp6 */ void throwExcp6 ( string msg, int code, object[] value ) throws Excp6 // try one of every type of parameter and result... /** * @param a * @return a */ boolean p_boolean( boolean a ) /** * @param a * @return a */ boolean[] p_boolean_array( boolean[] a ) /** * @param a * @return a */ byte p_byte( byte a ) /** * @param a * @return a */ byte[] p_byte_array( byte[] a ) /** * @param a * @return a */ short p_short( short a ) /** * @param a * @return a */ short[] p_short_array( short[] a ) /** * @param a * @return a */ int p_int( int a ) /** * @param a * @return a */ int[] p_int_array( int[] a ) /** * @param a * @return a */ long p_long( long a ) /** * @param a * @return a */ long[] p_long_array( long[] a ) /** * @param a * @return a */ float p_float( float a ) /** * @param a * @return a */ float[] p_float_array( float[] a ) /** * @param a * @return a */ double p_double( double a ) /** * @param a * @return a */ double[] p_double_array( double[] a ) /** * @param a * @return a */ string p_string( string a ) /** * @param a * @return a */ string[] p_string_array( string[] a ) /** * @param a * @return a */ E1 p_E1( E1 a ) /** * @param a * @return a */ E1[] p_E1_array( E1[] a ) /** * @param a * @return a */ S1 p_S1( S1 a ) /** * @param a * @return a */ S1[] p_S1_array( S1[] a ) /** * @param a * @return a */ S2 p_S2( S2 a ) /** * @param a * @return a */ S2[] p_S2_array( S2[] a ) /** * @param a * @return a */ Blob p_Blob( Blob a ) /** * @param a * @return a */ Blob[] p_Blob_array( Blob[] a ) /** * @param a * @return a */ object p_object( object a ) /** * @param a * @return a */ object[] p_object_array( object[] a ) /** * @param a * @return a */ S3 p_object_struct( S3 a ) /** * @param a * @return a */ S4 p_object_struct_array( S4 a ) /** * @return a value */ @Authorize( isTrue ) int alwaysWorks() /** * @return a value */ boolean isTrue() /** blah */ @Authorize( isFalse ) void alwaysFails() /** * @return a value */ boolean isFalse() // null /** blah */ @Authorize( can_m1 ) void m1() /** * @return a value */ boolean can_m1() // literal constants /** blah */ @Authorize( can_m2, null ) void m2() /** * @param x a value * @return a value */ boolean can_m2( boolean x ) /** blah */ @Authorize( can_m3, false ) void m3() /** * @param x a value * @return a value */ boolean can_m3( boolean x ) /** blah */ @Authorize( can_m4, true ) void m4() /** * @param x a value * @return a value */ boolean can_m4( boolean x ) /** blah */ @Authorize( can_m5, 23 ) void m5() /** * @param x a value * @return a value */ boolean can_m5( byte x ) /** blah */ @Authorize( can_m6, 2323 ) void m6() /** * @param x a value * @return a value */ boolean can_m6( short x ) /** blah */ @Authorize( can_m7, 23232323 ) void m7() /** * @param x a value * @return a value */ boolean can_m7( int x ) /** blah */ @Authorize( can_m8, 2323232323232323 ) void m8() /** * @param x a value * @return a value */ boolean can_m8( long x ) /** blah */ @Authorize( can_m9, 3.1415926535897932384626433832795 ) void m9() /** * @param x a value * @return a value */ boolean can_m9( float x ) /** blah */ @Authorize( can_m10, 3.1415926535897932384626433832795 ) void m10() /** * @param x a value * @return a value */ boolean can_m10( double x ) /** blah */ @Authorize( can_m11, "abc" ) void m11() /** * @param x a value * @return a value */ boolean can_m11( string x ) /** blah */ @Authorize( can_m12, INT1 ) void m12() /** * @param x a value * @return a value */ boolean can_m12( int x ) /** * @param k a value */ @Authorize( can_m13, k ) void m13( int k ) /** * @param x a value * @return a value */ boolean can_m13( int x ) /** * @param k a value */ @Authorize( can_m14, k.x ) void m14( S1 k ) /** * @param x a value * @return a value */ boolean can_m14( int x ) /** blah */ @Authorize( can_m15, E1.A ) void m15() /** * @param x a value * @return a value */ boolean can_m15( E1 x ) }