VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
vrfDatabaseConnection.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 <atomic>
10 
13 
25 {
26 public:
27 
29  virtual ~DtVrfDatabaseConnection();
30 
34  virtual bool initialize(const DtRwDatabaseLoggerConfig& config,
36 
39  virtual void run();
40 
41 protected:
42 
45 
47  virtual bool processConfiguration(const DtRwDatabaseLoggerConfig& config);
48 
50  virtual bool connect() = 0;
51 
53  virtual bool createDatabase() = 0;
54 
56  virtual bool stop();
57 
59  virtual bool createTableForEvent(const DtVrfDatabaseEvent& event) = 0;
60 
63  virtual bool insertOrIgnoreEntriesForEvents(const DtVrfDatabaseEventVector& events) = 0;
64 
67  virtual bool insertOrUpdateEntriesForEvents(const DtVrfDatabaseEventVector& events) = 0;
68 
70  virtual bool updateEntryForEvent(const DtVrfDatabaseEvent& event) = 0;
71 
72 private:
73 
76 
78  DtVrfDatabaseConnection& operator=(const DtVrfDatabaseConnection& other);
79 
80 protected:
81 
83 
84  double myLogPeriod;
85 
86  std::vector<bool> myCreatedTables;
87 
88  std::atomic<bool> myTimeToStop;
89  std::atomic<bool> myStopped;
90 
91  class LogToDatabaseTask;
92  LogToDatabaseTask* myTask;
93 
94 };
95 
99 {
100 public:
101 
104 
108  {
109  return new DtVrfNoDatabaseConnection();
110  };
111 
113  static DtString type()
114  {
115  return "no-database-connection";
116  };
117 
118 protected:
119 
122 
124  virtual bool processConfiguration(const DtRwDatabaseLoggerConfig& config) { return true; };
125 
127  virtual bool connect() { return false; }
128 
130  virtual bool createDatabase() { return false; };
131 
133  virtual bool createTableForEvent(const DtVrfDatabaseEvent& event) { return false; };
134 
137  virtual bool insertOrIgnoreEntriesForEvents(const DtVrfDatabaseEventVector& events) { return false; };
138 
141  virtual bool insertOrUpdateEntriesForEvents(const DtVrfDatabaseEventVector& events) { return false; };
142 
144  virtual bool updateEntryForEvent(const DtVrfDatabaseEvent& event) { return false; };
145 
146 private:
147 
150 
153 };
154 
155 
virtual bool createTableForEvent(const DtVrfDatabaseEvent &event)
Creates a table a database table, if necessary.
Definition: vrfDatabaseConnection.h:133
virtual bool insertOrIgnoreEntriesForEvents(const DtVrfDatabaseEventVector &events)
Logs the given events to the database. NOTE: All events in the list must be of the same event type! ...
Definition: vrfDatabaseConnection.h:137
std::atomic< bool > myStopped
Definition: vrfDatabaseConnection.h:89
virtual bool processConfiguration(const DtRwDatabaseLoggerConfig &config)
Processes the configuration for this connection.
Definition: vrfDatabaseConnection.h:124
static DtVrfDatabaseConnection * create()
Creator function for this class. Should not generally be called directly. Database Connection should ...
Definition: vrfDatabaseConnection.h:107
DtVrfDatabaseLoggerInterface * myDatabaseLogger
Definition: vrfDatabaseConnection.h:82
This is the default database connection that is used if database logging is disabled or no connection...
Definition: vrfDatabaseConnection.h:98
static DtString type()
Type of this connection.
Definition: vrfDatabaseConnection.h:113
std::vector< DtVrfDatabaseEventUniquePtr > DtVrfDatabaseEventVector
Definition: vrfDatabaseEvent.h:183
virtual bool insertOrUpdateEntriesForEvents(const DtVrfDatabaseEventVector &events)
Logs the given events to the database. NOTE: All events in the list must be of the same event type! ...
Definition: vrfDatabaseConnection.h:141
Contains the configuration options for the database logger.
Definition: rwDatabaseLoggerConfig.h:21
The base class for database loggers. A database logger is responsible for logging database events int...
Definition: vrfDatabaseLoggerInterface.h:27
LogToDatabaseTask * myTask
Definition: vrfDatabaseConnection.h:91
DtVrfDatabaseConnection & operator=(const DtVrfDatabaseConnection &other)
Assignment Operator not implemented – Do Not copy.
std::atomic< bool > myTimeToStop
Definition: vrfDatabaseConnection.h:88
virtual bool updateEntryForEvent(const DtVrfDatabaseEvent &event)
Updates the given event in the database.
Definition: vrfDatabaseConnection.h:144
std::vector< bool > myCreatedTables
Definition: vrfDatabaseConnection.h:86
The base class for all database connections. The database connection is responsible for reading queue...
Definition: vrfDatabaseConnection.h:24
DtVrfNoDatabaseConnection()
Constructor.
Definition: vrfDatabaseConnection.h:121
virtual ~DtVrfNoDatabaseConnection()
Destructor.
Definition: vrfDatabaseConnection.h:103
Represents a single event to be recorded in the database. Anytime something occurs that requires data...
Definition: vrfDatabaseEvent.h:22
virtual bool createDatabase()
Creates the database.
Definition: vrfDatabaseConnection.h:130
#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
double myLogPeriod
Definition: vrfDatabaseConnection.h:84
virtual bool connect()
Connect to the server.
Definition: vrfDatabaseConnection.h:127

Document ID: Generated on Tue Sep 24 19:28:17 EDT 2024 from SVN revision 269799
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)