The C# Database Class embedded classes and structures

For an overview see page C# Classes

Embedded classes and structures:


    /// Actual loaded runtime information
    public struct RuntimeInfo
    {
        public byte mco_version_major;
        public byte mco_version_minor;
        public short mco_build_number;
        public byte mco_size_t;
        public byte mco_offs_t;
        public bool uint4_supported;
        public bool float_supported;
        public byte mco_checklevel;
        public bool evaluation_version;
        public bool large_database_supported;
        public bool collation_supported;
        public bool heap31_supported;
        public bool bin_serialization_supported;
        public bool fixedrec_supported;
        public bool statistics_supported;
        public bool events_supported;
        public bool save_load_supported;
        public bool object_initialization_supported;
        public bool direct_index_field_access_supported;
        public bool multiprocess_access_supported;
        public bool object_repack_supported;
        public bool transaction_logging_supported;
        public bool cluster_supported;
        public bool high_availability_supported;
        public bool ha_multicast_supported;
        public bool ha_incremental_replication_supported;
        public bool binary_schema_evolution_supported;
        public bool unicode_supported;
        public bool wchar_supported;
        public bool recovery_supported;
        public bool disk_supported;
        public bool direct_pointers_supported;
        public bool persistent_object_supported;
        public bool xml_import_export_supported;
        public bool user_defined_index_supported;
        public bool multifile_supported;
        public bool multifile_descriptor_supported;
        public bool two_phase_commit_supported;
        public bool rtree_supported;
        public bool tree_based_hash;
        public bool tmgr_mvcc_async_cleanup;
        public bool concurent_disk_btree;
        public bool open_cursor_goto_first;
        public bool smart_index_insert;
        public bool btree_leaf_lock;
        public bool null_statistics;
        public bool implicit_runtime_start;
        public bool bufferized_sync_iostream;
        public bool async_replication;
        public bool fast_transaction_list;
        public bool extendable_dirty_page_bitmap;
        public byte mursiw_policy;
        public byte sync_capabilities;
        public byte char_comparison_policy;
        public long stream_buffer_size;
        public short max_db_instances;
        public byte max_db_name_length;
        public byte max_extends;
        public long tl_page_buffer_size;
        public short ha_max_replicas;
        public long ha_transmit_buffer_size;
        public long ha_syncronization_buffer_size;
        public long default_redo_log_limit;
        public byte mvcc_critical_sections;
        public byte mvcc_per_index_locks;
        public short con_disk_page_cache_size;
        public byte small_con_cache_threshold;
        public long extendable_dirty_page_bitmap_limit;
        public byte max_vista_sessions;
        public bool concurrent_write_transactions;
        public byte encryption_support;
        public bool backup_support;
        public String mco_revision;
        public byte mco_process_t;
        public long mco_database_default_map_address;
    }

    public struct BackupInfo {
        public int        ProtocolVersion;
        public BackupType Type;
        public int        Flags;
        public int        BackupNo;
        public long       Timestamp;
        public long       Size;
        public long       Offset;
        public int        Crc;
        public long       TransNo;
        public int        MemPageSize;
        public int        DiskPageSize;
        public long       NPagesTotal;
        public String     DbName;
        public String     Label;
    }

    public struct HAChannelInfo
    {
        public String  ProtocolType;
        public long    BytesSent;
        public long    BytesRcvd;
        public bool    SupportUnreliable;
        public bool    AsyncMode;
    }

    public struct ClusterNodeParams
    {
        public String Addr;
        public int QRank;
    }

    public struct ClusterWindow
    {
        public int Length;
        public int BSize;
        public int Timeout;
    }

    public struct ClusterNodeInfo
    {
        public String Addr;
        public int QRank;
        public int NodeId;
    }

    public class ClusterTCPParams : Database.ClusterNWParams
    {
        public int SocketSendBuf;
        public int SocketRecvBuf;
        public int ConnectTimeout;
        public int ConnectInterval;
        public int SocketDomain;
        public int KeepAliveTime;
        public int KeepAliveProbes;
        public int CompressionLevel;
        public Database.SSLParameters SSLParameters;

        public ClusterTCPParams();
    }

    public class ClusterMPIParams : Database.ClusterNWParams
    {
        public int Flags;

        public ClusterMPIParams()
    }

    public class ClusterParams
    {
        public ClusterNodeParams[] Nodes;
        public int NodeId;
        public int ConnPoolFactor;
        public int SyncMsgObjects;
        public int SyncMsgSize;
        public int ClusterSendBuf;
        public int ClusterRecvBuf;
        public int Mode;
        public ClusterWindow Window;
        public ClusterQuorumDelegate QuorumDelegate;
        public ClusterNotifyDelegate NotifyDelegate;
        public ClusterNWParams NWParams;

        public ClusterParams(ClusterNodeParams[] nodes, int nodeId);
    }

    public struct ClusterInfo
    {
        public int RTransCommit;
        public int RTransRollback;
        public long BytesSent;
        public long BytesRecv;
        public int ActiveNodeNum;
        public int NodeId;
    }

    public class Parameters {...}

    /// An abstract database device (a volatile or non-volatile memory resource).
    public abstract class Device
    {
        /// The assignment of this device.
        public enum Kind
        {
            /// This device is used for database data (disk or memory).
            Data,
            /// This device is used for the disk cache.
            DiskCache,
            /// This device is used for the transaction log.
            TransactionLog,
            /// This device is used as async buffer for HA.
            AsyncBuffer,
            /// This device is used as pipe buffer for TL.
            PipeBuffer
        }
    }

    /// An in-process private memory segment (allocated using malloc).
    public class PrivateMemoryDevice : Database.Device
    {
        /// The private in-process memory device constructor.
        /// kind - the device assignment
        /// size - the region size
        public PrivateMemoryDevice(Device.Kind kind, long size);

        public long Size;
        public IntPtr AllocatedMemory;
    }

    /// A shared memory region (allocated using mmap or a similar system call).
    public class SharedMemoryDevice : Database.Device
    {
        /// The shared memory device constructor.
        ///
        /// kind - the device assignment.
        /// name - the segment name.
        /// hint - the proposed region.
        /// size - the region size.
        public SharedMemoryDevice(Device.Kind kind, String name, IntPtr hint, long size);

        public String Name;
        public IntPtr Hint;
        public long Size;
    }

    /// An Operating System file device.
    public class FileDevice : Database.Device
    {
        /// The file device constructor.
        ///
        /// kind - the device assignment.
        /// path - the file path.
        public FileDevice(Device.Kind kind, String path);
        public String Path;
    }

    /// A multifile segment. A multifile consists of several physical files. The
    /// size of each segment except the last is fixed, the last segment can be
    /// extended indefinitely.
    public class MultiFileDevice : Database.FileDevice
    {
        /// The multifile device constructor.
        ///
        /// kind - the device assignment.
        /// path - the file path.
        /// size - the multifile segment size (ignored for last segment).
        public MultiFileDevice(Device.Kind kind, String path, long size);
        public long Size;
    }

    /// A RAID segment.
    public class RaidDevice : Database.FileDevice
    {
        /// The RAID device constructor.
        ///
        /// kind - the device assignment.
        /// path - the file path.
        /// raidLevel - 0 - (RAID-0: striping) or 1 (RAID-1: mirroring).
        public RaidDevice(Device.Kind kind, String path, int raidLevel);

        public int RaidLevel;
    }