File: Trace.ah

package info (click to toggle)
aspectc%2B%2B 1.0pre4~svn.20090918-1
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 117,308 kB
  • ctags: 410,601
  • sloc: cpp: 1,883,007; ansic: 17,279; sh: 2,190; makefile: 1,088
file content (46 lines) | stat: -rw-r--r-- 1,179 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#ifndef __Trace_h__
#define __Trace_h__

#include <stdio.h>
#include "mangle.h"

aspect Trace
 { 
      pointcut virtual methods() = 0;

   public:

      advice methods () : before ()
       { 
         printf ("before \"%s\"\n", JoinPoint::signature ()); 
         printf("  Type: %s ID=%d Type=%d", JoinPoint::type(),
		JoinPoint::id(), JoinPoint::jptype()); 
         printf(" (%p -> %p)\n", tjp->that(), tjp->target());
	 for (int i = 0; i < JoinPoint::args(); i++) 
	  {
	    printf("    arg(%d): ", i);
	    demangleandprint(JoinPoint::argtype(i));
            printf(" = ");
	    printvalue(tjp->arg(i),JoinPoint::argtype(i));
	    printf("\n");
	  } 
         printf("    Result: ");
	 demangleandprint(JoinPoint::resulttype());
         printf(" = ");
         printvalue(tjp->result(), JoinPoint::resulttype());
         printf("\n");
       }

      advice methods () : after ()
       { 
	 printf ("after \"%s\"\n", JoinPoint::signature ()); 
         printf("    Result: ");
	 demangleandprint(JoinPoint::resulttype());
         printf(" = ");
         printvalue(tjp->result(), JoinPoint::resulttype());
         printf("\n");
       }

 };

#endif // __Trace_h__