internal PICSProductInfoCallback( CMsgPICSProductInfoResponse msg ) #endif { MetaDataOnly = msg.meta_data_only; ResponsePending = msg.response_pending; UnknownPackages = new ReadOnlyCollection<uint>( msg.unknown_packageids ); UnknownApps = new ReadOnlyCollection<uint>( msg.unknown_appids ); Packages = new Dictionary<uint, PICSProductInfo>(); Apps = new Dictionary<uint, PICSProductInfo>(); foreach ( var package_info in msg.packages ) { Packages.Add( package_info.packageid, new PICSProductInfo( package_info ) ); } foreach ( var app_info in msg.apps ) { Apps.Add( app_info.appid, new PICSProductInfo( app_info ) ); } }
internal PICSProductInfo( CMsgPICSProductInfoResponse.PackageInfo package_info ) { this.ID = package_info.packageid; this.ChangeNumber = package_info.change_number; this.MissingToken = package_info.missing_token; this.SHAHash = package_info.sha; this.KeyValues = new KeyValue(); using ( MemoryStream ms = new MemoryStream( package_info.buffer ) ) using ( var br = new BinaryReader( ms ) ) { br.ReadUInt32(); this.KeyValues.ReadAsBinary( ms ); } }
internal PICSProductInfoCallback( SteamClient client, CMsgPICSProductInfoResponse msg ) : base( client )
internal PICSProductInfo( CMsgPICSProductInfoResponse.AppInfo app_info ) { this.ID = app_info.appid; this.ChangeNumber = app_info.change_number; this.MissingToken = app_info.missing_token; this.SHAHash = app_info.sha; this.KeyValues = new KeyValue(); using (MemoryStream ms = new MemoryStream(app_info.buffer, 0, app_info.buffer.Length - 1)) this.KeyValues.ReadAsText(ms); this.OnlyPublic = app_info.only_public; }