00001 /* 00002 * ParseIssue.h 00003 * ers 00004 * 00005 * Created by Matthias Wiesmann on 17.12.04. 00006 * Copyright 2004 CERN. All rights reserved. 00007 * 00008 */ 00009 00010 #ifndef ERS_PARSE_ISSUE 00011 #define ERS_PARSE_ISSUE 00012 00013 #include "ers/Issue.h" 00014 00015 namespace ers { 00016 00023 class ParseIssue: public Issue { 00024 protected: 00025 ParseIssue(const Context &c, severity_t s) ; 00026 public: 00027 static const char * const OFFENDING_LINE_KEY ; 00028 static const char * const OFFENDING_LINE_NUMBER_KEY ; 00029 static const char * const PARSE_ISSUE_CLASS_NAME ; 00030 void offending_line(const std::string &line) ; 00031 void offending_line_number(int line); 00032 void file_name(std::string filename); 00033 ParseIssue() ; 00034 ParseIssue(const Context &c,severity_t s, const std::string &message); 00035 ParseIssue(const Context &c,severity_t s, const std::string &message, const std::string &line); 00036 virtual const char* get_class_name() const throw() ; 00037 } ; // ParseIssue 00038 00039 } // ers 00040 00041 #define ERS_PARSE_ERROR(message,...) ers::ParseIssue(ERS_HERE,ers::error,__VA_ARGS__) 00042 00043 #endif 00044