public override IWampRpcOperation GetMatchingOperation(string criteria) { string[] uriParts = criteria.Split('.'); // Finds the first wildcard that can match the criteria. // TODO: change the implementation to the "most selective wildcard", // TODO: when this is finally defined. foreach (var wildcardToEvaluator in mWildCardToEvaluator) { string wildcard = wildcardToEvaluator.Key; WildCardMatcher evaluator = wildcardToEvaluator.Value; if (evaluator.IsMatched(uriParts)) { return(GetOperationByUri(wildcard)); } } return(null); }
public override IEnumerable <IWampTopic> GetMatchingTopics(string criteria, PublishOptions publishOptions) { string[] uriParts = criteria.Split('.'); foreach (var wildcardToEvaluator in mWildCardToEvaluator) { string wildcard = wildcardToEvaluator.Key; WildCardMatcher evaluator = wildcardToEvaluator.Value; if (evaluator.IsMatched(uriParts)) { IWampTopic topic = GetTopicByUri(wildcard); if (topic != null) { yield return(topic); } } } }
public void should_match_quesiton_mark_as_single_character(string s, bool expectedResult) { var wildCardMatcher = new WildCardMatcher("pass?"); Assert.Equal(expectedResult, wildCardMatcher.Match(s)); }
public void should_ignore_case_when_set_ignore_case() { var wildCardMatcher = new WildCardMatcher("pass*", RegexOptions.IgnoreCase); Assert.True(wildCardMatcher.Match("Pass")); }
public void should_match_star_wild_card(string s, bool expectedResult) { var wildCardMatcher = new WildCardMatcher("pass*"); Assert.Equal(expectedResult, wildCardMatcher.Match(s)); }
private void OnTopicCreated(object sender, WampTopicCreatedEventArgs e) { string wildcard = e.Topic.TopicUri; mWildCardToEvaluator[wildcard] = new WildCardMatcher(wildcard); }
public static int command_send(Hashtable parameters) { displayTitle(); parameters.Remove("command"); String server = (String)parameters["server"]; parameters.Remove("server"); if (server == null) { server = RICS_SERVER; } String service = (String)parameters["service"]; parameters.Remove("service"); if (service == null) { Console.WriteLine("parameter -service is missing"); Environment.Exit(1); } service = service.ToUpper(); String user = (String)parameters["user"]; parameters.Remove("user"); if (user == null) { Console.WriteLine("parameter -user is missing"); Environment.Exit(1); } String file_pattern = (String)parameters["file"]; parameters.Remove("file"); if (file_pattern == null) { Console.WriteLine("parameter -file is missing"); Environment.Exit(1); } // extract directory String directory; int ind = file_pattern.LastIndexOf(fileSeparator); if (ind >= 0) { // extract directory from pattern directory = file_pattern.Substring(0, ind); file_pattern = file_pattern.Substring(ind + 1); } else { // active directory directory = "."; } string[] files = Directory.GetFiles(directory).Select(file => Path.GetFileName(file)).ToArray(); if (files.Length == 0) { Console.WriteLine("no files in directory: " + directory + " found."); Environment.Exit(1); } // prepare wildcard matcher WildCardMatcher wm = new WildCardMatcher(file_pattern); int status = 0; for (int i = 0; i < files.Length; i++) { String fname = files[i]; if (!wm.matches(fname)) { continue; } Console.WriteLine("sending " + fname + " to service " + service + " ..."); string fullFilePath = Path.Combine(directory, fname); if (sendFile(server, service, user, fullFilePath, parameters)) { Console.WriteLine("done."); } else { Console.WriteLine("not done."); status = 1; } Console.WriteLine(""); } return(status); }