commsfwtools/commstools/svg/listitf.pl
changeset 0 dfb7c4ff071f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/commsfwtools/commstools/svg/listitf.pl	Thu Dec 17 09:22:25 2009 +0200
@@ -0,0 +1,75 @@
+# Copyright (c) 1999-2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+use strict;
+
+use Getopt::Long;
+my $incPersist = 0;
+my $incLastSeen = 1;
+GetOptions('persist!' => \$incPersist, 'lastseen!' => \$incLastSeen);
+
+my %regs;
+my %persistItf;
+my %lastSeen;
+while(<>)
+{
+  if($_ =~ /\s+(W\d+): RegisterItf\(([0-9a-fA-F]+)/)
+  {
+    my $key = "$1: $2";
+    $regs{$key} = [ "(#$.)", $. ];
+  }
+  elsif($_ =~ /\s+(W\d+): DeregisterItf\(([0-9a-fA-F]+)/)
+  {
+    my $key = "$1: $2";
+    delete $regs{$key};
+  }
+  elsif($_ =~ /\s+(W\d+): (.+):\s+created \[MCFNode ([0-9a-fA-F]+)/)
+  {
+    my $key = "$1: $3";
+    $regs{$key} = ["$2 (#$.)", $.] if defined($regs{$key});
+  }
+  elsif($_ =~ /CSockManData::AddPersistentItf\(([0-9a-fA-F]+)\)\s+\[#(\d+)\]/)
+  {
+    $persistItf{$1} = $2;
+  }
+  elsif($incLastSeen && $_ =~ /TCFSignatureBase:\tDispatchL\(\): Sender=([0-9a-fA-F]+), Recipient=([0-9a-fA-F]+), Message=(.+), Activity=/)
+  {
+	$lastSeen{$1} = [$3, $.];
+	$lastSeen{$2} = [$3, $.];
+  }
+}
+
+my @keys = sort { $regs{$a}->[1] <=> $regs{$b}->[1] } keys %regs;
+for my $key (@keys)
+{
+  my $persistInfo;
+  if($key =~ /W\d+: ([0-9a-fA-F]+)/)
+  {
+    $persistInfo = $persistItf{$1} if defined($persistItf{$1});
+  }
+  if(!defined($persistInfo) || $incPersist)
+  {
+  	my $lastSeenId;
+  	if($incLastSeen && defined ($lastSeenId = $lastSeen{$1}))
+  	{
+	  $lastSeenId = "#$lastSeenId->[1], $lastSeenId->[0]";
+	}
+    print "$key $regs{$key}->[0]";
+    print " (last seen $lastSeenId)" if defined($lastSeenId);
+    print " (persistent #$persistInfo)" if defined($persistInfo);
+    print "\n";
+  }
+}
+