00001 // database row conversion -*- C++ -*- 00002 // $Id: rowconvert.h,v 1.4 2004/01/07 14:29:39 roger Exp $ 00003 // 00004 // Copyright (C) 2003 Roger Leigh <rleigh@debian.org> 00005 // 00006 // 00007 // This program is free software; you can redistribute it and/or modify 00008 // it under the terms of the GNU General Public License as published by 00009 // the Free Software Foundation; either version 2 of the License, or 00010 // (at your option) any later version. 00011 // 00012 // This program is distributed in the hope that it will be useful, 00013 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00015 // GNU General Public License for more details. 00016 // 00017 // You should have received a copy of the GNU General Public License 00018 // along with this program; if not, write to the Free Software 00019 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00020 00021 #ifndef PQXX_OBJECT_ROWCONVERT_H 00022 #define PQXX_OBJECT_ROWCONVERT_H 00023 00024 #include <vector> 00025 00026 #include <pqxx-object/transaction.h> 00027 00028 namespace pqxxobject 00029 { 00040 class rowconvert 00041 { 00042 public: 00044 rowconvert() 00045 {} 00046 00048 virtual ~rowconvert() 00049 {} 00050 00052 enum operation_type 00053 { 00055 OPERATION_INSERT, 00057 OPERATION_UPDATE, 00059 OPERATION_DELETE 00060 }; 00061 00072 virtual void initialise(pqxx::result::const_iterator row, 00073 transaction& tran) = 0; 00074 00079 virtual void insert(transaction& tran) = 0; 00080 00085 virtual void update(transaction& tran) = 0; 00086 00091 virtual void erase(transaction& tran) = 0; 00092 00097 virtual void refresh(transaction& tran) = 0; 00098 00099 }; // class rowconvert 00100 00101 }; // namespace pqxxobject 00102 00103 #endif // PQXX_OBJECT_ROWCONVERT_H