internal async Task PutViewAsync(SynchronizedView view, CancellationToken cancelToken)
 {
     using (await CrossThreadLockScope.Enter(m_metadataLock))
     {
         await m_metadataStore.PutAsync(MakeViewKey(view.Name), view.Data);
     }
 }
        internal async Task Load()
        {
            string viewName = SynchronizedType.MakeViewName(m_typeID);
            m_items = await this.Store.GetViewAsync(viewName);
            if (m_items == null)
            {
                m_items = this.Store.CreateView(viewName, ItemQuery.QueryForTypeID(m_typeID));
                await this.SaveAsync();
            }

            m_items.PublicSyncDisabled = true;
            m_items.ItemsAvailable += OnItemsAvailable;
            m_items.ItemsNotFound += OnItemsNotFound;
            m_items.Error += OnError;
        }
        public IAsyncAction PutViewAsync(SynchronizedView view)
        {
            if (view == null)
            {
                throw new ArgumentNullException("view");
            }

            view.Name.ValidateRequired("view");

            return AsyncInfo.Run(async cancelToken =>
            {
                await this.PutViewAsync(view, cancelToken);
            });
        }