unit uYitIdHelper;
interface
uses System.SysUtils, uIIdGenerator, uIdGeneratorOptions;
type
TYitIdHelper = class
private
IdGenInstance: IIdGenerator;
public
function GetIdGenInstance(): IIdGenerator;
///
/// 设置参数,建议程序初始化时执行一次
///
///
procedure SetIdGenerator(options: TIdGeneratorOptions);
///
/// 生成新的Id
/// 调用本方法前,请确保调用了 SetIdGenerator 方法做初始化。
///
///
function NextId(): Int64;
end;
implementation
uses
uDefaultIdGenerator;
{ TYitIdHelper }
function TYitIdHelper.GetIdGenInstance: IIdGenerator;
begin
Result := IdGenInstance;
end;
procedure TYitIdHelper.SetIdGenerator(options: TIdGeneratorOptions);
begin
IdGenInstance := TDefaultIdGenerator.Create(options);
end;
function TYitIdHelper.NextId(): Int64;
begin
if (IdGenInstance = nil) then
raise Exception.Create('Please initialize Yitter.IdGeneratorOptions first.');
Result := IdGenInstance.NewLong();
end;
end.