Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 20 additions & 6 deletions TYLDDB.Test/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,22 @@
string dbFilePath = "./example.lddb";
List<string> testData = [];

#region 实例化
///////////////////////////////////////////////////////////////////////////////////////////////////////// 实例化
var lddb = new LDDB();
#endregion

#region 读取文件
///////////////////////////////////////////////////////////////////////////////////////////////////////// 读取文件
HighPrecisionTimer readDbTimer = new(); // 从发起读取文件到成功读取的总时间
lddb.FilePath = dbFilePath;
readDbTimer.Start();
lddb.ReadingFile();
readDbTimer.Stop();
WriteTime("从发起读取文件指令到成功读取的总时间为: ", readDbTimer.ElapsedMilliseconds());
#endregion

#region 读取数据库
///////////////////////////////////////////////////////////////////////////////////////////////////////// 读取数据库
HighPrecisionTimer loadDbTimer = new(); // 从发起读取数据库到成功返回读取内容的总时间
loadDbTimer.Start();
Expand All @@ -29,7 +34,9 @@
Console.WriteLine(lddb.GetLoadingDatabaseContent()); // 输出database1内容
loadDbV2Timer.Stop();
WriteTime("从发起读取数据库指令到成功返回读取内容的总时间为(V2): ", loadDbV2Timer.ElapsedMilliseconds());
#endregion

#region 获取所有数据库名称
///////////////////////////////////////////////////////////////////////////////////////////////////////// 获取所有数据库名称
HighPrecisionTimer readAllDbNameTimer = new(); // 从发起读取数据库名称到成功返回读取内容的总时间
readAllDbNameTimer.Start();
Expand All @@ -43,18 +50,25 @@
}
}
WriteTime("从发起读取数据库名称到成功返回读取内容的总时间为: ", readAllDbNameTimer.ElapsedMilliseconds());
#endregion

///////////////////////////////////////////////////////////////////////////////////////////////////////// 数据库解析缓存
HighPrecisionTimer parseDbTimer = new(); // 从发起解析文件到成功解析并写入缓存的总时间(同步)
HighPrecisionTimer parseDbTimer = new();
parseDbTimer.Start();
await lddb.Parse();
await lddb.Parse_V1();
parseDbTimer.Stop();
WriteTime("从发起解析文件到成功解析并写入缓存的总时间(同步): ", parseDbTimer.ElapsedMilliseconds());
HighPrecisionTimer parseDbTimerAsync = new(); // 从发起解析文件到成功解析并写入缓存的总时间(异步)
WriteTime("解析文件并写入缓存V1(同步): ", parseDbTimer.ElapsedMilliseconds());
HighPrecisionTimer parseDbTimerAsync = new();
parseDbTimerAsync.Start();
await lddb.ParseAsync();
await lddb.ParseAsync_V1();
parseDbTimerAsync.Stop();
WriteTime("从发起解析文件到成功解析并写入缓存的总时间(异步): ", parseDbTimerAsync.ElapsedMilliseconds());
WriteTime("解析文件并写入缓存V1(异步): ", parseDbTimerAsync.ElapsedMilliseconds());

//HighPrecisionTimer parseDbV2Timer = new();
//parseDbV2Timer.Start();
//lddb.Parse_V2();
//parseDbV2Timer.Stop();
//WriteTime("解析文件并写入缓存V1(同步): ", parseDbV2Timer.ElapsedMilliseconds());

///////////////////////////////////////////////////////////////////////////////////////////////////////// 并发词典数据库全类型同步搜寻
HighPrecisionTimer allTypeSearchFromConcurrentDictionaryTimer = new();
Expand Down
108 changes: 0 additions & 108 deletions TYLDDB/Basic/Exception.cs

This file was deleted.

28 changes: 28 additions & 0 deletions TYLDDB/Basic/Exception/DatabaseException.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
namespace TYLDDB.Basic.Exception
{
/// <summary>
/// Database not found<br/>
/// 未找到数据库
/// </summary>
public class DatabaseNotFoundException : TylddbException
{
/// <summary>
/// Database not found<br/>
/// 未找到数据库
/// </summary>
public DatabaseNotFoundException(string message) : base(message) { }
}

/// <summary>
/// Description Failed to obtain the database content<br/>
/// 数据库内容获取失败
/// </summary>
public class GetDatabaseContentErrorException : TylddbException
{
/// <summary>
/// Description Failed to obtain the database content<br/>
/// 数据库内容获取失败
/// </summary>
public GetDatabaseContentErrorException(string message) : base(message) { }
}
}
54 changes: 54 additions & 0 deletions TYLDDB/Basic/Exception/FileException.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
namespace TYLDDB.Basic.Exception
{
/// <summary>
/// File opening failure<br/>
/// 文件打开失败
/// </summary>
public class FileOpenFailException : FileException
{
/// <summary>
/// File opening failure<br/>
/// 文件打开失败
/// </summary>
public FileOpenFailException(string message) : base(message) { }
}

/// <summary>
/// File read failure<br/>
/// 文件读取失败
/// </summary>
public class FileReadingFailException : FileException
{
/// <summary>
/// File read failure<br/>
/// 文件读取失败
/// </summary>
public FileReadingFailException(string message) : base(message) { }
}

/// <summary>
/// File not found<br/>
/// 文件未找到
/// </summary>
public class FileNotFoundException : FileException
{
/// <summary>
/// File not found<br/>
/// 文件未找到
/// </summary>
public FileNotFoundException(string message) : base(message) { }
}

/// <summary>
/// The file path is null or space<br/>
/// 文件路径为null或空白
/// </summary>
public class FilePathIsNullOrWhiteSpace : FileException
{
/// <summary>
/// The file path is null or space<br/>
/// 文件路径为null或空白
/// </summary>
public FilePathIsNullOrWhiteSpace(string message) : base(message) { }
}
}
16 changes: 16 additions & 0 deletions TYLDDB/Basic/Exception/TripleDictionaryException.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
namespace TYLDDB.Basic.Exception
{
#if NET8_0_OR_GREATER
/// <summary>
/// An exception class to the three-value dictionary.<br />
/// 三值字典的例外类。
/// </summary>
public class TripleDictionaryException(string message) : DictionaryException(message) { }

/// <summary>
/// The specified key was not found.<br />
/// 未找到指定的键。
/// </summary>
public class TripleDictionaryKeyNotFoundException(string message) : TripleDictionaryException(message) { }
#endif
}
94 changes: 94 additions & 0 deletions TYLDDB/Basic/Exception/TylddbException.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
namespace TYLDDB.Basic.Exception
{
/// <summary>
/// The main error module, most of them use this<br/>
/// 主要的错误模块,大部分都使用这个
/// </summary>
public class TylddbException : System.Exception
{
/// <summary>
/// The main error module, most of them use this<br/>
/// 主要的错误模块,大部分都使用这个
/// </summary>
public TylddbException(string message) : base(message) { }
}

/// <summary>
/// Error module about file.<br />
/// 有关文件的错误模块。
/// </summary>
public class FileException : TylddbException
{
/// <summary>
/// Error module about file.<br />
/// 有关文件的错误模块。
/// </summary>
public FileException(string message) : base(message) { }
}

/// <summary>
/// Error module about write file function.<br />
/// 有关写入文件功能的错误模块。
/// </summary>
public class WriteException : TylddbException
{
/// <summary>
/// Error module about write file function.<br />
/// 有关写入文件功能的错误模块。
/// </summary>
public WriteException(string message) : base(message) { }
}

/// <summary>
/// Error module about write file function.<br />
/// 有关写入文件功能的错误模块。
/// </summary>
public class ReadException : TylddbException
{
/// <summary>
/// Error module about write file function.<br />
/// 有关写入文件功能的错误模块。
/// </summary>
public ReadException(string message) : base(message) { }
}

/// <summary>
/// Error module about database.<br />
/// 有关数据库的错误模块。
/// </summary>
public class DatabaseException : TylddbException
{
/// <summary>
/// Error module about database.<br />
/// 有关数据库的错误模块。
/// </summary>
public DatabaseException(string message) : base(message) { }
}

/// <summary>
/// Dictionary exception class.<br />
/// 字典的错误类。
/// </summary>
public class DictionaryException : TylddbException
{
/// <summary>
/// Dictionary exception class.<br />
/// 字典的错误类。
/// </summary>
public DictionaryException(string message) : base(message) { }
}

// 未分类的错误
/// <summary>
/// Incorrect or invalid data<br/>
/// 错误或无效的数据
/// </summary>
public class InvalidDataException : TylddbException
{
/// <summary>
/// Incorrect or invalid data<br/>
/// 错误或无效的数据
/// </summary>
public InvalidDataException(string message) : base(message) { }
}
}
28 changes: 28 additions & 0 deletions TYLDDB/Basic/Exception/WriteException.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
namespace TYLDDB.Basic.Exception
{
/// <summary>
/// Error database content to file.<br />
/// 写入数据库内容到文件时的错误。
/// </summary>
public class WriteStringToFileException : WriteException
{
/// <summary>
/// Error database content to file.<br />
/// 写入数据库内容到文件时的错误。
/// </summary>
public WriteStringToFileException(string message) : base(message) { }
}

/// <summary>
/// Block-writing error in database to file.<br />
/// 分块写入数据库到文件的错误。
/// </summary>
public class WriteStringToFileInChunksException : WriteException
{
/// <summary>
/// Block-writing error in database to file.<br />
/// 分块写入数据库到文件的错误。
/// </summary>
public WriteStringToFileInChunksException(string message) : base(message) { }
}
}
Loading
Loading