From 8db5ff97ffe34aa42f71b5c8aebfa0878e5fde89 Mon Sep 17 00:00:00 2001 From: Bent Bisballe Nyeng Date: Sat, 4 Jul 2020 16:58:08 +0200 Subject: Add error message support and reporting on all commands. --- src/exceptions.h | 106 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 src/exceptions.h (limited to 'src/exceptions.h') diff --git a/src/exceptions.h b/src/exceptions.h new file mode 100644 index 0000000..79f1113 --- /dev/null +++ b/src/exceptions.h @@ -0,0 +1,106 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* vim: set et sw=2 ts=2: */ +/*************************************************************************** + * exceptions.h + * + * Fri Jul 3 13:36:49 CEST 2020 + * Copyright 2020 Bent Bisballe Nyeng + * deva@aasimon.org + ****************************************************************************/ + +/* + * This file is part of Munia. + * + * Munia is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * Munia is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Munia; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. + */ +#pragma once + +#include "message.h" +#include "errorcodes.h" + +namespace Error +{ + +struct MissingParent + : public ErrorMessage +{ + MissingParent() + { + code = ErrorCode::MissingParent; + msg = "Parent node does not exist."; + } +}; + +struct NoSuchId + : public ErrorMessage +{ + NoSuchId() + { + code = ErrorCode::NoSuchId; + msg = "Node does not exist."; + } +}; + +struct IdAlreadyExists + : public ErrorMessage +{ + IdAlreadyExists() + { + code = ErrorCode::IdAlreadyExists; + msg = "Id already exists."; + } +}; + +struct ProtectedNode + : public ErrorMessage +{ + ProtectedNode() + { + code = ErrorCode::ProtectedNode; + msg = "Node is protected."; + } +}; + +struct NewParentIsSelf + : public ErrorMessage +{ + NewParentIsSelf() + { + code = ErrorCode::NewParentIsSelf; + msg = "New parent is the node itself."; + } +}; +struct NewParentIsChildOfSelf + : public ErrorMessage +{ + NewParentIsChildOfSelf() + { + code = ErrorCode::NewParentIsChildOfSelf; + msg = "New parent is a child of node itself."; + } +}; + +struct System + : public ErrorMessage +{ + System(const char* message) + { + code = ErrorCode::System; + msg = "Unknown error occurred: "; + msg += message; + } +}; + +} // ::Error -- cgit v1.2.3