示例#1
0
 internal override void WriteToStream(CdrOutputStream cdrStream,
                                      SerializerFactory serFactory)
 {
     base.WriteToStream(cdrStream, serFactory);
     CdrEncapsulationOutputStream encap = new CdrEncapsulationOutputStream(cdrStream);
     encap.WriteString(m_id);
     encap.WriteString(m_name);
     encap.WriteToTargetStream();
 }
示例#2
0
 internal override void WriteToStream(CdrOutputStream cdrStream,
                                      SerializerFactory serFactory)
 {
     base.WriteToStream(cdrStream, serFactory);
     CdrEncapsulationOutputStream encap = new CdrEncapsulationOutputStream(cdrStream);
     encap.WriteString(m_id);
     encap.WriteString(m_name);
     TypeCodeSerializer ser = new TypeCodeSerializer(serFactory);
     ser.Serialize(m_aliased, encap);
     encap.WriteToTargetStream();
 }
示例#3
0
        internal override void WriteToStream(CdrOutputStream cdrStream,
                                             SerializerFactory serFactory)
        {
            // write common part: typecode nr
            base.WriteToStream(cdrStream, serFactory);
            // complex type-code: in encapsulation
            CdrEncapsulationOutputStream encap = new CdrEncapsulationOutputStream(cdrStream);
            encap.WriteString(m_id);
            encap.WriteString(m_name);
            TypeCodeSerializer ser = new TypeCodeSerializer(serFactory);
            Type discrTypeCls = ((TypeCodeImpl)m_discriminatorType).GetClsForTypeCode();
            ser.Serialize(m_discriminatorType, encap);
            encap.WriteLong(m_defaultCase);

            encap.WriteULong((uint)m_members.Length);
            Serializer serDisc =
                serFactory.Create(discrTypeCls,
                                  AttributeExtCollection.EmptyCollection);
            for (int i = 0; i < m_members.Length; i++)
            {
                serDisc.Serialize(m_members[i].DiscriminatorValue, encap);
                encap.WriteString(m_members[i].ElementName);
                ser.Serialize(m_members[i].ElementType, encap);
            }

            encap.WriteToTargetStream();
        }
示例#4
0
 internal override void WriteToStream(CdrOutputStream cdrStream,
                                      SerializerFactory serFactory)
 {
     base.WriteToStream(cdrStream, serFactory);
     CdrEncapsulationOutputStream encap = new CdrEncapsulationOutputStream(cdrStream);
     encap.WriteString(m_id);
     encap.WriteString(m_name);
     encap.WriteShort(m_typeMod);
     TypeCodeSerializer ser = new TypeCodeSerializer(serFactory);
     // ser baseclass type
     ser.Serialize(m_baseClass, encap);
     // ser members
     encap.WriteULong((uint)m_members.Length);
     foreach (ValueMember member in m_members)
     {
         encap.WriteString(member.name);
         ser.Serialize(member.type, encap);
         encap.WriteShort(member.access);
     }
     encap.WriteToTargetStream();
 }
示例#5
0
 internal override void WriteToStream(CdrOutputStream cdrStream,
                                      SerializerFactory serFactory)
 {
     base.WriteToStream(cdrStream, serFactory);
     CdrEncapsulationOutputStream encap = new CdrEncapsulationOutputStream(cdrStream);
     TypeCodeSerializer ser = new TypeCodeSerializer(serFactory);
     ser.Serialize(m_innerDimension, encap);
     encap.WriteULong((uint)m_length);
     encap.WriteToTargetStream();
 }
示例#6
0
 internal override void WriteToStream(CdrOutputStream cdrStream,
                                      SerializerFactory serFactory)
 {
     base.WriteToStream(cdrStream, serFactory);
     CdrEncapsulationOutputStream encap = new CdrEncapsulationOutputStream(cdrStream);
     encap.WriteString(m_id);
     encap.WriteString(m_name);
     encap.WriteULong((uint)m_members.Length);
     TypeCodeSerializer ser = new TypeCodeSerializer(serFactory);
     foreach (StructMember member in m_members)
     {
         encap.WriteString(member.name);
         ser.Serialize(member.type, encap);
     }
     encap.WriteToTargetStream();
 }
示例#7
0
 private CdrEncapsulationOutputStream GetProfileContentStream()
 {
     CdrEncapsulationOutputStream encapStream = new CdrEncapsulationOutputStream(GiopHeader.GetDefaultHeaderFlagsForPlatform());
     // the tagged components
     m_taggedComponents.WriteTaggedComponentList(encapStream);
     return encapStream;
 }
示例#8
0
 internal override void WriteToStream(CdrOutputStream cdrStream,
                                      SerializerFactory serFactory)
 {
     base.WriteToStream(cdrStream, serFactory);
     CdrEncapsulationOutputStream encap = new CdrEncapsulationOutputStream(cdrStream);
     encap.WriteString(m_id);
     encap.WriteString(m_name);
     encap.WriteULong((uint)m_members.Length);
     foreach (string member in m_members)
     {
         encap.WriteString(member);
     }
     encap.WriteToTargetStream();
 }
示例#9
0
 private CdrEncapsulationOutputStream GetProfileContentStream()
 {
     CdrEncapsulationOutputStream encapStream = new CdrEncapsulationOutputStream(GiopHeader.GetDefaultHeaderFlagsForPlatform());
     encapStream.WriteOctet(m_giopVersion.Major);
     encapStream.WriteOctet(m_giopVersion.Minor);
     encapStream.WriteString(m_hostName);
     encapStream.WriteUShort(m_port);
     encapStream.WriteULong((uint)m_objectKey.Length);
     encapStream.WriteOpaque(m_objectKey);
     // the tagged components
     if (!(m_giopVersion.Major == 1 && m_giopVersion.Minor == 0))
     { // for GIOP >= 1.1, tagged components are possible
         m_taggedComponents.WriteTaggedComponentList(encapStream);
     }
     return encapStream;
 }
示例#10
0
 /// <summary>
 /// create an IOP service context from the code set service context
 /// </summary>
 /// <returns></returns>
 public omg.org.IOP.ServiceContext CreateServiceContext() {
     CdrEncapsulationOutputStream encapStream = new CdrEncapsulationOutputStream(GiopHeader.GetDefaultHeaderFlagsForPlatform());
     encapStream.WriteULong((uint)m_charSet);
     encapStream.WriteULong((uint)m_wcharSet); 
     return new omg.org.IOP.ServiceContext(CodeSetService.SERVICE_ID, 
                                           encapStream.GetEncapsulationData());
 }
示例#11
0
 public byte[] encode_value (object data) {
     CdrEncapsulationOutputStream outputStream = new CdrEncapsulationOutputStream(m_version);
     if (!(data is Any)) {
         Serializer ser =
             m_serFactory.Create(data.GetType(), 
                                 AttributeExtCollection.EmptyCollection);
         ser.Serialize(data, outputStream);                                   
     } else {
         Type marshalAs = ((TypeCodeImpl)((Any)data).Type).GetClsForTypeCode();
         AttributeExtCollection marshalAsAttrs = 
             ((TypeCodeImpl)((Any)data).Type).GetClsAttributesForTypeCode();
         Serializer ser =
             m_serFactory.Create(marshalAs, 
                                 marshalAsAttrs);
         ser.Serialize(data, outputStream);
     }
     return outputStream.GetEncapsulationData();
 }
示例#12
0
 public byte[] encode (object data) {
     CdrEncapsulationOutputStream outputStream = new CdrEncapsulationOutputStream(m_version);
     m_serializerForAnyType.Serialize(data, outputStream);
     return outputStream.GetEncapsulationData();
 }
 public void TestSameServiceIdMultiple() {
     // checks if service contexts with the same id, doesn't throw an exception
     // checks, that the first service context is considered, others are thrown away
     GiopMessageBodySerialiser ser = new GiopMessageBodySerialiser(
                                         new ArgumentsSerializerFactory(m_serFactory));
     MemoryStream stream = new MemoryStream();
     CdrOutputStreamImpl cdrOut = new CdrOutputStreamImpl(stream, 0, new GiopVersion(1,2));
     cdrOut.WriteULong(2); // nr of contexts
     cdrOut.WriteULong(1234567); // id of context 1
     CdrEncapsulationOutputStream encap = new CdrEncapsulationOutputStream(0);
     cdrOut.WriteEncapsulation(encap);
     cdrOut.WriteULong(1234567); // id of context 2
     encap = new CdrEncapsulationOutputStream(0);
     cdrOut.WriteEncapsulation(encap);
     // reset stream
     stream.Seek(0, SeekOrigin.Begin);
     CdrInputStreamImpl cdrIn = new CdrInputStreamImpl(stream);
     cdrIn.ConfigStream(0, new GiopVersion(1,2));
     omg.org.IOP.ServiceContextList result = new ServiceContextList(cdrIn);
     // check if context is present
     Assert.IsTrue(result.ContainsServiceContext(1234567), "expected context not in collection");
 }