Пример #1
0
    async Task SyncAllHiveDataAsync(CancellationToken cancel)
    {
        IHiveData[] hiveArray;

        lock (LockObj)
        {
            hiveArray = RegisteredHiveData.Values._ToArrayList();
        }

        foreach (var hive in hiveArray)
        {
            cancel.ThrowIfCancellationRequested();

            HiveSyncFlags flags = HiveSyncFlags.None;

            if (hive.Policy.Bit(HiveSyncPolicy.AutoReadFromFile))
            {
                flags |= HiveSyncFlags.LoadFromFile;
            }

            if (hive.Policy.Bit(HiveSyncPolicy.AutoWriteToFile))
            {
                flags |= HiveSyncFlags.SaveToFile;
            }

            if (flags != HiveSyncFlags.None)
            {
                // no worry for error
                await hive.SyncWithStorageAsync(flags, true, cancel);
            }
        }
    }
Пример #2
0
        internal void UnregisterInternal(IHiveData hiveData)
        {
            // 最後に Sync を実行する
            HiveSyncFlags flags = HiveSyncFlags.LoadFromFile;

            if (hiveData.IsReadOnly == false)
            {
                flags |= HiveSyncFlags.SaveToFile;
            }

            // エラーを無視
            hiveData.SyncWithStorageAsync(flags, true)._GetResult();

            lock (LockObj)
            {
                RegisteredHiveData.Remove(hiveData.DataName);
            }
        }
Пример #3
0
        async Task SyncAllHiveDataAsync(CancellationToken cancel)
        {
            IHiveData[] hiveArray;

            lock (LockObj)
            {
                hiveArray = RegisteredHiveData.Values._ToArrayList();
            }

            foreach (var hive in hiveArray)
            {
                cancel.ThrowIfCancellationRequested();

                HiveSyncFlags flags = HiveSyncFlags.LoadFromFile;

                if (hive.IsReadOnly == false)
                {
                    flags |= HiveSyncFlags.SaveToFile;
                }

                // no worry for error
                await hive.SyncWithStorageAsync(flags, true, cancel);
            }
        }