VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
vrfSqliteDatabaseConnection.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2024 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 #pragma once
6 
9 #include <vlutil/vlFilename.h>
10 #include <atomic>
11 
12 struct sqlite3;
13 
17 {
18 public:
19 
21  virtual ~DtVrfSqliteDatabaseConnection() override;
22 
26  {
27  return new DtVrfSqliteDatabaseConnection();
28  };
29 
31  static DtString type()
32  {
33  return "sqlite-database-connection";
34  };
35 
36 protected:
37 
40 
42  virtual bool processConfiguration(const DtRwDatabaseLoggerConfig& config) override;
43 
45  virtual bool connect() override { return true; }
46 
48  virtual bool createDatabase() override;
49 
51  virtual bool createTableForEvent(const DtVrfDatabaseEvent& event) override;
52 
55  virtual bool insertOrIgnoreEntriesForEvents(const DtVrfDatabaseEventVector& events) override;
56 
59  virtual bool insertOrUpdateEntriesForEvents(const DtVrfDatabaseEventVector& events) override;
60 
62  virtual bool updateEntryForEvent(const DtVrfDatabaseEvent& event) override;
63 
65  virtual std::string escapeString(std::string str) override;
66 
67 private:
68 
71 
74 
75 protected:
76 
77  DtFilename myFilename;
78 
79  sqlite3* myDb;
80 };
81 
82 
virtual bool updateEntryForEvent(const DtVrfDatabaseEvent &event)=0
Updates the given event in the database.
virtual bool connect() override
There is no server connection for SQLite.
Definition: vrfSqliteDatabaseConnection.h:45
virtual std::string escapeString(std::string str)
Takes the given string and escapes it for use in an SQL statement. Default implementation just return...
Definition: vrfDatabaseConnection.h:76
std::vector< DtVrfDatabaseEventUniquePtr > DtVrfDatabaseEventVector
Definition: vrfDatabaseEvent.h:194
Contains the configuration options for the database logger.
Definition: rwDatabaseLoggerConfig.h:22
virtual bool insertOrIgnoreEntriesForEvents(const DtVrfDatabaseEventVector &events)=0
Logs the given events to the database, ignoring duplicates. NOTE: All events in the list must be of t...
sqlite3 * myDb
Definition: vrfSqliteDatabaseConnection.h:79
static DtVrfDatabaseConnection * create()
Creator function for this class. Should not generally be called directly. Database Connection should ...
Definition: vrfSqliteDatabaseConnection.h:25
virtual bool createDatabase()=0
Creates the database.
virtual bool processConfiguration(const DtRwDatabaseLoggerConfig &config)
Processes the configuration for this connection.
DtVrfDatabaseConnection & operator=(const DtVrfDatabaseConnection &other)
Assignment Operator not implemented – Do Not copy.
static DtString type()
Type of this connection.
Definition: vrfSqliteDatabaseConnection.h:31
DtFilename myFilename
Definition: vrfSqliteDatabaseConnection.h:77
virtual bool insertOrUpdateEntriesForEvents(const DtVrfDatabaseEventVector &events)=0
Logs the given events to the database, updating duplicates. NOTE: All events in the list must be of t...
virtual bool createTableForEvent(const DtVrfDatabaseEvent &event)=0
Creates a table a database table, if necessary.
The base class for all database connections. The database connection is responsible for reading queue...
Definition: vrfDatabaseConnection.h:26
Represents a single event to be recorded in the database. Anytime something occurs that requires data...
Definition: vrfDatabaseEvent.h:22
#define DT_DLL_vrfMsgTransport
This file is used to determine how to build Disable inconsistent dll linkage warning Visual Studio 6...
Definition: vrfCommunicationManagerDefines.h:26
Implements a database connection which will open a SQLite database to record any database events logg...
Definition: vrfSqliteDatabaseConnection.h:16

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)