summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--libopie2/opiepim/core/opimaccessfactory.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/libopie2/opiepim/core/opimaccessfactory.h b/libopie2/opiepim/core/opimaccessfactory.h
index a80e67c..ee55ba5 100644
--- a/libopie2/opiepim/core/opimaccessfactory.h
+++ b/libopie2/opiepim/core/opimaccessfactory.h
@@ -21,97 +21,100 @@
21 : = ...= . :.=- 21 : = ...= . :.=-
22 -. .:....=;==+<; You should have received a copy of the GNU 22 -. .:....=;==+<; You should have received a copy of the GNU
23 -_. . . )=. = Library General Public License along with 23 -_. . . )=. = Library General Public License along with
24 -- :-=` this library; see the file COPYING.LIB. 24 -- :-=` this library; see the file COPYING.LIB.
25 If not, write to the Free Software Foundation, 25 If not, write to the Free Software Foundation,
26 Inc., 59 Temple Place - Suite 330, 26 Inc., 59 Temple Place - Suite 330,
27 Boston, MA 02111-1307, USA. 27 Boston, MA 02111-1307, USA.
28*/ 28*/
29 29
30#ifndef __OPIE_OPIMACCESSFACTORY_H_ 30#ifndef __OPIE_OPIMACCESSFACTORY_H_
31#define __OPIE_OPIMACCESSFACTORY_H_ 31#define __OPIE_OPIMACCESSFACTORY_H_
32 32
33#include <opie2/opimglobal.h> 33#include <opie2/opimglobal.h>
34#include <opie2/obackendfactory.h> 34#include <opie2/obackendfactory.h>
35#include <opie2/ocontactaccess.h> 35#include <opie2/ocontactaccess.h>
36#include <opie2/otodoaccess.h> 36#include <opie2/otodoaccess.h>
37#include <opie2/odatebookaccess.h> 37#include <opie2/odatebookaccess.h>
38 38
39using namespace Opie::Pim; 39using namespace Opie::Pim;
40 40
41namespace Opie { 41namespace Opie {
42 42
43 43
44/** 44/**
45 * This class is our factory for creating PIM access objects. You should use these objects to load, store and search 45 * This class is our factory for creating PIM access objects. You should use these objects to load, store and search
46 * information in our PIM databases. Currently we support objects for accessing the datebook, the contact- and the 46 * information in our PIM databases. Currently we support objects for accessing the datebook, the contact- and the
47 * todolist. 47 * todolist.
48 * @see OPimGlobal for more information of used values. 48 * @see OPimGlobal for more information of used values.
49 * 49 *
50 * This class - as the whole PIM Api - is making use of templates 50 * This class - as the whole PIM Api - is making use of templates
51 * 51 *
52 * Example for getting an access object for the XML database of todolist: 52 * Example for getting an access object for the XML database of todolist:
53 * <pre> 53 * <pre>
54 * OPimTodoAccess* access = OPimAccessFactory<OPimTodoAccess>::create( OPimGlobal::TODOLIST, OPimGlobal::XML, "example" ); 54 * OPimTodoAccess* access = OPimAccessFactory<OPimTodoAccess>::create( OPimGlobal::TODOLIST, OPimGlobal::XML, "example" );
55 * </pre> 55 * </pre>
56 * 56 *
57 * @author Stefan Eilers 57 * @author Stefan Eilers
58 * @version 0.1 58 * @version 0.1
59 */ 59 */
60 60
61template<class T> 61template<class T>
62class OPimAccessFactory 62class OPimAccessFactory
63{ 63{
64 public: 64 public:
65 65
66 // Maybe we should introduce a global class for storing such global enums 66 // Maybe we should introduce a global class for storing such global enums
67 // (something like opimglobal.h) ? (eilers) 67 // (something like opimglobal.h) ? (eilers)
68 68
69 OPimAccessFactory() {}; 69 OPimAccessFactory() {};
70 70
71 /** 71 /**
72 * Returns the selected PIM access-object. 72 * Returns the selected PIM access-object.
73 * @param type Type of the selected database (addressbook, todolist or datebook) 73 * @param type Type of the selected database (addressbook, todolist or datebook)
74 * @param dbStyle Which database style should be used (xml, sql, vcard) 74 * @param dbStyle Which database style should be used (xml, sql, vcard)
75 * @param appName "Name" of your application. This should be any constant string which is used 75 * @param appName "Name" of your application. This should be any constant string which is used
76 * by some backends for creating special files (i.e.journal files). Please keep the 76 * by some backends for creating special files (i.e.journal files). Please keep the
77 * string unique for your application ! 77 * string unique for your application !
78 * @see OPimGlobal 78 * @see OPimGlobal
79 */ 79 */
80 static T* create( OPimGlobal::PimType type, OPimGlobal::DatabaseStyle dbStyle, const QString& appName ){ 80 static T* create( OPimGlobal::PimType type, OPimGlobal::DatabaseStyle dbStyle, const QString& appName ){
81 OPimBase *base; 81 OPimBase *base;
82 switch ( type ){ 82 switch ( type ){
83 case OPimGlobal::TODOLIST: 83 case OPimGlobal::TODOLIST:
84 base = new OPimTodoAccess( OBackendFactory<OPimTodoAccessBackend>::create( type, dbStyle, appName ) ); 84 base = new OPimTodoAccess( OBackendFactory<OPimTodoAccessBackend>::create( type, dbStyle, appName ) );
85 break;
85 case OPimGlobal::CONTACTLIST: 86 case OPimGlobal::CONTACTLIST:
86 base = new OPimContactAccess( QString::null, QString::null, OBackendFactory<OPimContactAccessBackend>::create( type, dbStyle, appName ) ); 87 base = new OPimContactAccess( QString::null, QString::null, OBackendFactory<OPimContactAccessBackend>::create( type, dbStyle, appName ) );
88 break;
87 case OPimGlobal::DATEBOOK: 89 case OPimGlobal::DATEBOOK:
88 base = new ODateBookAccess( OBackendFactory<ODateBookAccessBackend>::create( type, dbStyle, appName ) ); 90 base = new ODateBookAccess( OBackendFactory<ODateBookAccessBackend>::create( type, dbStyle, appName ) );
91 break;
89 default: 92 default:
90 return 0l; 93 return 0l;
91 } 94 }
92 return static_cast<T*>( base ); 95 return static_cast<T*>( base );
93 } 96 }
94 97
95 98
96 /** 99 /**
97 * Returns the selected PIM access-object, using the default database style 100 * Returns the selected PIM access-object, using the default database style
98 * Which style is selected is defined in the configfile "pimaccess.conf" in 101 * Which style is selected is defined in the configfile "pimaccess.conf" in
99 * the directory "Settings" 102 * the directory "Settings"
100 * @param type Type of the selected database (addressbook, todolist or datebook) 103 * @param type Type of the selected database (addressbook, todolist or datebook)
101 * @param appName "Name" of your application. This should be any constant string which is used 104 * @param appName "Name" of your application. This should be any constant string which is used
102 * by some backends for creating special files (i.e.journal files). Please keep the 105 * by some backends for creating special files (i.e.journal files). Please keep the
103 * string unique for your application ! 106 * string unique for your application !
104 * @see OPimGlobal 107 * @see OPimGlobal
105 * 108 *
106 */ 109 */
107 static T* defaultAccess( typename OPimGlobal::PimType type, const QString& appName ){ 110 static T* defaultAccess( typename OPimGlobal::PimType type, const QString& appName ){
108 111
109 return create( type, OPimGlobal::DEFAULT, appName ); 112 return create( type, OPimGlobal::DEFAULT, appName );
110 113
111 } 114 }
112}; 115};
113 116
114} 117}
115 118
116 119
117#endif 120#endif