コード例 #1
0
ファイル: ServiceRequest.cs プロジェクト: simongh/slpnet
        internal override void Create(SlpReader reader)
        {
            base.Create(reader);

            ReadIPList(reader, PreviousResponders);
            Scopes.AddRange(reader.ReadList());
            AttributeFilter = reader.ReadString();
            Spi             = reader.ReadString();
        }
コード例 #2
0
        internal override void Create(SlpReader reader)
        {
            base.Create(reader);

            ReadIPList(reader, PreviousResponders);
            Uri = new ServiceUri(reader.ReadString());
            Scopes.AddRange(reader.ReadList());
            Tags.AddRange(reader.ReadList());
            Spi = reader.ReadString();
        }
コード例 #3
0
        /// <summary>
        /// Initalises a new extension from the received data
        /// </summary>
        /// <param name="data">byte array of data to parse</param>
        /// <returns>new AttributeMissing Extension</returns>
        internal override ExtensionBase Create(SlpReader reader)
        {
            var result = new AttributeMissingExtension();

            Offset       = reader.ReadInt24();
            TemplateName = reader.ReadString();
            Attributes.AddRange(reader.TagListDecode(false));

            return(result);
        }
コード例 #4
0
        internal override void Create(SlpReader reader)
        {
            base.Create(reader);

            Service = Services.Locator.GetInstance<ServiceEntry>(reader);
            var tmp = reader.ReadString();
            Scopes.AddRange(reader.ReadList());
            Service.Uri = new ServiceUri("service:" + tmp + ":" + Services.Locator.GetInstance<AttributeCollection>(reader));
            ReadAuthBlocks(reader, AuthBlocks);
        }
コード例 #5
0
        /// <summary>
        /// Initalises a new extension from the received data
        /// </summary>
        /// <param name="data">byte array of data to parse</param>
        /// <returns>new AttributeMissing Extension</returns>
        internal override ExtensionBase Create(SlpReader reader)
        {
            var result = new AttributeMissingExtension();

            Offset = reader.ReadInt24();
            TemplateName = reader.ReadString();
            Attributes.AddRange(reader.TagListDecode(false));

            return result;
        }
コード例 #6
0
ファイル: ServiceAgentAdvert.cs プロジェクト: simongh/slpnet
        internal override void Create(SlpReader reader)
        {
            base.Create(reader);

            var tmp = reader.ReadString();

            Scopes.AddRange(reader.ReadList());
            Uri = new ServiceUri(tmp, Services.Locator.GetInstance <AttributeCollection>(reader));
            ReadAuthBlocks(reader, AuthBlocks);
        }
コード例 #7
0
ファイル: EntityFactory.cs プロジェクト: simongh/slpnet
        public virtual Security.AuthenticationBlock CreateAuthenticationBlock(SlpReader reader)
        {
            var result = new Security.AuthenticationBlock();
            result.Descriptor = reader.ReadInt16();
            var length = reader.ReadInt16();
            result.TimeStamp = reader.ReadDateTime();
            result.SpiString = reader.ReadString();

            result.Data = reader.ReadBytes(length);

            return result;
        }
コード例 #8
0
        internal override void Create(SlpReader reader)
        {
            base.Create(reader);

            ErrorCode     = (ServiceErrorCode)reader.ReadInt16();
            BootTimeStamp = reader.ReadDateTime();
            var url = reader.ReadString();

            Scopes.AddRange(reader.ReadList());
            Uri = new ServiceUri(url, Services.Locator.GetInstance <AttributeCollection>(reader));
            SpiStrings.AddRange(reader.ReadList());
            ReadAuthBlocks(reader, AuthBlocks);
        }
コード例 #9
0
ファイル: EntityFactory.cs プロジェクト: simongh/slpnet
        public virtual Security.AuthenticationBlock CreateAuthenticationBlock(SlpReader reader)
        {
            var result = new Security.AuthenticationBlock();

            result.Descriptor = reader.ReadInt16();
            var length = reader.ReadInt16();

            result.TimeStamp = reader.ReadDateTime();
            result.SpiString = reader.ReadString();

            result.Data = reader.ReadBytes(length);

            return(result);
        }
コード例 #10
0
        /// <summary>
        /// Read the message bytes and set the properties on this instance
        /// </summary>
        /// <param name="reader"></param>
        internal virtual void Create(SlpReader reader)
        {
            reader.ReadInt24();

            var flags = reader.ReadByte();

            IsOverFlow  = (flags & 0x80) == 0x80;
            IsFresh     = (flags & 0x40) == 0x40;
            IsMulticast = (flags & 0x20) == 0x20;

            reader.ReadByte();
            _ExtensionOffset = reader.ReadInt24();
            MessageId        = reader.ReadInt16();
            Language         = reader.ReadString();
        }
コード例 #11
0
        internal override void Create(SlpReader reader)
        {
            base.Create(reader);

            var tmp = reader.ReadInt16();

            if (tmp == 0xfff)
            {
                GetAllAuthorities = true;
            }
            else
            {
                NamingAuthority = reader.ReadString(tmp);
            }

            Scopes.AddRange(reader.ReadList());
        }
コード例 #12
0
ファイル: EntityFactory.cs プロジェクト: simongh/slpnet
        public virtual ServiceEntry CreateServiceEntry(SlpReader reader)
        {
            if (reader.ReadByte() != 0)
                throw new ServiceProtocolException(ServiceErrorCode.ParseError);

            var result = new ServiceEntry();
            result.Lifetime = reader.ReadTimeSpan();
            result.Uri = new ServiceUri(reader.ReadString());

            var count = reader.ReadByte();
            for (int i = 0; i < count; i++)
            {
                var a = CreateAuthenticationBlock(reader);
                result.AuthBlocks.Add(a);
                ServiceEntry.OnAuthenticated(result, a);
            }

            return result;
        }
コード例 #13
0
ファイル: EntityFactory.cs プロジェクト: simongh/slpnet
        public virtual ServiceEntry CreateServiceEntry(SlpReader reader)
        {
            if (reader.ReadByte() != 0)
            {
                throw new ServiceProtocolException(ServiceErrorCode.ParseError);
            }

            var result = new ServiceEntry();

            result.Lifetime = reader.ReadTimeSpan();
            result.Uri      = new ServiceUri(reader.ReadString());

            var count = reader.ReadByte();

            for (int i = 0; i < count; i++)
            {
                var a = CreateAuthenticationBlock(reader);
                result.AuthBlocks.Add(a);
                ServiceEntry.OnAuthenticated(result, a);
            }

            return(result);
        }
コード例 #14
0
ファイル: ServiceRequest.cs プロジェクト: simongh/slpnet
        internal override void Create(SlpReader reader)
        {
            base.Create(reader);

            ReadIPList(reader, PreviousResponders);
            Scopes.AddRange(reader.ReadList());
            AttributeFilter = reader.ReadString();
            Spi = reader.ReadString();
        }
コード例 #15
0
ファイル: ServiceTypeRequest.cs プロジェクト: simongh/slpnet
        internal override void Create(SlpReader reader)
        {
            base.Create(reader);

            var tmp = reader.ReadInt16();
            if (tmp == 0xfff)
                GetAllAuthorities = true;
            else
                NamingAuthority = reader.ReadString(tmp);

            Scopes.AddRange(reader.ReadList());
        }
コード例 #16
0
        internal override void Create(SlpReader reader)
        {
            base.Create(reader);

            ErrorCode = (ServiceErrorCode)reader.ReadInt16();
            BootTimeStamp = reader.ReadDateTime();
            var url = reader.ReadString();
            Scopes.AddRange(reader.ReadList());
            Uri = new ServiceUri(url, Services.Locator.GetInstance<AttributeCollection>(reader));
            SpiStrings.AddRange(reader.ReadList());
            ReadAuthBlocks(reader, AuthBlocks);
        }
コード例 #17
0
ファイル: AttributeRequest.cs プロジェクト: simongh/slpnet
        internal override void Create(SlpReader reader)
        {
            base.Create(reader);

            ReadIPList(reader, PreviousResponders);
            Uri = new ServiceUri(reader.ReadString());
            Scopes.AddRange(reader.ReadList());
            Tags.AddRange(reader.ReadList());
            Spi = reader.ReadString();
        }
コード例 #18
0
ファイル: MessageBase.cs プロジェクト: simongh/slpnet
        /// <summary>
        /// Read the message bytes and set the properties on this instance
        /// </summary>
        /// <param name="reader"></param>
        internal virtual void Create(SlpReader reader)
        {
            reader.ReadInt24();

            var flags = reader.ReadByte();
            IsOverFlow = (flags & 0x80) == 0x80;
            IsFresh = (flags & 0x40) == 0x40;
            IsMulticast = (flags & 0x20) == 0x20;

            reader.ReadByte();
            _ExtensionOffset = reader.ReadInt24();
            MessageId = reader.ReadInt16();
            Language = reader.ReadString();
        }