18cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd/**
28cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * @file op_exception.cpp
38cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * exception base class
48cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd *
58cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * @remark Copyright 2003 OProfile authors
68cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * @remark Read the file COPYING
78cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd *
88cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * @author Philippe Elie
98cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * @author John Levon
108cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd */
118cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd
128cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd#include <cstring>
138cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd
148cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd#include "op_exception.h"
158cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd
168cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Doddusing namespace std;
178cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd
188cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Doddop_exception::op_exception(string const & msg)
198cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd	:
208cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd	message(msg)
218cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd{
228cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd}
238cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd
248cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Doddop_exception::~op_exception() throw()
258cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd{
268cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd}
278cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd
288cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Doddchar const * op_exception::what() const throw()
298cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd{
308cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd	return message.c_str();
318cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd}
328cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd
338cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd
348cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Doddop_fatal_error::op_fatal_error(string const & msg)
358cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd	:
368cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd	op_exception(msg)
378cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd{
388cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd}
398cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd
408cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd
418cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Doddop_runtime_error::op_runtime_error(string const & msg)
428cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd	:
438cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd	runtime_error(msg)
448cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd{
458cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd}
468cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd
478cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Doddop_runtime_error::op_runtime_error(string const & msg, int cerrno)
488cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd	:
498cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd	runtime_error(msg + "\ncause: " + strerror(cerrno))
508cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd{
518cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd}
528cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd
538cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Doddop_runtime_error::~op_runtime_error() throw()
548cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd{
558cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd}
56