#ifndef DATABASE_MARIADB_MARIADB_BMX_RELEASE_WIN32_X86_H
#define DATABASE_MARIADB_MARIADB_BMX_RELEASE_WIN32_X86_H

#include <brl.mod/blitz.mod/.bmx/blitz.bmx.release.win32.x86.h>
#include "common.bmx.release.win32.x86.h"
int __bb_database_mariadb_mariadb();
struct database_mariadb_TMariaDBDatabaseLoader_obj;
struct database_mariadb_TDBMariaDB_obj;
struct database_mariadb_TMySQLField_obj;
struct database_mariadb_TMySQLResultSet_obj;
void _database_mariadb_TMariaDBDatabaseLoader_New(struct database_mariadb_TMariaDBDatabaseLoader_obj* o);
typedef struct database_core_TDBConnection_obj* (*database_mariadb_TMariaDBDatabaseLoader_LoadDatabase_SSiSSSS_m)(struct database_mariadb_TMariaDBDatabaseLoader_obj*,BBSTRING,BBSTRING,BBINT,BBSTRING,BBSTRING,BBSTRING,BBSTRING);
struct database_core_TDBConnection_obj* _database_mariadb_TMariaDBDatabaseLoader_LoadDatabase_SSiSSSS(struct database_mariadb_TMariaDBDatabaseLoader_obj*,BBSTRING,BBSTRING,BBINT,BBSTRING,BBSTRING,BBSTRING,BBSTRING);
struct BBClass_database_mariadb_TMariaDBDatabaseLoader {
	struct BBClass_database_core_TDatabaseLoader*  super;
	void      (*free)( BBObject *o );
	BBDebugScope* debug_scope;
	unsigned int instance_size;
	void      (*ctor)( BBOBJECT o );
	void      (*dtor)( BBOBJECT o );
	BBSTRING  (*ToString)( BBOBJECT x );
	int       (*Compare)( BBOBJECT x,BBOBJECT y );
	BBOBJECT  (*SendMessage)( BBOBJECT o,BBOBJECT m,BBOBJECT s );
	BBINTERFACETABLE itable;
	void*     extra;
	unsigned int obj_size;
	unsigned int instance_count;
	unsigned int fields_offset;
	database_mariadb_TMariaDBDatabaseLoader_LoadDatabase_SSiSSSS_m m_LoadDatabase_SSiSSSS;
};

struct database_mariadb_TMariaDBDatabaseLoader_obj {
	struct BBClass_database_mariadb_TMariaDBDatabaseLoader* clas;
	BBSTRING _database_core_tdatabaseloader__type;
	struct database_core_TDatabaseLoader_obj* _database_core_tdatabaseloader__succ;
};
extern struct BBClass_database_mariadb_TMariaDBDatabaseLoader database_mariadb_TMariaDBDatabaseLoader;
void _database_mariadb_TDBMariaDB_New(struct database_mariadb_TDBMariaDB_obj* o);
void _database_mariadb_TDBMariaDB_Delete(struct database_mariadb_TDBMariaDB_obj* o);
typedef struct database_core_TDBConnection_obj* (*database_mariadb_TDBMariaDB_Create_TTDBConnection_SSiSSSS_f)(BBSTRING,BBSTRING,BBINT,BBSTRING,BBSTRING,BBSTRING,BBSTRING);
struct database_core_TDBConnection_obj* database_mariadb_TDBMariaDB_Create_TTDBConnection_SSiSSSS(BBSTRING,BBSTRING,BBINT,BBSTRING,BBSTRING,BBSTRING,BBSTRING);
typedef void (*database_mariadb_TDBMariaDB_close_m)(struct database_mariadb_TDBMariaDB_obj*);
void _database_mariadb_TDBMariaDB_close(struct database_mariadb_TDBMariaDB_obj*);
typedef BBINT (*database_mariadb_TDBMariaDB_isOpen_m)(struct database_mariadb_TDBMariaDB_obj*);
BBINT _database_mariadb_TDBMariaDB_isOpen(struct database_mariadb_TDBMariaDB_obj*);
typedef BBINT (*database_mariadb_TDBMariaDB_commit_m)(struct database_mariadb_TDBMariaDB_obj*);
BBINT _database_mariadb_TDBMariaDB_commit(struct database_mariadb_TDBMariaDB_obj*);
typedef BBARRAY (*database_mariadb_TDBMariaDB_getTables_m)(struct database_mariadb_TDBMariaDB_obj*);
BBARRAY _database_mariadb_TDBMariaDB_getTables(struct database_mariadb_TDBMariaDB_obj*);
typedef struct database_core_TDBTable_obj* (*database_mariadb_TDBMariaDB_getTableInfo_Si_m)(struct database_mariadb_TDBMariaDB_obj*,BBSTRING,BBINT);
struct database_core_TDBTable_obj* _database_mariadb_TDBMariaDB_getTableInfo_Si(struct database_mariadb_TDBMariaDB_obj*,BBSTRING,BBINT);
typedef BBINT (*database_mariadb_TDBMariaDB_open_SS_m)(struct database_mariadb_TDBMariaDB_obj*,BBSTRING,BBSTRING);
BBINT _database_mariadb_TDBMariaDB_open_SS(struct database_mariadb_TDBMariaDB_obj*,BBSTRING,BBSTRING);
typedef BBINT (*database_mariadb_TDBMariaDB_rollback_m)(struct database_mariadb_TDBMariaDB_obj*);
BBINT _database_mariadb_TDBMariaDB_rollback(struct database_mariadb_TDBMariaDB_obj*);
typedef BBINT (*database_mariadb_TDBMariaDB_startTransaction_m)(struct database_mariadb_TDBMariaDB_obj*);
BBINT _database_mariadb_TDBMariaDB_startTransaction(struct database_mariadb_TDBMariaDB_obj*);
typedef BBBYTE* (*database_mariadb_TDBMariaDB_databaseHandle_m)(struct database_mariadb_TDBMariaDB_obj*);
BBBYTE* _database_mariadb_TDBMariaDB_databaseHandle(struct database_mariadb_TDBMariaDB_obj*);
typedef struct database_core_TQueryResultSet_obj* (*database_mariadb_TDBMariaDB_createResultSet_m)(struct database_mariadb_TDBMariaDB_obj*);
struct database_core_TQueryResultSet_obj* _database_mariadb_TDBMariaDB_createResultSet(struct database_mariadb_TDBMariaDB_obj*);
typedef BBSTRING (*database_mariadb_TDBMariaDB_nativeErrorMessage_i_m)(struct database_mariadb_TDBMariaDB_obj*,BBINT);
BBSTRING _database_mariadb_TDBMariaDB_nativeErrorMessage_i(struct database_mariadb_TDBMariaDB_obj*,BBINT);
typedef BBINT (*database_mariadb_TDBMariaDB_hasPrepareSupport_m)(struct database_mariadb_TDBMariaDB_obj*);
BBINT _database_mariadb_TDBMariaDB_hasPrepareSupport(struct database_mariadb_TDBMariaDB_obj*);
typedef BBINT (*database_mariadb_TDBMariaDB_hasTransactionSupport_m)(struct database_mariadb_TDBMariaDB_obj*);
BBINT _database_mariadb_TDBMariaDB_hasTransactionSupport(struct database_mariadb_TDBMariaDB_obj*);
struct BBClass_database_mariadb_TDBMariaDB {
	struct BBClass_database_core_TDBConnection*  super;
	void      (*free)( BBObject *o );
	BBDebugScope* debug_scope;
	unsigned int instance_size;
	void      (*ctor)( BBOBJECT o );
	void      (*dtor)( BBOBJECT o );
	BBSTRING  (*ToString)( BBOBJECT x );
	int       (*Compare)( BBOBJECT x,BBOBJECT y );
	BBOBJECT  (*SendMessage)( BBOBJECT o,BBOBJECT m,BBOBJECT s );
	BBINTERFACETABLE itable;
	void*     extra;
	unsigned int obj_size;
	unsigned int instance_count;
	unsigned int fields_offset;
	database_mariadb_TDBMariaDB_Create_TTDBConnection_SSiSSSS_f f_Create_TTDBConnection_SSiSSSS;
	database_core_TDBConnection_Init_SSiSSSS_m m_Init_SSiSSSS;
	database_mariadb_TDBMariaDB_close_m m_close;
	database_mariadb_TDBMariaDB_commit_m m_commit;
	database_mariadb_TDBMariaDB_getTables_m m_getTables;
	database_mariadb_TDBMariaDB_getTableInfo_Si_m m_getTableInfo_Si;
	database_mariadb_TDBMariaDB_open_SS_m m_open_SS;
	database_mariadb_TDBMariaDB_rollback_m m_rollback;
	database_mariadb_TDBMariaDB_startTransaction_m m_startTransaction;
	database_core_TDBConnection_executeQuery_S_m m_executeQuery_S;
	database_mariadb_TDBMariaDB_isOpen_m m_isOpen;
	database_core_TDBConnection_getDatabaseName_m m_getDatabaseName;
	database_core_TDBConnection_getHost_m m_getHost;
	database_core_TDBConnection_getPortNumber_m m_getPortNumber;
	database_core_TDBConnection_error_m m_error;
	database_core_TDBConnection_resetError_m m_resetError;
	database_core_TDBConnection_hasError_m m_hasError;
	database_core_TDBConnection_setError_SSii_m m_setError_SSii;
	database_mariadb_TDBMariaDB_databaseHandle_m m_databaseHandle;
	database_mariadb_TDBMariaDB_createResultSet_m m_createResultSet;
	database_mariadb_TDBMariaDB_nativeErrorMessage_i_m m_nativeErrorMessage_i;
	database_mariadb_TDBMariaDB_hasPrepareSupport_m m_hasPrepareSupport;
	database_mariadb_TDBMariaDB_hasTransactionSupport_m m_hasTransactionSupport;
	database_core_TDBConnection_free_m m_free;
};

struct database_mariadb_TDBMariaDB_obj {
	struct BBClass_database_mariadb_TDBMariaDB* clas;
	BBBYTE* _database_core_tdbconnection_handle;
	BBSTRING _database_core_tdbconnection__dbname;
	BBSTRING _database_core_tdbconnection__host;
	BBINT _database_core_tdbconnection__port;
	BBSTRING _database_core_tdbconnection__user;
	BBSTRING _database_core_tdbconnection__password;
	BBSTRING _database_core_tdbconnection__options;
	BBSTRING _database_core_tdbconnection__server;
	BBINT _database_core_tdbconnection__isopen;
	struct database_core_TDatabaseError_obj* _database_core_tdbconnection__lasterror;
	BBINT _database_mariadb_tdbmariadb_clientversion;
	BBINT _database_mariadb_tdbmariadb_serverversion;
};
extern struct BBClass_database_mariadb_TDBMariaDB database_mariadb_TDBMariaDB;
void _database_mariadb_TMySQLField_New(struct database_mariadb_TMySQLField_obj* o);
void _database_mariadb_TMySQLField_Delete(struct database_mariadb_TMySQLField_obj* o);
typedef void (*database_mariadb_TMySQLField_clear_m)(struct database_mariadb_TMySQLField_obj*);
void _database_mariadb_TMySQLField_clear(struct database_mariadb_TMySQLField_obj*);
struct BBClass_database_mariadb_TMySQLField {
	BBClass*  super;
	void      (*free)( BBObject *o );
	BBDebugScope* debug_scope;
	unsigned int instance_size;
	void      (*ctor)( BBOBJECT o );
	void      (*dtor)( BBOBJECT o );
	BBSTRING  (*ToString)( BBOBJECT x );
	int       (*Compare)( BBOBJECT x,BBOBJECT y );
	BBOBJECT  (*SendMessage)( BBOBJECT o,BBOBJECT m,BBOBJECT s );
	BBINTERFACETABLE itable;
	void*     extra;
	unsigned int obj_size;
	unsigned int instance_count;
	unsigned int fields_offset;
	database_mariadb_TMySQLField_clear_m m_clear;
};

struct database_mariadb_TMySQLField_obj {
	struct BBClass_database_mariadb_TMySQLField* clas;
	BBBYTE* _database_mariadb_tmysqlfield_mysqlfield;
	BBBYTE* _database_mariadb_tmysqlfield_datavalue;
	BBULONGINT _database_mariadb_tmysqlfield_datalength;
	BBBYTE _database_mariadb_tmysqlfield_isnull;
	BBINT _database_mariadb_tmysqlfield_flag;
};
extern struct BBClass_database_mariadb_TMySQLField database_mariadb_TMySQLField;
void _database_mariadb_TMySQLResultSet_New(struct database_mariadb_TMySQLResultSet_obj* o);
void _database_mariadb_TMySQLResultSet_Delete(struct database_mariadb_TMySQLResultSet_obj* o);
typedef struct database_core_TQueryResultSet_obj* (*database_mariadb_TMySQLResultSet_Create_TTQueryResultSet_TTDBConnectionS_f)(struct database_core_TDBConnection_obj*,BBSTRING);
struct database_core_TQueryResultSet_obj* database_mariadb_TMySQLResultSet_Create_TTQueryResultSet_TTDBConnectionS(struct database_core_TDBConnection_obj*,BBSTRING);
typedef BBINT (*database_mariadb_TMySQLResultSet_executeQuery_S_m)(struct database_mariadb_TMySQLResultSet_obj*,BBSTRING);
BBINT _database_mariadb_TMySQLResultSet_executeQuery_S(struct database_mariadb_TMySQLResultSet_obj*,BBSTRING);
typedef BBINT (*database_mariadb_TMySQLResultSet_prepare_S_m)(struct database_mariadb_TMySQLResultSet_obj*,BBSTRING);
BBINT _database_mariadb_TMySQLResultSet_prepare_S(struct database_mariadb_TMySQLResultSet_obj*,BBSTRING);
typedef BBINT (*database_mariadb_TMySQLResultSet_execute_m)(struct database_mariadb_TMySQLResultSet_obj*);
BBINT _database_mariadb_TMySQLResultSet_execute(struct database_mariadb_TMySQLResultSet_obj*);
typedef void (*database_mariadb_TMySQLResultSet_initRecord_i_m)(struct database_mariadb_TMySQLResultSet_obj*,BBINT);
void _database_mariadb_TMySQLResultSet_initRecord_i(struct database_mariadb_TMySQLResultSet_obj*,BBINT);
typedef BBINT (*database_mariadb_TMySQLResultSet_firstRow_m)(struct database_mariadb_TMySQLResultSet_obj*);
BBINT _database_mariadb_TMySQLResultSet_firstRow(struct database_mariadb_TMySQLResultSet_obj*);
typedef BBINT (*database_mariadb_TMySQLResultSet_nextRow_m)(struct database_mariadb_TMySQLResultSet_obj*);
BBINT _database_mariadb_TMySQLResultSet_nextRow(struct database_mariadb_TMySQLResultSet_obj*);
typedef BBLONG (*database_mariadb_TMySQLResultSet_lastInsertedId_m)(struct database_mariadb_TMySQLResultSet_obj*);
BBLONG _database_mariadb_TMySQLResultSet_lastInsertedId(struct database_mariadb_TMySQLResultSet_obj*);
typedef BBINT (*database_mariadb_TMySQLResultSet_rowsAffected_m)(struct database_mariadb_TMySQLResultSet_obj*);
BBINT _database_mariadb_TMySQLResultSet_rowsAffected(struct database_mariadb_TMySQLResultSet_obj*);
typedef BBINT (*database_mariadb_TMySQLResultSet_dbTypeFromNative_i_Sii_f)(BBSTRING,BBINT,BBINT);
BBINT database_mariadb_TMySQLResultSet_dbTypeFromNative_i_Sii(BBSTRING,BBINT,BBINT);
typedef void (*database_mariadb_TMySQLResultSet_cleanup_m)(struct database_mariadb_TMySQLResultSet_obj*);
void _database_mariadb_TMySQLResultSet_cleanup(struct database_mariadb_TMySQLResultSet_obj*);
typedef void (*database_mariadb_TMySQLResultSet_clear_m)(struct database_mariadb_TMySQLResultSet_obj*);
void _database_mariadb_TMySQLResultSet_clear(struct database_mariadb_TMySQLResultSet_obj*);
typedef void (*database_mariadb_TMySQLResultSet_reset_m)(struct database_mariadb_TMySQLResultSet_obj*);
void _database_mariadb_TMySQLResultSet_reset(struct database_mariadb_TMySQLResultSet_obj*);
typedef void (*database_mariadb_TMySQLResultSet_free_m)(struct database_mariadb_TMySQLResultSet_obj*);
void _database_mariadb_TMySQLResultSet_free(struct database_mariadb_TMySQLResultSet_obj*);
struct BBClass_database_mariadb_TMySQLResultSet {
	struct BBClass_database_core_TQueryResultSet*  super;
	void      (*free)( BBObject *o );
	BBDebugScope* debug_scope;
	unsigned int instance_size;
	void      (*ctor)( BBOBJECT o );
	void      (*dtor)( BBOBJECT o );
	BBSTRING  (*ToString)( BBOBJECT x );
	int       (*Compare)( BBOBJECT x,BBOBJECT y );
	BBOBJECT  (*SendMessage)( BBOBJECT o,BBOBJECT m,BBOBJECT s );
	BBINTERFACETABLE itable;
	void*     extra;
	unsigned int obj_size;
	unsigned int instance_count;
	unsigned int fields_offset;
	database_mariadb_TMySQLResultSet_Create_TTQueryResultSet_TTDBConnectionS_f f_Create_TTQueryResultSet_TTDBConnectionS;
	database_core_TQueryResultSet_Init_TTDBConnectionS_m m_Init_TTDBConnectionS;
	database_core_TQueryResultSet_clearBindValues_m m_clearBindValues;
	database_mariadb_TMySQLResultSet_clear_m m_clear;
	database_mariadb_TMySQLResultSet_executeQuery_S_m m_executeQuery_S;
	database_mariadb_TMySQLResultSet_prepare_S_m m_prepare_S;
	database_mariadb_TMySQLResultSet_execute_m m_execute;
	database_mariadb_TMySQLResultSet_firstRow_m m_firstRow;
	database_mariadb_TMySQLResultSet_nextRow_m m_nextRow;
	database_mariadb_TMySQLResultSet_lastInsertedId_m m_lastInsertedId;
	database_mariadb_TMySQLResultSet_rowsAffected_m m_rowsAffected;
	database_mariadb_TMySQLResultSet_dbTypeFromNative_i_Sii_f f_dbTypeFromNative_i_Sii;
	database_core_TQueryResultSet_rowRecord_m m_rowRecord;
	database_core_TQueryResultSet_dataValue_i_m m_dataValue_i;
	database_core_TQueryResultSet_rowIndex_m m_rowIndex;
	database_core_TQueryResultSet_setRowIndex_i_m m_setRowIndex_i;
	database_core_TQueryResultSet_isActive_m m_isActive;
	database_core_TQueryResultSet_isValid_m m_isValid;
	database_core_TQueryResultSet_resetValues_i_m m_resetValues_i;
	database_core_TQueryResultSet_resetBindCount_m m_resetBindCount;
	database_core_TQueryResultSet_addBindValue_TTDBType_m m_addBindValue_TTDBType;
	database_core_TQueryResultSet_bindValue_iTTDBType_m m_bindValue_iTTDBType;
	database_mariadb_TMySQLResultSet_reset_m m_reset;
	database_mariadb_TMySQLResultSet_free_m m_free;
	database_mariadb_TMySQLResultSet_initRecord_i_m m_initRecord_i;
	database_mariadb_TMySQLResultSet_cleanup_m m_cleanup;
};

struct database_mariadb_TMySQLResultSet_obj {
	struct BBClass_database_mariadb_TMySQLResultSet* clas;
	struct database_core_TDBConnection_obj* _database_core_tqueryresultset_conn;
	BBBYTE* _database_core_tqueryresultset_stmthandle;
	BBSTRING _database_core_tqueryresultset_query;
	BBINT _database_core_tqueryresultset__isactive;
	BBINT _database_core_tqueryresultset_index;
	BBARRAY _database_core_tqueryresultset_values;
	BBINT _database_core_tqueryresultset_bindcount;
	BBARRAY _database_core_tqueryresultset_boundvalues;
	struct database_core_TQueryRecord_obj* _database_core_tqueryresultset_rec;
	BBBYTE* _database_mariadb_tmysqlresultset_resulthandle;
	BBBYTE* _database_mariadb_tmysqlresultset_row;
	BBBYTE* _database_mariadb_tmysqlresultset_stmthandle;
	BBBYTE* _database_mariadb_tmysqlresultset_metahandle;
	BBINT _database_mariadb_tmysqlresultset_preparedquery;
	BBINT _database_mariadb_tmysqlresultset__rowsaffected;
	BBBYTE* _database_mariadb_tmysqlresultset_parameterbindings;
	BBBYTE* _database_mariadb_tmysqlresultset_selectbindings;
	BBARRAY _database_mariadb_tmysqlresultset_mysqlfields;
};
extern struct BBClass_database_mariadb_TMySQLResultSet database_mariadb_TMySQLResultSet;

#endif
