dlvhex
2.5.0
|
00001 /* dlvhex -- Answer-Set Programming with external interfaces. 00002 * Copyright (C) 2005-2007 Roman Schindlauer 00003 * Copyright (C) 2006-2015 Thomas Krennwallner 00004 * Copyright (C) 2009-2016 Peter Schüller 00005 * Copyright (C) 2011-2016 Christoph Redl 00006 * Copyright (C) 2015-2016 Tobias Kaminski 00007 * Copyright (C) 2015-2016 Antonius Weinzierl 00008 * 00009 * This file is part of dlvhex. 00010 * 00011 * dlvhex is free software; you can redistribute it and/or modify it 00012 * under the terms of the GNU Lesser General Public License as 00013 * published by the Free Software Foundation; either version 2.1 of 00014 * the License, or (at your option) any later version. 00015 * 00016 * dlvhex is distributed in the hope that it will be useful, but 00017 * WITHOUT ANY WARRANTY; without even the implied warranty of 00018 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00019 * Lesser General Public License for more details. 00020 * 00021 * You should have received a copy of the GNU Lesser General Public 00022 * License along with dlvhex; if not, write to the Free Software 00023 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 00024 * 02110-1301 USA. 00025 */ 00026 00035 #ifndef MODULE_HPP_INCLUDED__20122010 00036 #define MODULE_HPP_INCLUDED__20122010 00037 00038 #include "dlvhex2/PlatformDefinitions.h" 00039 #include "dlvhex2/ID.h" 00040 #include "dlvhex2/Logger.h" 00041 00042 DLVHEX_NAMESPACE_BEGIN 00043 00045 struct Module: 00046 private ostream_printable<Module> 00047 { 00051 IDKind kind; 00053 std::string moduleName; 00055 int inputList; 00057 int edb; 00059 int idb; 00060 00062 Module(): moduleName(""), inputList(-1), edb(-1), idb(-1) { } 00068 Module(const std::string& moduleName, const int& inputList, const int& edb, const int& idb): 00069 moduleName(moduleName), inputList(inputList), edb(edb), idb(idb) 00070 { } 00074 inline bool operator==(const Module& mod2) const 00075 { return moduleName == mod2.moduleName && inputList == mod2.inputList && edb == mod2.edb && idb == mod2.idb; } 00079 inline bool operator!=(const Module& mod2) const 00080 { return moduleName != mod2.moduleName || inputList || mod2.inputList || edb != mod2.edb || idb != mod2.idb; } 00081 std::ostream& print(std::ostream& o) const 00082 { return o << "Module(" << moduleName << ", inputList: " << inputList << ", edb: " << edb << ", idb: " << idb << ")"; } 00083 }; 00084 00085 const Module MODULE_FAIL("", -1, -1, -1); 00086 00087 DLVHEX_NAMESPACE_END 00088 #endif // MODULE_HPP_INCLUDED__20122010 00089 00090 // vim:expandtab:ts=4:sw=4: 00091 // mode: C++ 00092 // End: