/// <exception cref="System.IO.IOException"/>
		public RandomAccessFileReader(RandomAccessFile file)
		{
			if (file == null)
			{
				throw new ArgumentNullException();
			}
			_file = file;
			_length = _file.Length();
		}
Ejemplo n.º 2
0
		public static PsdHeaderDirectory ProcessBytes(string file)
		{
			Com.Drew.Metadata.Metadata metadata = new Com.Drew.Metadata.Metadata();
			RandomAccessFile randomAccessFile = new RandomAccessFile(new FilePath(file), "r");
			new PsdReader().Extract(new RandomAccessFileReader(randomAccessFile), metadata);
			randomAccessFile.Close();
			PsdHeaderDirectory directory = metadata.GetDirectory<PsdHeaderDirectory>();
			NUnit.Framework.Assert.IsNotNull(directory);
			return directory;
		}
		public virtual void DeleteTempFile()
		{
			if (_tempFile == null && _randomAccessFile == null)
			{
				return;
			}
			_randomAccessFile.Close();
			Sharpen.Tests.IsTrue("Unable to delete temp file used during unit test: " + _tempFile.GetAbsolutePath(), _tempFile.Delete());
			_tempFile = null;
			_randomAccessFile = null;
		}
		public static Com.Drew.Metadata.Metadata ReadMetadata(FilePath file)
		{
			Com.Drew.Metadata.Metadata metadata = new Com.Drew.Metadata.Metadata();
			RandomAccessFile randomAccessFile = new RandomAccessFile(file, "r");
			try
			{
				new ExifReader().ExtractTiff(new RandomAccessFileReader(randomAccessFile), metadata);
			}
			finally
			{
				randomAccessFile.Close();
			}
			return metadata;
		}
Ejemplo n.º 5
0
 public static Com.Drew.Metadata.Metadata ReadMetadata([NotNull] FilePath file)
 {
     Com.Drew.Metadata.Metadata metadata = new Com.Drew.Metadata.Metadata();
     RandomAccessFile randomAccessFile = new RandomAccessFile(file, "r");
     try
     {
         ExifTiffHandler handler = new ExifTiffHandler(metadata, false);
         new TiffReader().ProcessTiff(new RandomAccessFileReader(randomAccessFile), handler, 0);
     }
     finally
     {
         randomAccessFile.Close();
     }
     new FileMetadataReader().Read(file, metadata);
     return metadata;
 }
		protected internal override RandomAccessReader CreateReader(sbyte[] bytes)
		{
			try
			{
				// Unit tests can create multiple readers in the same test, as long as they're used one after the other
				DeleteTempFile();
				_tempFile = FilePath.CreateTempFile("metadata-extractor-test-", ".tmp");
				FileOutputStream stream = new FileOutputStream(_tempFile);
				stream.Write(bytes);
				stream.Close();
				_randomAccessFile = new RandomAccessFile(_tempFile, "r");
				return new RandomAccessFileReader(_randomAccessFile);
			}
			catch (IOException)
			{
				NUnit.Framework.Assert.Fail("Unable to create temp file");
				return null;
			}
		}
Ejemplo n.º 7
0
 public bool IsGZipped(BlobKey key)
 {
     var magic = 0;
     var path = PathForKey(key);
     var file = new FilePath(path);
     if (file.CanRead())
     {
         try
         {
             var raf = new RandomAccessFile(file, "r");
             magic = raf.Read() & unchecked((0xff)) | ((raf.Read() << 8) & unchecked((0xff00)));
             raf.Close();
         }
         catch (Exception e)
         {
             Runtime.PrintStackTrace(e, Console.Error);
         }
     }
     return magic == GZIPInputStream.GzipMagic;
 }
 public virtual bool IsGZipped(BlobKey key)
 {
     int magic = 0;
     string path = PathForKey(key);
     FilePath file = new FilePath(path);
     if (file.CanRead())
     {
         try
         {
             RandomAccessFile raf = new RandomAccessFile(file, "r");
             magic = raf.Read() & unchecked((int)(0xff)) | ((raf.Read() << 8) & unchecked((int
                 )(0xff00)));
             raf.Close();
         }
         catch (Exception e)
         {
             Sharpen.Runtime.PrintStackTrace(e, System.Console.Error);
         }
     }
     return magic == GZIPInputStream.GzipMagic;
 }
		/// <exception cref="System.IO.IOException"></exception>
		public override PackLock Parse(ProgressMonitor receiving, ProgressMonitor resolving
			)
		{
			tmpPack = FilePath.CreateTempFile("incoming_", ".pack", db.GetDirectory());
			tmpIdx = new FilePath(db.GetDirectory(), BaseName(tmpPack) + ".idx");
			try
			{
				@out = new RandomAccessFile(tmpPack, "rw");
				base.Parse(receiving, resolving);
				@out.Seek(packEnd);
				@out.Write(packHash);
				@out.GetChannel().Force(true);
				@out.Close();
				WriteIdx();
				tmpPack.SetReadOnly();
				tmpIdx.SetReadOnly();
				return RenameAndOpenPack(GetLockMessage());
			}
			finally
			{
				if (def != null)
				{
					def.Finish();
				}
				try
				{
					if (@out != null && @out.GetChannel().IsOpen())
					{
						@out.Close();
					}
				}
				catch (IOException)
				{
				}
				// Ignored. We want to delete the file.
				CleanupTemporaryFiles();
			}
		}
Ejemplo n.º 10
0
		/// <summary>Create a new pack indexer utility.</summary>
		/// <remarks>Create a new pack indexer utility.</remarks>
		/// <param name="db"></param>
		/// <param name="src">
		/// stream to read the pack data from. If the stream is buffered
		/// use
		/// <see cref="BUFFER_SIZE">BUFFER_SIZE</see>
		/// as the buffer size for the stream.
		/// </param>
		/// <param name="dstBase"></param>
		/// <exception cref="System.IO.IOException">the output packfile could not be created.
		/// 	</exception>
		public IndexPack(Repository db, InputStream src, FilePath dstBase)
		{
			repo = db;
			objectDatabase = db.ObjectDatabase.NewCachedDatabase();
			@in = src;
			inflater = new IndexPack.InflaterStream(this);
			readCurs = objectDatabase.NewReader();
			buf = new byte[BUFFER_SIZE];
			readBuffer = new byte[BUFFER_SIZE];
			objectDigest = Constants.NewMessageDigest();
			tempObjectId = new MutableObjectId();
			packDigest = Constants.NewMessageDigest();
			if (dstBase != null)
			{
				FilePath dir = dstBase.GetParentFile();
				string nam = dstBase.GetName();
				dstPack = new FilePath(dir, nam + ".pack");
				dstIdx = new FilePath(dir, nam + ".idx");
				packOut = new RandomAccessFile(dstPack, "rw");
				packOut.SetLength(0);
			}
			else
			{
				dstPack = null;
				dstIdx = null;
			}
		}