Vordefinierte Filter- und Filter-Adapter-Klassen


Classes

struct  dirstr::no_f
 no_f steht für "kein Filter". Es werden alle Einträge ausgewählt. More...
struct  dirstr::type_f
 type_f wählt Einträge eines bestimmten Typs. More...
struct  dirstr::pattern_f
 pattern_f wählt Einträge die einem bestimmten Muster genügen. More...
struct  dirstr::adapter_f_t< F >
 Diese Klasse macht aus Funktionen bzw. Prädikaten filter_base-kompatiblen Filter. More...
struct  dirstr::mem_fun_f_t< T, MemFun >
 Diese Klasse macht aus einer Memberfunktion einen filter_base-kompatiblen Filter. More...
class  dirstr::filter_base
 Filter-Interface das von der dirstream-Klasse für die Filterung von Verzeichnis-Einträgen und Unterverzeichnissen verwendet wird. More...

Functions

template<class R>
adapter_f_t< R(*)(const std::string &)> dirstr::ptr_fun_f (R(*ptr_fun)(const std::string &))
 Macht aus einem Zeiger auf eine Funktion ein filter_base-Objekt.
template<class T>
adapter_f_t< T > dirstr::pred_f (const T &f)
 Erstellt aus einem Prädikat ein filter_base-Objekt.
template<class PtrT, class M>
mem_fun_f_t< PtrT, M > dirstr::mem_fun_f (PtrT o, M memFun)
 Ermöglicht die Verwendunng von Methoden als Filter für ein dirstream-Objekt.

Detailed Description

Einführung
Bei der Auflisting von Verzeichnissen will man häufig nur solche Einträge berücksichtigen, die einem bestimmten Kriterium genügen. Da Filter-Kriterien in der Regel aber anwendungsspezifisch sind, ist eine Auswahl einer Menge fest vorgegebener Filter sehr schwierig. Aus diesem Grund bietet dirstream neben einer Menge von Standardfiltern dem Benutzer auch die Möglichkeit, beliebige benutzer-definierte Filter zu verwenden.
dirstream Filter
Aus Sicht des dirstreams ist ein Filter ein Objekt einer von der Filter-Basisklasse filter_base abgeleiteten Klasse. Jedes Filter-Objekt f muss für einen gegebenen Verzeichniseintrag e entscheiden, ob dieser Eintrag ausgewählt ('f(e)' liefert true) oder ignoriert ('f(e)' liefert false) werden soll. Die Traversierung eines Verzeichnisses mittels eines dirstream-Objekts wird durch zwei Filer-Objekte beeinflusst:
Standardfilter
dirstream bietet zur Zeit drei mehr oder weniger nützliche Standardfilter:
Eigene Filter schreiben
Das Verhalten eines dirstreams kann zusätzlich durch benutzer-definierte Filter beliebig beeinflusst werden. Benutzer-definierte Filter können auf vier verschiedene Arten erzeugt werden.
Die genauen Bedingungen für die Adaption von Funktionen, Funktionsobjekten und Memberfunktionen sowie Beispiele werden in der Dokumentation der entsprechenden Adapter beschrieben.
See also:
dirstr::adapter_f_t

dirstr::mem_fun_f_t

Filter kombinieren
Filter können über boole'sche Operationen zu neuen Filtern verknüpft werden. Wie das genau geht und was es dabei zu beachten gilt, wird im Abschnitt Expression-Filter und logische Operationen beschrieben.

Function Documentation

template<class PtrT, class M>
mem_fun_f_t<PtrT, M> dirstr::mem_fun_f ( PtrT  o,
memFun 
) [inline]

Ermöglicht die Verwendunng von Methoden als Filter für ein dirstream-Objekt.

See also:
mem_fun_f_t
 class Foo {
     public:
         bool func(const std::string&);
 ...
 };
 ...
 Foo f;
 // dirstream der Foos Methode func als Filter verwendet.
 dirstream s(".", mem_fun_f(&f, &Foo::func));

template<class T>
adapter_f_t<T> dirstr::pred_f ( const T &  f  )  [inline]

Erstellt aus einem Prädikat ein filter_base-Objekt.

See also:
adapter_f_t
 struct Foo { bool operator()(const std::string& e) const; };   // benutzer-defniert
 ...
 dirstream s(".", pred_f(&filter));

template<class R>
adapter_f_t<R (*)(const std::string&)> dirstr::ptr_fun_f ( R(*)(const std::string &)  ptr_fun  )  [inline]

Macht aus einem Zeiger auf eine Funktion ein filter_base-Objekt.

See also:
adapter_f_t
 bool filter(const std::string&); // benutzer-definierte Filter-Funktion
 ...
 dirstream s(".", ptr_fun_f(&filter));


Generated on Fri Apr 27 13:12:36 2007 for Highlight Code Converter by  doxygen 1.5.2