template <class Observer, ElfPhdrType... Types>
struct PhdrObserver
Defined at line 146 of file ../../src/lib/elfldltl/include/lib/elfldltl/phdr.h
This is the base class for Phdr*Observer classes.
Each Observer subclass should define these two methods:
* template
<class
Diagnostics, typename Phdr>
bool Observe(Diagnostics
&
diagnostics, PhdrTypeMatch
<Type
> type, const Phdr
&
val);
* template
<class
Diagnostics>
bool Finish(Diagnostics
&
diagnostics);
Observe will be called with each entry matching any Type of the Types...
list. Then Finish will be called at the end of all entries unless processing
was terminated early for some reason, in which case the observer object is
usually going to be destroyed without checking its results. Both return
false if processing the phdr table should be terminated early.
In practice, a given observer will correspond to a single ElfPhdrType;
however, the parameter is kept variadic for consistency with other APIs in
the library.