82
84
class JPP_Class : public JoinPointPlan {
83
Array<IntroductionInfo*> _base;
84
Array<IntroductionInfo*> _other;
85
Array<IntroductionInfo*> _unsorted;
85
Array<JPL_Introduction*> _base;
86
Array<JPL_Introduction*> _other;
87
Array<JPL_Introduction*> _unsorted;
89
void gen_intro_inline (Unit *unit, JPL_Introduction *ii,
90
ACSliceInfo *acsi, ErrorStream &err, LineDirectiveMgr &lmgr,
91
CStructure *target) const;
92
void gen_intro_non_inline (Unit *unit, JPL_Introduction *ii,
93
ACSliceInfo *acsi, ErrorStream &err, LineDirectiveMgr &lmgr,
94
CStructure *target) const;
95
void gen_base_intro (IntroductionUnit &intro_unit,
96
JPL_Introduction *ii, bool first) const;
98
void instantiate_intro (ErrorStream &err, Unit *unit, CT_Intro *intro,
99
const Unit &pattern, CStructure *target, Location &loc) const;
88
102
// consider an introduction in the plan for this class join point
89
bool consider (IntroductionInfo *ii);
90
void issue (IntroductionInfo *ii);
103
bool consider (JPL_Introduction *ii);
104
void issue (JPL_Introduction*ii);
92
105
bool check(ErrorSink &err);
94
107
int baseIntros () const { return _base.length (); }
95
IntroductionInfo *baseIntro (int i) const { return _base.lookup (i); }
96
string gen_baseclass_list () const;
108
JPL_Introduction *baseIntro (int i) const { return _base.lookup (i); }
97
110
int otherIntros () const { return _other.length (); }
98
IntroductionInfo *otherIntro (int i) const { return _other.lookup (i); }
99
Unit *gen_intro (ErrorStream &err, CStructure *target,
100
LineDirectiveMgr &lmgr) const;
101
void instantiate_intro (ErrorStream &err, Unit *unit, CT_Intro *intro,
102
const Unit &pattern, Unit &target_name, Location &loc) const;
111
JPL_Introduction *otherIntro (int i) const { return _other.lookup (i); }
113
void gen_intros (list<Unit*> &units, ErrorStream &err,
114
CStructure *target, LineDirectiveMgr &lmgr, bool non_inline = false) const;
115
void gen_base_intros (list<Unit*> &units, ErrorStream &err,
116
CClassInfo *target, LineDirectiveMgr &lmgr) const;
106
119
#endif // __JoinPointPlan_h__