Jpp test-rotations-new
the software that should make you happy
Loading...
Searching...
No Matches
getUUID.cc File Reference

Auxiliary program to print UUID. More...

#include <string>
#include <iostream>
#include <fstream>
#include <iomanip>
#include "TFile.h"
#include "TError.h"
#include "JLang/JUUID.hh"
#include "Jeep/JComment.hh"
#include "JIO/JFileStreamIO.hh"
#include "JDetector/JDetectorToolkit.hh"
#include "JSupport/JFilenameSupportkit.hh"
#include "Jeep/JParser.hh"
#include "Jeep/JMessage.hh"

Go to the source code of this file.

Functions

int main (int argc, char **argv)
 

Detailed Description

Auxiliary program to print UUID.

Author
mdejong

Definition in file getUUID.cc.

Function Documentation

◆ main()

int main ( int argc,
char ** argv )

Definition at line 23 of file getUUID.cc.

24{
25 using namespace std;
26 using namespace JPP;
27
28 string inputFile;
29 int debug;
30
31 try {
32
33 JParser<> zap("Auxiliary program to print UUID.");
34
35 zap['f'] = make_field(inputFile) = "";
36 zap['d'] = make_field(debug) = 1;
37
38 zap(argc, argv);
39 }
40 catch(const exception &error) {
41 FATAL(error.what() << endl);
42 }
43
44 if (inputFile != "") {
45
46 if (getFilenameExtension(inputFile) == ROOT_FILE_FORMAT) {
47
48 gErrorIgnoreLevel = kError;
49
50 TFile* file = TFile::Open(inputFile.c_str(), "EXISTS");
51
52 if (file != NULL) {
53 file->GetUUID().Print();
54 file->Close();
55 } else
56 return 1;
57
58 } else if (getFilenameExtension(inputFile) == ASCII_FILE_FORMAT ||
59 getFilenameExtension(inputFile) == KM3NET_DETECTOR_FILE_FORMAT) {
60
61 ifstream in(inputFile.c_str());
62
63 JComment comment;
64
65 if (in >> comment && comment.hasUUID())
66 cout << comment.getUUID() << endl;
67 else
68 return 1;
69
70 in.close();
71
72 } else if (getFilenameExtension(inputFile) == BINARY_DETECTOR_FILE_FORMAT[0] ||
73 getFilenameExtension(inputFile) == BINARY_DETECTOR_FILE_FORMAT[1]) {
74
75 JFileStreamReader in(inputFile.c_str());
76
77 JComment comment;
78
79 char c;
80
81 for (string buffer; in >> c && c == JComment::START_COMMENT; ) {
82
83 in >> buffer;
84
85 comment.add(buffer);
86 }
87
88 if (comment.hasUUID())
89 cout << comment.getUUID() << endl;
90 else
91 return 1;
92
93 in.close();
94 }
95
96 } else {
97
98 cout << JUUID::rndm() << endl;
99 }
100
101 return 0;
102}
#define FATAL(A)
Definition JMessage.hh:67
int debug
debug level
Definition JSirene.cc:72
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
Definition JParser.hh:2142
Binary buffered file input.
Utility class to parse command line options.
Definition JParser.hh:1698
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
Auxiliary class for comment.
Definition JComment.hh:43
bool hasUUID() const
Check if this comment has UUID.
Definition JComment.hh:129
JUUID getUUID() const
Get UUID.
Definition JComment.hh:140
JComment & add(const std::string &comment)
Add comment.
Definition JComment.hh:100