Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-06 08:18:39

0001 //////////////////////////////////////////////////////////////
0002 //
0003 // SpinDBInput class
0004 // Author      : D. Loomis, D. Neff (from Y. Fukao PHENIX class)
0005 // Description : Utility to write data into the spin database
0006 // Created     : 2024-05-12
0007 //
0008 //////////////////////////////////////////////////////////////
0009 
0010 #ifndef USPIN_SPINDBINPUT_H
0011 #define USPIN_SPINDBINPUT_H
0012 
0013 #include "SpinDBContent.h"
0014 
0015 #include <stdio.h>
0016 #include <sstream>
0017 
0018 namespace odbc
0019 {
0020   class Connection;
0021   class Statement;
0022   class ResultSet;
0023 };  // namespace odbc
0024 
0025 class SpinDBInput
0026 {
0027  public:
0028   SpinDBInput() { Initialize(); }
0029   virtual ~SpinDBInput();
0030   void Initialize();
0031   int IsConnected();
0032   int CheckRunRow(int runnum, int qa_level, const char *opt = "");
0033   int CreateRunRow(int runnum, int qa_level);
0034   int DeleteRunRow(int runnum, int qa_level);
0035   int InitializeRunRow(SpinDBContent spin_cont);
0036   int UpdateDBContent(SpinDBContent spin_cont);
0037   int SetDefaultQA(SpinDBContent spin_cont);
0038   int UpdateValue(int runnum, int qa_level, const char *name, int value);
0039   int UpdateValue(int runnum, int qa_level, const char *name, float value);
0040   int UpdateValue(int runnum, int qa_level, const char *name, double value);
0041   int UpdateArray(int runnum, int qa_level, const char *name, int *value, int nvalue);
0042   int UpdateArray(int runnum, int qa_level, const char *name, float *value, int nvalue);
0043   int UpdateArray(int runnum, int qa_level, const char *name, double *value, int nvalue);
0044   int UpdateArray(int runnum, int qa_level, const char *name, unsigned int *value, int nvalue);
0045   int UpdateArray(int runnum, int qa_level, const char *name, long long *value, int nvalue);
0046   int InitializeValue(int runnum, int qa_level, const char *name);
0047   int InitializeArray(int runnum, int qa_level, const char *name, int nvalue);
0048 
0049  private:
0050   static const std::string DB_NAME;
0051   static const std::string TABLE_NAME;
0052   static const int ERROR_VALUE;
0053 
0054   odbc::Connection *con{nullptr};
0055   int run_check;
0056   int qa_check;
0057 
0058   int UpdateValue(int runnum, int qa_level, const char *cmd);
0059   template <class T>
0060   int UpdateValueTemp(int runnum, int qa_level, const char *name, T value);
0061   template <class T>
0062   int UpdateArrayTemp(int runnum, int qa_level, const char *name, T *value, int nvalue);
0063 };
0064 
0065 #endif /* USPIN_SPINDBINPUT_H */