/// <summary> /// Standard run-method. Call this for the 'rdvstatus'-action. /// </summary> /// <param name="args">The commandline-parameters.</param> public override void Run(string[] args) { for (int i = 1; i < args.Length; i++) { switch (args[i]) { case "-h": Help(); return; default: textWriter.WriteLine("Error: invalid parameter" + args[i]); break; } } RdvConfig config = rdvSvc.Configuration; textWriter.Write("Rendezvous service config : "); switch (config) { case RdvConfig.adhoc: textWriter.WriteLine("ad-hoc"); break; case RdvConfig.edge: textWriter.WriteLine("client"); break; case RdvConfig.rendezvous: textWriter.WriteLine("rendezvous"); break; default: textWriter.WriteLine("[unknown]"); break; } long auto_interval = rdvSvc.AutoInterval; textWriter.Write("Auto-rdv check interval : "); if (auto_interval >= 0) { textWriter.WriteLine(auto_interval + "ms"); } else { textWriter.WriteLine("[disabled]"); } uint currentTime = (uint)(apr_time_now() / 1000); PeerView pv = rdvSvc.PeerView; Peer selfPVE = null; Peer down = null; Peer up = null; try { selfPVE = pv.SelfPeer; down = pv.DownPeer; up = pv.UpPeer; } catch (JxtaException) { } List <Peer> peers = null; /* Get the list of peers */ try { peers = pv.LocalView; } catch (Exception) { textWriter.WriteLine("Failed getting peers"); return; } textWriter.WriteLine("\nPeerview:"); foreach (Peer peer in peers) { string name = "(unknown)"; if (peer.Advertisement != null) { name = peer.Advertisement.Name; } textWriter.Write(peer.ID + "/" + name + "\t"); uint expires = rdvSvc.GetExpires(peer); if (expires >= currentTime) { expires -= currentTime; textWriter.WriteLine(expires + "ms"); } else { textWriter.WriteLine("(expired)"); } if (down == peer) { textWriter.Write("\t[DOWN]"); } if (selfPVE == peer) { textWriter.Write("\t[SELF]"); } if (up == peer) { textWriter.Write("\t[UP]"); } textWriter.Write("\n"); } textWriter.WriteLine("\nConnections:"); peers = rdvSvc.ConnectedPeers; foreach (Peer peer in peers) { textWriter.WriteLine("Name: [" + peer.Advertisement.Name + "]"); textWriter.WriteLine("PeerID: [" + peer.ID + "]\n"); uint expires = rdvSvc.GetExpires(peer); uint hours = 0; uint minutes = 0; uint seconds = 0; if (expires < currentTime) { expires = 0; } else { expires -= currentTime; } seconds = expires / (1000); hours = seconds / (60 * 60); seconds -= hours * 60 * 60; minutes = seconds / 60; seconds -= minutes * 60; textWriter.WriteLine("Lease expires in " + hours + " hour(s) " + minutes + " minute(s) " + seconds + " second(s)"); } textWriter.WriteLine("-----------------------------------------------------------------------------"); }
private static extern UInt32 jxta_rdv_service_set_config(IntPtr self, RdvConfig config);