コード例 #1
0
 public DataLoadRequest(string name, IDataTableRequestHash hash, string directory, bool downloadOnly)
 {
     this.name         = name;
     this.hash         = hash;
     this.directory    = directory;
     this.downloadOnly = downloadOnly;
 }
コード例 #2
0
    private DataLoadRequest CreateRequest(string name, IDataTableRequestHash hash, string directory, bool downloadOnly = false)
    {
        DataLoadRequest req = new DataLoadRequest(name, hash, directory, downloadOnly);

        req.onVerifyError += delegate(string filehash)
        {
            ReportVerifyError(name, filehash);
            if (reportOnly)
            {
                Log.Error(LOG.DATA_TABLE, "VerifyError(report-only): {0}", req.name);
                return(true);
            }
            if (!verifyErroredRequest.Contains(req))
            {
                Log.Error(LOG.DATA_TABLE, "VerifyError(auto-retry): {0}", req.name);
                cache.Remove(req);
                verifyErroredRequest.Add(req);
            }
            return(false);
        };
        req.onError += delegate(DataTableLoadError error)
        {
            Log.Error(LOG.DATA_TABLE, "load error ({1}): {0}", req.name, error.ToString());
            erroredRequests.Add(req);
            cache.Remove(req);
            if (this.onError != null)
            {
                this.onError(error, Retry);
            }
        };
        req.onComplete += delegate
        {
            verifyErroredRequest.Remove(req);
        };
        return(req);
    }