public SynchronizedViewItemRefresher(LocalRecordStore store)
        {
            if (store == null)
            {
                throw new ArgumentNullException("store");
            }

            m_store = store;
            m_updateChunks = new List<UpdateChunk>();
            m_maxBatchSize = SynchronizedView.DefaultReadAheadChunkSize;
            m_keyBatch = new List<ViewKey>();
            m_typeVersions = new HashSet<string>();
        }
        internal SynchronizedTypeManager(LocalRecordStore recordStore)
        {
            if (recordStore == null)
            {
                throw new ArgumentNullException("recordStore");
            }
            
            m_lock = new CrossThreadLock(false);
            m_recordStore = recordStore;
            m_views = new Dictionary<string,WeakReference<SynchronizedType>>();

            m_recordStore.Data.Changes.SynchronizedTypes = this;
            this.ImmediateCommitEnabled = true;
        }
 LocalRecordStore EnsureRecordStoreObject(IRecord record)
 {
     lock (m_recordStores)
     {
         LocalRecordStore recordStore = null;
         if (!m_recordStores.TryGetValue(record.ID, out recordStore))
         {
             recordStore = new LocalRecordStore(record, m_root, this);
             m_recordStores[record.ID] = recordStore;
         }
         return recordStore;
     }
 }