~ubuntu-branches/ubuntu/jaunty/aspectc++/jaunty

« back to all changes in this revision

Viewing changes to AspectC++/doc/QuickRef/ac++quickref.lyx

  • Committer: Bazaar Package Importer
  • Author(s): Reinhard Tartler
  • Date: 2008-07-07 14:41:02 UTC
  • mfrom: (1.1.3 upstream) (6.1.1 lenny)
  • Revision ID: james.westby@ubuntu.com-20080707144102-lzml7t07f3sl00r5
Tags: 1.0pre4~svn.20080711-1
* new upstream snapshot.
* include all upstream documentation. Clarifying emails regarding
  licensing has been included into debian/copyright.
* reformat description following recomendations of
  http://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Description
  (Closes: #480316)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#LyX 1.5.1 created this file. For more info see http://www.lyx.org/
 
2
\lyxformat 276
 
3
\begin_document
 
4
\begin_header
 
5
\textclass article
 
6
\begin_preamble
 
7
 
 
8
%%  multi column support 
 
9
\usepackage{multicol}
 
10
 
 
11
%%  25 points separation between columns
 
12
\setlength{\columnsep}{25pt}
 
13
 
 
14
%%  7 mm space before grammar rules
 
15
\def\ruleind{\hspace{14pt}}
 
16
 
 
17
%%  special footnote symbols  
 
18
\renewcommand{\thefootnote}{\fnsymbol{footnote}}
 
19
 
 
20
%%  space between description lines halved
 
21
\def\myskip{10pt}
 
22
\renewenvironment{description}
 
23
  {\list{}{
 
24
     \labelwidth\z@ \itemindent-\leftmargin     
 
25
     \addtolength\itemindent{\myskip}
 
26
     \let\makelabel\descriptionlabel}
 
27
   \itemsep=-4pt\leftskip-\myskip}% 
 
28
  {\endlist}
 
29
 
 
30
%%  horizontal line over section name
 
31
\renewcommand\section{% 
 
32
  {\vspace*{\medskipamount}\hrule height 2pt}%
 
33
  {\vspace*{-10pt}}%
 
34
  \@startsection {section}{1}{\z@}% 
 
35
  {-3.5ex \@plus -1ex \@minus -.2ex}% 
 
36
  {2.3ex \@plus.2ex}% 
 
37
  {\normalfont\Large\bfseries}}
 
38
 
 
39
%%  less vertical space before subsubsections
 
40
\renewcommand\subsubsection{% 
 
41
  {\vspace*{-15pt}}% 
 
42
  \@startsection{subsubsection}{3}{\z@}% 
 
43
  {-3.25ex\@plus -1ex \@minus -.2ex}% 
 
44
  {1.5ex \@plus .2ex}% 
 
45
  {\normalfont\normalsize\bfseries}}
 
46
\end_preamble
 
47
\language english
 
48
\inputencoding auto
 
49
\font_roman times
 
50
\font_sans helvet
 
51
\font_typewriter courier
 
52
\font_default_family default
 
53
\font_sc false
 
54
\font_osf false
 
55
\font_sf_scale 100
 
56
\font_tt_scale 100
 
57
\graphics default
 
58
\paperfontsize 10
 
59
\spacing other 0.90
 
60
\papersize a4paper
 
61
\use_geometry true
 
62
\use_amsmath 1
 
63
\use_esint 0
 
64
\cite_engine basic
 
65
\use_bibtopic false
 
66
\paperorientation landscape
 
67
\leftmargin 1cm
 
68
\topmargin 0.7cm
 
69
\rightmargin 2.5cm
 
70
\bottommargin 0.7cm
 
71
\secnumdepth 3
 
72
\tocdepth 3
 
73
\paragraph_separation indent
 
74
\defskip medskip
 
75
\quotes_language english
 
76
\papercolumns 1
 
77
\papersides 2
 
78
\paperpagestyle empty
 
79
\tracking_changes false
 
80
\output_changes false
 
81
\author "" 
 
82
\end_header
 
83
 
 
84
\begin_body
 
85
 
 
86
\begin_layout Standard
 
87
\noindent
 
88
\begin_inset ERT
 
89
status collapsed
 
90
 
 
91
\begin_layout Standard
 
92
 
 
93
 
 
94
\backslash
 
95
begin{multicols*}{3}
 
96
\end_layout
 
97
 
 
98
\end_inset
 
99
 
 
100
 
 
101
\end_layout
 
102
 
 
103
\begin_layout Standard
 
104
\noindent
 
105
 
 
106
\series bold
 
107
\size largest
 
108
\emph on
 
109
AspectC++ Quick Reference
 
110
\end_layout
 
111
 
 
112
\begin_layout Section*
 
113
 
 
114
\family sans
 
115
Concepts
 
116
\end_layout
 
117
 
 
118
\begin_layout Description
 
119
 
 
120
\series medium
 
121
\size small
 
122
\emph on
 
123
aspect
 
124
\series default
 
125
\emph default
 
126
 \InsetSpace ~
 
127
 
 
128
\newline
 
129
Aspects in AspectC++ implement in a modular way crosscutting concerns and
 
130
 are an extension to the class concept of C++.
 
131
 Additionally to attributes and methods, aspects may also contain 
 
132
\emph on
 
133
advice declarations
 
134
\emph default
 
135
.
 
136
\end_layout
 
137
 
 
138
\begin_layout Description
 
139
 
 
140
\series medium
 
141
\size small
 
142
\emph on
 
143
advice
 
144
\series default
 
145
\emph default
 
146
 \InsetSpace ~
 
147
 
 
148
\newline
 
149
An advice declaration is used either to specify code that should run when
 
150
 the 
 
151
\emph on
 
152
join points
 
153
\emph default
 
154
 specified by a 
 
155
\emph on
 
156
pointcut expression
 
157
\emph default
 
158
 are reached or to introduce a new method, attribute, or type to all 
 
159
\emph on
 
160
join points
 
161
\emph default
 
162
 specified by a 
 
163
\emph on
 
164
pointcut expression
 
165
\emph default
 
166
.
 
167
\end_layout
 
168
 
 
169
\begin_layout Description
 
170
 
 
171
\series medium
 
172
\size small
 
173
\emph on
 
174
slice
 
175
\series default
 
176
\emph default
 
177
 \InsetSpace ~
 
178
 
 
179
\newline
 
180
A slice is a fragment of a C++ element like a class.
 
181
 It may be used by introduction advice to implemented static extensions
 
182
 of the program.
 
183
\end_layout
 
184
 
 
185
\begin_layout Description
 
186
 
 
187
\series medium
 
188
\size small
 
189
\emph on
 
190
join\InsetSpace ~
 
191
point
 
192
\series default
 
193
\emph default
 
194
 \InsetSpace ~
 
195
 
 
196
\newline
 
197
In AspectC++ join points are defined as points in the component code where
 
198
 aspects can interfere.
 
199
 A join point refers to a method, an attribute, a type (class, struct, or
 
200
 union), an object, or a point from which a join point is accessed.
 
201
\end_layout
 
202
 
 
203
\begin_layout Description
 
204
 
 
205
\series medium
 
206
\size small
 
207
\emph on
 
208
pointcut
 
209
\series default
 
210
\emph default
 
211
 \InsetSpace ~
 
212
 
 
213
\newline
 
214
A pointcut is a set of join points described by a 
 
215
\emph on
 
216
pointcut expression
 
217
\emph default
 
218
.
 
219
\end_layout
 
220
 
 
221
\begin_layout Description
 
222
 
 
223
\series medium
 
224
\size small
 
225
\emph on
 
226
pointcut\InsetSpace ~
 
227
expression
 
228
\series default
 
229
\emph default
 
230
 \InsetSpace ~
 
231
 
 
232
\newline
 
233
Pointcut expressions are composed from 
 
234
\emph on
 
235
match expressions
 
236
\emph default
 
237
 used to find a set of join points, from pointcut functions used to filter
 
238
 or map specific join points from a pointcut, and from algebraic operators
 
239
 used to combine pointcuts.
 
240
\end_layout
 
241
 
 
242
\begin_layout Description
 
243
 
 
244
\series medium
 
245
\size small
 
246
\emph on
 
247
match\InsetSpace ~
 
248
expression
 
249
\series default
 
250
\emph default
 
251
 \InsetSpace ~
 
252
 
 
253
\newline
 
254
Match expressions are strings containing a search pattern.
 
255
\end_layout
 
256
 
 
257
\begin_layout Description
 
258
 
 
259
\series medium
 
260
\size small
 
261
\emph on
 
262
order
 
263
\series default
 
264
\InsetSpace ~
 
265
 
 
266
\series medium
 
267
declaration
 
268
\series default
 
269
\emph default
 
270
 \InsetSpace ~
 
271
 
 
272
\newline
 
273
If more than one 
 
274
\emph on
 
275
aspect
 
276
\emph default
 
277
 affects the same 
 
278
\emph on
 
279
join point
 
280
\emph default
 
281
 an 
 
282
\emph on
 
283
order declaration
 
284
\emph default
 
285
 can be used to define the order of advice code execution.
 
286
\end_layout
 
287
 
 
288
\begin_layout Section*
 
289
 
 
290
\family sans
 
291
Aspects
 
292
\end_layout
 
293
 
 
294
\begin_layout Standard
 
295
\noindent
 
296
 
 
297
\size small
 
298
Writing aspects works very similar to writing C++ class definitions.
 
299
 Aspects may define ordinary class members as well as advice.
 
300
\end_layout
 
301
 
 
302
\begin_layout Description
 
303
 
 
304
\family sans
 
305
\size small
 
306
aspect\InsetSpace ~
 
307
 
 
308
\series medium
 
309
\emph on
 
310
A
 
311
\series default
 
312
\emph default
 
313
\InsetSpace ~
 
314
{\InsetSpace ~
 
315
...\InsetSpace ~
 
316
}; \InsetSpace ~
 
317
 
 
318
\family default
 
319
 
 
320
\newline
 
321
defines the aspect 
 
322
\emph on
 
323
A
 
324
\end_layout
 
325
 
 
326
\begin_layout Description
 
327
 
 
328
\family sans
 
329
\size small
 
330
aspect\InsetSpace ~
 
331
 
 
332
\series medium
 
333
\emph on
 
334
A
 
335
\series default
 
336
\emph default
 
337
\InsetSpace ~
 
338
:\InsetSpace ~
 
339
 
 
340
\series medium
 
341
\emph on
 
342
public\InsetSpace ~
 
343
B
 
344
\series default
 
345
\emph default
 
346
\InsetSpace ~
 
347
{\InsetSpace ~
 
348
...\InsetSpace ~
 
349
};
 
350
\family default
 
351
 \InsetSpace ~
 
352
 
 
353
\newline
 
354
 
 
355
\emph on
 
356
A
 
357
\emph default
 
358
 inherits from class or aspect 
 
359
\emph on
 
360
B
 
361
\begin_inset ERT
 
362
status open
 
363
 
 
364
\begin_layout Standard
 
365
 
 
366
 
 
367
\backslash
 
368
columnbreak
 
369
\end_layout
 
370
 
 
371
\end_inset
 
372
 
 
373
 
 
374
\end_layout
 
375
 
 
376
\begin_layout Section*
 
377
 
 
378
\family sans
 
379
Advice Declarations
 
380
\end_layout
 
381
 
 
382
\begin_layout Description
 
383
 
 
384
\family sans
 
385
\size small
 
386
advice
 
387
\series medium
 
388
\InsetSpace ~
 
389
 
 
390
\emph on
 
391
pointcut
 
392
\emph default
 
393
\InsetSpace ~
 
394
:\InsetSpace ~
 
395
 
 
396
\series default
 
397
before
 
398
\series medium
 
399
(...)\InsetSpace ~
 
400
{...}
 
401
\family default
 
402
\series default
 
403
 \InsetSpace ~
 
404
 
 
405
\newline
 
406
the advice code is executed before the join points in the pointcut
 
407
\end_layout
 
408
 
 
409
\begin_layout Description
 
410
 
 
411
\family sans
 
412
\size small
 
413
advice
 
414
\series medium
 
415
\InsetSpace ~
 
416
 
 
417
\emph on
 
418
pointcut
 
419
\emph default
 
420
\InsetSpace ~
 
421
:\InsetSpace ~
 
422
 
 
423
\series default
 
424
after
 
425
\series medium
 
426
(...)\InsetSpace ~
 
427
{...}
 
428
\family default
 
429
\series default
 
430
 \InsetSpace ~
 
431
 
 
432
\newline
 
433
the advice code is executed after the join points in the pointcut
 
434
\end_layout
 
435
 
 
436
\begin_layout Description
 
437
 
 
438
\family sans
 
439
\size small
 
440
advice
 
441
\series medium
 
442
\InsetSpace ~
 
443
 
 
444
\emph on
 
445
pointcut
 
446
\emph default
 
447
\InsetSpace ~
 
448
:\InsetSpace ~
 
449
 
 
450
\series default
 
451
around
 
452
\series medium
 
453
(...)\InsetSpace ~
 
454
{...}
 
455
\family default
 
456
\series default
 
457
 
 
458
\family sans
 
459
\InsetSpace ~
 
460
 
 
461
\family default
 
462
 
 
463
\newline
 
464
the advice code is executed in place of the join points in the pointcut
 
465
\end_layout
 
466
 
 
467
\begin_layout Description
 
468
 
 
469
\family sans
 
470
\size small
 
471
advice
 
472
\series medium
 
473
\InsetSpace ~
 
474
 
 
475
\emph on
 
476
pointcut
 
477
\emph default
 
478
\InsetSpace ~
 
479
:\InsetSpace ~
 
480
 
 
481
\series default
 
482
order
 
483
\series medium
 
484
(
 
485
\emph on
 
486
high
 
487
\emph default
 
488
,
 
489
\family default
 
490
\series default
 
491
 
 
492
\family sans
 
493
...
 
494
\emph on
 
495
low
 
496
\emph default
 
497
)
 
498
\series bold
 
499
;
 
500
\family default
 
501
\series default
 
502
 
 
503
\newline
 
504
 
 
505
\emph on
 
506
high
 
507
\emph default
 
508
 and 
 
509
\emph on
 
510
low
 
511
\emph default
 
512
 are pointcuts, which describe sets of aspects.
 
513
 Aspects on the left side of the argument list always have a higher precedence
 
514
 than aspects on the right hand side at the join points, where the order
 
515
 declaration is applied.
 
516
\end_layout
 
517
 
 
518
\begin_layout Description
 
519
 
 
520
\family sans
 
521
\size small
 
522
advice
 
523
\series medium
 
524
\InsetSpace ~
 
525
 
 
526
\emph on
 
527
pointcut
 
528
\emph default
 
529
\InsetSpace ~
 
530
:\InsetSpace ~
 
531
 
 
532
\series default
 
533
slice
 
534
\series medium
 
535
\InsetSpace ~
 
536
 
 
537
\series default
 
538
class
 
539
\series medium
 
540
\InsetSpace ~
 
541
:\InsetSpace ~
 
542
 
 
543
\series default
 
544
public
 
545
\series medium
 
546
\InsetSpace ~
 
547
 
 
548
\emph on
 
549
Base
 
550
\emph default
 
551
\InsetSpace ~
 
552
{...}
 
553
\family default
 
554
\series default
 
555
 
 
556
\family sans
 
557
\InsetSpace ~
 
558
 
 
559
\family default
 
560
 
 
561
\newline
 
562
introduces a new base class 
 
563
\emph on
 
564
Base
 
565
\emph default
 
566
 and members into the target classes matched by 
 
567
\emph on
 
568
pointcut
 
569
\emph default
 
570
.
 
571
\end_layout
 
572
 
 
573
\begin_layout Description
 
574
 
 
575
\family sans
 
576
\size small
 
577
advice
 
578
\series medium
 
579
\InsetSpace ~
 
580
 
 
581
\emph on
 
582
pointcut
 
583
\emph default
 
584
\InsetSpace ~
 
585
:\InsetSpace ~
 
586
 
 
587
\series default
 
588
slice
 
589
\series medium
 
590
\InsetSpace ~
 
591
 
 
592
\emph on
 
593
ASlice\InsetSpace ~
 
594
 
 
595
\series default
 
596
\emph default
 
597
; \InsetSpace ~
 
598
 
 
599
\family default
 
600
 
 
601
\newline
 
602
introduces the slice 
 
603
\emph on
 
604
ASlice
 
605
\emph default
 
606
 into the target classes matched by 
 
607
\emph on
 
608
pointcut
 
609
\emph default
 
610
.
 
611
\end_layout
 
612
 
 
613
\begin_layout Section*
 
614
 
 
615
\family sans
 
616
Pointcut Expressions
 
617
\end_layout
 
618
 
 
619
\begin_layout Standard
 
620
\begin_inset VSpace 15pt*
 
621
\end_inset
 
622
 
 
623
 
 
624
\end_layout
 
625
 
 
626
\begin_layout Subsubsection*
 
627
 
 
628
\family sans
 
629
\emph on
 
630
Type Matching
 
631
\end_layout
 
632
 
 
633
\begin_layout Description
 
634
 
 
635
\family typewriter
 
636
\series medium
 
637
\size small
 
638
"int"
 
639
\family default
 
640
\series default
 
641
 \InsetSpace ~
 
642
 
 
643
\newline
 
644
matches the C++ built-in scalar type 
 
645
\family typewriter
 
646
int
 
647
\end_layout
 
648
 
 
649
\begin_layout Description
 
650
 
 
651
\family typewriter
 
652
\series medium
 
653
\size small
 
654
"%\InsetSpace ~
 
655
*"
 
656
\family default
 
657
\series default
 
658
 \InsetSpace ~
 
659
 
 
660
\newline
 
661
matches any pointer type
 
662
\end_layout
 
663
 
 
664
\begin_layout Subsubsection*
 
665
 
 
666
\family sans
 
667
\emph on
 
668
Namespace and Class Matching
 
669
\end_layout
 
670
 
 
671
\begin_layout Description
 
672
 
 
673
\family typewriter
 
674
\series medium
 
675
\size small
 
676
"Chain"
 
677
\family default
 
678
\series default
 
679
 \InsetSpace ~
 
680
 
 
681
\newline
 
682
matches the class, struct or union 
 
683
\emph on
 
684
Chain
 
685
\end_layout
 
686
 
 
687
\begin_layout Description
 
688
 
 
689
\family typewriter
 
690
\series medium
 
691
\size small
 
692
"Memory%"
 
693
\family default
 
694
\series default
 
695
 \InsetSpace ~
 
696
 
 
697
\newline
 
698
matches any class, struct or union whose name starts with 
 
699
\begin_inset Quotes eld
 
700
\end_inset
 
701
 
 
702
Memory
 
703
\begin_inset Quotes erd
 
704
\end_inset
 
705
 
 
706
 
 
707
\end_layout
 
708
 
 
709
\begin_layout Subsubsection*
 
710
 
 
711
\family sans
 
712
\emph on
 
713
Function Matching
 
714
\end_layout
 
715
 
 
716
\begin_layout Description
 
717
 
 
718
\family typewriter
 
719
\series medium
 
720
\size small
 
721
"void
 
722
\family default
 
723
\series default
 
724
 
 
725
\family typewriter
 
726
reset()"
 
727
\family default
 
728
 \InsetSpace ~
 
729
 
 
730
\newline
 
731
matches the function 
 
732
\emph on
 
733
reset
 
734
\emph default
 
735
 having no parameters and returning 
 
736
\family typewriter
 
737
void
 
738
\end_layout
 
739
 
 
740
\begin_layout Description
 
741
 
 
742
\family typewriter
 
743
\series medium
 
744
\size small
 
745
"%
 
746
\family default
 
747
\series default
 
748
 
 
749
\family typewriter
 
750
printf(...)"
 
751
\family default
 
752
 \InsetSpace ~
 
753
 
 
754
\newline
 
755
matches the function 
 
756
\emph on
 
757
printf
 
758
\emph default
 
759
 having any number of parameters and returning any type
 
760
\end_layout
 
761
 
 
762
\begin_layout Description
 
763
 
 
764
\family typewriter
 
765
\series medium
 
766
\size small
 
767
"%
 
768
\family default
 
769
\series default
 
770
 
 
771
\family typewriter
 
772
...::%(...)"
 
773
\family default
 
774
 \InsetSpace ~
 
775
 
 
776
\newline
 
777
matches any function, operator function, or type conversion function (in
 
778
 any class or namespace) 
 
779
\end_layout
 
780
 
 
781
\begin_layout Description
 
782
 
 
783
\family typewriter
 
784
\series medium
 
785
\size small
 
786
"%
 
787
\family default
 
788
\series default
 
789
 
 
790
\family typewriter
 
791
...::Service::%(...) const"
 
792
\family default
 
793
 \InsetSpace ~
 
794
 
 
795
\newline
 
796
matches any const member-function of the class 
 
797
\family typewriter
 
798
Service
 
799
\family default
 
800
 defined in any scope
 
801
\end_layout
 
802
 
 
803
\begin_layout Description
 
804
 
 
805
\family typewriter
 
806
\series medium
 
807
\size small
 
808
"%
 
809
\family default
 
810
\series default
 
811
 
 
812
\family typewriter
 
813
...::operator %(...)"
 
814
\family default
 
815
 \InsetSpace ~
 
816
 
 
817
\newline
 
818
matches any type conversion function
 
819
\end_layout
 
820
 
 
821
\begin_layout Description
 
822
 
 
823
\family typewriter
 
824
\series medium
 
825
\size small
 
826
"virtual %
 
827
\family default
 
828
\series default
 
829
 
 
830
\family typewriter
 
831
C::%(...)"
 
832
\family default
 
833
 \InsetSpace ~
 
834
 
 
835
\newline
 
836
matches any virtual member function of 
 
837
\family typewriter
 
838
C
 
839
\end_layout
 
840
 
 
841
\begin_layout Subsubsection*
 
842
 
 
843
\family sans
 
844
\emph on
 
845
Template Matching
 
846
\family default
 
847
\series medium
 
848
\emph default
 
849
 
 
850
\begin_inset ERT
 
851
status collapsed
 
852
 
 
853
\begin_layout Standard
 
854
 
 
855
 
 
856
\backslash
 
857
footnotemark[2]
 
858
\end_layout
 
859
 
 
860
\end_inset
 
861
 
 
862
 
 
863
\series default
 
864
 
 
865
\end_layout
 
866
 
 
867
\begin_layout Description
 
868
 
 
869
\family typewriter
 
870
\series medium
 
871
\size small
 
872
"std::set<...>"
 
873
\family default
 
874
\series default
 
875
 \InsetSpace ~
 
876
 
 
877
\newline
 
878
matches all template instances of the class 
 
879
\emph on
 
880
std::set
 
881
\end_layout
 
882
 
 
883
\begin_layout Description
 
884
 
 
885
\family typewriter
 
886
\series medium
 
887
\size small
 
888
"std::set<int>"
 
889
\family default
 
890
\series default
 
891
 \InsetSpace ~
 
892
 
 
893
\newline
 
894
matches only the template instance 
 
895
\emph on
 
896
std::set<int>
 
897
\emph default
 
898
 
 
899
\end_layout
 
900
 
 
901
\begin_layout Description
 
902
 
 
903
\family typewriter
 
904
\series medium
 
905
\size small
 
906
"%
 
907
\family default
 
908
\series default
 
909
 
 
910
\family typewriter
 
911
...::%<...>::%(...)"
 
912
\family default
 
913
 \InsetSpace ~
 
914
 
 
915
\newline
 
916
matches any member function from any template class instance in any scope
 
917
\end_layout
 
918
 
 
919
\begin_layout Section*
 
920
 
 
921
\family sans
 
922
Predefined Pointcut Functions
 
923
\end_layout
 
924
 
 
925
\begin_layout Standard
 
926
\begin_inset VSpace 15pt*
 
927
\end_inset
 
928
 
 
929
 
 
930
\end_layout
 
931
 
 
932
\begin_layout Subsubsection*
 
933
 
 
934
\family sans
 
935
\emph on
 
936
Functions
 
937
\end_layout
 
938
 
 
939
\begin_layout Description
 
940
 
 
941
\family sans
 
942
\size small
 
943
call
 
944
\series medium
 
945
(
 
946
\emph on
 
947
pointcut
 
948
\emph default
 
949
)
 
950
\family default
 
951
\series default
 
952
 
 
953
\begin_inset ERT
 
954
status collapsed
 
955
 
 
956
\begin_layout Standard
 
957
 
 
958
 
 
959
\backslash
 
960
hfill 
 
961
\end_layout
 
962
 
 
963
\end_inset
 
964
 
 
965
 
 
966
\size scriptsize
 
967
N
 
968
\begin_inset Formula $\rightarrow$
 
969
\end_inset
 
970
 
 
971
C
 
972
\begin_inset Formula $_{C}$
 
973
\end_inset
 
974
 
 
975
 
 
976
\size small
 
977
 
 
978
\begin_inset ERT
 
979
status collapsed
 
980
 
 
981
\begin_layout Standard
 
982
 
 
983
 
 
984
\backslash
 
985
footnotemark[9]
 
986
\end_layout
 
987
 
 
988
\end_inset
 
989
 
 
990
 
 
991
\newline
 
992
provides all join points where a named entity in the 
 
993
\emph on
 
994
pointcut
 
995
\emph default
 
996
 is called.
 
997
\end_layout
 
998
 
 
999
\begin_layout Description
 
1000
 
 
1001
\family sans
 
1002
\size small
 
1003
execution
 
1004
\series medium
 
1005
(
 
1006
\emph on
 
1007
pointcut
 
1008
\emph default
 
1009
)
 
1010
\family default
 
1011
\series default
 
1012
 
 
1013
\begin_inset ERT
 
1014
status collapsed
 
1015
 
 
1016
\begin_layout Standard
 
1017
 
 
1018
 
 
1019
\backslash
 
1020
hfill 
 
1021
\end_layout
 
1022
 
 
1023
\end_inset
 
1024
 
 
1025
 
 
1026
\size scriptsize
 
1027
N
 
1028
\begin_inset Formula $\rightarrow$
 
1029
\end_inset
 
1030
 
 
1031
C
 
1032
\begin_inset Formula $_{E}$
 
1033
\end_inset
 
1034
 
 
1035
 
 
1036
\size small
 
1037
 
 
1038
\newline
 
1039
provides all join points referring to the implementation of a named entity
 
1040
 in the 
 
1041
\emph on
 
1042
pointcut
 
1043
\emph default
 
1044
.
 
1045
\end_layout
 
1046
 
 
1047
\begin_layout Description
 
1048
 
 
1049
\family sans
 
1050
\size small
 
1051
construction
 
1052
\series medium
 
1053
(
 
1054
\emph on
 
1055
pointcut
 
1056
\emph default
 
1057
)
 
1058
\family default
 
1059
\series default
 
1060
 
 
1061
\begin_inset ERT
 
1062
status collapsed
 
1063
 
 
1064
\begin_layout Standard
 
1065
 
 
1066
 
 
1067
\backslash
 
1068
hfill 
 
1069
\end_layout
 
1070
 
 
1071
\end_inset
 
1072
 
 
1073
 
 
1074
\size scriptsize
 
1075
N
 
1076
\begin_inset Formula $\rightarrow$
 
1077
\end_inset
 
1078
 
 
1079
C
 
1080
\begin_inset Formula $_{Cons}$
 
1081
\end_inset
 
1082
 
 
1083
 
 
1084
\size small
 
1085
 
 
1086
\newline
 
1087
all join points where an instance of the given class(es) is constructed.
 
1088
\end_layout
 
1089
 
 
1090
\begin_layout Description
 
1091
 
 
1092
\family sans
 
1093
\size small
 
1094
destruction
 
1095
\series medium
 
1096
(
 
1097
\emph on
 
1098
pointcut
 
1099
\emph default
 
1100
)
 
1101
\family default
 
1102
\series default
 
1103
 
 
1104
\begin_inset ERT
 
1105
status collapsed
 
1106
 
 
1107
\begin_layout Standard
 
1108
 
 
1109
 
 
1110
\backslash
 
1111
hfill 
 
1112
\end_layout
 
1113
 
 
1114
\end_inset
 
1115
 
 
1116
 
 
1117
\size scriptsize
 
1118
N
 
1119
\begin_inset Formula $\rightarrow$
 
1120
\end_inset
 
1121
 
 
1122
C
 
1123
\begin_inset Formula $_{Des}$
 
1124
\end_inset
 
1125
 
 
1126
 
 
1127
\size small
 
1128
 
 
1129
\newline
 
1130
all join points where an instance of the given class(es) is destructed.
 
1131
\end_layout
 
1132
 
 
1133
\begin_layout Standard
 
1134
 
 
1135
\size small
 
1136
\emph on
 
1137
pointcut
 
1138
\emph default
 
1139
 may contain function names or class names.
 
1140
 A class name is equivalent to the names of all functions defined within
 
1141
 its scope combined with the 
 
1142
\series bold
 
1143
||
 
1144
\series default
 
1145
 operator (see below).
 
1146
\begin_inset VSpace 8pt
 
1147
\end_inset
 
1148
 
 
1149
 
 
1150
\end_layout
 
1151
 
 
1152
\begin_layout Subsubsection*
 
1153
 
 
1154
\family sans
 
1155
\emph on
 
1156
Control Flow
 
1157
\end_layout
 
1158
 
 
1159
\begin_layout Description
 
1160
 
 
1161
\family sans
 
1162
\size small
 
1163
cflow
 
1164
\series medium
 
1165
(
 
1166
\emph on
 
1167
pointcut
 
1168
\emph default
 
1169
)
 
1170
\family default
 
1171
\series default
 
1172
 
 
1173
\begin_inset ERT
 
1174
status collapsed
 
1175
 
 
1176
\begin_layout Standard
 
1177
 
 
1178
 
 
1179
\backslash
 
1180
hfill 
 
1181
\end_layout
 
1182
 
 
1183
\end_inset
 
1184
 
 
1185
 
 
1186
\size scriptsize
 
1187
C
 
1188
\begin_inset Formula $\rightarrow$
 
1189
\end_inset
 
1190
 
 
1191
C
 
1192
\size small
 
1193
 
 
1194
\newline
 
1195
captures join points occuring in the dynamic execution context of join points
 
1196
 in the 
 
1197
\emph on
 
1198
pointcut
 
1199
\emph default
 
1200
.
 
1201
 The argument pointcut is forbidden to contain context variables or join
 
1202
 points with runtime conditions (currently cflow, that, or target).
 
1203
\end_layout
 
1204
 
 
1205
\begin_layout Subsubsection*
 
1206
 
 
1207
\family sans
 
1208
\emph on
 
1209
Types
 
1210
\end_layout
 
1211
 
 
1212
\begin_layout Description
 
1213
 
 
1214
\family sans
 
1215
\size small
 
1216
base
 
1217
\series medium
 
1218
(
 
1219
\emph on
 
1220
pointcut
 
1221
\emph default
 
1222
)
 
1223
\family default
 
1224
\series default
 
1225
 
 
1226
\begin_inset ERT
 
1227
status collapsed
 
1228
 
 
1229
\begin_layout Standard
 
1230
 
 
1231
 
 
1232
\backslash
 
1233
hfill 
 
1234
\end_layout
 
1235
 
 
1236
\end_inset
 
1237
 
 
1238
 
 
1239
\size scriptsize
 
1240
N
 
1241
\begin_inset Formula $\rightarrow$
 
1242
\end_inset
 
1243
 
 
1244
N
 
1245
\begin_inset Formula $_{C,F}$
 
1246
\end_inset
 
1247
 
 
1248
 
 
1249
\size small
 
1250
 
 
1251
\newline
 
1252
returns all base classes resp.\InsetSpace ~
 
1253
redefined functions of classes in the 
 
1254
\emph on
 
1255
pointcut
 
1256
\emph default
 
1257
 
 
1258
\end_layout
 
1259
 
 
1260
\begin_layout Description
 
1261
 
 
1262
\family sans
 
1263
\size small
 
1264
derived
 
1265
\series medium
 
1266
(
 
1267
\emph on
 
1268
pointcut
 
1269
\emph default
 
1270
)
 
1271
\family default
 
1272
\series default
 
1273
 
 
1274
\begin_inset ERT
 
1275
status collapsed
 
1276
 
 
1277
\begin_layout Standard
 
1278
 
 
1279
 
 
1280
\backslash
 
1281
hfill 
 
1282
\end_layout
 
1283
 
 
1284
\end_inset
 
1285
 
 
1286
 
 
1287
\size scriptsize
 
1288
N
 
1289
\begin_inset Formula $\rightarrow$
 
1290
\end_inset
 
1291
 
 
1292
N
 
1293
\begin_inset Formula $_{C,F}$
 
1294
\end_inset
 
1295
 
 
1296
 
 
1297
\size small
 
1298
 
 
1299
\newline
 
1300
returns all classes in the 
 
1301
\emph on
 
1302
pointcut
 
1303
\emph default
 
1304
 and all classes derived from them resp.\InsetSpace ~
 
1305
all redefined functions of derived
 
1306
 classes
 
1307
\end_layout
 
1308
 
 
1309
\begin_layout Subsubsection*
 
1310
 
 
1311
\family sans
 
1312
\emph on
 
1313
Scope
 
1314
\end_layout
 
1315
 
 
1316
\begin_layout Description
 
1317
 
 
1318
\family sans
 
1319
\size small
 
1320
within
 
1321
\series medium
 
1322
(
 
1323
\emph on
 
1324
pointcut
 
1325
\emph default
 
1326
)
 
1327
\family default
 
1328
\series default
 
1329
 
 
1330
\begin_inset ERT
 
1331
status collapsed
 
1332
 
 
1333
\begin_layout Standard
 
1334
 
 
1335
 
 
1336
\backslash
 
1337
hfill 
 
1338
\end_layout
 
1339
 
 
1340
\end_inset
 
1341
 
 
1342
 
 
1343
\size scriptsize
 
1344
N
 
1345
\begin_inset Formula $\rightarrow$
 
1346
\end_inset
 
1347
 
 
1348
C
 
1349
\size small
 
1350
 
 
1351
\newline
 
1352
filters all join points that are within the functions or classes in the
 
1353
 
 
1354
\emph on
 
1355
pointcut
 
1356
\end_layout
 
1357
 
 
1358
\begin_layout Subsubsection*
 
1359
 
 
1360
\family sans
 
1361
\emph on
 
1362
Context
 
1363
\end_layout
 
1364
 
 
1365
\begin_layout Description
 
1366
 
 
1367
\family sans
 
1368
\size small
 
1369
that
 
1370
\series medium
 
1371
(
 
1372
\emph on
 
1373
type\InsetSpace ~
 
1374
pattern
 
1375
\emph default
 
1376
)
 
1377
\family default
 
1378
\series default
 
1379
 
 
1380
\begin_inset ERT
 
1381
status collapsed
 
1382
 
 
1383
\begin_layout Standard
 
1384
 
 
1385
 
 
1386
\backslash
 
1387
hfill 
 
1388
\end_layout
 
1389
 
 
1390
\end_inset
 
1391
 
 
1392
 
 
1393
\size scriptsize
 
1394
N
 
1395
\begin_inset Formula $\rightarrow$
 
1396
\end_inset
 
1397
 
 
1398
C
 
1399
\size small
 
1400
 
 
1401
\newline
 
1402
returns all join points where the current C++ 
 
1403
\family typewriter
 
1404
this
 
1405
\family default
 
1406
 pointer refers to an object which is an instance of a type that is compatible
 
1407
 to the type described by the 
 
1408
\emph on
 
1409
type pattern
 
1410
\end_layout
 
1411
 
 
1412
\begin_layout Description
 
1413
 
 
1414
\family sans
 
1415
\size small
 
1416
target
 
1417
\series medium
 
1418
(
 
1419
\emph on
 
1420
type\InsetSpace ~
 
1421
pattern
 
1422
\emph default
 
1423
)
 
1424
\family default
 
1425
\series default
 
1426
 
 
1427
\begin_inset ERT
 
1428
status collapsed
 
1429
 
 
1430
\begin_layout Standard
 
1431
 
 
1432
 
 
1433
\backslash
 
1434
hfill 
 
1435
\end_layout
 
1436
 
 
1437
\end_inset
 
1438
 
 
1439
 
 
1440
\size scriptsize
 
1441
N
 
1442
\begin_inset Formula $\rightarrow$
 
1443
\end_inset
 
1444
 
 
1445
C
 
1446
\size small
 
1447
 
 
1448
\newline
 
1449
returns all join points where the target object of a call is an instance
 
1450
 of a type that is compatible to the type described by the 
 
1451
\emph on
 
1452
type pattern
 
1453
\end_layout
 
1454
 
 
1455
\begin_layout Description
 
1456
 
 
1457
\family sans
 
1458
\size small
 
1459
result
 
1460
\series medium
 
1461
(
 
1462
\emph on
 
1463
type\InsetSpace ~
 
1464
pattern
 
1465
\emph default
 
1466
)
 
1467
\family default
 
1468
\series default
 
1469
 
 
1470
\begin_inset ERT
 
1471
status collapsed
 
1472
 
 
1473
\begin_layout Standard
 
1474
 
 
1475
 
 
1476
\backslash
 
1477
hfill 
 
1478
\end_layout
 
1479
 
 
1480
\end_inset
 
1481
 
 
1482
 
 
1483
\size scriptsize
 
1484
N
 
1485
\begin_inset Formula $\rightarrow$
 
1486
\end_inset
 
1487
 
 
1488
C
 
1489
\size small
 
1490
 
 
1491
\newline
 
1492
returns all join points where the result object of a call/execution is an
 
1493
 instance of a type described by the 
 
1494
\emph on
 
1495
type pattern
 
1496
\end_layout
 
1497
 
 
1498
\begin_layout Description
 
1499
 
 
1500
\family sans
 
1501
\size small
 
1502
args
 
1503
\series medium
 
1504
(
 
1505
\emph on
 
1506
type\InsetSpace ~
 
1507
pattern
 
1508
\emph default
 
1509
,\InsetSpace ~
 
1510
...)
 
1511
\family default
 
1512
\series default
 
1513
 
 
1514
\begin_inset ERT
 
1515
status collapsed
 
1516
 
 
1517
\begin_layout Standard
 
1518
 
 
1519
 
 
1520
\backslash
 
1521
hfill 
 
1522
\end_layout
 
1523
 
 
1524
\end_inset
 
1525
 
 
1526
 
 
1527
\size scriptsize
 
1528
(N,...)
 
1529
\begin_inset Formula $\rightarrow$
 
1530
\end_inset
 
1531
 
 
1532
C
 
1533
\size small
 
1534
 
 
1535
\newline
 
1536
a list of 
 
1537
\emph on
 
1538
type patterns
 
1539
\emph default
 
1540
 is used to provide all joinpoints with matching argument signatures
 
1541
\end_layout
 
1542
 
 
1543
\begin_layout Standard
 
1544
 
 
1545
\size small
 
1546
Instead of the 
 
1547
\emph on
 
1548
type pattern
 
1549
\emph default
 
1550
 it is possible here to pass the name of a 
 
1551
\series bold
 
1552
context variable
 
1553
\series default
 
1554
 to which the context information is bound.
 
1555
 In this case the type of the variable is used for the type matching.
 
1556
\end_layout
 
1557
 
 
1558
\begin_layout Standard
 
1559
\begin_inset VSpace 15pt*
 
1560
\end_inset
 
1561
 
 
1562
 
 
1563
\end_layout
 
1564
 
 
1565
\begin_layout Subsubsection*
 
1566
 
 
1567
\family sans
 
1568
\emph on
 
1569
Algebraic Operators
 
1570
\end_layout
 
1571
 
 
1572
\begin_layout Description
 
1573
 
 
1574
\family sans
 
1575
\series medium
 
1576
\size small
 
1577
\emph on
 
1578
pointcut
 
1579
\series default
 
1580
\emph default
 
1581
\InsetSpace ~
 
1582
&&
 
1583
\series medium
 
1584
\emph on
 
1585
\InsetSpace ~
 
1586
pointcut
 
1587
\family default
 
1588
\series default
 
1589
\emph default
 
1590
 
 
1591
\begin_inset ERT
 
1592
status collapsed
 
1593
 
 
1594
\begin_layout Standard
 
1595
 
 
1596
 
 
1597
\backslash
 
1598
hfill 
 
1599
\end_layout
 
1600
 
 
1601
\end_inset
 
1602
 
 
1603
 
 
1604
\size scriptsize
 
1605
(N,N)
 
1606
\begin_inset Formula $\rightarrow$
 
1607
\end_inset
 
1608
 
 
1609
N, (C,C)
 
1610
\begin_inset Formula $\rightarrow$
 
1611
\end_inset
 
1612
 
 
1613
C
 
1614
\size small
 
1615
 
 
1616
\newline
 
1617
intersection of the join points in the 
 
1618
\emph on
 
1619
pointcuts
 
1620
\end_layout
 
1621
 
 
1622
\begin_layout Description
 
1623
 
 
1624
\family sans
 
1625
\series medium
 
1626
\size small
 
1627
\emph on
 
1628
pointcut
 
1629
\series default
 
1630
\emph default
 
1631
\InsetSpace ~
 
1632
||
 
1633
\series medium
 
1634
\emph on
 
1635
\InsetSpace ~
 
1636
pointcut
 
1637
\family default
 
1638
\series default
 
1639
\emph default
 
1640
 
 
1641
\begin_inset ERT
 
1642
status collapsed
 
1643
 
 
1644
\begin_layout Standard
 
1645
 
 
1646
 
 
1647
\backslash
 
1648
hfill 
 
1649
\end_layout
 
1650
 
 
1651
\end_inset
 
1652
 
 
1653
 
 
1654
\size scriptsize
 
1655
(N,N)
 
1656
\begin_inset Formula $\rightarrow$
 
1657
\end_inset
 
1658
 
 
1659
N, (C,C)
 
1660
\begin_inset Formula $\rightarrow$
 
1661
\end_inset
 
1662
 
 
1663
C
 
1664
\size small
 
1665
 
 
1666
\newline
 
1667
union of the join points in the 
 
1668
\emph on
 
1669
pointcuts
 
1670
\end_layout
 
1671
 
 
1672
\begin_layout Description
 
1673
 
 
1674
\family sans
 
1675
\size small
 
1676
!
 
1677
\series medium
 
1678
\emph on
 
1679
\InsetSpace ~
 
1680
pointcut
 
1681
\family default
 
1682
\series default
 
1683
\emph default
 
1684
 
 
1685
\begin_inset ERT
 
1686
status collapsed
 
1687
 
 
1688
\begin_layout Standard
 
1689
 
 
1690
 
 
1691
\backslash
 
1692
hfill 
 
1693
\end_layout
 
1694
 
 
1695
\end_inset
 
1696
 
 
1697
 
 
1698
\size scriptsize
 
1699
N
 
1700
\begin_inset Formula $\rightarrow$
 
1701
\end_inset
 
1702
 
 
1703
N, C
 
1704
\begin_inset Formula $\rightarrow$
 
1705
\end_inset
 
1706
 
 
1707
C
 
1708
\size small
 
1709
 
 
1710
\newline
 
1711
exclusion of the join points in the 
 
1712
\emph on
 
1713
pointcut
 
1714
\end_layout
 
1715
 
 
1716
\begin_layout Section*
 
1717
 
 
1718
\family sans
 
1719
JoinPoint-API
 
1720
\end_layout
 
1721
 
 
1722
\begin_layout Standard
 
1723
 
 
1724
\size small
 
1725
The JoinPoint-API is provided within every advice code body by the built-in
 
1726
 object 
 
1727
\series bold
 
1728
tjp
 
1729
\series default
 
1730
 of class 
 
1731
\series bold
 
1732
JoinPoint
 
1733
\series default
 
1734
.
 
1735
\begin_inset VSpace 15pt
 
1736
\end_inset
 
1737
 
 
1738
 
 
1739
\end_layout
 
1740
 
 
1741
\begin_layout Subsubsection*
 
1742
 
 
1743
\family sans
 
1744
\emph on
 
1745
Compile-time Types and Constants
 
1746
\end_layout
 
1747
 
 
1748
\begin_layout Description
 
1749
 
 
1750
\family sans
 
1751
\series medium
 
1752
\size small
 
1753
\emph on
 
1754
That
 
1755
\family default
 
1756
\series default
 
1757
\emph default
 
1758
 
 
1759
\family sans
 
1760
\size scriptsize
 
1761
\InsetSpace ~
 
1762
 
 
1763
\family default
 
1764
\size small
 
1765
 
 
1766
\begin_inset ERT
 
1767
status collapsed
 
1768
 
 
1769
\begin_layout Standard
 
1770
 
 
1771
 
 
1772
\backslash
 
1773
hfill 
 
1774
\end_layout
 
1775
 
 
1776
\end_inset
 
1777
 
 
1778
 
 
1779
\family sans
 
1780
\size scriptsize
 
1781
[type]
 
1782
\family default
 
1783
\size small
 
1784
 
 
1785
\newline
 
1786
object type (object initiating a call)
 
1787
\end_layout
 
1788
 
 
1789
\begin_layout Description
 
1790
 
 
1791
\family sans
 
1792
\series medium
 
1793
\size small
 
1794
\emph on
 
1795
Target
 
1796
\family default
 
1797
\series default
 
1798
\emph default
 
1799
 
 
1800
\family sans
 
1801
\size scriptsize
 
1802
\InsetSpace ~
 
1803
 
 
1804
\family default
 
1805
\size small
 
1806
 
 
1807
\begin_inset ERT
 
1808
status collapsed
 
1809
 
 
1810
\begin_layout Standard
 
1811
 
 
1812
 
 
1813
\backslash
 
1814
hfill 
 
1815
\end_layout
 
1816
 
 
1817
\end_inset
 
1818
 
 
1819
 
 
1820
\family sans
 
1821
\size scriptsize
 
1822
[type]
 
1823
\family default
 
1824
\size small
 
1825
 
 
1826
\newline
 
1827
target object type (target object of a call)
 
1828
\end_layout
 
1829
 
 
1830
\begin_layout Description
 
1831
 
 
1832
\family sans
 
1833
\series medium
 
1834
\size small
 
1835
\emph on
 
1836
Result
 
1837
\family default
 
1838
\series default
 
1839
\emph default
 
1840
 
 
1841
\family sans
 
1842
\size scriptsize
 
1843
\InsetSpace ~
 
1844
 
 
1845
\family default
 
1846
\size small
 
1847
 
 
1848
\begin_inset ERT
 
1849
status collapsed
 
1850
 
 
1851
\begin_layout Standard
 
1852
 
 
1853
 
 
1854
\backslash
 
1855
hfill 
 
1856
\end_layout
 
1857
 
 
1858
\end_inset
 
1859
 
 
1860
 
 
1861
\family sans
 
1862
\size scriptsize
 
1863
[type]
 
1864
\family default
 
1865
\size small
 
1866
 
 
1867
\newline
 
1868
type of the object, which is used to 
 
1869
\emph on
 
1870
store
 
1871
\emph default
 
1872
 
 
1873
\newline
 
1874
the result of the affected function
 
1875
\end_layout
 
1876
 
 
1877
\begin_layout Description
 
1878
 
 
1879
\family sans
 
1880
\series medium
 
1881
\size small
 
1882
\emph on
 
1883
Res::Type,
 
1884
\family default
 
1885
\series default
 
1886
\emph default
 
1887
 
 
1888
\family sans
 
1889
\emph on
 
1890
Res::ReferredType
 
1891
\family default
 
1892
\emph default
 
1893
 
 
1894
\family sans
 
1895
\size scriptsize
 
1896
\InsetSpace ~
 
1897
 
 
1898
\family default
 
1899
\size small
 
1900
 
 
1901
\begin_inset ERT
 
1902
status collapsed
 
1903
 
 
1904
\begin_layout Standard
 
1905
 
 
1906
 
 
1907
\backslash
 
1908
hfill 
 
1909
\end_layout
 
1910
 
 
1911
\end_inset
 
1912
 
 
1913
 
 
1914
\family sans
 
1915
\size scriptsize
 
1916
[type]
 
1917
\family default
 
1918
\size small
 
1919
 
 
1920
\newline
 
1921
result type of the affected function
 
1922
\end_layout
 
1923
 
 
1924
\begin_layout Description
 
1925
 
 
1926
\family sans
 
1927
\series medium
 
1928
\size small
 
1929
\emph on
 
1930
Arg<i>::Type,
 
1931
\family default
 
1932
\series default
 
1933
\emph default
 
1934
 
 
1935
\family sans
 
1936
\emph on
 
1937
Arg<i>::ReferredType
 
1938
\family default
 
1939
\emph default
 
1940
 
 
1941
\family sans
 
1942
\size scriptsize
 
1943
\InsetSpace ~
 
1944
 
 
1945
\family default
 
1946
\size small
 
1947
 
 
1948
\begin_inset ERT
 
1949
status collapsed
 
1950
 
 
1951
\begin_layout Standard
 
1952
 
 
1953
 
 
1954
\backslash
 
1955
hfill 
 
1956
\end_layout
 
1957
 
 
1958
\end_inset
 
1959
 
 
1960
 
 
1961
\family sans
 
1962
\size scriptsize
 
1963
[type]
 
1964
\family default
 
1965
\size small
 
1966
 
 
1967
\newline
 
1968
type of the 
 
1969
\begin_inset ERT
 
1970
status inlined
 
1971
 
 
1972
\begin_layout Standard
 
1973
 
 
1974
$i^{
 
1975
\backslash
 
1976
,th}$
 
1977
\end_layout
 
1978
 
 
1979
\end_inset
 
1980
 
 
1981
 argument of the affected
 
1982
\newline
 
1983
function (with 
 
1984
\begin_inset ERT
 
1985
status inlined
 
1986
 
 
1987
\begin_layout Standard
 
1988
 
 
1989
$0 
 
1990
\backslash
 
1991
leq i < ARGS$
 
1992
\end_layout
 
1993
 
 
1994
\end_inset
 
1995
 
 
1996
)
 
1997
\end_layout
 
1998
 
 
1999
\begin_layout Description
 
2000
 
 
2001
\family sans
 
2002
\series medium
 
2003
\size small
 
2004
\emph on
 
2005
ARGS
 
2006
\family default
 
2007
\series default
 
2008
\emph default
 
2009
 
 
2010
\family sans
 
2011
\size scriptsize
 
2012
\InsetSpace ~
 
2013
 
 
2014
\family default
 
2015
\size small
 
2016
 
 
2017
\begin_inset ERT
 
2018
status collapsed
 
2019
 
 
2020
\begin_layout Standard
 
2021
 
 
2022
 
 
2023
\backslash
 
2024
hfill 
 
2025
\end_layout
 
2026
 
 
2027
\end_inset
 
2028
 
 
2029
 
 
2030
\family sans
 
2031
\size scriptsize
 
2032
[const]
 
2033
\family default
 
2034
\size small
 
2035
 
 
2036
\newline
 
2037
number of arguments
 
2038
\end_layout
 
2039
 
 
2040
\begin_layout Description
 
2041
 
 
2042
\family sans
 
2043
\series medium
 
2044
\size small
 
2045
\emph on
 
2046
JPID
 
2047
\family default
 
2048
\series default
 
2049
\emph default
 
2050
 
 
2051
\family sans
 
2052
\size scriptsize
 
2053
\InsetSpace ~
 
2054
 
 
2055
\family default
 
2056
\size small
 
2057
 
 
2058
\begin_inset ERT
 
2059
status collapsed
 
2060
 
 
2061
\begin_layout Standard
 
2062
 
 
2063
 
 
2064
\backslash
 
2065
hfill 
 
2066
\end_layout
 
2067
 
 
2068
\end_inset
 
2069
 
 
2070
 
 
2071
\family sans
 
2072
\size scriptsize
 
2073
[const]
 
2074
\family default
 
2075
\size small
 
2076
 
 
2077
\newline
 
2078
unique numeric identifier for this join point
 
2079
\end_layout
 
2080
 
 
2081
\begin_layout Description
 
2082
 
 
2083
\family sans
 
2084
\series medium
 
2085
\size small
 
2086
\emph on
 
2087
JPTYPE
 
2088
\family default
 
2089
\series default
 
2090
\emph default
 
2091
 
 
2092
\family sans
 
2093
\size scriptsize
 
2094
\InsetSpace ~
 
2095
 
 
2096
\family default
 
2097
\size small
 
2098
 
 
2099
\begin_inset ERT
 
2100
status collapsed
 
2101
 
 
2102
\begin_layout Standard
 
2103
 
 
2104
 
 
2105
\backslash
 
2106
hfill 
 
2107
\end_layout
 
2108
 
 
2109
\end_inset
 
2110
 
 
2111
 
 
2112
\family sans
 
2113
\size scriptsize
 
2114
[const]
 
2115
\family default
 
2116
\size small
 
2117
 
 
2118
\newline
 
2119
numeric identifier describing the type of this join point (
 
2120
\family sans
 
2121
\emph on
 
2122
AC::CALL
 
2123
\family default
 
2124
 
2125
\family sans
 
2126
AC::EXECUTION
 
2127
\family default
 
2128
\emph default
 
2129
 
2130
\family sans
 
2131
AC::CONSTRUCTION
 
2132
\family default
 
2133
, or 
 
2134
\family sans
 
2135
AC::DESTRUCTION
 
2136
\family default
 
2137
 
2138
\end_layout
 
2139
 
 
2140
\begin_layout Standard
 
2141
\begin_inset VSpace 6pt*
 
2142
\end_inset
 
2143
 
 
2144
 
 
2145
\end_layout
 
2146
 
 
2147
\begin_layout Subsubsection*
 
2148
 
 
2149
\family sans
 
2150
\emph on
 
2151
Runtime Functions and State
 
2152
\end_layout
 
2153
 
 
2154
\begin_layout Description
 
2155
 
 
2156
\family sans
 
2157
\series medium
 
2158
\size small
 
2159
\emph on
 
2160
static\InsetSpace ~
 
2161
const\InsetSpace ~
 
2162
char
 
2163
\series default
 
2164
\InsetSpace ~
 
2165
 
 
2166
\series medium
 
2167
*
 
2168
\series default
 
2169
\emph default
 
2170
signature
 
2171
\series medium
 
2172
()
 
2173
\family default
 
2174
\series default
 
2175
 
 
2176
\size scriptsize
 
2177
\InsetSpace ~
 
2178
 
 
2179
\size small
 
2180
 
 
2181
\newline
 
2182
gives a textual description of the join point (function name, class name,
 
2183
 ...)
 
2184
\end_layout
 
2185
 
 
2186
\begin_layout Description
 
2187
 
 
2188
\family sans
 
2189
\series medium
 
2190
\size small
 
2191
\emph on
 
2192
That\InsetSpace ~
 
2193
*
 
2194
\series default
 
2195
\emph default
 
2196
that
 
2197
\series medium
 
2198
()
 
2199
\family default
 
2200
\series default
 
2201
 
 
2202
\family sans
 
2203
\size scriptsize
 
2204
\InsetSpace ~
 
2205
 
 
2206
\family default
 
2207
\size small
 
2208
 
 
2209
\newline
 
2210
returns a pointer to the object initiating a call or 0 if it is a static
 
2211
 method or a global function
 
2212
\end_layout
 
2213
 
 
2214
\begin_layout Description
 
2215
 
 
2216
\family sans
 
2217
\series medium
 
2218
\size small
 
2219
\emph on
 
2220
Target\InsetSpace ~
 
2221
*
 
2222
\series default
 
2223
\emph default
 
2224
target
 
2225
\series medium
 
2226
()
 
2227
\family default
 
2228
\series default
 
2229
 
 
2230
\family sans
 
2231
\size scriptsize
 
2232
\InsetSpace ~
 
2233
 
 
2234
\family default
 
2235
\size small
 
2236
 
 
2237
\newline
 
2238
returns a pointer to the object that is the target of a call or 0 if it
 
2239
 is a static method or a global function
 
2240
\end_layout
 
2241
 
 
2242
\begin_layout Description
 
2243
 
 
2244
\family sans
 
2245
\series medium
 
2246
\size small
 
2247
\emph on
 
2248
Result
 
2249
\emph default
 
2250
\InsetSpace ~
 
2251
 
 
2252
\emph on
 
2253
*
 
2254
\series default
 
2255
\emph default
 
2256
result
 
2257
\series medium
 
2258
()
 
2259
\family default
 
2260
\series default
 
2261
 
 
2262
\family sans
 
2263
\size scriptsize
 
2264
\InsetSpace ~
 
2265
 
 
2266
\family default
 
2267
\size small
 
2268
 
 
2269
\newline
 
2270
returns a typed pointer to the result value or 0 if the function has no
 
2271
 result value
 
2272
\end_layout
 
2273
 
 
2274
\begin_layout Description
 
2275
 
 
2276
\family sans
 
2277
\series medium
 
2278
\size small
 
2279
\emph on
 
2280
Arg<i>::ReferredType\InsetSpace ~
 
2281
*
 
2282
\series default
 
2283
\emph default
 
2284
arg
 
2285
\series medium
 
2286
\emph on
 
2287
<i>
 
2288
\emph default
 
2289
()
 
2290
\family default
 
2291
\series default
 
2292
 
 
2293
\family sans
 
2294
\size scriptsize
 
2295
\InsetSpace ~
 
2296
 
 
2297
\family default
 
2298
\size small
 
2299
 
 
2300
\newline
 
2301
returns a typed pointer to the 
 
2302
\begin_inset ERT
 
2303
status inlined
 
2304
 
 
2305
\begin_layout Standard
 
2306
 
 
2307
$i^{
 
2308
\backslash
 
2309
,th}$
 
2310
\end_layout
 
2311
 
 
2312
\end_inset
 
2313
 
 
2314
 argument value (with 
 
2315
\begin_inset ERT
 
2316
status inlined
 
2317
 
 
2318
\begin_layout Standard
 
2319
 
 
2320
$0 
 
2321
\backslash
 
2322
leq i < ARGS$
 
2323
\end_layout
 
2324
 
 
2325
\end_inset
 
2326
 
 
2327
)
 
2328
\end_layout
 
2329
 
 
2330
\begin_layout Description
 
2331
 
 
2332
\family sans
 
2333
\series medium
 
2334
\size small
 
2335
\emph on
 
2336
void\InsetSpace ~
 
2337
*
 
2338
\series default
 
2339
\emph default
 
2340
arg
 
2341
\series medium
 
2342
(
 
2343
\emph on
 
2344
int
 
2345
\series default
 
2346
\InsetSpace ~
 
2347
 
 
2348
\series medium
 
2349
\emph default
 
2350
i)
 
2351
\family default
 
2352
\series default
 
2353
 
 
2354
\family sans
 
2355
\size scriptsize
 
2356
\InsetSpace ~
 
2357
 
 
2358
\family default
 
2359
\size small
 
2360
 
 
2361
\newline
 
2362
returns a pointer to the memory position holding the argument value with
 
2363
 index 
 
2364
\emph on
 
2365
i
 
2366
\end_layout
 
2367
 
 
2368
\begin_layout Description
 
2369
 
 
2370
\family sans
 
2371
\series medium
 
2372
\size small
 
2373
\emph on
 
2374
void\InsetSpace ~
 
2375
 
 
2376
\series default
 
2377
\emph default
 
2378
proceed
 
2379
\series medium
 
2380
()
 
2381
\family default
 
2382
\series default
 
2383
 
 
2384
\family sans
 
2385
\size scriptsize
 
2386
\InsetSpace ~
 
2387
 
 
2388
\family default
 
2389
\size small
 
2390
 
 
2391
\newline
 
2392
executes the original code in an around advice (should be called at most
 
2393
 once in around advice)
 
2394
\end_layout
 
2395
 
 
2396
\begin_layout Description
 
2397
 
 
2398
\family sans
 
2399
\series medium
 
2400
\size small
 
2401
\emph on
 
2402
AC::Action\InsetSpace ~
 
2403
&
 
2404
\series default
 
2405
\emph default
 
2406
action
 
2407
\series medium
 
2408
()
 
2409
\family default
 
2410
\series default
 
2411
 
 
2412
\family sans
 
2413
\size scriptsize
 
2414
\InsetSpace ~
 
2415
 
 
2416
\family default
 
2417
\size small
 
2418
 
 
2419
\newline
 
2420
returns the runtime action object containing the execution environment to
 
2421
 execute ( 
 
2422
\emph on
 
2423
trigger()
 
2424
\emph default
 
2425
 ) the original code encapsulated by an around advice
 
2426
\end_layout
 
2427
 
 
2428
\begin_layout Standard
 
2429
\begin_inset VSpace 6pt*
 
2430
\end_inset
 
2431
 
 
2432
 
 
2433
\end_layout
 
2434
 
 
2435
\begin_layout Subsubsection*
 
2436
 
 
2437
\family sans
 
2438
\emph on
 
2439
Runtime Type Information
 
2440
\end_layout
 
2441
 
 
2442
\begin_layout Description
 
2443
 
 
2444
\family sans
 
2445
\series medium
 
2446
\size small
 
2447
\emph on
 
2448
static\InsetSpace ~
 
2449
AC::Type\InsetSpace ~
 
2450
 
 
2451
\series default
 
2452
\emph default
 
2453
resulttype
 
2454
\series medium
 
2455
()
 
2456
\end_layout
 
2457
 
 
2458
\begin_layout Description
 
2459
 
 
2460
\family sans
 
2461
\series medium
 
2462
\size small
 
2463
\emph on
 
2464
static\InsetSpace ~
 
2465
AC::Type\InsetSpace ~
 
2466
 
 
2467
\series default
 
2468
\emph default
 
2469
argtype
 
2470
\series medium
 
2471
(
 
2472
\emph on
 
2473
int
 
2474
\series default
 
2475
\InsetSpace ~
 
2476
 
 
2477
\series medium
 
2478
\emph default
 
2479
i)
 
2480
\family default
 
2481
\series default
 
2482
 
 
2483
\size scriptsize
 
2484
\InsetSpace ~
 
2485
 
 
2486
\size small
 
2487
 
 
2488
\newline
 
2489
return a C++ ABI V3 conforming string representation of the result type
 
2490
 / argument type of the affected function
 
2491
\end_layout
 
2492
 
 
2493
\begin_layout Section*
 
2494
 
 
2495
\family sans
 
2496
Example
 
2497
\end_layout
 
2498
 
 
2499
\begin_layout Standard
 
2500
 
 
2501
\size small
 
2502
A reusable tracing aspect.
 
2503
 
 
2504
\end_layout
 
2505
 
 
2506
\begin_layout Standard
 
2507
\begin_inset VSpace medskip*
 
2508
\end_inset
 
2509
 
 
2510
 
 
2511
\end_layout
 
2512
 
 
2513
\begin_layout Standard
 
2514
\noindent
 
2515
\begin_inset ERT
 
2516
status collapsed
 
2517
 
 
2518
\begin_layout Standard
 
2519
 
 
2520
 
 
2521
\backslash
 
2522
hspace{-24pt}
 
2523
\end_layout
 
2524
 
 
2525
\end_inset
 
2526
 
 
2527
 
 
2528
\begin_inset Box Frameless
 
2529
position "t"
 
2530
hor_pos "c"
 
2531
has_inner_box 1
 
2532
inner_pos "t"
 
2533
use_parbox 0
 
2534
width "100text%"
 
2535
special "none"
 
2536
height "1pt"
 
2537
height_special "totalheight"
 
2538
status open
 
2539
 
 
2540
\begin_layout LyX-Code
 
2541
\noindent
 
2542
 
 
2543
\family sans
 
2544
\series bold
 
2545
aspect
 
2546
\family default
 
2547
\series default
 
2548
 
 
2549
\family sans
 
2550
Trace {
 
2551
\end_layout
 
2552
 
 
2553
\begin_layout LyX-Code
 
2554
 
 
2555
\family sans
 
2556
\series bold
 
2557
\begin_inset ERT
 
2558
status collapsed
 
2559
 
 
2560
\begin_layout Standard
 
2561
 
 
2562
 
 
2563
\backslash
 
2564
hspace{10pt} 
 
2565
\end_layout
 
2566
 
 
2567
\end_inset
 
2568
 
 
2569
pointcut
 
2570
\series default
 
2571
 virtual functions() = 0;
 
2572
\end_layout
 
2573
 
 
2574
\begin_layout LyX-Code
 
2575
 
 
2576
\family sans
 
2577
\series bold
 
2578
\begin_inset ERT
 
2579
status collapsed
 
2580
 
 
2581
\begin_layout Standard
 
2582
 
 
2583
 
 
2584
\backslash
 
2585
hspace{10pt} 
 
2586
\end_layout
 
2587
 
 
2588
\end_inset
 
2589
 
 
2590
advice
 
2591
\series default
 
2592
 
 
2593
\series bold
 
2594
execution
 
2595
\series default
 
2596
(functions()) : 
 
2597
\series bold
 
2598
around
 
2599
\series default
 
2600
() {
 
2601
\end_layout
 
2602
 
 
2603
\begin_layout LyX-Code
 
2604
 
 
2605
\family sans
 
2606
\series bold
 
2607
\begin_inset ERT
 
2608
status collapsed
 
2609
 
 
2610
\begin_layout Standard
 
2611
 
 
2612
 
 
2613
\backslash
 
2614
hspace{20pt} 
 
2615
\end_layout
 
2616
 
 
2617
\end_inset
 
2618
 
 
2619
 
 
2620
\series default
 
2621
cout <
 
2622
\begin_inset ERT
 
2623
status collapsed
 
2624
 
 
2625
\begin_layout Standard
 
2626
 
 
2627
 
 
2628
\backslash
 
2629
hspace{-1pt}
 
2630
\end_layout
 
2631
 
 
2632
\end_inset
 
2633
 
 
2634
< "before " <
 
2635
\begin_inset ERT
 
2636
status collapsed
 
2637
 
 
2638
\begin_layout Standard
 
2639
 
 
2640
 
 
2641
\backslash
 
2642
hspace{-1pt}
 
2643
\end_layout
 
2644
 
 
2645
\end_inset
 
2646
 
 
2647
 
2648
\series bold
 
2649
JoinPoint
 
2650
\series default
 
2651
::
 
2652
\series bold
 
2653
signature
 
2654
\series default
 
2655
() <
 
2656
\begin_inset ERT
 
2657
status collapsed
 
2658
 
 
2659
\begin_layout Standard
 
2660
 
 
2661
 
 
2662
\backslash
 
2663
hspace{-1pt}
 
2664
\end_layout
 
2665
 
 
2666
\end_inset
 
2667
 
 
2668
< "(";
 
2669
\end_layout
 
2670
 
 
2671
\begin_layout LyX-Code
 
2672
 
 
2673
\family sans
 
2674
\series bold
 
2675
\begin_inset ERT
 
2676
status collapsed
 
2677
 
 
2678
\begin_layout Standard
 
2679
 
 
2680
 
 
2681
\backslash
 
2682
hspace{20pt} 
 
2683
\end_layout
 
2684
 
 
2685
\end_inset
 
2686
 
 
2687
 
 
2688
\series default
 
2689
for (unsigned i = 0; i < 
 
2690
\series bold
 
2691
JoinPoint
 
2692
\series default
 
2693
::
 
2694
\series bold
 
2695
ARGS
 
2696
\series default
 
2697
; i++)
 
2698
\end_layout
 
2699
 
 
2700
\begin_layout LyX-Code
 
2701
 
 
2702
\family sans
 
2703
\series bold
 
2704
\begin_inset ERT
 
2705
status collapsed
 
2706
 
 
2707
\begin_layout Standard
 
2708
 
 
2709
 
 
2710
\backslash
 
2711
hspace{30pt} 
 
2712
\end_layout
 
2713
 
 
2714
\end_inset
 
2715
 
 
2716
 
 
2717
\series default
 
2718
cout <
 
2719
\begin_inset ERT
 
2720
status collapsed
 
2721
 
 
2722
\begin_layout Standard
 
2723
 
 
2724
 
 
2725
\backslash
 
2726
hspace{-1pt}
 
2727
\end_layout
 
2728
 
 
2729
\end_inset
 
2730
 
 
2731
< (i ? ", " : "") <
 
2732
\begin_inset ERT
 
2733
status collapsed
 
2734
 
 
2735
\begin_layout Standard
 
2736
 
 
2737
 
 
2738
\backslash
 
2739
hspace{-1pt}
 
2740
\end_layout
 
2741
 
 
2742
\end_inset
 
2743
 
 
2744
 
2745
\series bold
 
2746
JoinPoint
 
2747
\series default
 
2748
::
 
2749
\series bold
 
2750
argtype
 
2751
\series default
 
2752
(i);
 
2753
\end_layout
 
2754
 
 
2755
\begin_layout LyX-Code
 
2756
 
 
2757
\family sans
 
2758
\series bold
 
2759
\begin_inset ERT
 
2760
status collapsed
 
2761
 
 
2762
\begin_layout Standard
 
2763
 
 
2764
 
 
2765
\backslash
 
2766
hspace{20pt} 
 
2767
\end_layout
 
2768
 
 
2769
\end_inset
 
2770
 
 
2771
 
 
2772
\series default
 
2773
cout <
 
2774
\begin_inset ERT
 
2775
status collapsed
 
2776
 
 
2777
\begin_layout Standard
 
2778
 
 
2779
 
 
2780
\backslash
 
2781
hspace{-1pt}
 
2782
\end_layout
 
2783
 
 
2784
\end_inset
 
2785
 
 
2786
< ")" <
 
2787
\begin_inset ERT
 
2788
status collapsed
 
2789
 
 
2790
\begin_layout Standard
 
2791
 
 
2792
 
 
2793
\backslash
 
2794
hspace{-1pt}
 
2795
\end_layout
 
2796
 
 
2797
\end_inset
 
2798
 
 
2799
< endl;
 
2800
\end_layout
 
2801
 
 
2802
\begin_layout LyX-Code
 
2803
 
 
2804
\family sans
 
2805
\series bold
 
2806
\begin_inset ERT
 
2807
status collapsed
 
2808
 
 
2809
\begin_layout Standard
 
2810
 
 
2811
 
 
2812
\backslash
 
2813
hspace{20pt} 
 
2814
\end_layout
 
2815
 
 
2816
\end_inset
 
2817
 
 
2818
tjp
 
2819
\series default
 
2820
->
 
2821
\series bold
 
2822
proceed
 
2823
\series default
 
2824
();
 
2825
\end_layout
 
2826
 
 
2827
\begin_layout LyX-Code
 
2828
 
 
2829
\family sans
 
2830
\series bold
 
2831
\begin_inset ERT
 
2832
status collapsed
 
2833
 
 
2834
\begin_layout Standard
 
2835
 
 
2836
 
 
2837
\backslash
 
2838
hspace{20pt} 
 
2839
\end_layout
 
2840
 
 
2841
\end_inset
 
2842
 
 
2843
 
 
2844
\series default
 
2845
cout <
 
2846
\begin_inset ERT
 
2847
status collapsed
 
2848
 
 
2849
\begin_layout Standard
 
2850
 
 
2851
 
 
2852
\backslash
 
2853
hspace{-1pt}
 
2854
\end_layout
 
2855
 
 
2856
\end_inset
 
2857
 
 
2858
< "after" <
 
2859
\begin_inset ERT
 
2860
status collapsed
 
2861
 
 
2862
\begin_layout Standard
 
2863
 
 
2864
 
 
2865
\backslash
 
2866
hspace{-1pt}
 
2867
\end_layout
 
2868
 
 
2869
\end_inset
 
2870
 
 
2871
< endl;
 
2872
\end_layout
 
2873
 
 
2874
\begin_layout LyX-Code
 
2875
 
 
2876
\family sans
 
2877
\series bold
 
2878
\begin_inset ERT
 
2879
status collapsed
 
2880
 
 
2881
\begin_layout Standard
 
2882
 
 
2883
 
 
2884
\backslash
 
2885
hspace{10pt} 
 
2886
\end_layout
 
2887
 
 
2888
\end_inset
 
2889
 
 
2890
 
 
2891
\series default
 
2892
 
2893
\end_layout
 
2894
 
 
2895
\begin_layout LyX-Code
 
2896
 
 
2897
\family sans
 
2898
};
 
2899
\end_layout
 
2900
 
 
2901
\end_inset
 
2902
 
 
2903
 
 
2904
\end_layout
 
2905
 
 
2906
\begin_layout Standard
 
2907
\begin_inset VSpace bigskip*
 
2908
\end_inset
 
2909
 
 
2910
 
 
2911
\end_layout
 
2912
 
 
2913
\begin_layout Standard
 
2914
\noindent
 
2915
 
 
2916
\size small
 
2917
In a derived aspect the pointcut 
 
2918
\emph on
 
2919
functions
 
2920
\emph default
 
2921
 may be redefined to apply the aspect to the desired set of functions.
 
2922
\end_layout
 
2923
 
 
2924
\begin_layout Standard
 
2925
\begin_inset VSpace medskip
 
2926
\end_inset
 
2927
 
 
2928
 
 
2929
\end_layout
 
2930
 
 
2931
\begin_layout Standard
 
2932
\noindent
 
2933
\begin_inset ERT
 
2934
status collapsed
 
2935
 
 
2936
\begin_layout Standard
 
2937
 
 
2938
 
 
2939
\backslash
 
2940
hspace{-24pt}
 
2941
\end_layout
 
2942
 
 
2943
\end_inset
 
2944
 
 
2945
 
 
2946
\begin_inset Box Frameless
 
2947
position "t"
 
2948
hor_pos "c"
 
2949
has_inner_box 1
 
2950
inner_pos "t"
 
2951
use_parbox 0
 
2952
width "100text%"
 
2953
special "none"
 
2954
height "1pt"
 
2955
height_special "totalheight"
 
2956
status open
 
2957
 
 
2958
\begin_layout LyX-Code
 
2959
\noindent
 
2960
 
 
2961
\family sans
 
2962
\series bold
 
2963
aspect
 
2964
\family default
 
2965
\series default
 
2966
 
 
2967
\family sans
 
2968
TraceMain : public Trace {
 
2969
\end_layout
 
2970
 
 
2971
\begin_layout LyX-Code
 
2972
 
 
2973
\family sans
 
2974
\series bold
 
2975
\begin_inset ERT
 
2976
status collapsed
 
2977
 
 
2978
\begin_layout Standard
 
2979
 
 
2980
 
 
2981
\backslash
 
2982
hspace{10pt} 
 
2983
\end_layout
 
2984
 
 
2985
\end_inset
 
2986
 
 
2987
pointcut
 
2988
\series default
 
2989
 functions() = "% main(...)";
 
2990
\end_layout
 
2991
 
 
2992
\begin_layout LyX-Code
 
2993
 
 
2994
\family sans
 
2995
};
 
2996
\end_layout
 
2997
 
 
2998
\end_inset
 
2999
 
 
3000
 
 
3001
\end_layout
 
3002
 
 
3003
\begin_layout Standard
 
3004
\begin_inset ERT
 
3005
status collapsed
 
3006
 
 
3007
\begin_layout Standard
 
3008
 
 
3009
 
 
3010
\backslash
 
3011
vfill
 
3012
\backslash
 
3013
vfill
 
3014
\backslash
 
3015
vfill
 
3016
\backslash
 
3017
vfill
 
3018
\end_layout
 
3019
 
 
3020
\end_inset
 
3021
 
 
3022
 
 
3023
\end_layout
 
3024
 
 
3025
\begin_layout Standard
 
3026
\noindent
 
3027
 
 
3028
\size small
 
3029
This is a reference sheet corresponding to AspectC++ 1.0pre3.
 
3030
\newline
 
3031
 Version 1.11,
 
3032
 
 
3033
\begin_inset ERT
 
3034
status collapsed
 
3035
 
 
3036
\begin_layout Standard
 
3037
 
 
3038
 
 
3039
\backslash
 
3040
today
 
3041
\end_layout
 
3042
 
 
3043
\end_inset
 
3044
 
 
3045
.
 
3046
\end_layout
 
3047
 
 
3048
\begin_layout Standard
 
3049
 
 
3050
\size small
 
3051
\InsetSpace ~
 
3052
 
 
3053
\newline
 
3054
(c) Copyright 2006 pure-systems GmbH, Olaf Spinczyk and Daniel Lohmann.
 
3055
 All rights reserved.
 
3056
\end_layout
 
3057
 
 
3058
\begin_layout Standard
 
3059
\begin_inset VSpace bigskip
 
3060
\end_inset
 
3061
 
 
3062
 
 
3063
\begin_inset ERT
 
3064
status collapsed
 
3065
 
 
3066
\begin_layout Standard
 
3067
 
 
3068
 
 
3069
\backslash
 
3070
hrule width 4.6cm
 
3071
\end_layout
 
3072
 
 
3073
\end_inset
 
3074
 
 
3075
 
 
3076
\end_layout
 
3077
 
 
3078
\begin_layout Standard
 
3079
\begin_inset VSpace 2pt*
 
3080
\end_inset
 
3081
 
 
3082
 
 
3083
\end_layout
 
3084
 
 
3085
\begin_layout Standard
 
3086
\noindent
 
3087
 
 
3088
\series medium
 
3089
\begin_inset ERT
 
3090
status open
 
3091
 
 
3092
\begin_layout Standard
 
3093
 
 
3094
 
 
3095
\backslash
 
3096
footnotemark[2]
 
3097
\end_layout
 
3098
 
 
3099
\end_inset
 
3100
 
 
3101
 
 
3102
\series default
 
3103
\size scriptsize
 
3104
support for template instance matching is an experimental feature
 
3105
\end_layout
 
3106
 
 
3107
\begin_layout Standard
 
3108
\begin_inset VSpace -1pt*
 
3109
\end_inset
 
3110
 
 
3111
 
 
3112
\end_layout
 
3113
 
 
3114
\begin_layout Standard
 
3115
\noindent
 
3116
 
 
3117
\series medium
 
3118
\begin_inset ERT
 
3119
status open
 
3120
 
 
3121
\begin_layout Standard
 
3122
 
 
3123
 
 
3124
\backslash
 
3125
footnotemark[8]
 
3126
\end_layout
 
3127
 
 
3128
\end_inset
 
3129
 
 
3130
 
 
3131
\series default
 
3132
\size scriptsize
 
3133
 
 
3134
\begin_inset LatexCommand url
 
3135
target "http://www.codesourcery.com/cxx-abi/abi.html#mangling"
 
3136
 
 
3137
\end_inset
 
3138
 
 
3139
 
 
3140
\end_layout
 
3141
 
 
3142
\begin_layout Standard
 
3143
\begin_inset VSpace -1pt*
 
3144
\end_inset
 
3145
 
 
3146
 
 
3147
\end_layout
 
3148
 
 
3149
\begin_layout Standard
 
3150
\noindent
 
3151
 
 
3152
\series medium
 
3153
\begin_inset ERT
 
3154
status collapsed
 
3155
 
 
3156
\begin_layout Standard
 
3157
 
 
3158
 
 
3159
\backslash
 
3160
footnotemark[9]
 
3161
\end_layout
 
3162
 
 
3163
\end_inset
 
3164
 
 
3165
 
 
3166
\series default
 
3167
\size scriptsize
 
3168
C, C
 
3169
\begin_inset Formula $_{\textrm{C}}$
 
3170
\end_inset
 
3171
 
 
3172
, C
 
3173
\begin_inset Formula $_{\textrm{E}}$
 
3174
\end_inset
 
3175
 
 
3176
, C
 
3177
\begin_inset Formula $_{Cons}$
 
3178
\end_inset
 
3179
 
 
3180
, C
 
3181
\begin_inset Formula $_{Des}$
 
3182
\end_inset
 
3183
 
 
3184
: Code (any, only 
 
3185
\emph on
 
3186
\bar under
 
3187
C
 
3188
\bar default
 
3189
all
 
3190
\emph default
 
3191
, only 
 
3192
\emph on
 
3193
\bar under
 
3194
E
 
3195
\bar default
 
3196
xecution
 
3197
\emph default
 
3198
, only object 
 
3199
\emph on
 
3200
\bar under
 
3201
Cons
 
3202
\bar default
 
3203
truction
 
3204
\emph default
 
3205
, only object 
 
3206
\emph on
 
3207
\bar under
 
3208
Des
 
3209
\bar default
 
3210
truction
 
3211
\emph default
 
3212
); N, N
 
3213
\begin_inset Formula $_{N}$
 
3214
\end_inset
 
3215
 
 
3216
, N
 
3217
\begin_inset Formula $_{C}$
 
3218
\end_inset
 
3219
 
 
3220
, N
 
3221
\begin_inset Formula $_{F}$
 
3222
\end_inset
 
3223
 
 
3224
, N
 
3225
\begin_inset Formula $_{T}$
 
3226
\end_inset
 
3227
 
 
3228
: Names (any, only 
 
3229
\emph on
 
3230
\bar under
 
3231
N
 
3232
\bar default
 
3233
amespace
 
3234
\emph default
 
3235
, only 
 
3236
\emph on
 
3237
\bar under
 
3238
C
 
3239
\bar default
 
3240
lass
 
3241
\emph default
 
3242
, only 
 
3243
\emph on
 
3244
\bar under
 
3245
F
 
3246
\bar default
 
3247
unction
 
3248
\emph default
 
3249
, only 
 
3250
\emph on
 
3251
\bar under
 
3252
T
 
3253
\bar default
 
3254
ype
 
3255
\emph default
 
3256
)
 
3257
\end_layout
 
3258
 
 
3259
\begin_layout Standard
 
3260
\begin_inset VSpace -32pt*
 
3261
\end_inset
 
3262
 
 
3263
 
 
3264
\begin_inset ERT
 
3265
status collapsed
 
3266
 
 
3267
\begin_layout Standard
 
3268
 
 
3269
 
 
3270
\backslash
 
3271
end{multicols*}
 
3272
\end_layout
 
3273
 
 
3274
\end_inset
 
3275
 
 
3276
 
 
3277
\end_layout
 
3278
 
 
3279
\end_body
 
3280
\end_document