Exemplo n.º 1
0
 /* GET request
  *
  */
 public AsyncHTTPClient(string _toUrl)
 {
     m_ToUrl        = _toUrl;
     m_FromData     = null;
     m_Method       = "";
     state          = State.INIT;
     header         = new Dictionary <string, string>(StringComparer.OrdinalIgnoreCase);
     m_Handle       = (IntPtr)0;
     tag            = "";
     statusCallback = null;
 }
    void StartClient()
    {
        networkClient = new NetworkingSockets();
        Address address = new Address();

        address.SetAddress("::1", 7777);

        connection = networkClient.Connect(address);

        status = OnClientStatusUpdate;
    }
    void StartServer()
    {
        isServer      = true;
        networkClient = new NetworkingSockets();
        Address address = new Address();

        address.SetAddress("::0", 7777);
        listenSocket = networkClient.CreateListenSocket(address);

        status = OnServerStatusUpdate;
    }
Exemplo n.º 4
0
 public static void DownloadLeaderboardScores(StatusCallback callback, string pchLeaderboardName, ArcadeLeaderboard.LeaderboardTimeRange eLeaderboardDataTimeRange, int nCount)
 {
     if (callback == null)
     {
         throw new InvalidOperationException("callback == null");
     }
     Viveport.Internal.StatusCallback downloadLeaderboardScoresCB = new Viveport.Internal.StatusCallback(callback.Invoke);
     Api.InternalStatusCallbacks.Add(downloadLeaderboardScoresCB);
     eLeaderboardDataTimeRange = ArcadeLeaderboard.LeaderboardTimeRange.AllTime;
     Viveport.Internal.ArcadeLeaderboard.DownloadLeaderboardScores(downloadLeaderboardScoresCB, pchLeaderboardName, (ELeaderboardDataTimeRange)eLeaderboardDataTimeRange, nCount);
 }
Exemplo n.º 5
0
 public AsyncHTTPClient(string _toUrl, string _method)
 {
     this.m_ToUrl = _toUrl;
     this.m_FromData = null;
     this.m_Method = _method;
     this.state = State.INIT;
     this.header = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);
     this.m_Handle = IntPtr.Zero;
     this.tag = string.Empty;
     this.statusCallback = null;
 }
Exemplo n.º 6
0
 public AsyncHTTPClient(string _toUrl, string _method)
 {
     this.m_ToUrl        = _toUrl;
     this.m_FromData     = null;
     this.m_Method       = _method;
     this.state          = State.INIT;
     this.header         = new Dictionary <string, string>(StringComparer.OrdinalIgnoreCase);
     this.m_Handle       = IntPtr.Zero;
     this.tag            = string.Empty;
     this.statusCallback = null;
 }
Exemplo n.º 7
0
		public void SetAutoSync(bool linked) {
			if (this.button1.InvokeRequired) {
				StatusCallback d = new StatusCallback(SetAutoSync);
				this.Invoke(d, new object[] { linked });
			} else {
				if (linked) {
					this.button1.ForeColor = Color.Blue;
				} else {
					this.button1.ForeColor = Color.Black;
				}
			}
		}
Exemplo n.º 8
0
        public void GetStatus(StatusCallback cb)
        {
            var request = WebRequest.Create(url + "/status" + "?auth=" + authtoken) as HttpWebRequest;

            if (request != null)
            {
                request.Method      = "GET";
                request.ContentType = "application/json";
            }

            try
            {
                var httpResponse = (HttpWebResponse)request.GetResponse();
                if (httpResponse.StatusCode == HttpStatusCode.OK)
                {
                    using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
                    {
                        var responseText = streamReader.ReadToEnd();

                        ZeroTierStatus status = null;
                        try
                        {
                            status = JsonConvert.DeserializeObject <ZeroTierStatus>(responseText);
                        }
                        catch (JsonReaderException e)
                        {
                            Console.WriteLine(e.ToString());
                        }
                        cb(status);
                    }
                }
                else if (httpResponse.StatusCode == HttpStatusCode.Unauthorized)
                {
                    APIHandler.initHandler(true);
                }
            }
            catch (System.Net.Sockets.SocketException)
            {
                cb(null);
            }
            catch (System.Net.WebException e)
            {
                if (((HttpWebResponse)e.Response).StatusCode == HttpStatusCode.Unauthorized)
                {
                    APIHandler.initHandler(true);
                }
                else
                {
                    cb(null);
                }
            }
        }
Exemplo n.º 9
0
 private void SetStatus(string text, Color color)
 {
     if (this.lblStatus.InvokeRequired)
     {
         StatusCallback d = new StatusCallback(SetStatus);
         this.Invoke(d, new object[] { text, color });
     }
     else
     {
         this.lblStatus.Text      = text;
         this.lblStatus.ForeColor = Color.Green;
     }
 }
Exemplo n.º 10
0
        /// <summary>
        /// Generate the necessary parameters
        /// </summary>
        public List <KeyValuePair <string, string> > GetParams()
        {
            var p = new List <KeyValuePair <string, string> >();

            if (To != null)
            {
                p.Add(new KeyValuePair <string, string>("To", To.ToString()));
            }

            if (From != null)
            {
                p.Add(new KeyValuePair <string, string>("From", From.ToString()));
            }

            if (MessagingServiceSid != null)
            {
                p.Add(new KeyValuePair <string, string>("MessagingServiceSid", MessagingServiceSid.ToString()));
            }

            if (Body != null)
            {
                p.Add(new KeyValuePair <string, string>("Body", Body));
            }

            if (MediaUrl != null)
            {
                p.AddRange(MediaUrl.Select(prop => new KeyValuePair <string, string>("MediaUrl", prop.ToString())));
            }

            if (StatusCallback != null)
            {
                p.Add(new KeyValuePair <string, string>("StatusCallback", StatusCallback.ToString()));
            }

            if (ApplicationSid != null)
            {
                p.Add(new KeyValuePair <string, string>("ApplicationSid", ApplicationSid.ToString()));
            }

            if (MaxPrice != null)
            {
                p.Add(new KeyValuePair <string, string>("MaxPrice", MaxPrice.Value.ToString()));
            }

            if (ProvideFeedback != null)
            {
                p.Add(new KeyValuePair <string, string>("ProvideFeedback", ProvideFeedback.Value.ToString()));
            }

            return(p);
        }
Exemplo n.º 11
0
		public void SerialPortStatus(bool linked) {
			if (this.button2.InvokeRequired) {
				StatusCallback d = new StatusCallback(SerialPortStatus);
				this.Invoke(d, new object[] { linked });
			} else {
				if (linked) {
					this.button2.Text = "断开";
					this.button2.ForeColor = Color.Blue;
				} else {
					this.button2.Text = "连接";
					this.button2.ForeColor = Color.Black;
				}
			}
		}
Exemplo n.º 12
0
 // Token: 0x06000EBB RID: 3771 RVA: 0x0005DE58 File Offset: 0x0005C058
 public static int UploadLeaderboardScore(StatusCallback callback, string pchLeaderboardName, int nScore)
 {
     if (callback == null)
     {
         throw new InvalidOperationException("callback == null");
     }
     UserStats.uploadLeaderboardScoreIl2cppCallback = new StatusCallback(callback.Invoke);
     Api.InternalStatusCallbacks.Add(new StatusCallback(UserStats.UploadLeaderboardScoreIl2cppCallback));
     if (IntPtr.Size == 8)
     {
         return(UserStats.UploadLeaderboardScore_64(new StatusCallback(UserStats.UploadLeaderboardScoreIl2cppCallback), pchLeaderboardName, nScore));
     }
     return(UserStats.UploadLeaderboardScore(new StatusCallback(UserStats.UploadLeaderboardScoreIl2cppCallback), pchLeaderboardName, nScore));
 }
Exemplo n.º 13
0
 // Token: 0x06000EAA RID: 3754 RVA: 0x0005DBB4 File Offset: 0x0005BDB4
 public static int DownloadStats(StatusCallback callback)
 {
     if (callback == null)
     {
         throw new InvalidOperationException("callback == null");
     }
     UserStats.downloadStatsIl2cppCallback = new StatusCallback(callback.Invoke);
     Api.InternalStatusCallbacks.Add(new StatusCallback(UserStats.DownloadStatsIl2cppCallback));
     if (IntPtr.Size == 8)
     {
         return(UserStats.DownloadStats_64(new StatusCallback(UserStats.DownloadStatsIl2cppCallback)));
     }
     return(UserStats.DownloadStats(new StatusCallback(UserStats.DownloadStatsIl2cppCallback)));
 }
Exemplo n.º 14
0
 // Token: 0x06000EE8 RID: 3816 RVA: 0x0005E5C8 File Offset: 0x0005C7C8
 public static int IsDlcReady(StatusCallback callback)
 {
     if (callback == null)
     {
         throw new InvalidOperationException("callback == null");
     }
     DLC.isDlcReadyIl2cppCallback = new StatusCallback(callback.Invoke);
     Api.InternalStatusCallbacks.Add(new StatusCallback(DLC.IsDlcReadyIl2cppCallback));
     if (IntPtr.Size == 8)
     {
         return(DLC.IsReady_64(new StatusCallback(DLC.IsDlcReadyIl2cppCallback)));
     }
     return(DLC.IsReady(new StatusCallback(DLC.IsDlcReadyIl2cppCallback)));
 }
Exemplo n.º 15
0
 // Token: 0x06000EB9 RID: 3769 RVA: 0x0005DDD0 File Offset: 0x0005BFD0
 public static int DownloadLeaderboardScores(StatusCallback callback, string pchLeaderboardName, UserStats.LeaderBoardRequestType eLeaderboardDataRequest, UserStats.LeaderBoardTimeRange eLeaderboardDataTimeRange, int nRangeStart, int nRangeEnd)
 {
     if (callback == null)
     {
         throw new InvalidOperationException("callback == null");
     }
     UserStats.downloadLeaderboardScoresIl2cppCallback = new StatusCallback(callback.Invoke);
     Api.InternalStatusCallbacks.Add(new StatusCallback(UserStats.DownloadLeaderboardScoresIl2cppCallback));
     if (IntPtr.Size == 8)
     {
         return(UserStats.DownloadLeaderboardScores_64(new StatusCallback(UserStats.DownloadLeaderboardScoresIl2cppCallback), pchLeaderboardName, (ELeaderboardDataRequest)eLeaderboardDataRequest, (ELeaderboardDataTimeRange)eLeaderboardDataTimeRange, nRangeStart, nRangeEnd));
     }
     return(UserStats.DownloadLeaderboardScores(new StatusCallback(UserStats.DownloadLeaderboardScoresIl2cppCallback), pchLeaderboardName, (ELeaderboardDataRequest)eLeaderboardDataRequest, (ELeaderboardDataTimeRange)eLeaderboardDataTimeRange, nRangeStart, nRangeEnd));
 }
Exemplo n.º 16
0
 // Token: 0x06000E97 RID: 3735 RVA: 0x0005D4B4 File Offset: 0x0005B6B4
 public static int Init(StatusCallback callback, string appId)
 {
     if (callback == null || string.IsNullOrEmpty(appId))
     {
         throw new InvalidOperationException("callback == null || string.IsNullOrEmpty(appId)");
     }
     Api.initIl2cppCallback = new StatusCallback(callback.Invoke);
     Api.InternalStatusCallbacks.Add(new StatusCallback(Api.InitIl2cppCallback));
     if (IntPtr.Size == 8)
     {
         return(Api.Init_64(new StatusCallback(Api.InitIl2cppCallback), appId));
     }
     return(Api.Init(new StatusCallback(Api.InitIl2cppCallback), appId));
 }
Exemplo n.º 17
0
 public override void FetchStatus(StatusCallback onFinish, bool clearAssetBundles = true)
 {
     base.FetchStatus((bool success, string message, long fileSize) => {
         if (success)
         {
             StopAllCoroutines();
             StartCoroutine(DownloadMeta(assetBundleNames, onFinish));
         }
         else
         {
             onFinish(false, null, 0);
         }
     }, clearAssetBundles);
 }
Exemplo n.º 18
0
 // Token: 0x06000E99 RID: 3737 RVA: 0x0005D538 File Offset: 0x0005B738
 public static int Shutdown(StatusCallback callback)
 {
     if (callback == null)
     {
         throw new InvalidOperationException("callback == null");
     }
     Api.shutdownIl2cppCallback = new StatusCallback(callback.Invoke);
     Api.InternalStatusCallbacks.Add(new StatusCallback(Api.ShutdownIl2cppCallback));
     if (IntPtr.Size == 8)
     {
         return(Api.Shutdown_64(new StatusCallback(Api.ShutdownIl2cppCallback)));
     }
     return(Api.Shutdown(new StatusCallback(Api.ShutdownIl2cppCallback)));
 }
Exemplo n.º 19
0
        private void ParseJsonResult(string json, out string result, StatusCallback logger)
        {
            try
            {
                var doc = JsonDocument.Parse(json);

                var builder = new StringBuilder();

                if (doc.RootElement.ValueKind == JsonValueKind.Array)
                {
                    // simple array of text
                    for (var i = 0; i < doc.RootElement.GetArrayLength(); i++)
                    {
                        builder.Append(doc.RootElement[i].GetString());
                    }
                }
                else
                {
                    // sentence array
                    var sentences = doc.RootElement.GetProperty("sentences");

                    for (var i = 0; i < sentences.GetArrayLength(); i++)
                    {
                        // spaces between sentences are retained in the translations
                        // so no need to insert them manually
                        // also there may additional elements in the array beyond trans entries

                        if (sentences[i].TryGetProperty("trans", out var trans))
                        {
                            builder.Append(trans.GetString());
                        }
                    }
                }

                // escape Unicode \u0000 escape sequences to store in XML [<>&'"]
                var text = builder.ToString();
                result = Regex.Unescape(text).XmlEscape();
            }
            catch (Exception exc)
            {
                if (logger != null)
                {
                    logger(exc.Message, Color.Red);
                    logger(json, Color.Brown);
                }

                result = string.Empty;
            }
        }
Exemplo n.º 20
0
        /// <summary>
        /// Get the status according to git of the specified directory.
        /// </summary>
        /// <param name="workingdir"></param>
        /// <param name="callback"></param>
        public void Status(string workingdir, StatusCallback callback)
        {
            runApp(workingdir, "git.exe", "status", delegate(int status, BinOutput output)
            {
                if (0 != status)
                {
                    throw new Exception("Unknown error");
                }

                // Can match modified files pretty easily
                List<FileInfo> modified = new List<FileInfo>();
                Regex regex = new Regex(@"/modified:\s+(.*)$/", RegexOptions.IgnoreCase | RegexOptions.Multiline);
                MatchCollection results = regex.Matches(output.stdout);
            });
        }
Exemplo n.º 21
0
 protected override void DoWork(InitializeProgressCallback initializeCallback, ProgressCallback progressCallback,
                                StatusCallback primaryStatusTextCallback,
                                StatusCallback secondaryStatusTextCallback)
 {
     while (_countForWork < 100)
     {
         if (Canceling)
         {
             wasCancelled = true;
             return;
         }
         DoPretendWork();
         _countForWork++;
     }
 }
Exemplo n.º 22
0
 // Token: 0x06000EFE RID: 3838 RVA: 0x0005EB0C File Offset: 0x0005CD0C
 public static void IsReady(StatusCallback callback)
 {
     if (callback == null)
     {
         throw new InvalidOperationException("callback == null");
     }
     Token.isReadyIl2cppCallback = new StatusCallback(callback.Invoke);
     Api.InternalStatusCallbacks.Add(new StatusCallback(Token.IsReadyIl2cppCallback));
     if (IntPtr.Size == 8)
     {
         Token.IsReady_64(new StatusCallback(Token.IsReadyIl2cppCallback));
         return;
     }
     Token.IsReady(new StatusCallback(Token.IsReadyIl2cppCallback));
 }
Exemplo n.º 23
0
 private void SetStatus(string status, Color color)
 {
     if (Status != null)
     {
         if (Status.InvokeRequired)
         {
             StatusCallback method = SetStatus;
             Status.Invoke(method, status, color);
         }
         else
         {
             Status.ForeColor = color;
             Status.Text      = status;
         }
     }
 }
Exemplo n.º 24
0
		private void SerialPortStatus(bool linked) {
			if (this.textBox2.InvokeRequired) {
				StatusCallback d = new StatusCallback(SerialPortStatus);
				this.Invoke(d, new object[] { linked });
			} else {
				if (linked) {
					this.label4.Text = "已连接";
					this.label4.ForeColor = Color.Blue;
					this.button2.Text = "断开";
				} else {
					this.label4.Text = "未连接";
					this.label4.ForeColor = Color.Red;
					this.button2.Text = "连接";
				}
			}
		}
Exemplo n.º 25
0
 /// <summary>
 /// Remove a callback from the LifeStatus list
 /// </summary>
 /// <param name="callback"></param>
 public void RemoveCallback(StatusCallback callback)
 {
     lock (theLock)
     {
         Queue <StatusCallback> tcallbacks = new Queue <StatusCallback>();
         while (callbacks.Count > 0)
         {
             StatusCallback t = callbacks.Dequeue();
             if (t != callback)
             {
                 tcallbacks.Enqueue(t);
             }
         }
         callbacks = tcallbacks;
     }
 }
Exemplo n.º 26
0
 // Token: 0x06000EC4 RID: 3780 RVA: 0x0005E004 File Offset: 0x0005C204
 public static void DownloadLeaderboardScores(StatusCallback callback, string pchLeaderboardName, ArcadeLeaderboard.LeaderboardTimeRange eLeaderboardDataTimeRange, int nCount)
 {
     if (callback == null)
     {
         throw new InvalidOperationException("callback == null");
     }
     ArcadeLeaderboard.downloadLeaderboardScoresIl2cppCallback = new StatusCallback(callback.Invoke);
     Api.InternalStatusCallbacks.Add(new StatusCallback(ArcadeLeaderboard.DownloadLeaderboardScoresIl2cppCallback));
     eLeaderboardDataTimeRange = ArcadeLeaderboard.LeaderboardTimeRange.AllTime;
     if (IntPtr.Size == 8)
     {
         ArcadeLeaderboard.DownloadLeaderboardScores_64(new StatusCallback(ArcadeLeaderboard.DownloadLeaderboardScoresIl2cppCallback), pchLeaderboardName, (ELeaderboardDataTimeRange)eLeaderboardDataTimeRange, nCount);
         return;
     }
     ArcadeLeaderboard.DownloadLeaderboardScores(new StatusCallback(ArcadeLeaderboard.DownloadLeaderboardScoresIl2cppCallback), pchLeaderboardName, (ELeaderboardDataTimeRange)eLeaderboardDataTimeRange, nCount);
 }
Exemplo n.º 27
0
Arquivo: Main.cs Projeto: v2sky/d2bs
        private void SetStatus(string status, Color color)
        {
            // ignore the call if we haven't init'd the window yet
            if (Status == null)
            {
                return;
            }

            if (Status.InvokeRequired)
            {
                StatusCallback cb = SetStatus;
                Status.Invoke(cb, status, color);
                return;
            }
            Status.ForeColor = color;
            Status.Text      = status;
        }
Exemplo n.º 28
0
        private string FindHint(XElement data, StatusCallback logger)
        {
            var name = data.Attribute("name").Value;
            var hint = hints.Elements()
                       .FirstOrDefault(e => e.Attribute("name").Value == name);

            if (hint != null)
            {
                if (data.Element("value").Value.Trim() == hint.Element("source").Value.Trim())
                {
                    return(hint.Element("preferred").Value.Trim());
                }

                logger($" \u2192 hint override is obsolete", Color.Maroon);
            }

            return(null);
        }
Exemplo n.º 29
0
    void  Start()
    {
        Library.Initialize();

        ushort port = 8080;

        this.client = new NetworkingSockets();
        Address address = new Address();

        address.SetAddress("::1", port);

        this.connection = client.Connect(ref address);

        this.status = (info, context) => {
            switch (info.connectionInfo.state)
            {
            case ConnectionState.None:
                break;

            case ConnectionState.Connected:
                Debug.Log("Client connected to server - ID: " + connection);
                break;

            case ConnectionState.ClosedByPeer:
                client.CloseConnection(connection);
                Debug.Log("Client disconnected from server");
                break;

            case ConnectionState.ProblemDetectedLocally:
                client.CloseConnection(connection);
                Debug.Log("Client unable to connect");
                break;
            }
        };

        DebugCallback debug = (type, message) => {
            Debug.Log("Debug - Type: " + type + ", Message: " + message);
        };

        NetworkingUtils utils = new NetworkingUtils();

        utils.SetDebugCallback(DebugType.Everything, debug);
    }
Exemplo n.º 30
0
 public void SetAutoSync(bool linked)
 {
     if (this.button1.InvokeRequired)
     {
         StatusCallback d = new StatusCallback(SetAutoSync);
         this.Invoke(d, new object[] { linked });
     }
     else
     {
         if (linked)
         {
             this.button1.ForeColor = Color.Blue;
         }
         else
         {
             this.button1.ForeColor = Color.Black;
         }
     }
 }
Exemplo n.º 31
0
        public void CreateAndVerifyStatusCallbackTest()
        {
            StatusCallback sc = StatusCallback.fromJson("{ \"accountId\": \"ACae05391ecca1352e9108d545482a1e6f384e7a49\", \"callDuration\": 41, \"callId\": \"CAbde0362aef3d228b3a39baafa9e4f0204e724966\", \"callStatus\": \"completed\", \"conferenceId\": null, \"direction\": \"inbound\", \"from\": \"+17083168669\", \"parentCallId\": null, \"queueId\": null, \"requestId\": \"RQa766ca5ee92fc6c528b72aff5e8b48f5f4e056e8\", \"requestType\": \"callStatus\", \"to\": \"+12248806211\" }");

            Assert.AreEqual(sc.getAccountId, "ACae05391ecca1352e9108d545482a1e6f384e7a49");
            Assert.AreEqual(sc.getCallDuration, 41);
            Assert.AreEqual(sc.getCallId, "CAbde0362aef3d228b3a39baafa9e4f0204e724966");
            Assert.AreEqual(sc.getCallStatus, ECallStatus.Completed);
            Assert.IsNull(sc.getConferenceId);
            Assert.AreEqual(sc.getDirection, EDirection.Inbound);
            Assert.AreEqual(sc.getFrom, "+17083168669");
            Assert.IsNull(sc.getParentCallId);
            Assert.IsNull(sc.getQueueId);
            Assert.AreEqual(sc.getRequestId, "RQa766ca5ee92fc6c528b72aff5e8b48f5f4e056e8");
            Assert.AreEqual(sc.getRequestType, ERequestType.CallStatus);
            Assert.AreEqual(sc.getTo, "+12248806211");
            Assert.IsNull(sc.getRecordingUrl);
            Assert.IsNull(sc.getRecordingUrl);
            Assert.AreEqual(sc.getRecordingDurationSec, 0);
        }
Exemplo n.º 32
0
        public int Init(Action <byte, DolphiimoteData> newData, Action <byte, bool> wiimoteConnectionChanged, Action <byte, DolphiimoteCapabilities> capabilitiesChanged, Action <byte, DolphiimoteStatus> statusChanged, Action <string> newLogMessage)
        {
            dataCallback         = (wiimote, data, user) => newData(wiimote, MarshalType <DolphiimoteData>(data));
            capabilitiesCallback = (wiimote, capabilities, user) => capabilitiesChanged(wiimote, MarshalType <DolphiimoteCapabilities>(capabilities));
            connectionCallback   = (wiimote, status) => wiimoteConnectionChanged(wiimote, Convert.ToBoolean(status));
            statusCallback       = (wiimote, status, user) => statusChanged(wiimote, MarshalType <DolphiimoteStatus>(status));
            logCallback          = (str, length) => newLogMessage(Marshal.PtrToStringAnsi(str, (int)length));

            var callbacks = new DolphiimoteCallbacks
            {
                dataReceived        = MarshalFunction(dataCallback),
                capabilitiesChanged = MarshalFunction(capabilitiesCallback),
                connectionChanged   = MarshalFunction(connectionCallback),
                statusChanged       = MarshalFunction(statusCallback),
                onLog    = MarshalFunction(logCallback),
                userData = IntPtr.Zero
            };

            return(dolphiimoteInit(callbacks));
        }
Exemplo n.º 33
0
    void StartServer()
    {
        Debug.Log("Starting server...");

        utils = new NetworkingUtils();
        utils.SetDebugCallback(DebugType.Message, debug);

        status = OnServerStatusUpdate;
        utils.SetStatusCallback(status);

        server = new NetworkingSockets();

        Address address = new Address();

        address.SetAddress("::0", port);

        listenSocket = server.CreateListenSocket(ref address);

        //connectedPollGroup = server.CreatePollGroup();
    }
Exemplo n.º 34
0
        /// <summary>
        /// Generate the necessary parameters
        /// </summary>
        public List <KeyValuePair <string, string> > GetParams()
        {
            var p = new List <KeyValuePair <string, string> >();

            if (EnableTurn != null)
            {
                p.Add(new KeyValuePair <string, string>("EnableTurn", EnableTurn.Value.ToString()));
            }

            if (Type != null)
            {
                p.Add(new KeyValuePair <string, string>("Type", Type.ToString()));
            }

            if (UniqueName != null)
            {
                p.Add(new KeyValuePair <string, string>("UniqueName", UniqueName));
            }

            if (StatusCallback != null)
            {
                p.Add(new KeyValuePair <string, string>("StatusCallback", StatusCallback.ToString()));
            }

            if (StatusCallbackMethod != null)
            {
                p.Add(new KeyValuePair <string, string>("StatusCallbackMethod", StatusCallbackMethod.ToString()));
            }

            if (MaxParticipants != null)
            {
                p.Add(new KeyValuePair <string, string>("MaxParticipants", MaxParticipants.Value.ToString()));
            }

            if (RecordParticipantsOnConnect != null)
            {
                p.Add(new KeyValuePair <string, string>("RecordParticipantsOnConnect", RecordParticipantsOnConnect.Value.ToString()));
            }

            return(p);
        }
Exemplo n.º 35
0
        /// <summary>
        /// Generate the necessary parameters
        /// </summary>
        public List <KeyValuePair <string, string> > GetParams()
        {
            var p = new List <KeyValuePair <string, string> >();

            if (Url != null)
            {
                p.Add(new KeyValuePair <string, string>("Url", Url.ToString()));
            }

            if (Method != null)
            {
                p.Add(new KeyValuePair <string, string>("Method", Method.ToString()));
            }

            if (Status != null)
            {
                p.Add(new KeyValuePair <string, string>("Status", Status.ToString()));
            }

            if (FallbackUrl != null)
            {
                p.Add(new KeyValuePair <string, string>("FallbackUrl", FallbackUrl.ToString()));
            }

            if (FallbackMethod != null)
            {
                p.Add(new KeyValuePair <string, string>("FallbackMethod", FallbackMethod.ToString()));
            }

            if (StatusCallback != null)
            {
                p.Add(new KeyValuePair <string, string>("StatusCallback", StatusCallback.ToString()));
            }

            if (StatusCallbackMethod != null)
            {
                p.Add(new KeyValuePair <string, string>("StatusCallbackMethod", StatusCallbackMethod.ToString()));
            }

            return(p);
        }
Exemplo n.º 36
0
        public static void PopulateDatabase(ResourceManager resourceManager, StatusCallback callback)
        {
            // Lock to prevent indexing twice, without blocking tile requests.
            lock (SearchEngine.s_lock)
            {
                // NOTE: This (re)initializes a static data structure used for
                // resolving names into sector locations, so needs to be run
                // before any other objects (e.g. Worlds) are loaded.
                SectorMap map = SectorMap.GetInstance(resourceManager);

                using (var connection = DBUtil.MakeConnection())
                {
                    SqlCommand sqlCommand;

                    //
                    // Repopulate the tables - locally first
                    // FUTURE: will need to batch this up rather than keep it in memory!
                    //

                    DataTable dt_sectors = new DataTable();
                    for (int i = 0; i < 3; ++i)
                        dt_sectors.Columns.Add(new DataColumn());

                    DataTable dt_subsectors = new DataTable();
                    for (int i = 0; i < 4; ++i)
                        dt_subsectors.Columns.Add(new DataColumn());

                    DataTable dt_worlds = new DataTable();
                    for (int i = 0; i < 13; ++i)
                        dt_worlds.Columns.Add(new DataColumn());

                    DataTable dt_labels = new DataTable();
                    for (int i = 0; i < 4; ++i)
                        dt_labels.Columns.Add(new DataColumn());

                    Dictionary<string, List<Point>> labels = new Dictionary<string, List<Point>>();
                    Action<string, Point> AddLabel = (string text, Point coords) => {
                        if (text == null) return;
                        text = SanifyLabel(text);
                        if (!labels.ContainsKey(text))
                            labels.Add(text, new List<Point>());
                        labels[text].Add(coords);
                    };

                    callback("Parsing data...");
                    foreach (Sector sector in map.Sectors)
                    {
                        if (!sector.Tags.Contains("OTU") && !sector.Tags.Contains("Faraway"))
                            continue;

                        foreach (Name name in sector.Names)
                        {
                            DataRow row = dt_sectors.NewRow();
                            row.ItemArray = new object[] { sector.X, sector.Y, name.Text };
                            dt_sectors.Rows.Add(row);
                        }
                        if (!string.IsNullOrEmpty(sector.Abbreviation))
                        {
                            DataRow row = dt_sectors.NewRow();
                            row.ItemArray = new object[] { sector.X, sector.Y, sector.Abbreviation };
                            dt_sectors.Rows.Add(row);
                        }

                        foreach (Subsector subsector in sector.Subsectors)
                        {
                            DataRow row = dt_subsectors.NewRow();
                            row.ItemArray = new object[] { sector.X, sector.Y, subsector.Index, subsector.Name };
                            dt_subsectors.Rows.Add(row);
                        }

                        foreach (Border border in sector.Borders.Where(b => b.ShowLabel))
                        {
                            AddLabel(border.GetLabel(sector),
                                Astrometrics.LocationToCoordinates(new Location(sector.Location, border.LabelPosition)));
                        }

                        foreach (Label label in sector.Labels)
                        {
                            AddLabel(label.Text, Astrometrics.LocationToCoordinates(new Location(sector.Location, label.Hex)));
                        }

            #if DEBUG
                        if (!sector.Selected)
                            continue;
            #endif
                        // NOTE: May need to page this at some point
                        WorldCollection worlds = sector.GetWorlds(resourceManager, cacheResults: false);
                        if (worlds == null)
                            continue;

                        var world_query = from world in worlds
                                          where !world.IsPlaceholder
                                          select world;
                        foreach (World world in world_query)
                        {
                            DataRow row = dt_worlds.NewRow();
                            row.ItemArray = new object[] {
                                    world.Coordinates.X,
                                    world.Coordinates.Y,
                                    sector.X,
                                    sector.Y,
                                    world.X,
                                    world.Y,
                                    string.IsNullOrEmpty(world.Name) ? (object)DBNull.Value : (object)world.Name,
                                    world.UWP,
                                    world.Remarks,
                                    world.PBG,
                                    string.IsNullOrEmpty(world.Zone) ? "G" : world.Zone,
                                    world.Allegiance,
                                    sector.Names.Count > 0 ? (object)sector.Names[0] : (object)DBNull.Value
                            };

                            dt_worlds.Rows.Add(row);
                        }
                    }

                    foreach (KeyValuePair<string, List<Point>> entry in labels)
                    {
                        string name = entry.Key;
                        List<Point> points = entry.Value;

                        Point avg = new Point(
                            (int)Math.Round(points.Select(p => p.X).Average()),
                            (int)Math.Round(points.Select(p => p.Y).Average()));
                        Point min = new Point(points.Select(p => p.X).Min(), points.Select(p => p.Y).Min());
                        Point max = new Point(points.Select(p => p.X).Max(), points.Select(p => p.Y).Max());
                        Size size = new Size(max.X - min.X, max.Y - min.Y);
                        int radius = Math.Max(size.Width, size.Height);

                        DataRow row = dt_labels.NewRow();
                        row.ItemArray = new object[] {
                            avg.X,
                            avg.Y,
                            radius,
                            entry.Key
                        };
                        dt_labels.Rows.Add(row);
                    }

                    //
                    // Rebuild the tables with fresh schema
                    //

                    const string INDEX_OPTIONS = " WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON)";

                    const string DROP_TABLE_IF_EXISTS = "IF EXISTS(SELECT 1 FROM sys.objects WHERE OBJECT_ID = OBJECT_ID(N'{0}') AND type = (N'U')) DROP TABLE {0}";

                    string[] rebuild_schema = {
                        string.Format(DROP_TABLE_IF_EXISTS, "sectors"),
                        "CREATE TABLE sectors (x int NOT NULL, y int NOT NULL, name nvarchar(50) NULL)",
                        "CREATE NONCLUSTERED INDEX sector_name ON sectors ( name ASC )" + INDEX_OPTIONS,

                        string.Format(DROP_TABLE_IF_EXISTS, "subsectors"),
                        "CREATE TABLE subsectors (sector_x int NOT NULL, sector_y int NOT NULL, subsector_index char(1) NOT NULL, name nvarchar(50) NULL)",
                        "CREATE NONCLUSTERED INDEX subsector_name ON subsectors ( name ASC )" + INDEX_OPTIONS,

                        string.Format(DROP_TABLE_IF_EXISTS, "worlds"),
                        "CREATE TABLE worlds ("
                            + "x int NOT NULL, "
                            + "y int NOT NULL, "
                            + "sector_x int NOT NULL, "
                            + "sector_y int NOT NULL, "
                            + "hex_x int NOT NULL, "
                            + "hex_y int NOT NULL, "
                            + "name nvarchar(50) NULL, "
                            + "uwp nchar(9) NULL, "
                            + "remarks nvarchar(50) NULL, "
                            + "pbg nchar(3) NULL, "
                            + "zone nchar(1) NULL, "
                            + "alleg nchar(4) NULL, "
                            + "sector_name nvarchar(50) NULL)",
                        "CREATE NONCLUSTERED INDEX world_name ON worlds ( name ASC )" + INDEX_OPTIONS,
                        "CREATE NONCLUSTERED INDEX world_uwp ON worlds ( uwp ASC )" + INDEX_OPTIONS,
                        "CREATE NONCLUSTERED INDEX world_pbg ON worlds ( pbg ASC )" + INDEX_OPTIONS,
                        "CREATE NONCLUSTERED INDEX world_alleg ON worlds ( alleg ASC )" + INDEX_OPTIONS,
                        "CREATE NONCLUSTERED INDEX world_sector_name ON worlds ( sector_name ASC )" + INDEX_OPTIONS,

                        string.Format(DROP_TABLE_IF_EXISTS, "labels"),
                        "CREATE TABLE labels (x int NOT NULL, y int NOT NULL, radius int NOT NULL, name nvarchar(50) NULL)",
                        "CREATE NONCLUSTERED INDEX name ON labels ( name ASC )" + INDEX_OPTIONS,
                    };

                    callback("Rebuilding schema...");
                    foreach (string cmd in rebuild_schema)
                    {
                        sqlCommand = new SqlCommand(cmd, connection);
                        sqlCommand.ExecuteNonQuery();
                    }

                    //
                    // And shovel the data into the database en masse
                    //
                    Action<string, DataTable, int> BulkInsert = (string name, DataTable table, int batchSize) => {
                        using (var bulk = new SqlBulkCopy(connection, SqlBulkCopyOptions.TableLock, null))
                        {
                            callback(string.Format("Writing {0} {1}...", table.Rows.Count, name));
                            bulk.BatchSize = batchSize;
                            bulk.DestinationTableName = name;
                            bulk.WriteToServer(table);
                        }
                    };

                    BulkInsert("sectors", dt_sectors, dt_sectors.Rows.Count);
                    BulkInsert("subsectors", dt_subsectors, dt_subsectors.Rows.Count);
                    BulkInsert("worlds", dt_worlds, 4096);
                    BulkInsert("labels", dt_labels, dt_labels.Rows.Count);
                }
                callback("Complete!");
            }
        }
Exemplo n.º 37
0
		protected abstract void DoWork(
			InitializeProgressCallback initializeCallback,
			ProgressCallback progressCallback,
			StatusCallback primaryStatusTextCallback,
			StatusCallback secondaryStatusTextCallback
			);
Exemplo n.º 38
0
			protected override void DoWork(InitializeProgressCallback initializeCallback, ProgressCallback progressCallback,
										   StatusCallback primaryStatusTextCallback,
										   StatusCallback secondaryStatusTextCallback)
			{
				while (_countForWork < 100)
				{
					if(Canceling )
					{
						wasCancelled = true;
						return;
					}
					DoPretendWork();
					_countForWork++;
				}
			}
Exemplo n.º 39
0
        public static void PopulateDatabase(ResourceManager resourceManager, StatusCallback callback)
        {
            // Lock on this class rather than the cacheResults. Tile requests are not
            // blocked but we don't index twice.
            lock (typeof(SearchEngine))
            {
                // NOTE: This (re)initializes a static data structure used for
                // resolving names into sector locations, so needs to be run
                // before any other objects (e.g. Worlds) are loaded.
                SectorMap map = SectorMap.FromName(SectorMap.DefaultSetting, resourceManager);

                using (var connection = DBUtil.MakeConnection())
                {
                    SqlCommand sqlCommand;

                    //
                    // Repopulate the tables - locally first
                    // FUTURE: will need to batch this up rather than keep it in memory!
                    //

                    DataTable dt_sectors = new DataTable();
                    for (int i = 0; i < 3; ++i)
                        dt_sectors.Columns.Add(new DataColumn());

                    DataTable dt_subsectors = new DataTable();
                    for (int i = 0; i < 4; ++i)
                        dt_subsectors.Columns.Add(new DataColumn());

                    DataTable dt_worlds = new DataTable();
                    for (int i = 0; i < 6; ++i)
                        dt_worlds.Columns.Add(new DataColumn());

                    callback("Parsing data...");
                    foreach (Sector sector in map.Sectors)
                    {
                        if (!sector.Tags.Contains("OTU"))
                            continue;

                        foreach (Name name in sector.Names)
                        {
                            DataRow row = dt_sectors.NewRow();
                            row.ItemArray = new object[] { sector.X, sector.Y, name.Text };
                            dt_sectors.Rows.Add(row);
                        }

                        foreach (Subsector subsector in sector.Subsectors)
                        {
                            DataRow row = dt_subsectors.NewRow();
                            row.ItemArray = new object[] { sector.X, sector.Y, subsector.Index, subsector.Name };
                            dt_subsectors.Rows.Add(row);
                        }

            #if DEBUG
                        if (!sector.Selected)
                            continue;
            #endif
                        // NOTE: May need to page this at some point
                        WorldCollection worlds = sector.GetWorlds(resourceManager, cacheResults: false);
                        if (worlds == null)
                            continue;

                        foreach (World world in worlds)
                        {
                            DataRow row = dt_worlds.NewRow();
                            row.ItemArray = new object[] {
                                    sector.X,
                                    sector.Y,
                                    world.X,
                                    world.Y,
                                    world.Name != null && world.Name.Length > 0
                                        ? (object)world.Name
                                        : (object)DBNull.Value,
                                    world.UWP };

                            dt_worlds.Rows.Add(row);
                        }
                    }

                    //
                    // Rebuild the tables with fresh schema
                    //
                    string[] rebuild_schema = {
                        "IF EXISTS(SELECT 1 FROM sys.objects WHERE OBJECT_ID = OBJECT_ID(N'sectors') AND type = (N'U')) DROP TABLE sectors",
                        "CREATE TABLE sectors(x int NOT NULL,y int NOT NULL,name nvarchar(50) NULL)",
                        "CREATE NONCLUSTERED INDEX sector_name ON sectors ( name ASC ) WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON)",

                        "IF EXISTS(SELECT 1 FROM sys.objects WHERE OBJECT_ID = OBJECT_ID(N'subsectors') AND type = (N'U')) DROP TABLE subsectors",
                        "CREATE TABLE subsectors (sector_x int NOT NULL, sector_y int NOT NULL, subsector_index char(1) NOT NULL, name nvarchar(50) NULL )",
                        "CREATE NONCLUSTERED INDEX subsector_name ON subsectors ( name ASC )WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON)",

                        "IF EXISTS(SELECT 1 FROM sys.objects WHERE OBJECT_ID = OBJECT_ID(N'worlds') AND type = (N'U')) DROP TABLE worlds",
                        "CREATE TABLE worlds( sector_x int NOT NULL, sector_y int NOT NULL, hex_x int NOT NULL, hex_y int NOT NULL, name nvarchar(50) NULL, uwp nchar(9) NULL )",
                        "CREATE NONCLUSTERED INDEX world_name ON worlds ( name ASC ) WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON)",
                        "CREATE NONCLUSTERED INDEX world_uwp ON worlds ( uwp ASC ) WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON)",
                    };

                    callback("Rebuilding schema...");
                    foreach (string cmd in rebuild_schema)
                    {
                        sqlCommand = new SqlCommand(cmd, connection);
                        sqlCommand.ExecuteNonQuery();
                    }

                    //
                    // And shovel the data into the database en masse
                    //
                    using (var bulk = new SqlBulkCopy(connection, SqlBulkCopyOptions.TableLock, null))
                    {
                        callback(String.Format("Writing {0} sectors...", dt_sectors.Rows.Count));
                        bulk.BatchSize = dt_sectors.Rows.Count;
                        bulk.DestinationTableName = "sectors";
                        bulk.WriteToServer(dt_sectors);
                        bulk.Close();
                    }
                    using (var bulk = new SqlBulkCopy(connection, SqlBulkCopyOptions.TableLock, null))
                    {
                        callback(String.Format("Writing {0} subsectors...", dt_subsectors.Rows.Count));
                        bulk.BatchSize = dt_subsectors.Rows.Count;
                        bulk.DestinationTableName = "subsectors";
                        bulk.WriteToServer(dt_subsectors);
                        bulk.Close();
                    }
                    using (var bulk = new SqlBulkCopy(connection, SqlBulkCopyOptions.TableLock, null))
                    {
                        callback(String.Format("Writing {0} worlds...", dt_worlds.Rows.Count));
                        bulk.BatchSize = 4096;
                        bulk.DestinationTableName = "worlds";
                        bulk.WriteToServer(dt_worlds);
                        bulk.Close();
                    }
                }
                callback("Complete!");
            }
        }