00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00018 #ifndef LIBCWD_CLASS_OBJECT_FILE_H
00019 #define LIBCWD_CLASS_OBJECT_FILE_H
00020
00021 #ifndef LIBCW_STRING
00022 #define LIBCW_STRING
00023 #include <string>
00024 #endif
00025
00026 namespace libcwd {
00027
00028
00029 #if CWDEBUG_ALLOC
00030 class alloc_filter_ct;
00031 #endif
00032 namespace cwbfd {
00033 class bfile_ct;
00034 }
00035
00052 class object_file_ct {
00053 private:
00054 char const* M_filepath;
00055 char const* M_filename;
00056 #if CWDEBUG_ALLOC
00057 friend class alloc_filter_ct;
00058 mutable bool M_hide;
00059 #endif
00060 mutable bool M_no_debug_line_sections;
00061
00062 protected:
00063 friend class cwbfd::bfile_ct;
00064 object_file_ct(char const* filepath);
00065
00066 public:
00068 char const* filepath(void) const { return M_filepath; }
00070 char const* filename(void) const { return M_filename; }
00071
00072
00073 #if CWDEBUG_ALLOC
00074 bool hide_from_alloc_list() const { return M_hide; }
00075 #endif
00076 void set_has_no_debug_line_sections(void) const { M_no_debug_line_sections = true; }
00077 bool has_no_debug_line_sections(void) const { return M_no_debug_line_sections; }
00078 };
00079
00081
00082 }
00083
00084 #endif // LIBCWD_CLASS_OBJECT_FILE_H