GSF.Diagnostics.LogMessageSaveHelper.LoadPublisherTypeDefinition C# (CSharp) Method

LoadPublisherTypeDefinition() public method

public LoadPublisherTypeDefinition ( Stream stream ) : PublisherTypeDefinition
stream Stream
return PublisherTypeDefinition
        public PublisherTypeDefinition LoadPublisherTypeDefinition(Stream stream)
        {
            byte version = stream.ReadNextByte();
            switch (version)
            {
                case 0:
                    return new PublisherTypeDefinition(stream);
                case 1:
                    {
                        if (m_isSimple)
                            throw new Exception("Cannot load without a LogMessageSaveHelper");
                        int id = stream.ReadInt32();
                        return m_publisherTypeDefinitionLoadLookup[id];
                    }
                case 2:
                    {
                        if (m_isSimple)
                            throw new Exception("Cannot load without a LogMessageSaveHelper");
                        int id = stream.ReadInt32();
                        var details = new PublisherTypeDefinition(stream);
                        m_publisherTypeDefinitionLoadLookup.Add(details);
                        return details;
                    }
                case 3:
                    {
                        if (m_isSimple)
                            throw new Exception("Cannot load without a LogMessageSaveHelper");
                        var details = new PublisherTypeDefinition(stream);
                        m_publisherTypeDefinitionLoadLookup.Add(details);
                        return details;
                    }
                default:
                    throw new VersionNotFoundException();
            }
        }

Usage Example

Ejemplo n.º 1
0
        /// <summary>
        /// Loads a log messages from the supplied stream
        /// </summary>
        /// <param name="stream">the stream to load the log message from.</param>
        /// <param name="helper">the helper to assist in loading/saving</param>
        internal LogEventPublisherDetails(Stream stream, LogMessageSaveHelper helper)
        {
            byte version = stream.ReadNextByte();

            switch (version)
            {
            case 1:
                string typeName     = stream.ReadString();
                string assemblyName = stream.ReadString();
                TypeData  = new PublisherTypeDefinition(typeName, assemblyName);
                EventName = stream.ReadString();
                break;

            case 2:
                EventName = stream.ReadString();
                TypeData  = helper.LoadPublisherTypeDefinition(stream);
                break;

            default:
                throw new VersionNotFoundException();
            }
            m_hashCode = ComputeHashCode();
        }