当前位置: 首页>>代码示例>>C#>>正文


C# BTreeDatabaseConfig.SetPartitionByCallback方法代码示例

本文整理汇总了C#中BerkeleyDB.BTreeDatabaseConfig.SetPartitionByCallback方法的典型用法代码示例。如果您正苦于以下问题:C# BTreeDatabaseConfig.SetPartitionByCallback方法的具体用法?C# BTreeDatabaseConfig.SetPartitionByCallback怎么用?C# BTreeDatabaseConfig.SetPartitionByCallback使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在BerkeleyDB.BTreeDatabaseConfig的用法示例。


在下文中一共展示了BTreeDatabaseConfig.SetPartitionByCallback方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: TestPartition

        public void TestPartition()
        {
            testName = "TestPartition";
            SetUpTest(true);
            string btreeDBName = testHome + "/" + testName + ".db";

             			BTreeDatabaseConfig cfg = new BTreeDatabaseConfig();
            BTreeDatabase db;
            DatabaseEntry[] keys;
             			DatabaseEntry key, data;
            string[] keyData =
                { "a", "b", "i", "k", "l", "q", "v", "z" };
            int i;
            uint parts;

            cfg.Creation = CreatePolicy.ALWAYS;
            parts = 3;
            keys = new DatabaseEntry[parts - 1];
            keys[0] = new DatabaseEntry(
                ASCIIEncoding.ASCII.GetBytes("i"));
            keys[1] = new DatabaseEntry(
                ASCIIEncoding.ASCII.GetBytes("q"));

            /*
             * Test that neither key array nor
             * partiton callback is set.
             */
            Assert.AreEqual(false, cfg.SetPartitionByKeys(null));
            Assert.AreEqual(false,
                cfg.SetPartitionByCallback(parts, null));

            /* Test creating the partitioned database by keys. */
            Assert.AreEqual(true, cfg.SetPartitionByKeys(keys));
            db = BTreeDatabase.Open(btreeDBName, cfg);
            for (i = 0; i < keyData.Length; i++)
            {
                key = new DatabaseEntry(
                    ASCIIEncoding.ASCII.GetBytes(keyData[i]));
                data = new DatabaseEntry(
                    ASCIIEncoding.ASCII.GetBytes(keyData[i]));
                db.Put(key, data);
            }
            Assert.AreEqual(parts, db.NParts);
            Assert.AreEqual(parts - 1, db.PartitionKeys.Length);
            Assert.AreEqual(
                keys[0].Data, db.PartitionKeys[0].Data);
            Assert.AreEqual(
                keys[1].Data, db.PartitionKeys[1].Data);
            Assert.AreEqual(db.Partition, null);
            db.Close();
            string[] files =
                Directory.GetFiles(testHome, "__dbp.*");
            Assert.AreEqual(parts, files.Length);

            /*
             * Test creating the partitioned database by callback.
             */
            Directory.Delete(testHome, true);
            Directory.CreateDirectory(testHome);
            Assert.AreEqual(true,
                cfg.SetPartitionByCallback(parts, partition));
            db = BTreeDatabase.Open(btreeDBName, cfg);
            for (i = 0; i < keyData.Length; i++)
            {
                key = new DatabaseEntry(
                    ASCIIEncoding.ASCII.GetBytes(keyData[i]));
                data = new DatabaseEntry(
                    ASCIIEncoding.ASCII.GetBytes(keyData[i]));
                db.Put(key, data);
            }
            Assert.AreEqual(parts, db.NParts);
            Assert.AreEqual(
                new PartitionDelegate(partition), db.Partition);
            db.Close();
            files = Directory.GetFiles(testHome, "__dbp.*");
            Assert.AreEqual(parts, files.Length);
        }
开发者ID:hyc,项目名称:BerkeleyDB,代码行数:77,代码来源:BTreeDatabaseTest.cs


注:本文中的BerkeleyDB.BTreeDatabaseConfig.SetPartitionByCallback方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。