00001 /*---------------------------------------------------------------------\ 00002 | | 00003 | __ __ ____ _____ ____ | 00004 | \ \ / /_ _/ ___|_ _|___ \ | 00005 | \ V / _` \___ \ | | __) | | 00006 | | | (_| |___) || | / __/ | 00007 | |_|\__,_|____/ |_| |_____| | 00008 | | 00009 | core system | 00010 | Copyright 2003, SuSE Linux AG | 00011 \----------------------------------------------------------------------/ 00012 00013 File: Point.h 00014 00015 Author: Klaus Kaempf <kkaempf@suse.de> 00016 Maintainer: Klaus Kaempf <kkaempf@suse.de> 00017 /-*/ 00018 // -*- c++ -*- 00019 00020 #ifndef Point_h 00021 #define Point_h 00022 00023 #include <string> 00024 using std::string; 00025 00026 // MemUsage.h defines/undefines D_MEMUSAGE 00027 #include <y2util/MemUsage.h> 00028 #include "y2/SymbolEntry.h" 00029 00030 class bytecodeistream; 00031 00059 class Point 00060 #ifdef D_MEMUSAGE 00061 : public MemUsage 00062 #endif 00063 { 00064 private: 00065 SymbolEntryPtr m_entry; // filename as SymbolEntry (c_filename) 00066 int m_line; // line of definition / inclusion 00067 const Point *m_point; // points to toplevel point for include files 00068 public: 00069 size_t mem_size () const { return sizeof (Point); } 00070 Point (std::string filename, int line = 0, const Point *point = 0); 00071 Point (SymbolEntryPtr sentry, int line = 0, const Point *point = 0); 00072 Point (bytecodeistream & str); 00073 ~Point (void); 00074 00075 SymbolEntryPtr sentry (void) const; 00076 std::string filename (void) const; 00077 int line (void) const; 00078 const Point *point (void) const; 00079 00080 std::string toString (void) const; 00081 std::ostream & toStream (std::ostream & str) const; 00082 std::ostream & toXml (std::ostream & str, int indent ) const; 00083 }; 00084 #endif // Point_h