Autonomy Software C++ 24.5.1
Welcome to the Autonomy Software repository of the Mars Rover Design Team (MRDT) at Missouri University of Science and Technology (Missouri S&T)! API reference contains the source code and other resources for the development of the autonomy software for our Mars rover. The Autonomy Software project aims to compete in the University Rover Challenge (URC) by demonstrating advanced autonomous capabilities and robust navigation algorithms.
Loading...
Searching...
No Matches
Driver Initialization

Classes

struct  AdbcDriver
 An instance of an initialized database driver. More...
 

Macros

#define ADBC_DRIVER_1_0_0_SIZE   (offsetof(struct AdbcDriver, ErrorGetDetailCount))
 The size of the AdbcDriver structure in ADBC 1.0.0. Drivers written for ADBC 1.1.0 and later should never touch more than this portion of an AdbcDriver struct when given ADBC_VERSION_1_0_0.
 
#define ADBC_DRIVER_1_1_0_SIZE   (sizeof(struct AdbcDriver))
 The size of the AdbcDriver structure in ADBC 1.1.0. Drivers written for ADBC 1.1.0 and later should never touch more than this portion of an AdbcDriver struct when given ADBC_VERSION_1_1_0.
 

Typedefs

typedef AdbcStatusCode(* AdbcDriverInitFunc) (int version, void *driver, struct AdbcError *error)
 Common entry point for drivers via the driver manager (which uses dlopen(3)/LoadLibrary). The driver manager is told to load a library and call a function of this type to load the driver.
 

Detailed Description

These functions are intended to help support integration between a driver and the driver manager.

Macro Definition Documentation

◆ ADBC_DRIVER_1_0_0_SIZE

#define ADBC_DRIVER_1_0_0_SIZE   (offsetof(struct AdbcDriver, ErrorGetDetailCount))

The size of the AdbcDriver structure in ADBC 1.0.0. Drivers written for ADBC 1.1.0 and later should never touch more than this portion of an AdbcDriver struct when given ADBC_VERSION_1_0_0.

Since
ADBC API revision 1.1.0

◆ ADBC_DRIVER_1_1_0_SIZE

#define ADBC_DRIVER_1_1_0_SIZE   (sizeof(struct AdbcDriver))

The size of the AdbcDriver structure in ADBC 1.1.0. Drivers written for ADBC 1.1.0 and later should never touch more than this portion of an AdbcDriver struct when given ADBC_VERSION_1_1_0.

Since
ADBC API revision 1.1.0

Typedef Documentation

◆ AdbcDriverInitFunc

typedef AdbcStatusCode(* AdbcDriverInitFunc) (int version, void *driver, struct AdbcError *error)

Common entry point for drivers via the driver manager (which uses dlopen(3)/LoadLibrary). The driver manager is told to load a library and call a function of this type to load the driver.

Although drivers may choose any name for this function, the recommended name is "AdbcDriverInit", or a name derived from the name of the driver's shared library as follows: remove the 'lib' prefix (on Unix systems) and all file extensions, then PascalCase the driver name, append Init, and prepend Adbc (if not already there). For example:

  • libadbc_driver_sqlite.so.2.0.0 -> AdbcDriverSqliteInit
  • adbc_driver_sqlite.dll -> AdbcDriverSqliteInit
  • proprietary_driver.dll -> AdbcProprietaryDriverInit
Parameters
[in]versionThe ADBC revision to attempt to initialize (see ADBC_VERSION_1_0_0).
[out]driverThe table of function pointers to initialize. Should be a pointer to the appropriate struct for the given version (see the documentation for the version).
[out]errorAn optional location to return an error message if necessary.
Returns
ADBC_STATUS_OK if the driver was initialized, or ADBC_STATUS_NOT_IMPLEMENTED if the version is not supported. In that case, clients may retry with a different version.