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.