Release() 공개 메소드

Returns the reader to the pool to be used by another process later.
public Release ( Reader reader ) : void
reader FiftyOne.Foundation.Mobile.Detection.Readers.Reader /// Reader open and ready to read from the temp file. ///
리턴 void
        private static TrieProvider Create(Pool pool)
        {
            var reader = pool.GetReader();
            try
            {
                // Check the version number is correct for this API.
                var version = reader.ReadUInt16();

                // Construct the right provider.
                switch(version)
                {
                    case 3:
                        return new TrieProviderV3(
                            Encoding.ASCII.GetString(reader.ReadBytes((int)reader.ReadUInt32())),
                            ReadStrings(reader),
                            ReadProperties(reader),
                            ReadDevices(reader),
                            ReadLookupList(reader),
                            reader.ReadInt64(),
                            reader.BaseStream.Position,
                            pool);
                    case 32:
                        return new TrieProviderV32(
                            Encoding.ASCII.GetString(reader.ReadBytes((int)reader.ReadUInt32())),
                            ReadStrings(reader),
                            ReadHeaders(reader),
                            ReadProperties(reader),
                            ReadDevices(reader),
                            ReadLookupList(reader),
                            reader.ReadInt64(),
                            reader.BaseStream.Position,
                            pool);
                    default:
                        throw new MobileException(String.Format(
                            "Version mismatch. Data is version '{0}' for '{1}' reader",
                            version,
                            String.Join(",", BinaryConstants.SupportedTrieFormatVersions.Select(i => i.Value.ToString()))));
                }
            }
            finally
            {
                // Return the reader back to the pool.
                pool.Release(reader);
            }
        }