JANA2
C++ framework for multi-threaded data processing
|
Public Types | |
enum class | Status { Uninitialized , Unprocessed , Processed , Inserted , Excepted , Finished } |
enum class | CreationStatus { NotCreatedYet , Created , Inserted , InsertedViaGetObjects , NeverCreated } |
enum | JFactory_Flags_t { JFACTORY_NULL = 0x00 , PERSISTENT = 0x01 , WRITE_TO_OUTPUT = 0x02 , NOT_OBJECT_OWNER = 0x04 , REGENERATE = 0x08 } |
![]() | |
enum class | Status { Uninitialized , Initialized , Opened , Closed , Finalized } |
enum class | CallbackStyle { LegacyMode , ExpertMode , DeclarativeMode } |
Public Member Functions | |
void | SetTag (std::string tag) |
std::string | GetTag () const |
std::string | GetObjectName () const |
void | SetObjectName (std::string object_name) |
std::string | GetFactoryName () const |
Status | GetStatus () const |
CreationStatus | GetCreationStatus () const |
JCallGraphRecorder::JDataOrigin | GetInsertOrigin () const |
If objects were placed here by JEvent::Insert() this records whether that call was made from a source or factory. | |
uint32_t | GetPreviousRunNumber (void) const |
void | SetFactoryName (std::string factoryName) |
void | SetStatus (Status status) |
void | SetCreationStatus (CreationStatus status) |
void | SetInsertOrigin (JCallGraphRecorder::JDataOrigin origin) |
Called automatically by JEvent::Insert() to records whether that call was made by a source or factory. | |
void | SetPreviousRunNumber (uint32_t aRunNumber) |
virtual void | SetFactoryFlag (JFactory_Flags_t f) |
void | SetPersistentFlag (bool persistent) |
void | SetRegenerateFlag (bool regenerate) |
void | SetWriteToOutputFlag (bool write_to_output) |
bool | GetWriteToOutputFlag () |
JCallGraphRecorder::JDataSource | GetDataSource () const |
Get data source value depending on how objects came to be here. (Used mainly by JEvent::Get() ) | |
std::type_index | GetObjectType () const |
std::size_t | GetNumObjects () const |
void | ClearData () |
virtual void | Init () |
virtual void | Process (const std::shared_ptr< const JEvent > &) |
virtual void | Finish () |
template<typename S > | |
std::vector< S * > | GetAs () |
Access the encapsulated data, performing an upcast if necessary. | |
virtual void | Create (const std::shared_ptr< const JEvent > &event) |
Create() calls JFactory::Init,BeginRun,Process in an invariant-preserving way without knowing the exact type of object contained. | |
virtual void | Create (const JEvent &event) |
void | DoInit () |
void | DoFinish () |
void | Summarize (JComponentSummary &summary) const override |
virtual void | Set (const std::vector< JObject * > &) |
![]() | |
void | SetLevel (JEventLevel level) |
void | SetCallbackStyle (CallbackStyle style) |
void | SetPrefix (std::string prefix) |
void | SetTypeName (std::string type_name) |
For convenience, we provide a NAME_OF_THIS macro so that the user doesn't have to store the type name as a string, because that could get out of sync if automatic refactoring tools are used. | |
JApplication * | GetApplication () const |
JLogger & | GetLogger () |
std::string | GetPrefix () const |
JEventLevel | GetLevel () const |
std::string | GetLoggerName () const |
std::string | GetPluginName () const |
void | SetLoggerName (std::string logger_name) |
void | SetPluginName (std::string plugin_name) |
std::string | GetTypeName () const |
CallbackStyle | GetCallbackStyle () const |
Status | GetStatus () const |
void | SetApplication (JApplication *app) |
void | SetLogger (JLogger logger) |
template<typename F > | |
void | CallWithJExceptionWrapper (std::string func_name, F func) |
void | RegisterParameter (ParameterBase *parameter) |
void | RegisterService (ServiceBase *service) |
const std::vector< ParameterBase * > | GetAllParameters () const |
![]() | |
void | RegisterResource (ResourceBase *resource) |
virtual void | ChangeRun (int32_t) |
virtual void | ChangeRun (const JEvent &) |
virtual void | BeginRun (const std::shared_ptr< const JEvent > &) |
virtual void | ChangeRun (const std::shared_ptr< const JEvent > &) |
virtual void | EndRun () |
![]() | |
const std::vector< OutputBase * > & | GetOutputs () const |
const std::vector< VariadicOutputBase * > & | GetVariadicOutputs () const |
JDatabundle * | GetFirstDatabundle () const |
void | RegisterOutput (OutputBase *output) |
void | RegisterOutput (VariadicOutputBase *output) |
void | SummarizeOutputs (JComponentSummary::Component &summary) const |
void | WireOutputs (JEventLevel component_level, const std::vector< std::string > &single_output_databundle_names, const std::vector< std::vector< std::string > > &variadic_output_databundle_names, bool use_short_names) |
Protected Attributes | |
bool | mRegenerate = false |
bool | mWriteToOutput = true |
bool | mPersistent = false |
int32_t | mPreviousRunNumber = -1 |
bool | mInsideCreate = false |
std::unordered_map< std::type_index, std::unique_ptr< JAny > > | mUpcastVTable |
std::string | mObjectName |
Status | mStatus = Status::Uninitialized |
JCallGraphRecorder::JDataOrigin | m_insert_origin = JCallGraphRecorder::ORIGIN_NOT_AVAILABLE |
CreationStatus | mCreationStatus = CreationStatus::NotCreatedYet |
![]() | |
std::vector< ParameterBase * > | m_parameters |
std::vector< ServiceBase * > | m_services |
JEventLevel | m_level = JEventLevel::PhysicsEvent |
CallbackStyle | m_callback_style = CallbackStyle::LegacyMode |
std::string | m_prefix |
std::string | m_plugin_name |
std::string | m_logger_name |
std::string | m_type_name |
Status | m_status = Status::Uninitialized |
std::mutex | m_mutex |
JApplication * | m_app = nullptr |
JLogger | m_logger |
![]() | |
std::vector< ResourceBase * > | m_resources |
int32_t | m_last_run_number = -1 |
![]() | |
std::vector< InputBase * > | m_inputs |
std::vector< VariadicInputBase * > | m_variadic_inputs |
std::vector< std::pair< InputBase *, VariadicInputBase * > > | m_ordered_inputs |
Additional Inherited Members | |
![]() | |
void | RegisterInput (InputBase *input) |
void | RegisterInput (VariadicInputBase *input) |
const std::vector< InputBase * > & | GetInputs () |
const std::vector< VariadicInputBase * > & | GetVariadicInputs () |
void | WireInputs (JEventLevel component_level, const std::vector< JEventLevel > &single_input_levels, const std::vector< std::string > &single_input_databundle_names, const std::vector< JEventLevel > &variadic_input_levels, const std::vector< std::vector< std::string > > &variadic_input_databundle_names) |
void | WireInputsCompatibility (JEventLevel component_level, const std::vector< JEventLevel > &single_input_levels, const std::vector< std::string > &single_input_databundle_names) |
void | SummarizeInputs (JComponentSummary::Component &summary) const |
|
virtual |
Create() calls JFactory::Init,BeginRun,Process in an invariant-preserving way without knowing the exact type of object contained.
In order to access these objects when all you have is a JFactory*, use JFactory::GetAs().
References Create().
Referenced by Create(), and JFactoryT< T >::CreateAndGetData().
std::vector< S * > JFactory::GetAs | ( | ) |
Access the encapsulated data, performing an upcast if necessary.
This is useful for extracting data from all JFactories<T> where T extends a parent class S, such as JObject or TObject, in contexts where T is not known or it would introduce an unwanted coupling. The main application is for building DSTs.
Be aware of the following caveats:
|
inlinevirtual |
Reimplemented in JFactoryT< T >.
|
inlinevirtual |
Reimplemented in JFactoryT< T >.
|
overridevirtual |
Reimplemented from jana::components::JComponent.
Reimplemented in jana::components::JOmniFactory< AlgoT, ConfigT >.