/*- * See the file LICENSE for redistribution information. * * Copyright (c) 2009 Oracle. All rights reserved. * */ using System; using System.Collections.Generic; using System.Text; namespace BerkeleyDB { /// /// A class representing configuration parameters for /// /// public class SecondaryQueueDatabaseConfig : SecondaryDatabaseConfig { internal bool lengthIsSet; private uint len; /// /// Specify the length of records in the database. /// /// /// /// The record length must be enough smaller than /// that at least one record plus /// the database page's metadata information can fit on each database /// page. /// /// /// Any records added to the database that are less than Length bytes /// long are automatically padded (see for more /// information). /// /// /// Any attempt to insert records into the database that are greater /// than Length bytes long will cause the call to fail immediately and /// return an error. /// /// /// If the database already exists, this setting will be ignored. /// /// public uint Length { get { return len; } set { lengthIsSet = true; len = value; } } /// /// The policy for how to handle database creation. /// /// /// If the database does not already exist and /// is set, /// will fail. /// public CreatePolicy Creation; internal new uint openFlags { get { uint flags = base.openFlags; flags |= (uint)Creation; return flags; } } internal bool padIsSet; private int pad; /// /// The padding character for short, fixed-length records. /// /// /// /// If no pad character is specified, space characters (that is, ASCII /// 0x20) are used for padding. /// /// /// If the database already exists, this setting will be ignored. /// /// public int PadByte { get { return pad; } set { padIsSet = true; pad = value; } } internal bool extentIsSet; private uint extentSz; /// /// The size of the extents used to hold pages in a /// , specified as a number of /// pages. /// /// /// /// Each extent is created as a separate physical file. If no extent /// size is set, the default behavior is to create only a single /// underlying database file. /// /// /// For information on tuning the extent size, see Selecting a extent /// size in the Programmer's Reference Guide. /// /// /// If the database already exists, this setting will be ignored. /// /// public uint ExtentSize { get { return extentSz; } set { extentIsSet = true; extentSz = value; } } /// /// Instantiate a new SecondaryQueueDatabaseConfig object /// public SecondaryQueueDatabaseConfig( Database PrimaryDB, SecondaryKeyGenDelegate KeyGenFunc) : base(PrimaryDB, KeyGenFunc) { lengthIsSet = false; padIsSet = false; extentIsSet = false; DbType = DatabaseType.QUEUE; } } }