public void AddReset(ResetData rd) { lock (Resets) { Resets.Add(rd); } }
/// <summary> /// Возвращает следующее значение последовательности с указанным кодом /// </summary> /// <param name="objectSpace">Пространство объектов для загрузки и хранения объектов</param> /// <param name="code">Код последовательности</param> /// <param name="reset">Условие сброса значения последовательности</param> /// <returns>Следующее значение последовательности с кодом <b>code</b></returns> /// <remarks>Если значение последовательность не найдена, то создается новая последовательность. Если выполнено условие сброса /// значения последовательности, то значение сбрасывается в 0 и возвращается следующее значение, т.е. 1.</remarks> /// <exception cref="ArgumentNullException">Не указаны пространство объектов или код последовательности</exception> /// <exception cref="ArgumentException">Указано условие сброса значения, отличное от исходного</exception> public static int GetNext(IObjectSpace objectSpace, string code, Resets reset = Resets.Never) { if (objectSpace == null) { throw new ArgumentNullException("objectSpace"); } if (string.IsNullOrEmpty(code)) { throw new ArgumentNullException("code"); } Sequence sequence = Find(objectSpace, code); if (sequence == null) { sequence = objectSpace.CreateObject <Sequence>(); sequence.Code = code; sequence.Reset = reset; sequence.Current = 0; sequence.LastChange = DateTime.Now; } else { objectSpace.ReloadObject(sequence); if (sequence.Reset != reset) { throw new ArgumentException(string.Format("Reset of sequence {0} is different (parameter = {1}, original = {2})", code, reset, sequence.Reset), "reset"); } } var next = sequence.GetNext(); return(next); }
/// <summary> /// Возвращает следующее значение последовательности с указанным кодом /// </summary> /// <param name="session">Сессия для загрузки и хранения объектов</param> /// <param name="code">Код последовательности</param> /// <param name="reset">Условие сброса значения последовательности</param> /// <returns>Следующее значение последовательности с кодом <b>code</b></returns> /// <remarks>Если значение последовательность не найдена, то создается новая последовательность. Если выполнено условие сброса /// значения последовательности, то значение сбрасывается в 0 и возвращается следующее значение, т.е. 1.</remarks> /// <exception cref="ArgumentNullException">Не указаны сессия или код последовательности</exception> /// <exception cref="ArgumentException">Указано условие сброса значения, отличное от исходного</exception> public static int GetNext(Session session, string code, Resets reset = Resets.Never) { if (session == null) { throw new ArgumentNullException("session"); } if (string.IsNullOrEmpty(code)) { throw new ArgumentNullException("code"); } Sequence sequence = Find(session, code); if (sequence == null) { sequence = new Sequence(session); sequence.Code = code; sequence.Reset = reset; sequence.Current = 0; sequence.LastChange = DateTime.Now; } else if (sequence.Reset != reset) { throw new ArgumentException(string.Format("Reset of sequence {0} is different (parameter = {1}, original = {2})", code, reset, sequence.Reset), "reset"); } return(sequence.GetNext()); }
internal static void Register(Type type) { Constructors.Add(type.GetConstructor(Type.EmptyTypes)); Saves.Add(type, typeof(FieldBackuper <>).MakeGenericType(type) .GetMethod("Save")); Resets.Add(type, typeof(FieldBackuper <>).MakeGenericType(type) .GetMethod("Reset")); }
public void AddReset(string type, int extra, int arg1, int arg2, int arg3) { var newReset = new ResetData { Type = Realm.Library.Common.Extensions.EnumerationExtensions.GetEnumIgnoreCase <ResetTypes>(type), Extra = extra, Command = type[0].ToString() }; newReset.SetArgs(arg1, arg2, arg3); Resets.Add(newReset); }
public void Update() { UpdateQueue.AddRelative((200 + World.RndGen.Next(200)) * Clock.TimeBase, Update); UpdateQueue.Run(); if (Resets != null) { lock (this) Resets.Update(); } Log.Info(World.Instance.Time / 1000 + ": room " + Id + " updated."); }
static Author() { Resets.Add(() => NameToAuthor.Clear()); }
public void AddReset(ResetData reset) => Resets.Add(reset);