Gaudi Framework, version v23r0

Home   Generated: Mon Jan 30 2012
Defines | Functions

SmartDataObjectPtr.cpp File Reference

#include "GaudiKernel/DataObject.h"
#include "GaudiKernel/IDataProviderSvc.h"
#include "GaudiKernel/SmartDataObjectPtr.h"
Include dependency graph for SmartDataObjectPtr.cpp:

Go to the source code of this file.

Defines

#define GAUDIKERNEL_SMARTDATAOBJECTPTR_CPP   1

Functions

bool operator&& (SmartDataObjectPtr &object_1, SmartDataObjectPtr &object_2)
 Helper to test Smart data objects efficiently This construct allows statements like: SmartEvtDataPtr<MCVertexVector> mcvertices (evt,"/MC/MCVertices"); SmartEvtDataPtr<MCParticleVector> mctracks (evt,"/MC/MCParticles"); if ( mctracks && mcvertices ) { ...
bool operator|| (SmartDataObjectPtr &object_1, SmartDataObjectPtr &object_2)
 Helper to test Smart data objects efficiently This construct allows statements like: SmartEvtDataPtr<MCVertexVector> mcvertices (evt,"/MC/MCVertices"); SmartEvtDataPtr<MCParticleVector> mctracks (evt,"/MC/MCParticles"); if ( mctracks || mcvertices ) { ...

Define Documentation

#define GAUDIKERNEL_SMARTDATAOBJECTPTR_CPP   1

Definition at line 11 of file SmartDataObjectPtr.cpp.


Function Documentation

bool operator&& ( SmartDataObjectPtr object_1,
SmartDataObjectPtr object_2 
)

Helper to test Smart data objects efficiently This construct allows statements like: SmartEvtDataPtr<MCVertexVector> mcvertices (evt,"/MC/MCVertices"); SmartEvtDataPtr<MCParticleVector> mctracks (evt,"/MC/MCParticles"); if ( mctracks && mcvertices ) { ...

} and tests the existence of BOTH objects in the data store. This is not done inline due to danger of code explosion.

Parameters:
object_1Smart pointer to object 1
object_2Smart pointer to second object
Returns:
Boolean indicating existence of both objects

Definition at line 145 of file SmartDataObjectPtr.cpp.

                                                                              {
  if ( 0 != object_1.accessData() )    {      // Test existence of the first object
    if ( 0 != object_2.accessData() )    {    // Test existence of the second object
      return true;                            // Fine: Both objects exist
    }
  }
  return false;                               // Tough luck: One is missing.
}
bool operator|| ( SmartDataObjectPtr object_1,
SmartDataObjectPtr object_2 
)

Helper to test Smart data objects efficiently This construct allows statements like: SmartEvtDataPtr<MCVertexVector> mcvertices (evt,"/MC/MCVertices"); SmartEvtDataPtr<MCParticleVector> mctracks (evt,"/MC/MCParticles"); if ( mctracks || mcvertices ) { ...

} and tests the existence of at least one objects in the data store. The second object will then NOT be loaded. It is assumed that the second choice is only an alternative usable in case the first object cannot be retrieved.

This is not done inline due to danger of code explosion.

Parameters:
object_1Smart pointer to object 1
object_2Smart pointer to second object
Returns:
Boolean indicating existence of both objects

Definition at line 170 of file SmartDataObjectPtr.cpp.

                                                                              {
  if ( 0 != object_1.accessData() )    {      // Test existence of the first object
    return true;
  }
  if ( 0 != object_2.accessData() )    {      // Test existence of the second object
    return true;
  }
  return false;                               // Tough luck: Both are missing.
}
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines

Generated at Mon Jan 30 2012 13:53:08 for Gaudi Framework, version v23r0 by Doxygen version 1.7.2 written by Dimitri van Heesch, © 1997-2004