#pragma prefix "jacorb.org"

module org
{
   module jacorb
   {
      module test
      {
         interface CharServer
         {
            typedef sequence<wchar> wcharSeq;

            // char parameters
            short pass_in_char (in char x);
            void pass_out_char (in short unicode_number, out char x);
            void pass_inout_char (inout char x);
            char return_char (in short unicode_number);
            char bounce_char (in char x);

            // wchar parameters
            short pass_in_wchar (in wchar x);
            void pass_out_wchar (in short unicode_number, out wchar x);
            void pass_inout_wchar (inout wchar x);
            wchar return_wchar (in short unicode_number);
            wchar bounce_wchar (in wchar x);

            wcharSeq test_wchar_seq( in wcharSeq argin,
                                     out wcharSeq argout,
                                     inout wcharSeq arginout );


            typedef char FieldName;
            struct NameValuePair
            {
               FieldName id;
               any value;
            };
            typedef sequence<NameValuePair> NameValuePairSeq;
            struct DataFlavour
            {
               string name;
               NameValuePairSeq parameters;
            };
            any return_dataflavour_inany(in DataFlavour flavour);
         };
      };
   };
};
