Jpp  master_rocky-37-gf0c5bc59d
the software that should make you happy
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Static Protected Attributes | Private Member Functions | List of all members
JROOT::JRootInputFile Class Reference

ROOT input file. More...

#include <JRootFile.hh>

Inheritance diagram for JROOT::JRootInputFile:
JROOT::JRootFile JLANG::JAccessible JLANG::JStorage< JClass_t, JMemory_t > JLANG::JThrow< JAccessible > JLANG::JPointer< JClass_t > JLANG::JNew< JClass_t > JLANG::JAbstractPointer< JClass_t > JLANG::JEquals< JAbstractPointer< JClass_t > > JROOT::JRootFileReader< T, false >

Public Types

typedef JPointer< JClass_t > pointer_type
 
typedef JMemory_t< JClass_t > memory_type
 

Public Member Functions

 JRootInputFile ()
 Default constructor. More...
 
 JRootInputFile (const char *file_name)
 Constructor. More...
 
 ~JRootInputFile ()
 Destructor. More...
 
virtual void open (const char *file_name) override
 Open file. More...
 
virtual void close () override
 Close file. More...
 
TFile * getFile () const
 Get file. More...
 
virtual bool is_open () const override
 Check is file is open. More...
 
virtual void reset () override
 Reset pointer. More...
 
virtual void reset () override
 Reset pointer. More...
 
template<class T >
void reset (const JPointer< T > &pointer)
 Reset pointer. More...
 
template<class T >
void reset (const JPointer< T > &pointer)
 Reset pointer. More...
 
void reset (JClass_t *p)
 Reset pointer. More...
 
void recreate ()
 Recreate object in memory. More...
 
void create ()
 Create object in memory. More...
 
void create (const unsigned int size)
 Create array of objects in memory. More...
 
virtual JClass_t * get () const override
 Get pointer. More...
 
virtual void set (JClass_t *p) override
 Set pointer. More...
 
template<class T >
void set (const JPointer< T > &pointer)
 Set pointer. More...
 
JClass_t *const & getReference () const
 Get rereference to internal pointer. More...
 
JClass_t *& getReference ()
 Get rereference to internal pointer. More...
 
virtual bool equals (const JAbstractPointer &object) const
 Equals. More...
 
bool is_valid () const
 Check validity of pointer. More...
 
JClass_t * operator-> () const
 Smart pointer operator. More...
 
 operator JClass_t * () const
 Type conversion operator. More...
 

Static Public Member Functions

static void Throw (const bool option)
 Enable/disable throw option. More...
 
static int Throw (const JException_t &error, const int value=-1)
 Throw exception or return error. More...
 
static void release (JClass_t *p)
 Release memory. More...
 

Protected Member Functions

void release ()
 Release memory. More...
 

Protected Attributes

JClass_t * __p
 pointer to object More...
 

Static Protected Attributes

static bool do_throw
 throw option More...
 

Private Member Functions

void do_open (const char *file_name)
 Open file. More...
 
void do_close ()
 Close file. More...
 

Detailed Description

ROOT input file.

This class implements the methods open() and close() of the JLANG::JAccessible interface.

Definition at line 95 of file JRootFile.hh.

Member Typedef Documentation

◆ pointer_type

template<class JClass_t , template< class > class JMemory_t = JNew>
typedef JPointer<JClass_t> JLANG::JStorage< JClass_t, JMemory_t >::pointer_type
inherited

Definition at line 32 of file JStorage.hh.

◆ memory_type

template<class JClass_t , template< class > class JMemory_t = JNew>
typedef JMemory_t<JClass_t> JLANG::JStorage< JClass_t, JMemory_t >::memory_type
inherited

Definition at line 33 of file JStorage.hh.

Constructor & Destructor Documentation

◆ JRootInputFile() [1/2]

JROOT::JRootInputFile::JRootInputFile ( )
inline

Default constructor.

Definition at line 102 of file JRootFile.hh.

102  :
103  JRootFile()
104  {}
JRootFile()
Default constructor.
Definition: JRootFile.hh:54

◆ JRootInputFile() [2/2]

JROOT::JRootInputFile::JRootInputFile ( const char *  file_name)
inline

Constructor.

Parameters
file_namefile name

Definition at line 112 of file JRootFile.hh.

112  :
113  JRootFile()
114  {
115  do_open(file_name);
116  }
void do_open(const char *file_name)
Open file.
Definition: JRootFile.hh:158

◆ ~JRootInputFile()

JROOT::JRootInputFile::~JRootInputFile ( )
inline

Destructor.

The destructor closes the file if it is still open.

Definition at line 124 of file JRootFile.hh.

125  {
126  do_close();
127  }
void do_close()
Close file.
Definition: JRootFile.hh:180

Member Function Documentation

◆ open()

virtual void JROOT::JRootInputFile::open ( const char *  file_name)
inlineoverridevirtual

Open file.

The file is not opened when no file exists with the given name.

Parameters
file_namefile name

Implements JLANG::JAccessible.

Reimplemented in JROOT::JRootFileReader< T, false >.

Definition at line 136 of file JRootFile.hh.

137  {
138  do_open(file_name);
139  }

◆ close()

virtual void JROOT::JRootInputFile::close ( )
inlineoverridevirtual

Close file.

Implements JLANG::JAccessible.

Definition at line 145 of file JRootFile.hh.

146  {
147  do_close();
148  }

◆ do_open()

void JROOT::JRootInputFile::do_open ( const char *  file_name)
inlineprivate

Open file.

The file is not opened when no file exists with the given name.

Parameters
file_namefile name

Definition at line 158 of file JRootFile.hh.

159  {
160  set(TFile::Open(file_name, "READ"));
161 
162  if (!is_open()) {
163  Throw(MAKE_EXCEPTION(JFileOpenException, "Error opening file " << file_name));
164  }
165 
166  if (getFile()->TestBit(TFile::kRecovered)) {
167 
168  const char* const value = getenv(ROOT_FILE_RECOVERY_DISABLE);
169 
170  if (value != NULL && strcmp(value,"0") != 0) {
171  Throw(MAKE_EXCEPTION(JFileRecoveryException, "Error recovery file " << file_name << " disabled"));
172  }
173  }
174  }
#define MAKE_EXCEPTION(JException_t, A)
Make exception.
Definition: JException.hh:703
virtual void set(JClass_t *p) override
Set pointer.
Definition: JPointer.hh:75
static void Throw(const bool option)
Enable/disable throw option.
Definition: JThrow.hh:37
TFile * getFile() const
Get file.
Definition: JRootFile.hh:66
virtual bool is_open() const override
Check is file is open.
Definition: JRootFile.hh:77
static const char *const ROOT_FILE_RECOVERY_DISABLE
Environment variable to disable ROOT file recovery.
Definition: JRootFile.hh:37

◆ do_close()

void JROOT::JRootInputFile::do_close ( )
inlineprivate

Close file.

Definition at line 180 of file JRootFile.hh.

181  {
182  if (getFile() != NULL && getFile()->IsOpen()) {
183  getFile()->Close();
184  }
185 
186  reset();
187  }
virtual void reset() override
Reset pointer.
Definition: JStorage.hh:42

◆ getFile()

TFile* JROOT::JRootFile::getFile ( ) const
inlineinherited

Get file.

Returns
pointer to file

Definition at line 66 of file JRootFile.hh.

67  {
68  return get();
69  }
virtual JClass_t * get() const override
Get pointer.
Definition: JPointer.hh:64

◆ is_open()

virtual bool JROOT::JRootFile::is_open ( ) const
inlineoverridevirtualinherited

Check is file is open.

Returns
true if open; else false

Implements JLANG::JAccessible.

Definition at line 77 of file JRootFile.hh.

78  {
79  return (getFile() != NULL && getFile()->IsOpen());
80  }

◆ Throw() [1/2]

static void JLANG::JThrow< JAccessible >::Throw ( const bool  option)
inlinestaticinherited

Enable/disable throw option.

Parameters
optiontrue enable; false disable

Definition at line 37 of file JThrow.hh.

38  {
39  do_throw = option;
40  }
static bool do_throw
throw option
Definition: JThrow.hh:28

◆ Throw() [2/2]

static int JLANG::JThrow< JAccessible >::Throw ( const JException_t &  error,
const int  value = -1 
)
inlinestaticinherited

Throw exception or return error.

Parameters
errorexception
valuereturn code
Returns
return code

Definition at line 51 of file JThrow.hh.

52  {
53  using namespace std;
54 
55  if (do_throw) {
56  throw error;
57  }
58 
59  cerr << error.what() << endl;
60 
61  return value;
62  }
Definition: JSTDTypes.hh:14

◆ reset() [1/5]

template<class JClass_t , template< class > class JMemory_t = JNew>
virtual void JLANG::JStorage< JClass_t, JMemory_t >::reset ( )
inlineoverridevirtualinherited

◆ reset() [2/5]

template<class JClass_t , template< class > class JMemory_t = JNew>
virtual void JLANG::JPointer< JClass_t >::reset
inlineoverridevirtualinherited

◆ reset() [3/5]

template<class JClass_t , template< class > class JMemory_t = JNew>
template<class T >
void JLANG::JPointer< JClass_t >::reset ( class T  )
inlineinherited

Reset pointer.

Parameters
pointerpointer to object

Definition at line 108 of file JPointer.hh.

109  {
110  this->reset(pointer.get());
111  }

◆ reset() [4/5]

template<class JClass_t >
template<class T >
void JLANG::JPointer< JClass_t >::reset ( const JPointer< T > &  pointer)
inlineinherited

Reset pointer.

Parameters
pointerpointer to object

Definition at line 108 of file JPointer.hh.

109  {
110  this->reset(pointer.get());
111  }

◆ reset() [5/5]

template<class JClass_t >
void JLANG::JAbstractPointer< JClass_t >::reset ( JClass_t *  p)
inlineinherited

Reset pointer.

Parameters
ppointer to object

Definition at line 94 of file JAbstractPointer.hh.

95  {
96  if (this->get() != p) {
97 
98  this->reset();
99 
100  if (p != NULL) {
101  this->set(p);
102  }
103  }
104  }
virtual void set(JClass_t *p)=0
Set pointer.
virtual void reset()=0
Reset pointer.
virtual JClass_t * get() const =0
Get pointer.

◆ recreate()

template<class JClass_t , template< class > class JMemory_t = JNew>
void JLANG::JStorage< JClass_t, JMemory_t >::recreate ( )
inlineinherited

Recreate object in memory.

A new object is created if no memory is allocated yet, else the previously created object is maintained.

Definition at line 57 of file JStorage.hh.

58  {
59  if (!this->is_valid()) {
60  this->set(memory_type::create());
61  }
62  }

◆ create() [1/2]

template<class JClass_t , template< class > class JMemory_t = JNew>
void JLANG::JStorage< JClass_t, JMemory_t >::create ( )
inlineinherited

Create object in memory.

The memory allocated by a previously created object will be released.

Definition at line 69 of file JStorage.hh.

70  {
71  this->reset(memory_type::create());
72  }

◆ create() [2/2]

template<class JClass_t , template< class > class JMemory_t = JNew>
void JLANG::JStorage< JClass_t, JMemory_t >::create ( const unsigned int  size)
inlineinherited

Create array of objects in memory.

The memory allocated by previously created objects will be released.

Parameters
sizenumber of elements

Definition at line 81 of file JStorage.hh.

82  {
83  this->reset(memory_type::create(size));
84  }

◆ release() [1/2]

template<class JClass_t , template< class > class JMemory_t = JNew>
void JLANG::JStorage< JClass_t, JMemory_t >::release ( )
inlineprotectedinherited

Release memory.

Definition at line 91 of file JStorage.hh.

92  {
93  memory_type::release(this->get());
94  }

◆ release() [2/2]

template<class JClass_t >
static void JLANG::JNew< JClass_t >::release ( JClass_t *  p)
inlinestaticinherited

Release memory.

Parameters
ppointer to data

Definition at line 41 of file JMemory.hh.

42  {
43  delete p;
44  }

◆ get()

template<class JClass_t >
virtual JClass_t* JLANG::JPointer< JClass_t >::get ( ) const
inlineoverridevirtualinherited

◆ set() [1/2]

template<class JClass_t >
virtual void JLANG::JPointer< JClass_t >::set ( JClass_t *  p)
inlineoverridevirtualinherited

Set pointer.

Parameters
ppointer to object

Implements JLANG::JAbstractPointer< JClass_t >.

Reimplemented in JLANG::JSharedPointer< JClass_t, JMemory_t >.

Definition at line 75 of file JPointer.hh.

76  {
77  this->__p = p;
78  }

◆ set() [2/2]

template<class JClass_t >
template<class T >
void JLANG::JPointer< JClass_t >::set ( const JPointer< T > &  pointer)
inlineinherited

Set pointer.

Parameters
pointerpointer to object

Definition at line 96 of file JPointer.hh.

97  {
98  this->set(pointer.get());
99  }

◆ getReference() [1/2]

template<class JClass_t >
JClass_t* const& JLANG::JPointer< JClass_t >::getReference ( ) const
inlineinherited

Get rereference to internal pointer.

Returns
reference to internal pointer

Definition at line 119 of file JPointer.hh.

120  {
121  return __p;
122  }

◆ getReference() [2/2]

template<class JClass_t >
JClass_t* & JLANG::JPointer< JClass_t >::getReference ( )
inlineinherited

Get rereference to internal pointer.

Returns
reference to internal pointer

Definition at line 130 of file JPointer.hh.

131  {
132  return __p;
133  }

◆ equals()

template<class JClass_t >
virtual bool JLANG::JAbstractPointer< JClass_t >::equals ( const JAbstractPointer< JClass_t > &  object) const
inlinevirtualinherited

Equals.

The equality is evaluated by comparison of the internal pointers.

Parameters
objectabstract pointer
Returns
true if equals; else false

Definition at line 50 of file JAbstractPointer.hh.

51  {
52  return this->get() == object.get();
53  }

◆ is_valid()

template<class JClass_t >
bool JLANG::JAbstractPointer< JClass_t >::is_valid ( ) const
inlineinherited

Check validity of pointer.

Returns
true if pointer not null; else false

Definition at line 83 of file JAbstractPointer.hh.

84  {
85  return this->get() != NULL;
86  }

◆ operator->()

template<class JClass_t >
JClass_t* JLANG::JAbstractPointer< JClass_t >::operator-> ( ) const
inlineinherited

Smart pointer operator.

Returns
pointer to object

Definition at line 112 of file JAbstractPointer.hh.

113  {
114  if (!is_valid())
115  THROW(JNullPointerException, "JAbstractPointer::operator->()");
116  else
117  return this->get();
118  }
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.
Definition: JException.hh:712
Exception for null pointer operation.
Definition: JException.hh:234

◆ operator JClass_t *()

template<class JClass_t >
JLANG::JAbstractPointer< JClass_t >::operator JClass_t * ( ) const
inlineinherited

Type conversion operator.

Returns
pointer to object

Definition at line 126 of file JAbstractPointer.hh.

127  {
128  return this->get();
129  }

Member Data Documentation

◆ do_throw

bool JLANG::JThrow< JAccessible >::do_throw
staticprotectedinherited

throw option

Set default throw option to true.

Definition at line 28 of file JThrow.hh.

◆ __p

template<class JClass_t >
JClass_t* JLANG::JPointer< JClass_t >::__p
protectedinherited

pointer to object

Definition at line 136 of file JPointer.hh.


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