File: main.cc

package info (click to toggle)
aspectc%2B%2B 1.0pre4~svn.20080711-1
  • links: PTS, VCS
  • area: main
  • in suites: lenny
  • size: 104,504 kB
  • ctags: 363,975
  • sloc: cpp: 1,645,814; ansic: 16,601; sh: 2,175; makefile: 1,043
file content (36 lines) | stat: -rw-r--r-- 917 bytes parent folder | download | duplicates (12)
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
#include <stdio.h>

aspect JPTypePrinter {

  void print_jp_type (AC::JPType jptype) {
    switch (jptype) {
    case AC::EXECUTION:    printf ("execution"); break;
    case AC::CALL:         printf ("call"); break;
    case AC::CONSTRUCTION: printf ("construction"); break;
    case AC::DESTRUCTION:  printf ("destruction"); break;
    default:               printf ("unknown");
    }
  }

  advice (execution ("% ...::%(...)") || call ("% ...::%(...)") ||
	  construction ("C") || destruction ("C")) &&
    !within ("JPTypePrinter") : before () {
    print_jp_type (JoinPoint::JPTYPE);
    printf (" join point %s\n", JoinPoint::signature ());
  }

};

class C {
public:
  void f () {}
};

int main () {
  printf ("JPType: checks the JPType number generation\n");
  printf ("===========================================\n");
  C c;
  c.f ();
  printf ("===========================================\n");
  return 0;
}