CARMA C++
ProjectDatabaseManagerImpl.h
1 #ifndef CARMA_OBSERVERTOOLS_PROJECTDATABASEMANAGER_H
2 #define CARMA_OBSERVERTOOLS_PROJECTDATABASEMANAGER_H
3 
4 #include <carma/observertools/ProjectDatabaseManager.h>
5 #include <carma/observertools/PDB_Monitor.h>
6 #include <carma/util/PthreadMutex.h>
7 #include <boost/shared_ptr.hpp>
8 #include <string>
9 
10 namespace carma {
11 namespace observertools {
12 
13 struct PDBMArgs {
14  std::string hostname;
15  unsigned short port;
16  std::string database;
17  bool rt;
18 
19  PDB_Monitor_Ptr monitor;
20  double awdelay;
21 };
22 
23 class ProjectDatabaseManagerImpl
24 {
25 public:
31  ProjectDatabaseManagerImpl(const struct PDBMArgs &args);
32 
41  void checkDatabase() const;
42 
53  ProjectSequence *projectQuery(const ItemValueSequence &theQuery) const;
54 
59  void projectQueryInOut(
60  const ItemValueSequence &theQuery,
61  ProjectSequence_out pSeq) const;
62 
75  StringSequence *projectOscriptFind(
76  const char *projectID,
77  const char *obsblock,
78  const char *subObsblock) const;
79 
90  void projectOscriptAdd(
91  const char *projectID,
92  const char *obsblock,
93  const char *subObsblock,
94  const char *scriptFile,
95  const char *catalogFile) const;
96 
109  CORBA::Boolean projectEdit(
110  const char *projectID,
111  const char *obsblock,
112  const char *subObsblock,
113  const CORBA::Short trial,
114  const ItemValueSequence &editItems,
115  const EditStatus action) const;
116 
121  void projectEditInOut(
122  const char *projectID,
123  const char *obsblock,
124  const char *subObsblock,
125  const CORBA::Short trial,
126  const ItemValueSequence &editItems,
127  const EditStatus action,
128  const CORBA::Boolean_out success) const;
129 
130  CORBA::Short runProject(
131  const char *projectID,
132  const char *obsblock,
133  const char *subObsblock,
134  const bool isCommissioning,
135  const bool isDualCorr,
136  const char *arrayConfig1,
137  const char *arrayConfig2,
138  const char *scriptFile,
139  const char *catalogFile) const;
140 
141  void runProjectInOut(
142  const char *projectID,
143  const char *obsblock,
144  const char *subObsblock,
145  const bool isCommissioning,
146  const bool isDualCorr,
147  const char *arrayConfig1,
148  const char *arrayConfig2,
149  const char *scriptFile,
150  const char *catalogFile,
151  CORBA::Short &trialID) const;
152 
153  CORBA::Short isUp() const;
154 
155  CORBA::Boolean isCommissioning(const char *pid) const;
156 
165  void projectAdd(const char *fileName) const;
166 
174  bool projectAddAsString(const char *xmlString) const;
175 
181  char *gradeToLetter(float grade) const;
182 
188  float letterToGrade(const char *letter) const;
189 
190 private:
191  // No copying
192  ProjectDatabaseManagerImpl(const ProjectDatabaseManagerImpl &rhs);
193  ProjectDatabaseManagerImpl& operator=(const ProjectDatabaseManagerImpl &rhs);
194 
195  const struct PDBMArgs args_;
196  mutable carma::util::PthreadMutex mutex_;
197 };
198 
199 } // namespace carma::observertools
200 } // namespace carma
201 
202 /* vim: set ts=4 sts=4 sw=4 et: */
203 
204 #endif // CARMA_OBSERVERTOOLS_PROJECTDATABASEMANAGER_H
sequence< string > StringSequence
Sequence of strings.
EditStatus
Various enumeration constants.
sequence< Project > ProjectSequence
Sequence of projects.
sequence< ItemValue > ItemValueSequence
Sequence of an Item name and value pairs.
Definition: ItemValue.idl:26
A simple wrapper class that makes use of ::pthread_mutex_t easier in a C++ world. ...
Definition: PthreadMutex.h:41