#ifndef __ABDef_ah__
#define __ABDef_ah__

#include <stdio.h>
#include "A.h"
#include "B.h"

aspect ABDef {
};

advice "A" : void ABDef::f1 () {
    printf ("  function A::f1()\n");
}

advice "A" : void ABDef::f2 () {
    printf ("  function A::f2 calls B::f1\n");
    _bref->f1 ();
}

advice "B" : void ABDef::f1 () {
    printf ("  function B::f1()\n");
}

advice "B" : void ABDef::f2 () {
    printf ("  function B::f2 calls A::f1\n");
    _aref->f1 ();
}

#endif // __ABDef_ah__
