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 
99  try {
100 
101  JProcess proc(MAKE_STRING("uname -a;" <<
102  "which " << argv[0]));
103 
104  istream in(proc.getInputStreamBuffer());
105 
106  getline(in, (*this)[system_t]);
107  getline(in, (*this)[command_t]);
108 
109  for (int i = 1; i != argc; ++i) {
110  if (get_number_of_tokens(argv[i]) == 1)
111  (*this)[command_t] += MAKE_STRING(' ' << argv[i]);
112  else
113  (*this)[command_t] += MAKE_STRING(' ' << "\\\"" << argv[i] << "\\\"");
114  }
115  }
116  catch(const JException& error) {
117  (*this)[system_t] = error.what();
118  }
119  }
120  }
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 getNamespace(const std::string &type_name)
Get name space, i.e.
Definition: JeepToolkit.hh:207
static const char *const ROOTrelease_t
ROOT release.
Definition: JMeta.hh:62
#define MAKE_STRING(A)
Make string.
Definition: JPrint.hh:602
std::istream & getline(std::istream &in, JString &object)
Read string from input stream until end of line.
Definition: JString.hh:468
const char * getGITVersion()
Get GIT version.
Definition: Jpp.hh:53
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.
Definition: JeepToolkit.hh:85
static const char *const command_t
Linux command.
Definition: JMeta.hh:64

Member Function Documentation

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

Type conversion operator.

Returns
comment

Definition at line 128 of file JMeta.hh.

129  {
130  JComment comment;
131 
132  for (const_iterator i = this->begin(); i != this->end(); ++i) {
133  comment.add(i->first + ' ' + i->second);
134  }
135 
136  return comment;
137  }
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 400 of file JMeta.hh.

401  {
402  using namespace JPP;
403 
404  JRootFileReader<JMeta> in(file_name);
405 
406  while (in.hasNext()) {
407 
408  const JMeta* p = in.next();
409 
410  putObject(&out, *p);
411  }
412  }
Auxiliary class for ROOT I/O of application specific meta data.
Definition: JMeta.hh:71
bool putObject(TDirectory *dir, const JMeta &meta)
Write meta data to ROOT directory.
Definition: JMeta.hh:380
static const JEquationParameters& JSUPPORT::JMeta::getEquationParameters ( )
inlinestatic

Get equation parameters.

Returns
equation parameters

Definition at line 154 of file JMeta.hh.

155  {
156  static const JEquationParameters parameters("=", "\n", "", "");
157 
158  return parameters;
159  }
static JMeta JSUPPORT::JMeta::valueOf ( const std::string &  buffer)
inlinestatic

Extract meta data.

Parameters
buffermeta data
Returns
meta data

Definition at line 168 of file JMeta.hh.

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

Convert meta data to string.

Returns
string

Definition at line 192 of file JMeta.hh.

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

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 216 of file JMeta.hh.

217  {
218  using namespace std;
219 
220  const_iterator p = meta.find(application_t);
221 
222  if (p != meta.end()) {
223  for (const_iterator i = meta.begin(); i != meta.end(); ++i) {
224  if (i != p) {
225  out << p->second << ' ' << i->second << endl;
226  }
227  }
228  }
229 
230  return out;
231  }
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: