Jpp
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Static Public Member Functions | Friends | List of all members
JSUPPORT::JMeta Struct Reference

Auxiliary class for ROOT I/O of application specific meta data. More...

#include <JMeta.hh>

Inheritance diagram for JSUPPORT::JMeta:
std::map< std::string, std::string > JSUPPORT::JMetaOld_t

Public Member Functions

 JMeta ()
 Default constructor. More...
 
 JMeta (const int argc, const char *const argv[])
 Constructor. More...
 
 operator JComment () const
 Type conversion operator. More...
 
std::string toString () const
 Convert meta data to string. More...
 

Static Public Member Functions

static void copy (const char *const file_name, TFile &out)
 Copy meta data. More...
 
static const JEquationParametersgetEquationParameters ()
 Get equation parameters. More...
 
static JMeta valueOf (const std::string &buffer)
 Extract meta data. More...
 

Friends

std::ostream & operator<< (std::ostream &out, const JMeta &meta)
 Write meta data to output. More...
 

Detailed Description

Auxiliary class for ROOT I/O of application specific meta data.

Definition at line 71 of file JMeta.hh.

Constructor & Destructor Documentation

JSUPPORT::JMeta::JMeta ( )
inline

Default constructor.

Definition at line 77 of file JMeta.hh.

78  {}
JSUPPORT::JMeta::JMeta ( const int  argc,
const char *const  argv[] 
)
inline

Constructor.

Parameters
argcnumber of command line arguments
argvarray of command line arguments

Definition at line 87 of file JMeta.hh.

88  {
89  using namespace std;
90  using namespace JPP;
91 
92  if (argc > 0) {
93 
94  (*this)[application_t] = getFilename(argv[0]);
95  (*this)[GITrelease_t] = getGITVersion();
96  (*this)[ROOTrelease_t] = ROOT_RELEASE;
97  (*this)[namespace_t] = getNamespace();
98  (*this)[command_t] = MAKE_STRING(getPath(PATH, argv[0]) << '/' << argv[0]);
99 
100  for (int i = 1; i != argc; ++i) {
101  if (get_number_of_tokens(argv[i]) == 1)
102  (*this)[command_t] += MAKE_STRING(' ' << argv[i]);
103  else
104  (*this)[command_t] += MAKE_STRING(' ' << "\\\"" << argv[i] << "\\\"");
105  }
106 
107  const JUTSName buffer;
108 
109  (*this)[system_t] = MAKE_STRING(""
110  << buffer.sysname << ' '
111  << buffer.nodename << ' '
112  << buffer.release << ' '
113  << buffer.version << ' '
114  << buffer.machine);
115  }
116  }
static const char *const application_t
Definition of meta data parameters.
Definition: JMeta.hh:59
static const char *const GITrelease_t
GIT release.
Definition: JMeta.hh:61
std::string getPath(const std::string &file_name)
Get path, i.e. part before last JEEP::PATHNAME_SEPARATOR if any.
Definition: JeepToolkit.hh:108
std::string getNamespace(const std::string &type_name)
Get name space, i.e. part before JEEP::TYPENAME_SEPARATOR.
Definition: JeepToolkit.hh:225
static const char *const ROOTrelease_t
ROOT release.
Definition: JMeta.hh:62
#define MAKE_STRING(A)
Make string.
Definition: JPrint.hh:699
std::string getGITVersion(const std::string &tag)
Get GIT version for given GIT tag.
Definition: JGITTags.hh:34
size_t get_number_of_tokens(const std::string &buffer)
Count number of white space separated tokens.
static const char *const system_t
system information
Definition: JMeta.hh:65
static const char *const namespace_t
name space
Definition: JMeta.hh:63
std::string getFilename(const std::string &file_name)
Get file name part, i.e. part after last JEEP::PATHNAME_SEPARATOR if any.
Definition: JeepToolkit.hh:88
static const char *const command_t
Linux command.
Definition: JMeta.hh:64
static const char *const PATH
binary file paths
Definition: JeepToolkit.hh:32

Member Function Documentation

JSUPPORT::JMeta::operator JComment ( ) const
inline

Type conversion operator.

Returns
comment

Definition at line 124 of file JMeta.hh.

125  {
126  JComment comment;
127 
128  for (const_iterator i = this->begin(); i != this->end(); ++i) {
129  comment.add(i->first + ' ' + i->second);
130  }
131 
132  return comment;
133  }
void JSUPPORT::JMeta::copy ( const char *const  file_name,
TFile &  out 
)
static

Copy meta data.

Parameters
file_namename of input file
outoutput file

Definition at line 396 of file JMeta.hh.

397  {
398  using namespace JPP;
399 
400  JRootFileReader<JMeta> in(file_name);
401 
402  while (in.hasNext()) {
403 
404  const JMeta* p = in.next();
405 
406  putObject(&out, *p);
407  }
408  }
Auxiliary class for ROOT I/O of application specific meta data.
Definition: JMeta.hh:71
esac print_variable DETECTOR INPUT_FILE OUTPUT_FILE CDF for TYPE in
Definition: JSirene.sh:45
bool putObject(TDirectory *dir, const JMeta &meta)
Write meta data to ROOT directory.
Definition: JMeta.hh:376
static const JEquationParameters& JSUPPORT::JMeta::getEquationParameters ( )
inlinestatic

Get equation parameters.

Returns
equation parameters

Definition at line 150 of file JMeta.hh.

151  {
152  static const JEquationParameters parameters("=", "\n", "", "");
153 
154  return parameters;
155  }
*fatal Wrong number of arguments esac JCookie sh typeset Z DETECTOR typeset Z SOURCE_RUN typeset Z TARGET_RUN set_variable PARAMETERS_FILE $WORKDIR parameters
Definition: diff-Tuna.sh:38
static JMeta JSUPPORT::JMeta::valueOf ( const std::string &  buffer)
inlinestatic

Extract meta data.

Parameters
buffermeta data
Returns
meta data

Definition at line 164 of file JMeta.hh.

165  {
166  using namespace std;
167  using namespace JPP;
168 
169  JMeta meta;
170 
171  istringstream is(buffer);
172 
174 
175  for (JEquation equation; is >> equation; ) {
176  meta[equation.getKey()] = equation.getValue();
177  }
178 
179  return meta;
180  }
Auxiliary class for ROOT I/O of application specific meta data.
Definition: JMeta.hh:71
is
Definition: JDAQCHSM.chsm:167
JLANG::JEquationFacet setequation
Type definition of stream manipulator for equational I/O.
static const JEquationParameters & getEquationParameters()
Get equation parameters.
Definition: JMeta.hh:150
std::string JSUPPORT::JMeta::toString ( ) const
inline

Convert meta data to string.

Returns
string

Definition at line 188 of file JMeta.hh.

189  {
190  using namespace std;
191  using namespace JPP;
192 
193  ostringstream os;
194 
196 
197  for (JMeta::const_iterator i = this->begin(); i != this->end(); ++i) {
198  os << JEquation::make_equation(i->first, i->second);
199  }
200 
201  return os.str();
202  }
JLANG::JEquationFacet setequation
Type definition of stream manipulator for equational I/O.
static const JEquationParameters & getEquationParameters()
Get equation parameters.
Definition: JMeta.hh:150

Friends And Related Function Documentation

std::ostream& operator<< ( std::ostream &  out,
const JMeta meta 
)
friend

Write meta data to output.

Parameters
outoutput stream
metameta data
Returns
output stream

Definition at line 212 of file JMeta.hh.

213  {
214  using namespace std;
215 
216  const_iterator p = meta.find(application_t);
217 
218  if (p != meta.end()) {
219  for (const_iterator i = meta.begin(); i != meta.end(); ++i) {
220  if (i != p) {
221  out << p->second << ' ' << i->second << endl;
222  }
223  }
224  }
225 
226  return out;
227  }
static const char *const application_t
Definition of meta data parameters.
Definition: JMeta.hh:59

The documentation for this struct was generated from the following file: