コード例 #1
0
        public static void AsyncGetService(CosXml cosXml)
        {
            GetServiceRequest request = new GetServiceRequest();

            //设置签名有效时长
            request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600);
            QLog.D("INFO", String.Format("current thread name: {0}-{1}", System.Threading.Thread.CurrentThread.Name, System.Threading.Thread.CurrentThread.ManagedThreadId));

            cosXml.GetService(request,
                              delegate(COSXML.Model.CosResult cosResult)
            {
                GetServiceResult getServiceResult = cosResult as GetServiceResult;
                QLog.D("XIAO", getServiceResult.GetResultInfo());
                Console.WriteLine(getServiceResult.GetResultInfo());
            },
                              delegate(COSXML.CosException.CosClientException clientEx, COSXML.CosException.CosServerException serverEx)
            {
                QLog.D("INFO", String.Format("current thread name: {0}-{1}", System.Threading.Thread.CurrentThread.Name, System.Threading.Thread.CurrentThread.ManagedThreadId));
                if (clientEx != null)
                {
                    QLog.D("XIAO", clientEx.Message);
                    Console.WriteLine("CosClientException: " + clientEx.StackTrace);
                }
                if (serverEx != null)
                {
                    QLog.D("XIAO", serverEx.Message);
                    Console.WriteLine("CosServerException: " + serverEx.GetInfo());
                }
            });
        }
コード例 #2
0
        private static bool GetInvokerForHash(int cmdHash, UNetInvokeType invokeType, out Type invokeClass, out CmdDelegate invokeFunction)
        {
            bool result;

            if (!s_CmdHandlerDelegates.TryGetValue(cmdHash, out var invoker))
            {
                QLog.Error($"GetInvokerForHash hash:{cmdHash} not found");
                invokeClass    = null;
                invokeFunction = null;
                result         = false;
            }
            else if (invoker == null)
            {
                QLog.Error($"GetInvokerForHash hash:{cmdHash} invoker null");
                invokeClass    = null;
                invokeFunction = null;
                result         = false;
            }
            else if (invoker.invokeType != invokeType)
            {
                QLog.Error($"GetInvokerForHash hash:{cmdHash} mismatched invokeType");
                invokeClass    = null;
                invokeFunction = null;
                result         = false;
            }
            else
            {
                invokeClass    = invoker.invokeClass;
                invokeFunction = invoker.invokeFunction;
                result         = true;
            }
            return(result);
        }
コード例 #3
0
ファイル: UIMgr.cs プロジェクト: soulhez/Lemon
        public void Close(string UIName)
        {
            UIBase uIBase;

            if (!TryGetUIBase(UIName, out uIBase))
            {
                return;
            }

            //取出界面,执行OnExit函数
            QLog.LogEditor(StringUtility.Format("{0} 执行OnExit函数", uIBase.UIName.ToString()));
            uIBase.OnClose();
            UIBasePool.Remove(uIBase);

            GameObject.Destroy(uIBase.CacheGameObject);
            uIBase = null;

            //取出最后的界面,执行OnResume函数
            UIBase lastUIBase;

            if (TryGetLastUIBase(out lastUIBase))
            {
                QLog.LogEditor(StringUtility.Format("{0} 执行OnResume函数", lastUIBase.UIName.ToString()));
                lastUIBase.OnResume();
            }
        }
コード例 #4
0
            public void PaserServerError(Stream inputStream, string contentType, long contentLength)
            {
                CosServerException cosServerException = new CosServerException(cosResult.httpCode, cosResult.httpMessage);
                List <string>      values;

                Headers.TryGetValue("x-cos-request-id", out values);
                cosServerException.requestId = (values != null && values.Count > 0) ? values[0] : null;
                Headers.TryGetValue("x-cos-trace-id", out values);
                cosServerException.traceId = (values != null && values.Count > 0) ? values[0] : null;
                if (inputStream != null && contentLength > 0)
                {
                    CosServerError cosServerError = new CosServerError();
                    try
                    {
                        XmlParse.ParseCosError(inputStream, cosServerError);
                        if (cosServerException.requestId != null)
                        {
                            cosServerException.requestId = cosServerError.requestId;
                        }
                        if (cosServerException.traceId != null)
                        {
                            cosServerException.traceId = cosServerError.traceId;
                        }
                        cosServerException.resource     = cosServerError.resource;
                        cosServerException.errorCode    = cosServerError.code;
                        cosServerException.errorMessage = cosServerError.message;
                    }
                    catch (Exception ex)
                    {
                        QLog.D(TAG, ex.Message);
                    }
                }
                throw cosServerException;
            }
コード例 #5
0
 private void InitializeSingleton()
 {
     if (!(singleton != null) || !(singleton == this))
     {
         if (dontDestroyOnLoad)
         {
             if (singleton != null)
             {
                 QLog.Warning("Multiple NetworkManagers detected in the scene. Only one NetworkManager can exist at a time. The duplicate NetworkManager will not be used.");
                 Destroy(gameObject);
                 return;
             }
             QLog.Log("NetworkManager created singleton (DontDestroyOnLoad)");
             singleton = this;
             if (Application.isPlaying)
             {
                 DontDestroyOnLoad(gameObject);
             }
         }
         else
         {
             QLog.Log("NetworkManager created singleton (ForScene)");
             singleton = this;
         }
         if (networkAddress != "")
         {
             s_Address = networkAddress;
         }
         else if (s_Address != "")
         {
             networkAddress = s_Address;
         }
     }
 }
コード例 #6
0
 internal void OnServerConnectInternal(QNetworkMessage netMsg)
 {
     QLog.Log("NetworkManager:OnServerConnectInternal");
     netMsg.Connection.SetMaxDelay(maxDelay);
     if (m_MaxBufferedPackets != 512)
     {
         for (var i = 0; i < QNetworkServer.numChannels; i++)
         {
             netMsg.Connection.SetChannelOption(i, ChannelOption.MaxPendingBuffers, m_MaxBufferedPackets);
         }
     }
     if (!m_AllowFragmentation)
     {
         for (var j = 0; j < QNetworkServer.numChannels; j++)
         {
             netMsg.Connection.SetChannelOption(j, ChannelOption.AllowFragmentation, 0);
         }
     }
     if (networkSceneName != "" && networkSceneName != offlineScene)
     {
         var msg = new QStringMessage(networkSceneName);
         netMsg.Connection.Send(39, msg);
     }
     OnServerConnect(netMsg.Connection);
 }
コード例 #7
0
        public static void CompleteMultiUpload(COSXML.CosXml cosXml, string bucket, string key, string uploadId, Dictionary <int, string> partNumberAndEtags)
        {
            try
            {
                CompleteMultipartUploadRequest request = new CompleteMultipartUploadRequest(bucket, key, uploadId);
                //设置签名有效时长
                request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600);

                //设置已上传的parts
                request.SetPartNumberAndETag(partNumberAndEtags);

                //执行请求
                CompleteMultipartUploadResult result = cosXml.CompleteMultiUpload(request);

                Console.WriteLine(result.GetResultInfo());
            }
            catch (COSXML.CosException.CosClientException clientEx)
            {
                QLog.D("XIAO", clientEx.Message);
                Console.WriteLine("CosClientException: " + clientEx.StackTrace);
            }
            catch (COSXML.CosException.CosServerException serverEx)
            {
                QLog.D("XIAO", serverEx.Message);
                Console.WriteLine("CosServerException: " + serverEx.GetInfo());
            }
        }
コード例 #8
0
        public static void Download(string bucket, string key, string localDir, string localFileName)
        {
            COSXMLDownloadTask downloadTask = new COSXMLDownloadTask(bucket, null, key, localDir, localFileName)
            {
                progressCallback = delegate(long completed, long total)
                {
                    Console.WriteLine(String.Format("progress = {0} / {1} : {2:##.##}%", completed, total, completed * 100.0 / total));
                },
                successCallback = delegate(CosResult cosResult)
                {
                    COSXML.Transfer.COSXMLDownloadTask.DownloadTaskResult result = cosResult as COSXML.Transfer.COSXMLDownloadTask.DownloadTaskResult;
                    QLog.D("XIAO", result.GetResultInfo());
                    Console.WriteLine(result.GetResultInfo());
                    Console.WriteLine(String.Format("currentThread id = {0}", Thread.CurrentThread.ManagedThreadId));
                },
                failCallback = delegate(CosClientException clientEx, CosServerException serverEx)
                {
                    if (clientEx != null)
                    {
                        QLog.D("XIAO", clientEx.Message);
                        Console.WriteLine("CosClientException: " + clientEx.StackTrace);
                    }
                    if (serverEx != null)
                    {
                        QLog.D("XIAO", serverEx.Message);
                        Console.WriteLine("CosServerException: " + serverEx.GetInfo());
                    }
                    Console.WriteLine(String.Format("currentThread id = {0}", Thread.CurrentThread.ManagedThreadId));
                }
            };

            transferManager.Download(downloadTask);
        }
コード例 #9
0
        public static void AsynListParts(COSXML.CosXml cosXml, string bucket, string key, string uploadId)
        {
            QLog.D("XIAO", String.Format("currentThread id = {0}", Thread.CurrentThread.ManagedThreadId));
            ListPartsRequest request = new ListPartsRequest(bucket, key, uploadId);

            //设置签名有效时长
            request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600);

            cosXml.ListParts(request,
                             delegate(CosResult cosResult)
            {
                ListPartsResult result = cosResult as ListPartsResult;
                Console.WriteLine(result.GetResultInfo());
                Console.WriteLine(String.Format("currentThread id = {0}", Thread.CurrentThread.ManagedThreadId));
                QLog.D("XIAO", result.GetResultInfo());
            },
                             delegate(CosClientException clientEx, CosServerException serverEx)
            {
                if (clientEx != null)
                {
                    QLog.D("XIAO", clientEx.Message);
                    Console.WriteLine("CosClientException: " + clientEx.StackTrace);
                }
                if (serverEx != null)
                {
                    QLog.D("XIAO", serverEx.Message);
                    Console.WriteLine("CosServerException: " + serverEx.GetInfo());
                }
                Console.WriteLine(String.Format("currentThread id = {0}", Thread.CurrentThread.ManagedThreadId));
            });
        }
コード例 #10
0
        public static void UploadParts(COSXML.CosXml cosXml, string bucket, string key, string uploadId, int partNumber, string srcPath)
        {
            try
            {
                UploadPartRequest request = new UploadPartRequest(bucket, key, partNumber, uploadId, srcPath);
                //设置签名有效时长
                request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600);

                //设置进度回调
                request.SetCosProgressCallback(delegate(long completed, long total)
                {
                    Console.WriteLine(String.Format("{0} progress = {1} / {2} : {3:##.##}%", DateTime.Now.ToString(), completed, total, completed * 100.0 / total));
                });

                //执行请求
                UploadPartResult result = cosXml.UploadPart(request);

                Console.WriteLine(result.GetResultInfo());
                QLog.D("XIAO", result.GetResultInfo());
            }
            catch (COSXML.CosException.CosClientException clientEx)
            {
                QLog.D("XIAO", clientEx.Message);
                Console.WriteLine("CosClientException: " + clientEx.StackTrace);
            }
            catch (COSXML.CosException.CosServerException serverEx)
            {
                QLog.D("XIAO", serverEx.Message);
                Console.WriteLine("CosServerException: " + serverEx.GetInfo());
            }
        }
コード例 #11
0
        public static void ListParts(COSXML.CosXml cosXml, string bucket, string key, string uploadId)
        {
            try
            {
                ListPartsRequest request = new ListPartsRequest(bucket, key, uploadId);
                //设置签名有效时长
                request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600);

                //执行请求
                ListPartsResult result = cosXml.ListParts(request);

                QLog.D("XIAO", result.GetResultInfo());
                Console.WriteLine(result.GetResultInfo());
            }
            catch (COSXML.CosException.CosClientException clientEx)
            {
                QLog.D("XIAO", clientEx.Message);
                Console.WriteLine("CosClientException: " + clientEx.Message);
            }
            catch (COSXML.CosException.CosServerException serverEx)
            {
                QLog.D("XIAO", serverEx.Message);
                Console.WriteLine("CosServerException: " + serverEx.GetInfo());
            }
        }
コード例 #12
0
        public static void InitMultiUpload(COSXML.CosXml cosXml, string bucket, string key)
        {
            try
            {
                InitMultipartUploadRequest request = new InitMultipartUploadRequest(bucket, key);
                //设置签名有效时长
                request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600);

                //执行请求
                InitMultipartUploadResult result = cosXml.InitMultipartUpload(request);

                Console.WriteLine(result.GetResultInfo());
                QLog.D("XIAO", result.GetResultInfo());
            }
            catch (COSXML.CosException.CosClientException clientEx)
            {
                QLog.D("XIAO", clientEx.Message);
                Console.WriteLine("CosClientException: " + clientEx.StackTrace);
            }
            catch (COSXML.CosException.CosServerException serverEx)
            {
                QLog.D("XIAO", serverEx.Message);
                Console.WriteLine("CosServerException: " + serverEx.GetInfo());
            }
        }
コード例 #13
0
        public static void CopyObject(COSXML.CosXml cosXml, string bucket, string key, COSXML.Model.Tag.CopySourceStruct copySource)
        {
            try
            {
                CopyObjectRequest request = new CopyObjectRequest(bucket, key);
                //设置签名有效时长
                request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600);

                //设置拷贝源
                request.SetCopySource(copySource);

                //设置是否拷贝还是更新
                request.SetCopyMetaDataDirective(COSXML.Common.CosMetaDataDirective.COPY);

                //执行请求
                CopyObjectResult result = cosXml.CopyObject(request);

                Console.WriteLine(result.GetResultInfo());
            }
            catch (COSXML.CosException.CosClientException clientEx)
            {
                QLog.D("XIAO", clientEx.Message);
                Console.WriteLine("CosClientException: " + clientEx.StackTrace);
            }
            catch (COSXML.CosException.CosServerException serverEx)
            {
                QLog.D("XIAO", serverEx.Message);
                Console.WriteLine("CosServerException: " + serverEx.GetInfo());
            }
        }
コード例 #14
0
        public static void MultiDeleteObject(COSXML.CosXml cosXml, string bucket, List <string> keys)
        {
            try
            {
                DeleteMultiObjectRequest request = new DeleteMultiObjectRequest(bucket);
                //设置签名有效时长
                request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600);

                //设置返回结果形式
                request.SetDeleteQuiet(false);

                //设置删除的keys
                request.SetObjectKeys(keys);

                //执行请求
                DeleteMultiObjectResult result = cosXml.DeleteMultiObjects(request);

                Console.WriteLine(result.GetResultInfo());
            }
            catch (COSXML.CosException.CosClientException clientEx)
            {
                QLog.D("XIAO", clientEx.Message);
                Console.WriteLine("CosClientException: " + clientEx.StackTrace);
            }
            catch (COSXML.CosException.CosServerException serverEx)
            {
                QLog.D("XIAO", serverEx.Message);
                Console.WriteLine("CosServerException: " + serverEx.GetInfo());
            }
        }
コード例 #15
0
        public static void AsynCompleteMultiUpload(COSXML.CosXml cosXml, string bucket, string key, string uploadId, Dictionary <int, string> partNumberAndEtags)
        {
            CompleteMultipartUploadRequest request = new CompleteMultipartUploadRequest(bucket, key, uploadId);

            //设置签名有效时长
            request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600);

            //设置已上传的parts
            request.SetPartNumberAndETag(partNumberAndEtags);

            //执行请求
            cosXml.CompleteMultiUpload(request, delegate(CosResult result)
            {
                CompleteMultipartUploadResult getObjectResult = result as CompleteMultipartUploadResult;
                Console.WriteLine(getObjectResult.GetResultInfo());
                QLog.D("XIAO", result.GetResultInfo());
            }, delegate(CosClientException clientEx, CosServerException serverEx)
            {
                if (clientEx != null)
                {
                    QLog.D("XIAO", clientEx.Message);
                    Console.WriteLine("CosClientException: " + clientEx.StackTrace);
                }
                if (serverEx != null)
                {
                    QLog.D("XIAO", serverEx.Message);
                    Console.WriteLine("CosServerException: " + serverEx.GetInfo());
                }
            });
        }
コード例 #16
0
        public static void Copy(string bucket, string key, CopySourceStruct copySource)
        {
            COSXMLCopyTask copyTask = new COSXMLCopyTask(bucket, null, key, copySource)
            {
                successCallback = delegate(CosResult cosResult)
                {
                    COSXML.Transfer.COSXMLCopyTask.CopyTaskResult result = cosResult as COSXML.Transfer.COSXMLCopyTask.CopyTaskResult;
                    QLog.D("XIAO", result.GetResultInfo());
                    Console.WriteLine(result.GetResultInfo());
                    Console.WriteLine(String.Format("currentThread id = {0}", Thread.CurrentThread.ManagedThreadId));
                },
                failCallback = delegate(CosClientException clientEx, CosServerException serverEx)
                {
                    if (clientEx != null)
                    {
                        QLog.D("XIAO", clientEx.Message);
                        Console.WriteLine("CosClientException: " + clientEx.StackTrace);
                    }
                    if (serverEx != null)
                    {
                        QLog.D("XIAO", serverEx.Message);
                        Console.WriteLine("CosServerException: " + serverEx.GetInfo());
                    }
                    Console.WriteLine(String.Format("currentThread id = {0}", Thread.CurrentThread.ManagedThreadId));
                }
            };

            transferManager.Copy(copyTask);
        }
コード例 #17
0
        public static void AsynPartCopyObject(COSXML.CosXml cosXml, string bucket, string key,
                                              COSXML.Model.Tag.CopySourceStruct copySource, string uploadId, int partNumber)
        {
            UploadPartCopyRequest request = new UploadPartCopyRequest(bucket, key, partNumber, uploadId);

            //设置签名有效时长
            request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600);

            //设置拷贝源
            request.SetCopySource(copySource);

            //设置拷贝范围
            request.SetCopyRange(0, 10);

            //执行请求
            cosXml.PartCopy(request, delegate(CosResult result)
            {
                UploadPartCopyResult getObjectResult = result as UploadPartCopyResult;
                Console.WriteLine(getObjectResult.GetResultInfo());
            }, delegate(CosClientException clientEx, CosServerException serverEx)
            {
                if (clientEx != null)
                {
                    QLog.D("XIAO", clientEx.Message);
                    Console.WriteLine("CosClientException: " + clientEx.StackTrace);
                }
                if (serverEx != null)
                {
                    QLog.D("XIAO", serverEx.Message);
                    Console.WriteLine("CosServerException: " + serverEx.GetInfo());
                }
            });
        }
コード例 #18
0
        public static void Upload(string bucket, string key, string srcPath, long offset, long sendContentLength)
        {
            COSXMLUploadTask uploadTask = new COSXMLUploadTask(bucket, null, key);

            uploadTask.SetSrcPath(srcPath, offset, sendContentLength);
            uploadTask.progressCallback = delegate(long completed, long total)
            {
                Console.WriteLine(String.Format("progress = {0} / {1} : {2:##.##}%", completed, total, completed * 100.0 / total));
            };
            uploadTask.successCallback = delegate(CosResult cosResult)
            {
                COSXML.Transfer.COSXMLUploadTask.UploadTaskResult result = cosResult as COSXML.Transfer.COSXMLUploadTask.UploadTaskResult;
                QLog.D("XIAO", result.GetResultInfo());
                Console.WriteLine(result.GetResultInfo());
                Console.WriteLine(String.Format("currentThread id = {0}", Thread.CurrentThread.ManagedThreadId));
            };
            uploadTask.failCallback = delegate(CosClientException clientEx, CosServerException serverEx)
            {
                if (clientEx != null)
                {
                    QLog.D("XIAO", clientEx.Message);
                    Console.WriteLine("CosClientException: " + clientEx.StackTrace);
                }
                if (serverEx != null)
                {
                    QLog.D("XIAO", serverEx.Message);
                    Console.WriteLine("CosServerException: " + serverEx.GetInfo());
                }
                Console.WriteLine(String.Format("currentThread id = {0}", Thread.CurrentThread.ManagedThreadId));
            };
            transferManager.Upload(uploadTask);
        }
コード例 #19
0
        public static void RestoreObject(COSXML.CosXml cosXml, string bucket, string key)
        {
            try
            {
                RestoreObjectRequest request = new RestoreObjectRequest(bucket, key);
                //设置签名有效时长
                request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600);

                //恢复时间
                request.SetExpireDays(3);
                request.SetTier(COSXML.Model.Tag.RestoreConfigure.Tier.Bulk);

                //执行请求
                RestoreObjectResult result = cosXml.RestoreObject(request);

                Console.WriteLine(result.GetResultInfo());
            }
            catch (COSXML.CosException.CosClientException clientEx)
            {
                QLog.D("XIAO", clientEx.Message);
                Console.WriteLine("CosClientException: " + clientEx.StackTrace);
            }
            catch (COSXML.CosException.CosServerException serverEx)
            {
                QLog.D("XIAO", serverEx.Message);
                Console.WriteLine("CosServerException: " + serverEx.GetInfo());
            }
        }
コード例 #20
0
 private void FinishLoadScene()
 {
     if (client != null)
     {
         if (s_ClientReadyConnection != null)
         {
             clientLoadedScene = true;
             OnClientConnect(s_ClientReadyConnection);
             s_ClientReadyConnection = null;
         }
     }
     else
     {
         QLog.Error("FinishLoadScene client is null");
     }
     if (QNetworkServer.active)
     {
         QNetworkServer.SpawnObjects();
         OnServerSceneChanged(networkSceneName);
     }
     if (IsClientConnected() && client != null)
     {
         RegisterClientMessages(client);
         OnClientSceneChanged(client.connection);
     }
 }
コード例 #21
0
        public static void AsynRestoreObject(COSXML.CosXml cosXml, string bucket, string key)
        {
            RestoreObjectRequest request = new RestoreObjectRequest(bucket, key);

            //设置签名有效时长
            request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600);

            //恢复时间
            request.SetExpireDays(3);
            request.SetTier(COSXML.Model.Tag.RestoreConfigure.Tier.Bulk);

            //执行请求
            cosXml.RestoreObject(request, delegate(CosResult result)
            {
                RestoreObjectResult getObjectResult = result as RestoreObjectResult;
                Console.WriteLine(getObjectResult.GetResultInfo());
            }, delegate(CosClientException clientEx, CosServerException serverEx)
            {
                if (clientEx != null)
                {
                    QLog.D("XIAO", clientEx.Message);
                    Console.WriteLine("CosClientException: " + clientEx.StackTrace);
                }
                if (serverEx != null)
                {
                    QLog.D("XIAO", serverEx.Message);
                    Console.WriteLine("CosServerException: " + serverEx.GetInfo());
                }
            });
        }
コード例 #22
0
            internal static void AddHeader(WebHeaderCollection webHeaderCollection, string key, string value)
            {
                if (isMonoPlatform == null)
                {
                    isMonoPlatform = monoPlatforms.Contains(Environment.OSVersion.Platform);
                }
                // HTTP headers should be encoded to iso-8859-1,
                // however it will be encoded automatically by HttpWebRequest in mono.
                if (false == isMonoPlatform)
                {
                    // Encode headers for win platforms.
                }
                if (addHeaderMethod == null)
                {
                    // Specify the internal method name for adding headers
                    // mono: AddWithoutValidate
                    // win: AddInternal
                    //var internalMethodName = (isMonoPlatform == false) ? "AddWithoutValidate" : "AddInternal";
                    var internalMethodName = "AddWithoutValidate";
                    QLog.D(TAG, internalMethodName.ToString());
                    var method = typeof(WebHeaderCollection).GetMethod(
                        internalMethodName,
                        BindingFlags.NonPublic | BindingFlags.Instance,
                        null,
                        new Type[] { typeof(string), typeof(string) },
                        null);
                    addHeaderMethod = method;
                }

                addHeaderMethod.Invoke(webHeaderCollection, new Object[] { key, value });
            }
コード例 #23
0
        public static void PostObject(COSXML.CosXml cosXml, string bucket, string key, string srcPath, PostObjectRequest.Policy policy)
        {
            try
            {
                PostObjectRequest request = new PostObjectRequest(bucket, key, srcPath);
                //设置签名有效时长
                //request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600);
                List <string> headers = new List <string>();
                headers.Add("Host");
                request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600, headers, null);

                request.SetCosProgressCallback(delegate(long completed, long total)
                {
                    Console.WriteLine(String.Format("progress = {0} / {1} : {2:##.##}%", completed, total, completed * 100.0 / total));
                });

                //设置policy
                request.SetPolicy(policy);

                //执行请求
                PostObjectResult result = cosXml.PostObject(request);

                Console.WriteLine(result.GetResultInfo());
            }
            catch (COSXML.CosException.CosClientException clientEx)
            {
                QLog.D("XIAO", clientEx.Message);
                Console.WriteLine("CosClientException: " + clientEx.StackTrace);
            }
            catch (COSXML.CosException.CosServerException serverEx)
            {
                QLog.D("XIAO", serverEx.Message);
                Console.WriteLine("CosServerException: " + serverEx.GetInfo());
            }
        }
コード例 #24
0
        /// <summary>
        /// add authorization
        /// </summary>
        /// <param name="qcloudSignSource">QCloudSignSource</param>
        /// <param name="request"></param>
        private void CheckSign(QCloudSignSource qcloudSignSource, Request request)
        {
            // has authorizaiton, notice: using request.Headers, otherwise, error
            if (request.Headers.ContainsKey(CosRequestHeaderKey.AUTHORIZAIION))
            {
                QLog.D(TAG, "has add authorizaiton in headers");
                return;
            }

            //has no authorization, but signSourceProvider == null
            if (qcloudSignSource == null)
            {
                QLog.D(TAG, "signSourceProvider == null");
                return;
            }

            if (credentialsProvider == null)
            {
                throw new ArgumentNullException("credentialsProvider == null");
            }

            CosXmlSigner signer = new CosXmlSigner();

            signer.Sign(request, qcloudSignSource, credentialsProvider.GetQCloudCredentials());
        }
コード例 #25
0
        public static void AsyncGetObject(COSXML.CosXml cosXml, string bucket, string key, string localDir, string localFileName)
        {
            GetObjectRequest request = new GetObjectRequest(bucket, key, localDir, localFileName);

            //设置签名有效时长
            request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600);

            request.SetCosProgressCallback(delegate(long completed, long total)
            {
                Console.WriteLine(String.Format("progress = {0} / {1} : {2:##.##}%", completed, total, completed * 100.0 / total));
            });

            //执行请求
            cosXml.GetObject(request, delegate(CosResult result)
            {
                GetObjectResult getObjectResult = result as GetObjectResult;
                Console.WriteLine(getObjectResult.GetResultInfo());
            }, delegate(CosClientException clientEx, CosServerException serverEx)
            {
                if (clientEx != null)
                {
                    QLog.D("XIAO", clientEx.Message);
                    Console.WriteLine("CosClientException: " + clientEx.StackTrace);
                }
                if (serverEx != null)
                {
                    QLog.D("XIAO", serverEx.Message);
                    Console.WriteLine("CosServerException: " + serverEx.GetInfo());
                }
            });
        }
コード例 #26
0
        public static void GetService(CosXml cosXml)
        {
            GetServiceRequest request = new GetServiceRequest();

            QLog.D("INFO", String.Format("current thread name: {0}-{1}", System.Threading.Thread.CurrentThread.Name, System.Threading.Thread.CurrentThread.ManagedThreadId));
            //设置签名有效时长
            //request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600);
            //执行请求
            GetServiceResult result = cosXml.GetService(request);

            QLog.D("XIAO", result.listAllMyBuckets.GetInfo());
            QLog.D("XIAO", "bucket count: " + result.listAllMyBuckets.buckets.Count);
            Console.WriteLine(result.GetResultInfo());

            //try
            //{
            //    QLog.D("INFO", String.Format("current thread name: {0}-{1}", System.Threading.Thread.CurrentThread.Name, System.Threading.Thread.CurrentThread.ManagedThreadId));
            //    //设置签名有效时长
            //    //request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600);
            //    //执行请求
            //    GetServiceResult result = cosXml.GetService(request);

            //    QLog.D("XIAO", result.listAllMyBuckets.GetInfo());
            //    QLog.D("XIAO", "bucket count: " + result.listAllMyBuckets.buckets.Count);
            //    Console.WriteLine(result.GetResultInfo());
            //}
            //catch (COSXML.CosException.CosClientException clientEx)
            //{
            //    Console.WriteLine("CosClientException: " + clientEx.StackTrace);
            //}
            //catch (COSXML.CosException.CosServerException serverEx)
            //{
            //    Console.WriteLine("CosServerException: " + serverEx.GetInfo());
            //}
        }
コード例 #27
0
        public static void AsynDeleteObject(COSXML.CosXml cosXml, string bucket, string key)
        {
            DeleteObjectRequest request = new DeleteObjectRequest(bucket, key);

            //设置签名有效时长
            request.SetSign(TimeUtils.GetCurrentTime(TimeUnit.SECONDS), 600);

            //执行请求
            cosXml.DeleteObject(request, delegate(CosResult result)
            {
                DeleteObjectResult getObjectResult = result as DeleteObjectResult;
                Console.WriteLine(getObjectResult.GetResultInfo());
            }, delegate(CosClientException clientEx, CosServerException serverEx)
            {
                if (clientEx != null)
                {
                    QLog.D("XIAO", clientEx.Message);
                    Console.WriteLine("CosClientException: " + clientEx.StackTrace);
                }
                if (serverEx != null)
                {
                    QLog.D("XIAO", serverEx.Message);
                    Console.WriteLine("CosServerException: " + serverEx.GetInfo());
                }
            });
        }
コード例 #28
0
        private void AsyncStreamCallback(IAsyncResult ar)
        {
            RequestBodyState requestBodyState = ar.AsyncState as RequestBodyState;
            Stream           outputStream;

            try
            {
                outputStream = requestBodyState.outputStream;
                outputStream.EndWrite(ar);
                if (progressCallback != null)
                {
                    UpdateProgress(requestBodyState.complete, contentLength);
                }
                if (requestBodyState.complete < contentLength)
                {
                    long remain = contentLength - requestBodyState.complete;
                    int  count  = (int)(remain > SEGMENT_SIZE ? SEGMENT_SIZE : remain);
                    int  offset = (int)requestBodyState.complete;
                    requestBodyState.complete += count;
                    outputStream.BeginWrite(requestBodyState.buffer, offset, count, AsyncStreamCallback, requestBodyState);
                }
                else
                {
                    //write over
                    requestBodyState.endRequestBody(null);
                }
            }
            catch (Exception ex)
            {
                QLog.E(TAG, ex.Message, ex);
                requestBodyState.endRequestBody(ex);;
            }
        }
コード例 #29
0
            public void PaserServerError(Stream inputStream, string contentType, long contentLength)
            {
                CosServerException cosServerException = new CosServerException(cosResult.httpCode, cosResult.httpMessage);
                List <string>      values;

                Headers.TryGetValue("x-cos-request-id", out values);
                cosServerException.requestId = (values != null && values.Count > 0) ? values[0] : null;
                Headers.TryGetValue("x-cos-trace-id", out values);
                cosServerException.traceId = (values != null && values.Count > 0) ? values[0] : null;

                if (inputStream != null)
                {
                    try
                    {
                        CosServerError cosServerError = XmlParse.Deserialize <CosServerError>(inputStream);

                        cosServerException.SetCosServerError(cosServerError);
                    }
                    catch (Exception ex)
                    {
                        QLog.Debug(TAG, ex.Message);
                    }
                }

                throw cosServerException;
            }
コード例 #30
0
 protected void SetSyncVarGameObject(GameObject newGameObject, ref GameObject gameObjectField, uint dirtyBit, ref NetworkInstanceId netIdField)
 {
     if (!SyncVarHookGuard)
     {
         NetworkInstanceId networkInstanceId = default;
         if (newGameObject != null)
         {
             var component = newGameObject.GetComponent <QNetworkIdentity>();
             if (component != null)
             {
                 networkInstanceId = component.NetId;
                 if (networkInstanceId.IsEmpty())
                 {
                     QLog.Warning(
                         $"SetSyncVarGameObject GameObject {newGameObject} has a zero netId. Maybe it is not spawned yet?");
                 }
             }
         }
         NetworkInstanceId networkInstanceId2 = default;
         if (gameObjectField != null)
         {
             networkInstanceId2 = gameObjectField.GetComponent <QNetworkIdentity>().NetId;
         }
         if (networkInstanceId != networkInstanceId2)
         {
             QLog.Log(
                 $"SetSyncVar GameObject {GetType().Name} bit [{dirtyBit}] netfieldId:{networkInstanceId2}->{networkInstanceId}");
             SetDirtyBit(dirtyBit);
             gameObjectField = newGameObject;
             netIdField      = networkInstanceId;
         }
     }
 }
コード例 #31
0
ファイル: QFileLogOutput.cs プロジェクト: Xneed/QFramework
 public void Log(QLog.LogData logData)
 {
     lock (this.mLogLock)
     {
         this.mWaitingLogQueue.Enqueue(logData);
         Monitor.Pulse(this.mLogLock);
     }
 }