Code syncronized with shipsimu code base
[mailer.git] / inc / classes / interfaces / database / frontend / class_DatabaseFrontendInterface.php
1 <?php
2 /**
3  * An interface for front-end database classes. The classes should prepare the
4  * objects for saving in the database. So for server-bases database classes SQL
5  * queries shall be generated and send to the backend classes. In case of local
6  * file databases the object shall be serialized and (maybe) transparently
7  * compressed before they got saved to a local file.
8  *
9  * @author              Roland Haeder <webmaster@ship-simu.org>
10  * @version             0.0.0
11  * @copyright   Copyright (c) 2007, 2008 Roland Haeder, this is free software
12  * @license             GNU GPL 3.0 or any newer version
13  * @link                http://www.ship-simu.org
14  *
15  * This program is free software: you can redistribute it and/or modify
16  * it under the terms of the GNU General Public License as published by
17  * the Free Software Foundation, either version 3 of the License, or
18  * (at your option) any later version.
19  *
20  * This program is distributed in the hope that it will be useful,
21  * but WITHOUT ANY WARRANTY; without even the implied warranty of
22  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
23  * GNU General Public License for more details.
24  *
25  * You should have received a copy of the GNU General Public License
26  * along with this program. If not, see <http://www.gnu.org/licenses/>.
27  */
28 interface DatabaseFrontendInterface extends FrameworkDatabaseInterface {
29         /**
30          * Makes sure that the database connection is up and alive
31          *
32          * @return      void
33          */
34         function connectToDatabase ();
35
36         /**
37          * Starts a SELECT query on the database by given return type, table name
38          * and search criteria
39          *
40          * @param       $resultType             Result type ("array", "object" and "indexed" are valid)
41          * @param       $tableName              Name of the database table
42          * @param       $criteria               Search criteria class
43          * @return      $resultData             Result data of the query
44          * @throws      UnsupportedCriteriaException    If the criteria is unsupported
45          * @throws      SqlException                                    If an SQL error occurs
46          */
47         function querySelect ($resultType, $tableName, LocalSearchCriteria $criteriaInstance);
48
49         /**
50          * "Inserts" a data set instance into a local file database folder
51          *
52          * @param       $dataSetInstance        A storeable data set
53          * @return      void
54          * @throws      SqlException    If an SQL error occurs
55          */
56         function queryInsertDataSet (StoreableCriteria $dataSetInstance);
57
58         /**
59          * "Updates" a data set instance with a database layer
60          *
61          * @param       $dataSetInstance        A storeable data set
62          * @return      void
63          * @throws      SqlException    If an SQL error occurs
64          */
65         function queryUpdateDataSet (StoreableCriteria $dataSetInstance);
66 }
67
68 // [EOF]
69 ?>