/// <summary> /// Constructs the journal file. /// </summary> /// <param name="js"></param> /// <param name="file"></param> /// <param name="read_only"></param> public JournalFile(JournalledSystem js, string file, bool read_only) { this.js = js; this.file = file; this.read_only = read_only; this.is_open = false; buffer = new byte[36]; resource_id_map = new Hashtable(); cur_seq_id = 0; reference_count = 1; }
/// <summary> /// Constructs the resource. /// </summary> /// <param name="js"></param> /// <param name="name"></param> /// <param name="id"></param> /// <param name="data"></param> protected AbstractResource(JournalledSystem js, String name, long id, IStoreDataAccessor data, int page_size) { this.js = js; this.name = name; this.id = id; this.data = data; this.page_size = page_size; }
/// <summary> /// Constructs the resource. /// </summary> /// <param name="js"></param> /// <param name="name"></param> /// <param name="id"></param> /// <param name="data"></param> internal Resource(JournalledSystem js, String name, long id, IStoreDataAccessor data, int pageSize) : base(js, name, id, data, pageSize) { journal_map = new JournalEntry[257]; data_open = false; data_exists = data.Exists; data_deleted = false; if (data_exists) { try { size = data.Size; // Console.Out.WriteLine("Setting size of " + name + " to " + size); } catch (IOException e) { throw new ApplicationException("Error getting size of resource: " + e.Message); } } really_open = false; page_buffer = new byte[js.page_size]; }
/// <summary> /// Constructs the resource. /// </summary> /// <param name="js"></param> /// <param name="name"></param> /// <param name="id"></param> /// <param name="data"></param> internal NonLoggingResource(JournalledSystem js, String name, long id, IStoreDataAccessor data, int pageSize) : base(js, name, id, data, pageSize) { }
internal JournalingThread(JournalledSystem js) { this.js = js; thread = new Thread(new ThreadStart(run)); thread.Name = "Background Journaling"; // This is a daemon thread. it should be safe if this thread // dies at any time. thread.IsBackground = true; }
/// <summary> /// Constructs the manager. /// </summary> /// <param name="journal_path"></param> /// <param name="read_only"></param> /// <param name="max_pages"></param> /// <param name="page_size"></param> /// <param name="sda_factory"></param> /// <param name="enable_logging"></param> internal LoggingBufferManager(string journal_path, bool read_only, int max_pages, int page_size, IStoreDataAccessorFactory sda_factory, Logger logger, bool enable_logging) { PageCacheComparer = new PageCacheComparerImpl(this); this.max_pages = max_pages; this.page_size = page_size; check_point_in_progress = false; write_lock_count = 0; current_T = 0; page_list = new ArrayList(); page_map = new BMPage[7829]; journalled_system = new JournalledSystem(journal_path, read_only, page_size, sda_factory, logger, enable_logging); }