00001 #ifndef __TBOX_H__ 00002 #define __TBOX_H__ 00003 00004 /* 00005 * Copyright 2010 Michel Kinasz 00006 * 00007 * This file is part of dlite. 00008 * 00009 * dlite is free software: you can redistribute it and/or modify 00010 * it under the terms of the GNU General Public License as published by 00011 * the Free Software Foundation, either version 3 of the License, or 00012 * (at your option) any later version. 00013 * 00014 * dlite is distributed in the hope that it will be useful, 00015 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00016 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00017 * GNU General Public License for more details. 00018 * 00019 * You should have received a copy of the GNU General Public License 00020 * along with dlite. If not, see <http://www.gnu.org/licenses/>. 00021 * 00022 */ 00023 00024 // ............................................................................ 00025 // File : tbox.h 00026 // Author : main 00027 // Created : September 21, 2008, 8:58 AM 00028 // 00029 // Desc : TBOX interface 00030 // 00031 // ............................................................................ 00032 00075 namespace DLITE 00076 { 00077 // ............................................................................ 00078 // TBOX interface 00079 00080 class iTBox; 00081 typedef _s_ptr<iTBox> spiTBox; 00082 00083 class iTBox 00084 { 00085 protected: 00086 00087 // c'tor 00088 iTBox() {} 00089 00090 public: 00091 00092 // d'tor 00093 virtual ~iTBox() {} 00094 00095 // Get definition (sp is null if none) 00096 virtual sptExpression GetDefinition(const operator_t i_operator) = 0; 00097 00098 // Add definition 00099 virtual void AddDefinition(const operator_t i_ontology, const operator_t i_operator, const sptExpression& i_spExpr) = 0; 00100 00101 // Factory method 00102 static spiTBox Create(const spiStore& i_spStore); 00103 }; 00104 } 00105 00106 #endif //__TBOX_H__