private void printServerNode(int level, String serverName) { printlnAtLevel(level, "[Printing list for Server = " + serverName + "]"); String pattern = serverName + "/..."; if (level == 0) pattern = "/" + pattern; printlnAtLevel(level, "[Pattern = " + pattern + "]"); ChannelTree tr = getChannelTree(pattern); if (tr == null) { printlnAtLevel(level, "[no tree]"); return; } Iterator i = tr.rootIterator(); if (!i.hasNext()) { printlnAtLevel(level, "[empty root list]"); return; } // the first node should be for the requested serverName ChannelTree.Node node = (ChannelTree.Node) i.next(); if (!node.getType().toString().equals("Server")) { printlnAtLevel(level, "[unexpected non-Server node type = " + node.getType() + "]"); return; } if (!node.getName().equals(serverName)) { printlnAtLevel(level, "[unexpected node name = " + node.getName() + "]"); return; } printlnAtLevel( level, node.getName() + " -- " + node.getFullName() + " (" + node.getType() + ")"); printChildren(level + 1, node); }
private void exec() { connect(); ChannelTree t = getChannelTree("/..."); Iterator i = t.rootIterator(); int level = 0; if (!i.hasNext()) { printlnAtLevel(level, "[empty root list]"); } // the first node should be for the requested serverName ChannelTree.Node node = (ChannelTree.Node) i.next(); if (!node.getType().toString().equals("Server")) { printlnAtLevel(level, "[unexpected non-Server node type = " + node.getType() + "]"); return; } String serverName = node.getName(); printServerNode(level, serverName); }
private void setupChannelList() { channelPathList = new Vector(); if ((channelPathPattern != null) && !channelPathPattern.equals("")) appendChannelListFromPattern(); if ((channelPathListString != null) && !channelPathListString.equals("")) appendChannelListFromString(); Iterator channels = channelPathList.iterator(); if (!channels.hasNext()) { System.out.println("DataVideoGather: No data channels to monitor."); this.printUsage(); System.exit(0); } channelPathArray = new String[channelPathList.size()]; shortNameArray = new String[channelPathList.size()]; for (int i = 0; i < channelPathArray.length; i++) { ChannelTree.Node candidate = (ChannelTree.Node) channels.next(); channelPathArray[i] = candidate.getFullName(); shortNameArray[i] = candidate.getName(); } }
public void appendChannelListFromPattern() { try { // Create a sink and connect: Sink sink = new Sink(); sink.OpenRBNBConnection(getServer(), sinkName); // get all the channel paths that match the pattern ChannelMap sMap = new ChannelMap(); sink.RequestRegistration(); sMap = sink.Fetch(-1, sMap); ChannelTree tree = ChannelTree.createFromChannelMap(sMap); Pattern p = Pattern.compile(channelPathPattern); // for each channel path, check match, collect matches... Iterator nodes = tree.iterator(); while (nodes.hasNext()) { ChannelTree.Node n = (ChannelTree.Node) nodes.next(); // System.out.println("Checking " + n.getFullName() + ";" + n.getName()); if (!includeHidden && n.getFullName().startsWith("_")) continue; if (n.getType() != ChannelTree.CHANNEL) continue; String name = n.getFullName(); Matcher m = p.matcher(name); if (m.matches()) { // System.out.println("Matches"); boolean isSource = false; ChannelTree.Node upNode = n.getParent(); while ((!isSource) || (upNode != null)) { if (upNode.getType() == ChannelTree.SOURCE) isSource = true; upNode = upNode.getParent(); } if (isSource) { // System.out.println("... and is a source."); channelPathList.add(n); } else { // System.out.println("... and is NOT a source."); } } } } catch (SAPIException se) { se.printStackTrace(); } } // appendChannelListFromPattern
public void appendChannelListFromString() { try { StringTokenizer st = new StringTokenizer(channelPathListString, ","); // Create a sink and connect: Sink sink = new Sink(); sink.OpenRBNBConnection(getServer(), sinkName); // get all the channel paths that match the pattern ChannelMap sMap = new ChannelMap(); sink.RequestRegistration(); sMap = sink.Fetch(-1, sMap); ChannelTree tree = ChannelTree.createFromChannelMap(sMap); Pattern p = Pattern.compile(channelPathPattern); // for each channel path, check match, collect matches... while (st.hasMoreTokens()) { String path = st.nextToken(); // System.out.println("Checking " + path); ChannelTree.Node n = tree.findNode(path); if (n == null) continue; if (n.getType() != ChannelTree.CHANNEL) continue; String name = n.getFullName(); // System.out.println("Found it..."); boolean isSource = false; ChannelTree.Node upNode = n.getParent(); while ((!isSource) || (upNode != null)) { if (upNode.getType() == ChannelTree.SOURCE) isSource = true; upNode = upNode.getParent(); } if (isSource) { // System.out.println("... and is a source."); channelPathList.add(n); } else { // System.out.println("... and is NOT a source."); } } // while next token } catch (SAPIException se) { se.printStackTrace(); } } // appendChannelListFromString
private void printChildren(int level, ChannelTree.Node node) { // iterate through children of hirarchy List l = node.getChildren(); Iterator i = l.iterator(); while (i.hasNext()) { node = (ChannelTree.Node) i.next(); printlnAtLevel( level, node.getName() + " -- " + node.getFullName() + " (" + node.getType() + ")"); if (node.getType().toString().equals("Server")) printServerNode(level + 1, node.getName()); else { printChildren(level + 1, node); } } }