Пример #1
0
        /// <summary>
        /// This constructor loads a Word document from a specific point in a POIFSFileSystem, probably not the default.Used typically to open embeded documents.
        /// </summary>
        /// <param name="directory">The POIFSFileSystem that Contains the Word document.</param>
        /// <param name="pfilesystem">If there is an unexpected IOException from the passed in POIFSFileSystem.</param>
        public HWPFDocumentCore(DirectoryNode directory)
            : base(directory)
        {
            // Sort out the hpsf properties


            // read in the main stream.
            DocumentEntry documentProps = (DocumentEntry)
                                          directory.GetEntry(STREAM_WORD_DOCUMENT);

            _mainStream = new byte[documentProps.Size];

            directory.CreatePOIFSDocumentReader(STREAM_WORD_DOCUMENT).Read(_mainStream);

            // Create our FIB, and check for the doc being encrypted
            _fib = new FileInformationBlock(_mainStream);
            if (_fib.IsFEncrypted())
            {
                throw new EncryptedDocumentException("Cannot process encrypted word files!");
            }

            DirectoryEntry objectPoolEntry;

            try
            {
                objectPoolEntry = (DirectoryEntry)directory.GetEntry(STREAM_OBJECT_POOL);
            }
            catch (FileNotFoundException exc)
            {
                objectPoolEntry = null;
            }
            _objectPool = new ObjectPoolImpl(objectPoolEntry);
        }
Пример #2
0
        IEnumerator Start()
        {
            SetUpKeyController();

            var config = new ObjectPoolConfig(
                numberOfInstances: numberOfInstances,
                createCountPerFrame: 1,
                needPreactivation: needPreactivation
                );
            var objectPool = new ObjectPoolImpl(id, prefab, config);

            ObjectPoolManager.Instance.RegisterPool(id, objectPool);

            yield return(ObjectPoolManager.Instance.PreloadAsync().ToYieldInstruction());

            yield return(ObjectPoolManager.Instance.PreactivateAsync().ToYieldInstruction());

            Debug.Log("OnLoaded");
        }
Пример #3
0
 public void Run()
 {
     for (var i = 0; i < 10; i++)
     {
         Console.WriteLine("Run " + i + ": ");
         using (new UsingTimer(x => Console.WriteLine("Pool: " + x.ElapsedTime.TotalMilliseconds))) {
             ObjectPool <object> pool = new ObjectPoolImpl <object>(() => new object());
             RunBenchmark(pool.TakeObject, pool.ReturnObject);
         }
         using (new UsingTimer(x => Console.WriteLine("Queue: " + x.ElapsedTime.TotalMilliseconds))) {
             IConcurrentQueue <object> queue = new ConcurrentQueue <object>();
             RunBenchmark(() => {
                 object result;
                 if (!queue.TryDequeue(out result))
                 {
                     result = new object();
                 }
                 return(result);
             }, queue.Enqueue);
         }
     }
 }
Пример #4
0
        protected IObjectPool <T> CreatePool <T>(T prefab, ObjectPoolConfig config) where T : PoolManagedBehaviour
        {
            var objectPool = new ObjectPoolImpl(IdGenerator.Generate(), prefab, config, hierarchyParent);

            return(new ObjectPoolWrapper <T>(objectPool));
        }