File indexing completed on 2025-12-16 09:21:10
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011 #ifndef USPIN_SPINDBOUTPUT_H
0012 #define USPIN_SPINDBOUTPUT_H
0013
0014 #include <map>
0015 #include <memory> // for unique_ptr
0016 #include <string>
0017 #include <vector>
0018
0019 namespace odbc
0020 {
0021 class Connection;
0022 class Statement;
0023 class ResultSet;
0024 };
0025
0026 class SpinDBContent;
0027
0028 class SpinDBOutput
0029 {
0030 public:
0031 SpinDBOutput() { Initialize(); }
0032 SpinDBOutput(const char *user)
0033 {
0034 Initialize();
0035 SetUserName(user);
0036 }
0037 virtual ~SpinDBOutput() = default;
0038 void Initialize();
0039 void SetUserName(const std::string &user)
0040 {
0041 user_name = user;
0042 return;
0043 }
0044 void SetDBName(const std::string &dbname);
0045 void SetTableName(const std::string &tname);
0046 int PrintDBColumn();
0047 int PrintDBRawContent(int runnum);
0048 int PrintDBRawContent(int runnum, int qa_level);
0049 int CheckRunRow(int runnum);
0050 int CheckRunRow(int runnum, int qa_level);
0051 int CheckRunRowStore(int runnum);
0052 int StoreDBContent(int run1, int run2);
0053 int StoreDBContent(int run1, int run2, int qa_level);
0054 void ClearDBContent();
0055 int GetDBContent(SpinDBContent *&spin_cont, int runnum);
0056 int GetDBContent(SpinDBContent *&spin_cont, int runnum, int qa_level);
0057 int GetDBContentStore(SpinDBContent *&spin_cont, int runnum);
0058 static int CopyDBContent(SpinDBContent &spin_cont, SpinDBContent &spin_cont_copy);
0059 int GetDefaultQA(int runnum);
0060 void Verbosity(int verbose = 0) { verbosity = verbose; }
0061
0062 private:
0063 static constexpr int ERROR_VALUE{-999};
0064
0065 int verbosity{0};
0066
0067 std::string db_name;
0068 std::string user_name;
0069 std::string table_name;
0070
0071 std::map<int, std::unique_ptr<SpinDBContent>> spin_cont_store;
0072
0073 odbc::Connection *ConnectDB(void);
0074 int GetDBContent(SpinDBContent &spin_cont, odbc::ResultSet *rs);
0075 int GetArray(odbc::ResultSet *rs, const std::string &name, std::vector<std::string> &value) const;
0076 int GetArray(odbc::ResultSet *rs, const std::string &name, float *value, int nvalue);
0077 int GetArray(odbc::ResultSet *rs, const std::string &name, unsigned int *value, int nvalue);
0078 int GetArray(odbc::ResultSet *rs, const std::string &name, int *value, int nvalue);
0079 int GetArray(odbc::ResultSet *rs, const std::string &name, long long *value, int nvalue);
0080 };
0081
0082 #endif