コード例 #1
0
        public virtual AssetMetadata GetMetadata(string id)
        {
            if (m_Cache != null)
            {
                AssetBase fullAsset;
                if (!m_Cache.Get(id, out fullAsset))
                {
                    return(null);
                }

                if (fullAsset != null)
                {
                    return(fullAsset.Metadata);
                }
            }

            if (m_ServerURI == null)
            {
                return(null);
            }

            string uri = m_ServerURI + "/assets/" + id + "/metadata";

            return(SynchronousRestObjectRequester.MakeGetRequest <AssetMetadata>(uri, 0, m_Auth));
        }
コード例 #2
0
        private void AssetRequestProcessor(QueuedAssetRequest r)
        {
            string id = r.id;

            try
            {
                AssetBase a = SynchronousRestObjectRequester.MakeGetRequest <AssetBase>(r.uri, 30000, m_Auth);

                if (a != null && m_Cache != null)
                {
                    m_Cache.Cache(a);
                }

                List <AssetRetrievedEx> handlers;
                lock (m_AssetHandlers)
                {
                    handlers = m_AssetHandlers[id];
                    m_AssetHandlers.Remove(id);
                }

                if (handlers != null)
                {
                    foreach (AssetRetrievedEx h in handlers)
                    {
                        try { h.Invoke(a); }
                        catch { }
                    }
                    handlers.Clear();
                }
            }
            catch { }
        }
コード例 #3
0
        public virtual AssetBase Get(string id)
        {
            AssetBase asset = null;

            if (m_Cache != null)
            {
                if (!m_Cache.Get(id, out asset))
                {
                    return(null);
                }
            }

            if (asset == null && m_ServerURI != null)
            {
                string uri = m_ServerURI + "/assets/" + id;

                asset = SynchronousRestObjectRequester.MakeGetRequest <AssetBase>(uri, 0, m_Auth);
                if (m_Cache != null)
                {
                    if (asset != null)
                    {
                        m_Cache.Cache(asset);
                    }
                    else
                    {
                        m_Cache.CacheNegative(id);
                    }
                }
            }
            return(asset);
        }