added a driver type getter for database implementations
[strongswan.git] / src / libstrongswan / database / database.h
index 1cf5c25..39f909c 100644 (file)
@@ -22,6 +22,7 @@
 #define DATABASE_H_
 
 typedef enum db_type_t db_type_t;
+typedef enum db_driver_t db_driver_t;
 typedef struct database_t database_t;
 
 #include <utils/enumerator.h>
@@ -44,6 +45,15 @@ enum db_type_t {
        DB_NULL,
 };
 
+/**
+ * Database implementation type.
+ */
+enum db_driver_t {
+       /** SQLite database */
+       DB_SQLITE,
+       /** MySQL database */
+       DB_MYSQL,
+};
 
 /**
  * Interface for a database implementation.
@@ -95,6 +105,16 @@ struct database_t {
        int (*execute)(database_t *this, int *rowid, char *sql, ...);
        
        /**
+        * Get the database implementation type.
+        *
+        * To allow driver specific SQL or performance optimizations each database
+        * implementations can be queried for its type.
+        *
+        * @return                      database implementation type
+        */
+       db_driver_t (*get_driver)(database_t *this);
+       
+       /**
      * Destroy a database connection.
      */
     void (*destroy)(database_t *this);