
module org
{
   module jacorb
   {
      module test
      {
         interface BasicServer
         {
            // parameterless
            void ping();

            // short parameters
            void pass_in_short (in short x);
            void pass_out_short (out short x);
            void pass_inout_short (inout short x);
            short return_short ();
            short bounce_short (in short x);

            // unsigned short parameters
            void pass_in_unsigned_short (in unsigned short x);
            void pass_out_unsigned_short (out unsigned short x);
            void pass_inout_unsigned_short (inout unsigned short x);
            unsigned short return_unsigned_short ();
            unsigned short bounce_unsigned_short (in unsigned short x);

            // long parameters
            void pass_in_long (in long x);
            void pass_out_long (out long x);
            void pass_inout_long (inout long x);
            long return_long ();
            long bounce_long (in long x);

            // unsigned long parameters
            void pass_in_unsigned_long (in unsigned long x);
            void pass_out_unsigned_long (out unsigned long x);
            void pass_inout_unsigned_long (inout unsigned long x);
            unsigned long return_unsigned_long ();
            unsigned long bounce_unsigned_long (in unsigned long x);

            // long long parameters
            void pass_in_long_long (in long long x);
            void pass_out_long_long (out long long x);
            void pass_inout_long_long (inout long long x);
            long long return_long_long ();
            long long bounce_long_long (in long long x);

            // unsigned long long parameters
            void pass_in_unsigned_long_long (in unsigned long long x);
            void pass_out_unsigned_long_long (out unsigned long long x);
            void pass_inout_unsigned_long_long (inout unsigned long long x);
            unsigned long long return_unsigned_long_long ();
            unsigned long long bounce_unsigned_long_long (in unsigned long long x);

            // boolean parameters
            void pass_in_boolean (in boolean x);
            void pass_out_boolean (out boolean x);
            void pass_inout_boolean (inout boolean x);
            boolean return_boolean();
            boolean bounce_boolean (in boolean x);

            // octet parameters
            void pass_in_octet (in octet x);
            void pass_out_octet (out octet x);
            void pass_inout_octet (inout octet x);
            octet return_octet();
            octet bounce_octet (in octet x);

            // float parameters
            void pass_in_float (in float x);
            void pass_out_float (out float x);
            void pass_inout_float (inout float x);
            float return_float();
            float bounce_float (in float x);

            // double parameters
            void pass_in_double (in double x);
            void pass_out_double (out double x);
            void pass_inout_double (inout double x);
            double return_double();
            double bounce_double (in double x);

            // string parameters
            string bounce_string (in string x);
            wstring bounce_wstring (in wstring x);
            wchar bounce_wchar(in wchar value);
         };
      };
   };
};
