Jpp  master_rocky-43-ge265d140c
the software that should make you happy
Functions
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 ||
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] ||
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:69
#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
static const char *const KM3NET_DETECTOR_FILE_FORMAT
KM3NeT standard ASCII format
static const char *const BINARY_DETECTOR_FILE_FORMAT[]
JIO binary file format.
std::string getFilenameExtension(const std::string &file_name)
Get file name extension, i.e. part after last JEEP::FILENAME_SEPARATOR if any.
Definition: JeepToolkit.hh:109
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
static const char *const ASCII_FILE_FORMAT
file name extension ASCII format
static const char *const ROOT_FILE_FORMAT
file name extension ROOT format
Definition: JSTDTypes.hh:14
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