Isis 3 Programmer Reference
DbAccess.h
1 #ifndef DbAccess_h
2 #define DbAccess_h
3 
10 /* SPDX-License-Identifier: CC0-1.0 */
11 
12 #include <string>
13 #include <vector>
14 #include <iostream>
15 
16 #include "CollectorMap.h"
17 #include "DbProfile.h"
18 #include "IException.h"
19 
20 namespace Isis {
21 
22 
23  class PvlObject;
24 
106  class DbAccess : public DbProfile {
107  private:
111 
112  public:
113  // Constructors and Destructor
114  DbAccess() : DbProfile("Database"), _defProfileName(""), _profiles() { }
115  DbAccess(const QString &dbaccFile,
116  const QString &defProfileName = "");
117  DbAccess(PvlObject &pvl, const QString &defProfileName = "");
118 
120  virtual ~DbAccess() { }
121 
127  int profileCount() const {
128  return (_profiles.size());
129  }
130 
138  bool profileExists(const QString &profile) const {
139  return (_profiles.exists(profile));
140  }
141 
142  const DbProfile getProfile(const QString &name = "") const;
143  const DbProfile getProfile(int nth) const;
144 
145 
155  void addProfile(const DbProfile &profile) {
156  _profiles.add(profile.Name(), profile);
157  }
158 
159  void load(const QString &filename);
160  void load(PvlObject &pvl);
161 
162  QString getDefaultProfileName() const;
163 
164  private:
165  QString _defProfileName;
167  };
168 
169 
170 
171 
172 
173 }
174 #endif
Isis::DbAccess::ProfileList
CollectorMap< IString, DbProfile, NoCaseStringCompare > ProfileList
Define the container for the DbAccess key word list.
Definition: DbAccess.h:110
Isis::PvlObject
Contains Pvl Groups and Pvl Objects.
Definition: PvlObject.h:61
Isis::DbAccess::_profiles
ProfileList _profiles
List of profiles.
Definition: DbAccess.h:166
Isis::DbProfile::Name
QString Name() const
Returns the name of this property.
Definition: DbProfile.h:104
Isis::DbAccess::~DbAccess
virtual ~DbAccess()
Destructor ensures everything is cleaned up properly.
Definition: DbAccess.h:120
Isis::DbAccess
DbAccess manages programatic access to a database through profiles.
Definition: DbAccess.h:106
Isis::CollectorMap::size
int size() const
Returns the size of the collection.
Definition: CollectorMap.h:512
Isis::DbAccess::_defProfileName
QString _defProfileName
Name of default profile.
Definition: DbAccess.h:165
Isis::DbAccess::getDefaultProfileName
QString getDefaultProfileName() const
Determine the name of the default profile.
Definition: DbAccess.cpp:189
Isis::CollectorMap::exists
bool exists(const K &key) const
Checks the existance of a particular key in the list.
Definition: CollectorMap.h:551
Isis::DbAccess::load
void load(const QString &filename)
Loads a Database access configuration file.
Definition: DbAccess.cpp:142
Isis::DbProfile
A DbProfile is a container for access parameters to a database.
Definition: DbProfile.h:51
Isis::CollectorMap::add
void add(const K &key, const T &value)
Adds the element to the list.
Definition: CollectorMap.h:540
Isis::CollectorMap< IString, DbProfile, NoCaseStringCompare >
Isis::DbAccess::profileCount
int profileCount() const
Reports the number of user profiles to access this database.
Definition: DbAccess.h:127
Isis::DbAccess::getProfile
const DbProfile getProfile(const QString &name="") const
Retrieves the specified access profile.
Definition: DbAccess.cpp:92
Isis::DbAccess::addProfile
void addProfile(const DbProfile &profile)
Adds a profile to the database profile.
Definition: DbAccess.h:155
Isis::DbAccess::profileExists
bool profileExists(const QString &profile) const
Checks existance of a database user profile.
Definition: DbAccess.h:138
Isis
This is free and unencumbered software released into the public domain.
Definition: Apollo.h:16