00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00018 #ifndef LIBCWD_CLASS_MARKER_H
00019 #define LIBCWD_CLASS_MARKER_H
00020
00021 #ifndef LIBCWD_CLASS_ALLOC_FILTER_H
00022 #include <libcwd/class_alloc_filter.h>
00023 #endif
00024
00025 namespace libcwd {
00026
00027 extern alloc_filter_ct const default_ooam_filter;
00028
00033 class marker_ct {
00034 private:
00035 void register_marker(char const* label);
00036 alloc_filter_ct const& M_filter;
00037 bool M_make_invisible;
00038 public:
00050 marker_ct(char const* label, alloc_filter_ct const& filter, bool make_invisible = false) :
00051 M_filter(filter), M_make_invisible(make_invisible) { register_marker(label); }
00052
00054 marker_ct(char const* label) : M_filter(default_ooam_filter), M_make_invisible(false) { register_marker(label); }
00055
00067 marker_ct(alloc_filter_ct const& filter, bool make_invisible = false) :
00068 M_filter(filter), M_make_invisible(make_invisible) { register_marker("An allocation marker"); }
00069
00071 marker_ct(void) : M_filter(default_ooam_filter), M_make_invisible(false) { register_marker("An allocation marker"); }
00072
00073 ~marker_ct();
00074 };
00075
00076 }
00077
00078 #endif // LIBCWD_CLASS_MARKER_H
00079