int DefaultAutoRequestTime = 15000; //1 minutes // =============================== private void ThreadWorker() { bStopAutoRequest = true; // =============================== // tack cuc nay` ra ham` cua mai` ben lop' nao` do' requestTarget = 0; requestTarget |= RequestTarget.Towns; requestTarget |= RequestTarget.Building; requestTarget |= RequestTarget.Troops; requestTarget |= RequestTarget.Diplomacy; requestTarget |= RequestTarget.Research; makeRequest(); //dang starting nen ko cho client tiep can //xem nhu server down bStopAutoRequest = false; requestTarget = 0; while (!bStopAutoRequest) { //DEBUG("starting request..."); //Request requestTarget //BUS.RequestSomething(); //Update requestTarget //requestTarget = RequestTarget.Towns; makeRequest(); requestTarget = (RequestTarget)GetNextRequest(out DefaultAutoRequestTime); //DEBUG("done request..."); Thread.Sleep(DefaultAutoRequestTime); //Sua thanh wait de } // =============================== }
public void testFindUrl_MultiSite1() { Dictionary <string, string> _config = new Dictionary <string, string> { { "proxyHost", "websenseproxy" }, { "proxyPort", "8080" }, { "printxml", "false" }, { "merchantId", "101" }, { "username", "DOTNET" }, { "password", "TESTCASE" }, { "multiSite", "true" }, { "printMultiSiteDebug", "true" }, { "url", legacyUrl }, { "multiSiteUrl1", site1Url }, { "multiSiteUrl2", site2Url }, { "multiSiteErrorThreshold", "4" }, { "maxHoursWithoutSwitch", "48" } }; CommManager.reset(); CommManager cmg = CommManager.instance(_config); Assert.IsNotNull(cmg); Assert.IsTrue(cmg.getMultiSite()); RequestTarget rt = cmg.findUrl(); Assert.AreEqual(cmg.getMultiSiteUrls()[cmg.getCurrentMultiSiteUrlIndex()], rt.getUrl()); Assert.True(rt.getUrl().Equals(site1Url) || rt.getUrl().Equals(site2Url)); }
public void runPerformanceTest() { Random rand = new Random(); long startTime = DateTime.Now.Ticks / TimeSpan.TicksPerMillisecond; long totalTransactionTime = 0; for (int n = 0; n < cycleCount; n++) { requestCount++; RequestTarget target = CommManager.instance(config).findUrl(); try { int sleepTime = 100 + rand.Next(500); totalTransactionTime += sleepTime; Thread.Sleep(sleepTime); } catch (Exception e) { Console.WriteLine(e.ToString()); } CommManager.instance(config).reportResult(target, CommManager.REQUEST_RESULT_RESPONSE_RECEIVED, 200); } long duration = DateTime.Now.Ticks / TimeSpan.TicksPerMillisecond - startTime; Console.WriteLine("Thread " + threadId + " completed. Total Requests:" + requestCount + " Elapsed Time:" + (duration / 1000) + " secs Average Txn Time:" + (totalTransactionTime / requestCount) + " ms"); }
public void Execute(BattleUnit source, AbilityData abilityData, RequestTarget requestTarget) { //BattleLog.Log("【D2Event】{0},source:{1},target:{2}", GetType().Name, source.GetName(), requestTarget.ToString()); foreach (D2Action action in m_Actions) { action.Execute(source, abilityData, requestTarget); } }
public D2Modifier(BattleUnit caster, ModifierData modifierData, BattleUnit target, AbilityData abilityData) { this.caster = caster; this.target = target; this.abilityData = abilityData; this.modifierData = modifierData; requestTarget = new RequestTarget(); requestTarget.SetUnitTarget(target); }
public void ParseAbsoluteUri_Regularv2UriWithAbsentAuthority_ValidRequestTarget() { string uriString; RequestTarget rt = BuildAbsentAuthorityUriAndRequestTarget("filescheme", "/testpath", "test_query=1&second=2", out uriString); RequestTargetParser parser = new RequestTargetParser(); RequestTarget result = parser.ParseAbsoluteUri(uriString); Assert.AreEqual(rt, result); }
public void ParseAbsoluteUri_Regularv3UriWithAbsentAuthority_ValidRequestTarget() { string uriString; RequestTarget rt = BuildAbsentAuthorityUriAndRequestTarget("https", "/", "q=1&qqq=222", out uriString); RequestTargetParser parser = new RequestTargetParser(); RequestTarget result = parser.ParseAbsoluteUri(uriString); Assert.AreEqual(rt, result); }
public void ParseAbsoluteUri_Regularv4UriWithAbsentAuthority_ValidRequestTarget() { string uriString; RequestTarget rt = BuildAbsentAuthorityUriAndRequestTarget("ldap", "/example/foledr_NAME", "q=123123123123123123", out uriString); RequestTargetParser parser = new RequestTargetParser(); RequestTarget result = parser.ParseAbsoluteUri(uriString); Assert.AreEqual(rt, result); }
public void ParseAbsoluteUri_RegularUri1CharLength_ValidOutput() { string uriString; RequestTarget rt = BuildAbsentAuthorityUriAndRequestTarget("a", "/", "q", out uriString); RequestTargetParser parser = new RequestTargetParser(); RequestTarget result = parser.ParseAbsoluteUri(uriString); Assert.AreEqual(rt, result); }
public void ParseAbsoluteUri_Regularv1UriWithAbsentAuthority_ValidRequestTarget() { string uriString; RequestTarget rt = BuildAbsentAuthorityUriAndRequestTarget("ftp", "/path/to/some/file", "q=1&q=2&q=3", out uriString); RequestTargetParser parser = new RequestTargetParser(); RequestTarget result = parser.ParseAbsoluteUri(uriString); Assert.AreEqual(rt, result); }
public RequestHeader(HttpMethod method, RequestTarget target, HttpVersion version, IHeaderField[] headerFields) { Method = method; Target = target; Version = version; undefinedHfList = new List <UndefinedHf>(); cookieHfList = new List <IHeaderField>(); onlySingleHeaderFields = new Dictionary <HFType, IHeaderField>(); AddFields(headerFields); }
public void ParseAbsoluteUri_ValidInputFullUriStringv1_ValidOutputRequestTarget() { string uriString; RequestTarget expected = BuildFullUriAndRequestTarget("http", "user.info", "www.test.com", 8080, "/", "param1=v1", out uriString); RequestTargetParser parser = new RequestTargetParser(); RequestTarget actual = parser.ParseAbsoluteUri(uriString); Assert.AreEqual(expected, actual); }
public void ParseAbsoluteUri_ValidInputFullUriStringv2_ValidOutputRequestTarget() { string uriString; RequestTarget expected = BuildFullUriAndRequestTarget("https", "user2.info345", "www.data.test.com", 443, "/some/path", "p=1&p=2&p=3", out uriString); RequestTargetParser parser = new RequestTargetParser(); RequestTarget actual = parser.ParseAbsoluteUri(uriString); Assert.AreEqual(expected, actual); }
public Ability(int id, int priority, BattleUnit battleEntity, AbilityData abilityData) { ID = id; this.priority = priority; caster = battleEntity; m_AbilityData = abilityData; castTime = 0f; CD = m_AbilityData.cooldown; abilityState = AbilityState.None; requestTarget = new RequestTarget(); }
public void ParseAbsoluteUri_ValidInputFullUriStringv3_ValidOutputRequestTarget() { string uriString; RequestTarget expected = BuildFullUriAndRequestTarget("ftp", "ftp.test.client", "ftp.host.test", 223, "//", "p=123", out uriString); RequestTargetParser parser = new RequestTargetParser(); RequestTarget actual = parser.ParseAbsoluteUri(uriString); Assert.AreEqual(expected, actual); }
public void ParseAbsoluteUri_ValidInputFullUriString_AllComponents1CharLength_ValidOutputRequestTarget() { string uriString; RequestTarget expected = BuildFullUriAndRequestTarget("a", "b", "c", 1, "/", "d", out uriString); RequestTargetParser parser = new RequestTargetParser(); RequestTarget actual = parser.ParseAbsoluteUri(uriString); Assert.AreEqual(expected, actual); }
public void ExecuteEvent(AbilityEvent abilityEvent, BattleUnit source, RequestTarget requestTarget) { BattleLog.Log("【AbilityData】ExecuteEvent:{0},source:{1},target:{2}", abilityEvent.ToString(), source.GetName(), requestTarget.ToString()); string eventName = Enum.GetName(typeof(AbilityEvent), abilityEvent); D2Event @event; eventMap.TryGetValue(eventName, out @event); if (@event != null) { @event.Execute(source, this, requestTarget); } }
public int Send(RequestTarget target, SerializationWriter sw) { if (Cache) { byte[] cache = byteCache[(int)target]; if (cache != null) { //use the byte-cache, since it is present. if (cache.Length > 0) { sw.Seek(0, SeekOrigin.Begin); sw.BaseStream.Write(cache, 0, cache.Length); } return(cache.Length); } //cache miss; we will fill it later on... } int sendLength; switch (target) { case RequestTarget.Irc: sendLength = sendIrc(sw); break; default: case RequestTarget.Osu: sendLength = sendOsu(sw); break; } if (Cache) { //fill the byte-cache. byte[] cache = new byte[sendLength]; if (sendLength > 0) { sw.Seek(0, SeekOrigin.Begin); sw.BaseStream.Read(cache, 0, sendLength); } byteCache[(int)target] = cache; } return(sendLength); }
int DefaultAutoRequestTime = 15000; //1 minutes // =============================== private void ThreadWorker() { try { //init vai ham truoc khi khoi tao BUSCity.requestCities(); //cap nhat danh sach requestTarget = 0; requestTarget |= RequestTarget.Towns; requestTarget |= RequestTarget.Building; requestTarget |= RequestTarget.Troops; requestTarget |= RequestTarget.Diplomacy; requestTarget |= RequestTarget.Research; requestTarget |= RequestTarget.Event; makeRequest(); //dang starting nen ko cho client tiep can //xem nhu server down bLoadingData = false; //bStopAutoRequest = false; requestTarget = 0; while (!bStopAutoRequest) { //DEBUG("starting request..."); //Request requestTarget //BUS.RequestSomething(); //Update requestTarget //requestTarget = RequestTarget.Towns; makeRequest(); requestTarget = (RequestTarget)GetNextRequest(); //DEBUG("done request..."); if (bStopAutoRequest) { return; } Thread.Sleep(RequestTime); //Sua thanh wait de } } catch (Exception ex) { Debug.ErrorLogging(ex.Message); } }
//Instead of parsing, this method 'Gets' because asterisk form is constant. public RequestTarget GetRequestTargetArteriskForm() { RequestTarget target = new RequestTarget(); target.Form = RequestTarget.RequestTargetForm.Asterisk; target.Host = target.Path = target.Query = target.Scheme = target.UserInfo = string.Empty; target.Port = -1; return(target); }
public void testFindUrl_MultiSiteMaxHours() { // test that url is switched when number of hours since last switch exceeds threshold Dictionary <string, string> _config = new Dictionary <string, string> { { "proxyHost", "websenseproxy" }, { "proxyPort", "8080" }, { "printxml", "false" }, { "merchantId", "101" }, { "username", "DOTNET" }, { "password", "TESTCASE" }, { "multiSite", "true" }, { "printMultiSiteDebug", "true" }, { "url", legacyUrl }, { "multiSiteUrl1", site1Url }, { "multiSiteUrl2", site2Url }, { "multiSiteErrorThreshold", "3" }, { "maxHoursWithoutSwitch", "4" } }; CommManager.reset(); CommManager cmg = CommManager.instance(_config); Assert.IsNotNull(cmg); Assert.IsTrue(cmg.getMultiSite()); Assert.AreEqual(cmg.getMultiSiteThreshold(), 3); RequestTarget rt1 = cmg.findUrl(); Assert.AreEqual(cmg.getMultiSiteUrls()[cmg.getCurrentMultiSiteUrlIndex()], rt1.getUrl()); cmg.reportResult(rt1, CommManager.REQUEST_RESULT_RESPONSE_RECEIVED, 200); RequestTarget rt2 = cmg.findUrl(); Assert.AreEqual(rt1.getUrl(), rt2.getUrl()); cmg.reportResult(rt2, CommManager.REQUEST_RESULT_RESPONSE_RECEIVED, 200); // set last switch time to 6 hours earlier DateTime gc = new DateTime(cmg.getLastSiteSwitchTime() * 10000); gc = gc.Add(new System.TimeSpan(-6, 0, 0)); cmg.setLastSiteSwitchTime((gc.Ticks / 10000)); RequestTarget rt3 = cmg.findUrl(); Assert.IsFalse(rt3.getUrl().Equals(rt1.getUrl())); }
public void testFindUrl_MultiSite2() { // test that url is switched when errors reach threshold Dictionary <string, string> _config = new Dictionary <string, string> { { "proxyHost", "websenseproxy" }, { "proxyPort", "8080" }, { "printxml", "false" }, { "merchantId", "101" }, { "username", "DOTNET" }, { "password", "TESTCASE" }, { "multiSite", "true" }, { "printMultiSiteDebug", "false" }, { "url", legacyUrl }, { "multiSiteUrl1", site1Url }, { "multiSiteUrl2", site2Url }, { "multiSiteErrorThreshold", "3" }, { "maxHoursWithoutSwitch", "48" } }; CommManager.reset(); CommManager cmg = CommManager.instance(_config); Assert.IsNotNull(cmg); Assert.IsTrue(cmg.getMultiSite()); Assert.AreEqual(cmg.getMultiSiteThreshold(), 3); RequestTarget rt1 = cmg.findUrl(); Assert.AreEqual(cmg.getMultiSiteUrls()[cmg.getCurrentMultiSiteUrlIndex()], rt1.getUrl()); cmg.reportResult(rt1, CommManager.REQUEST_RESULT_RESPONSE_TIMEOUT, 0); RequestTarget rt2 = cmg.findUrl(); Assert.AreEqual(rt1.getUrl(), rt2.getUrl()); cmg.reportResult(rt2, CommManager.REQUEST_RESULT_RESPONSE_TIMEOUT, 0); RequestTarget rt3 = cmg.findUrl(); Assert.AreEqual(rt1.getUrl(), rt3.getUrl()); cmg.reportResult(rt3, CommManager.REQUEST_RESULT_RESPONSE_TIMEOUT, 0); Assert.AreEqual(cmg.getErrorCount(), 3); RequestTarget rt4 = cmg.findUrl(); Assert.IsFalse(rt4.getUrl().Equals(rt1.getUrl())); }
public virtual void Execute(BattleUnit source, AbilityData abilityData, RequestTarget requestTarget) { this.abilityData = abilityData; this.requestTarget = requestTarget; var targetCollection = TargetSearcher.instance.GetActionTargets(source, abilityData, requestTarget, actionTarget); BattleLog.Log("【D2Action】{0}, source:{1},target:{2}", GetType().Name, source.GetName(), requestTarget.ToString()); // 根据类型区分,单位和范围 if (requestTarget.targetType == AbilityRequestTargetType.UNIT) { ExecuteByUnit(source, targetCollection.units); } else { ExecuteByPoint(source, targetCollection.points); } }
public WebServer(Guid id, RequestTarget type, string title, ref Filesystem fs, int port, string hostname) { this.instance = id; this.fs = fs; this.title = title; this.type = type; this.hostname = hostname; this.passKey = Guid.NewGuid(); listener = new HttpListener { IgnoreWriteExceptions = true, AuthenticationSchemes = AuthenticationSchemes.Basic | AuthenticationSchemes.Anonymous }; listener.Prefixes.Add(string.Format("http://*:{0}/", type == RequestTarget.Site ? port : (port + 1))); }
public void ParseAbsoluteUri_ValidFullUriAbsentPort_ValidOutputRequestTarget() { RequestTarget target = new RequestTarget(); target.Form = RequestTarget.RequestTargetForm.Absolute; target.Host = "w.host.c"; target.Path = "/"; target.Port = -1; target.Query = "p=1&p=2"; target.Scheme = "scheme"; target.UserInfo = "user.info"; string uriString = "scheme://[email protected]/?p=1&p=2"; RequestTargetParser parser = new RequestTargetParser(); RequestTarget result = parser.ParseAbsoluteUri(uriString); Assert.AreEqual(target, result); }
public RequestTarget BuildFullUriAndRequestTarget(string scheme, string userInfo, string host, int port, string path, string query, out string uriString) { RequestTarget target = new RequestTarget(); target.Form = RequestTarget.RequestTargetForm.Absolute; target.Host = host; target.Path = path; target.Port = port; target.Query = query; target.Scheme = scheme; target.UserInfo = userInfo; string uriFormatterString = string.Format("{0}://{1}@{2}:{3}{4}?{5}", scheme, userInfo, host, port, path, query); uriString = uriFormatterString; return(target); }
public RequestTarget BuildAbsentAuthorityUriAndRequestTarget(string scheme, string path, string query, out string uriString) { RequestTarget target = new RequestTarget(); target.Form = RequestTarget.RequestTargetForm.Absolute; target.Host = string.Empty; target.Path = path; target.Port = -1; target.Query = query; target.Scheme = scheme; target.UserInfo = string.Empty; string uriFormatterString = string.Format("{0}:{1}?{2}", scheme, path, query); uriString = uriFormatterString; return(target); }
public void ParseAbsoluteUri_ValidFullUriAbsentPort_AllComponents1CharLength_ValidOutputRequestTarget() { RequestTarget target = new RequestTarget(); target.Form = RequestTarget.RequestTargetForm.Absolute; target.Host = "w"; target.Path = "/"; target.Port = -1; target.Query = "p"; target.Scheme = "s"; target.UserInfo = "u"; string uriString = "s://u@w/?p"; RequestTargetParser parser = new RequestTargetParser(); RequestTarget result = parser.ParseAbsoluteUri(uriString); Assert.AreEqual(target, result); }
public void ParseAbsoluteUri_ValidFullUriAbsentUserInfoAndPortAndQuery_Components1CharLength_ValidOutputRequestTarget() { RequestTarget target = new RequestTarget(); target.Form = RequestTarget.RequestTargetForm.Absolute; target.Host = "h"; target.Path = "/"; target.Port = -1; target.Query = string.Empty; target.Scheme = "h"; target.UserInfo = string.Empty; string uriString = "h://h/"; RequestTargetParser parser = new RequestTargetParser(); RequestTarget result = parser.ParseAbsoluteUri(uriString); Assert.AreEqual(target, result); }
public void ParseAbsoluteUri_ValidFullUriAbsentUserInfoAndPort_ValidOutputRequestTarget() { RequestTarget target = new RequestTarget(); target.Form = RequestTarget.RequestTargetForm.Absolute; target.Host = "host"; target.Path = "/path"; target.Port = -1; target.Query = "query=value"; target.Scheme = "https"; target.UserInfo = string.Empty; string uriString = "https://host/path?query=value"; RequestTargetParser parser = new RequestTargetParser(); RequestTarget result = parser.ParseAbsoluteUri(uriString); Assert.AreEqual(target, result); }
public override bool TestOptionSet() { httpVerb = arguments.GetArgumentValue(Arguments.HTTP_VERB_ARG); if (!httpMethodTester.IsMatch(httpVerb)) return false; url = arguments.GetArgumentValue(Arguments.URL_ARG); if (!urlTster.IsMatch(url)) return false; type = DetermineRequestType(url); if (type == RequestTarget.ServiceManagement) { String thumbprint = arguments.GetArgumentValue(Arguments.THUMBPRINT_ARG); X509Store store = new X509Store(StoreName.My); try { store.Open(OpenFlags.ReadWrite); X509Certificate2Collection collection = store.Certificates.Find(X509FindType.FindByThumbprint, thumbprint.ToUpper(), false); if (collection.Count < 1) throw new CertificateNotFoundException(thumbprint); managementCert = collection[0]; } finally { store.Close(); } } else if (type == RequestTarget.Storage) { storageKey = arguments.GetArgumentValue<InvalidAccessKeyException>(Arguments.KEY_ARGS); isTableStorage = false; Uri uri = new Uri(url); storageAccount = uri.Host.Split('.')[0]; storageKey = storageKey.Trim(); storageAccount.Trim(); } String header = arguments.GetArgumentValueWithoutAssertion(Arguments.HEADER_ARG); headers = new Dictionary<string, string>(); if (!string.IsNullOrEmpty(header)) { MatchCollection matches = HeaderSpliter.Matches(header); foreach (Match item in matches) { string key = item.Groups[1].Value; string value = item.Groups[2].Value; headers.Add(key, value); } } String b = arguments.GetArgumentValueWithoutAssertion(Arguments.BODY_ARG); if (!String.IsNullOrEmpty(b)) { body = Encoding.UTF8.GetBytes(Encoding.UTF8.GetString(Convert.FromBase64String(b))); } String fileBody = arguments.GetArgumentValueWithoutAssertion(Arguments.FILE_BODY_ARG); if (!String.IsNullOrEmpty(fileBody)) { if (type == RequestTarget.ServiceManagement) // this means we made a ServiceManagmenet request and specified a file as the body, not a string. { String requestBody = readFileToString(fileBody); // this is the base 64 encoded string from the java code String requestBodyXml = Encoding.UTF8.GetString(Convert.FromBase64String(requestBody)); // this is the actual xml body = Encoding.UTF8.GetBytes(requestBodyXml); // this byte array will eventually be written in the response stream. just as before. } else { using (FileStream fs = new FileStream(fileBody, FileMode.Open)) { body = new byte[fs.Length]; fs.Read(body, 0, body.Length); } } File.Delete(fileBody); } return true; }