public static void Init() { AllianceManager.m_alliances = new Dictionary <long, Alliance>(); AllianceManager.m_counters = ServerStream.AllianceDatabase.GetDocumentHigherIDs(); for (int i = 0; i < EnvironmentSettings.HigherIdCounterSize; i++) { int highId = i; int higherId = 0; Parallel.For(1, AllianceManager.m_counters[i] + 1, lowId => { LogicLong id = new LogicLong(highId, lowId); if (ServerManager.GetDocumentSocket(ServerCore.Type, id) == ServerCore.Socket) { IOperationResult <string> document = ServerStream.AllianceDatabase.Get(id).Result; if (document.Success) { lock (AllianceManager.m_alliances) { Alliance allianceDocument = CouchbaseDocument.Load <Alliance>(document.Value); AllianceManager.m_alliances.Add(id, allianceDocument); if (higherId < lowId) { higherId = lowId; } } } } }); AllianceManager.m_counters[i] = higherId; } }
public static void Save(Alliance alliance) { ServerStream.AllianceDatabase.InsertOrUpdate(alliance.Id, CouchbaseDocument.Save(alliance)); }
public static bool TryGet(LogicLong id, out Alliance alliance) { return(AllianceManager.m_alliances.TryGetValue(id, out alliance)); }