示例#1
0
 /// <summary>
 /// Constructs a giop message handler, which uses the given
 /// ArgumentsSerializerFactory for serializing/deserializing
 /// requests/replys. The headerFlags parameter defines the
 /// used header flags for messages initiated by this handler.
 /// The interceptionOptions[] provides the information on
 /// channel level interceptors.
 /// </summary>
 internal GiopMessageHandler(ArgumentsSerializerFactory argSerFactory,
                             byte headerFlags,
                             IInterceptionOption[] interceptionOptions)
 {
     m_ser                 = new GiopMessageBodySerialiser(argSerFactory);
     m_headerFlags         = headerFlags;
     m_interceptionOptions = interceptionOptions;
 }
        public void SetUp()
        {
            SerializerFactory serFactory = new SerializerFactory();

            omg.org.IOP.CodecFactory codecFactory =
                new Ch.Elca.Iiop.Interception.CodecFactoryImpl(serFactory);
            omg.org.IOP.Codec codec =
                codecFactory.create_codec(
                    new omg.org.IOP.Encoding(omg.org.IOP.ENCODING_CDR_ENCAPS.ConstVal, 1, 2));
            serFactory.Initalize(new SerializerFactoryConfig(), IiopUrlUtil.Create(codec));
            m_argSerFactory = new ArgumentsSerializerFactory(serFactory);
        }
        private object[] MarshalAndUnmarshalRequestArgsOnce(MethodInfo testMethod, object[] actual)
        {
            ArgumentsSerializerFactory serFactory = m_argSerFactory;
            ArgumentsSerializer        ser        = serFactory.Create(testMethod.DeclaringType);

            MemoryStream    data         = new MemoryStream();
            GiopVersion     version      = new GiopVersion(1, 2);
            byte            endian       = 0;
            CdrOutputStream targetStream = new CdrOutputStreamImpl(data, endian, version);

            ser.SerializeRequestArgs(testMethod.Name, actual, targetStream, null);

            data.Seek(0, SeekOrigin.Begin);
            CdrInputStreamImpl sourceStream = new CdrInputStreamImpl(data);

            sourceStream.ConfigStream(endian, version);
            IDictionary contextElements;

            object[] deser = ser.DeserializeRequestArgs(testMethod.Name, sourceStream, out contextElements);
            return(deser);
        }
        private object MarshalAndUnmarshalResponeArgsOnce(MethodInfo testMethod, object returnValue,
                                                          object[] outArgs, out object[] deserOutArgs)
        {
            ArgumentsSerializerFactory serFactory =
                m_argSerFactory;
            ArgumentsSerializer ser = serFactory.Create(testMethod.DeclaringType);

            MemoryStream    data         = new MemoryStream();
            GiopVersion     version      = new GiopVersion(1, 2);
            byte            endian       = 0;
            CdrOutputStream targetStream = new CdrOutputStreamImpl(data, endian, version);

            ser.SerializeResponseArgs(testMethod.Name, returnValue, outArgs, targetStream);

            data.Seek(0, SeekOrigin.Begin);
            CdrInputStreamImpl sourceStream = new CdrInputStreamImpl(data);

            sourceStream.ConfigStream(endian, version);
            object returnValueDeser = ser.DeserializeResponseArgs(testMethod.Name, out deserOutArgs,
                                                                  sourceStream);

            return(returnValueDeser);
        }
示例#5
0
 /// <summary>
 /// Constructs a giop message handler, which uses the given
 /// ArgumentsSerializerFactory for serializing/deserializing
 /// requests/replys. The headerFlags parameter defines the
 /// used header flags for messages initiated by this handler.
 /// </summary>
 internal GiopMessageHandler(ArgumentsSerializerFactory argSerFactory,
                             byte headerFlags) : this
     (argSerFactory, headerFlags,
      InterceptorManager.EmptyInterceptorOptions)
 {
 }