Inheritance: global::ProtoBuf.IExtensible
Ejemplo n.º 1
0
            internal PackageInfoCallback( JobID jobID, CMsgClientPackageInfoResponse msg )
            {
                JobID = jobID;

                var packages = new List<Package>();

                packages.AddRange( msg.packages.Select( p => new Package( p, Package.PackageStatus.OK ) ) );
                packages.AddRange( msg.packages_unknown.Select( p => new Package( p, Package.PackageStatus.Unknown ) ) );

                PackagesPending = msg.packages_pending;

                Packages = new ReadOnlyCollection<Package>( packages );
            }
Ejemplo n.º 2
0
 internal PackageInfoCallback( SteamClient client, CMsgClientPackageInfoResponse msg )
     : base( client )
Ejemplo n.º 3
0
                internal Package( CMsgClientPackageInfoResponse.Package pack, Package.PackageStatus status )
                {
                    Status = status;

                    PackageID = pack.package_id;
                    ChangeNumber = pack.change_number;
                    Hash = pack.sha;

                    Data = new KeyValue();

                    using ( var ms = new MemoryStream( pack.buffer ) )
                    using ( var br = new BinaryReader( ms ) )
                    {
                        // steamclient checks this value == 1 before it attempts to read the KV from the buffer
                        // see: CPackageInfo::UpdateFromBuffer(CSHA const&,uint,CUtlBuffer &)
                        // todo: we've apparently ignored this with zero ill effects, but perhaps we want to respect it?
                        br.ReadUInt32();
                        
                        Data.TryReadAsBinary( ms );
                    }
                }
Ejemplo n.º 4
0
                internal Package( CMsgClientPackageInfoResponse.Package pack, Package.PackageStatus status )
                {
                    Status = status;

                    PackageID = pack.package_id;
                    ChangeNumber = pack.change_number;
                    Hash = pack.sha;

                    Data = new KeyValue();

                    using ( var ms = new MemoryStream( pack.buffer ) )
                    using ( var br = new BinaryReader( ms ) )
                    {
                        br.ReadUInt32(); // unknown uint at the beginning of the buffer
                        Data.ReadAsBinary( ms );
                    }

                    if ( Data.Children != null )
                    {
                        Data = Data.Children.FirstOrDefault() ?? KeyValue.Invalid;
                    }
                }