File: HDFFileLogGroup.hpp

package info (click to toggle)
pbseqlib 5.3.5%2Bdfsg-4
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 7,020 kB
  • sloc: cpp: 77,250; python: 331; sh: 103; makefile: 41
file content (63 lines) | stat: -rw-r--r-- 1,851 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#ifndef HDF_FILE_LOG_GROUP_H_
#define HDF_FILE_LOG_GROUP_H_

#include <hdf/HDFArray.hpp>
#include <hdf/HDFGroup.hpp>

class HDFFileLogGroup
{
public:
    HDFGroup group;
    HDFStringArray commandLineArray;
    HDFStringArray versionArray;
    HDFStringArray timestampArray;
    HDFArray<unsigned int> idArray;
    HDFStringArray logArray;
    HDFStringArray programArray;

    int Initialize(HDFGroup &parentGroup)
    {
        if (group.Initialize(parentGroup.group, "FileLog") == 0) {
            return 0;
        }
        int ret = 1;
        ret *= commandLineArray.Initialize(group, "CommandLine");
        ret *= versionArray.Initialize(group, "Version");
        ret *= timestampArray.Initialize(group, "Timestamp");
        ret *= idArray.Initialize(group, "ID");
        ret *= logArray.Initialize(group, "Log");
        ret *= programArray.Initialize(group, "Program");
        return ret;
    }

    void AddEntry(std::string command, std::string log, std::string program, std::string timestamp,
                  std::string version)
    {
        commandLineArray.Write(&command, 1);
        versionArray.Write(&version, 1);
        timestampArray.Write(&timestamp, 1);
        programArray.Write(&program, 1);
        logArray.Write(&log, 1);

        unsigned int id = idArray.size();
        id = id + 1;
        idArray.Write(&id, 1);
    }

    bool Create(HDFGroup &parent)
    {
        parent.AddGroup("FileLog");
        if (group.Initialize(parent.group, "FileLog") == 0) {
            return false;
        }
        commandLineArray.Create(group, "CommandLine");
        versionArray.Create(group, "Version");
        timestampArray.Create(group, "Timestamp");
        programArray.Create(group, "Program");
        logArray.Create(group, "Log");
        idArray.Create(group, "ID");
        return true;
    }
};

#endif