private void @lock()
        {
            RandomAccessFile randomAccessFile = new RandomAccessFile(PooledBatchManager.lockFile, "rw");

            this._lock = randomAccessFile.getChannel().@lock();
            randomAccessFile.close();
        }
Пример #2
0
        public static FileStore Open(string root)
        {
            var data = new File(root, "main_file_cache.dat2");

            if (!data.exists())
            {
                throw new Exception("Data channel not found.");
            }

            var raf         = new RandomAccessFile(data, "rw");
            var dataChannel = raf.getChannel();

            var indexChannels = new List <FileChannel>();

            for (int i = 0; i < 254; i++)
            {
                var index = new File(root, "main_file_cache.idx" + i);
                if (!index.exists())
                {
                    break;
                }

                raf = new RandomAccessFile(index, "rw");
                var indexChannel = raf.getChannel();
                indexChannels.Add(indexChannel);
            }

            if (indexChannels.Count == 0)
            {
                throw new Exception("No index channels found");
            }

            var meta = new File(root, "main_file_cache.idx255");

            if (!meta.exists())
            {
                throw new Exception("Metadata channel not found");
            }

            raf = new RandomAccessFile(meta, "rw");
            var metaChannel = raf.getChannel();

            return(new FileStore(dataChannel, metaChannel, indexChannels.ToArray()));
        }