Esempio n. 1
0
        /// <summary>
        /// 添加到同步队列
        /// </summary>
        /// <param name="model"></param>
        public void PushSync(ISyncModel model)
        {
            lock (m_aLock)
            {
                if (model == null)
                    return;

                m_aSyncQueue.Enqueue(model);
            }
        }
Esempio n. 2
0
        /// <summary>
        /// 添加到同步队列
        /// </summary>
        /// <param name="model"></param>
        public void PushSync(ISyncModel model)
        {
            lock (m_aLock)
            {
                if (model == null)
                {
                    return;
                }

                m_aSyncQueue.Enqueue(model);
            }
        }
Esempio n. 3
0
        /// <summary>
        /// 获得一个同步队列
        /// </summary>
        /// <returns></returns>
        protected ISyncModel PopSync()
        {
            lock (m_aLock)
            {
                if (m_aSyncQueue.Count == 0)
                {
                    return(null);
                }

                ISyncModel model = m_aSyncQueue.Dequeue();
                return(model);
            }
        }
Esempio n. 4
0
        static void SetReferencedSyncModelPath(ISyncModel syncModel, SyncManifest manifest)
        {
            switch (syncModel)
            {
            // Keep for backward compatibility with old client cache model
            case SyncPrefab syncPrefab:
                SetReferencedSyncModelPath(syncPrefab, manifest);
                break;

            case SyncObject syncObject:
                SetReferencedSyncModelPath(syncObject, manifest);
                break;

            case SyncMaterial syncMaterial:
                SetReferencedSyncModelPath(syncMaterial, manifest);
                break;

            case SyncObjectInstance syncObjectInstance:
                SetReferencedSyncModelPath(syncObjectInstance, manifest);
                break;
            }
        }
Esempio n. 5
0
        /// <summary>
        /// 处理同步队列
        /// </summary>
        protected void HandleSync()
        {
            int nCount = GetSyncCount();

            for (int nIndex = 0; nIndex < nCount; ++nIndex)
            {
                ISyncModel model = PopSync();
                if (model == null)
                {
                    continue;
                }

                try
                {
                    // 处理这个Handle
                    model.Handle();
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.ToString());
                }
            }
        }