class CommonExcep {
public:
CommonExcep
(const char* file,
const char* method,
const int line,
const char* errMsg = "",
const int errCode = 0,
const char* subID = "");
virtual ~CommonExcep() {}
virtual const char* id() const;
const int numEntries() const;
const ExcepInfo& origExcep() const;
const ExcepInfo& latestExcep() const;
const ExcepInfoDeque& exceptions() const;
void push(const char* file,
const char* method,
const int line,
const char* errMsg = "");
void importPrior(const CommonExcep& excep);
protected:
CommonExcep(const char* id,
const char* file,
const char* method,
const int line,
const char* errMsg,
const int errCode,
const char* subID);
ExcepInfoDeque m_excepInfoDeque;
};
class ExcepInfo {
public:
ExcepInfo(const char* id,
const char* file,
const char* method,
const int line,
const char* errMsg,
const int errCode,
const char* subID);
const std::string& id() const;
const std::string& file() const;
const std::string& method() const;
const int line() const;
const std::string& errMsg() const;
const int errCode() const;
const std::string& subID() const;
protected:
std::string m_id;
std::string m_file;
std::string m_method;
int m_line;
std::string m_errMsg;
int m_errCode;
std::string m_subID;
};
End of Listing