本文整理汇总了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);
}