JANA2
C++ framework for multi-threaded data processing
|
Public Types | |
using | IteratorType = typename std::vector< T * >::const_iterator |
using | PairType = std::pair< IteratorType, IteratorType > |
![]() | |
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 | |
JFactoryT (std::string tag="") | |
void | Init () override |
void | BeginRun (const std::shared_ptr< const JEvent > &) override |
void | ChangeRun (const std::shared_ptr< const JEvent > &) override |
void | EndRun () override |
void | Process (const std::shared_ptr< const JEvent > &) override |
PairType | CreateAndGetData (const std::shared_ptr< const JEvent > &event) |
CreateAndGetData handles all the preconditions and postconditions involved in calling the user-defined Open(), ChangeRun(), and Process() methods. | |
PairType | CreateAndGetData (const JEvent &event) |
const std::vector< T * > & | GetData () |
void | Set (const std::vector< JObject * > &aData) override |
Please use the typed setters instead whenever possible. | |
virtual void | Set (const std::vector< T * > &aData) |
virtual void | Set (std::vector< T * > &&aData) |
virtual void | Insert (T *aDatum) |
void | SetFactoryFlag (JFactory_Flags_t f) override |
Set a flag (or flags) | |
void | ClearFactoryFlag (JFactory_Flags_t f) |
Clear a flag (or flags) | |
void | SetNotOwnerFlag (bool not_owner) |
template<typename S > | |
void | EnableGetAs () |
EnableGetAs generates a vtable entry so that users may extract the contents of this JFactoryT from the type-erased JFactory. | |
template<typename S > | |
void | EnableGetAs (std::true_type) |
template<typename S > | |
void | EnableGetAs (std::false_type) |
![]() | |
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) |
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 | 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 |
![]() | |
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 &) |
![]() | |
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 | |
std::vector< T * > | mData |
jana::components::Output< T > | mOutput {this, &mData} |
![]() | |
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 |
|
inlineoverridevirtual |
Reimplemented from jana::components::JHasRunCallbacks.
|
inlineoverridevirtual |
Reimplemented from jana::components::JHasRunCallbacks.
|
inline |
CreateAndGetData handles all the preconditions and postconditions involved in calling the user-defined Open(), ChangeRun(), and Process() methods.
These include making sure the JFactory JApplication is set, Init() is called exactly once, exceptions are tagged with the originating plugin and eventsource, ChangeRun() is called if and only if the run number changes, etc.
References JFactory::Create().
EnableGetAs generates a vtable entry so that users may extract the contents of this JFactoryT from the type-erased JFactory.
The user has to manually specify which upcasts to allow, and they have to do so for each instance. It is recommended to do so in the constructor. Note that EnableGetAs<T>() is called automatically.
|
inlineoverridevirtual |
Reimplemented from jana::components::JHasRunCallbacks.
|
inlineoverridevirtual |
Reimplemented from JFactory.
|
inlineoverridevirtual |
Reimplemented from JFactory.
|
inlineoverridevirtual |
Please use the typed setters instead whenever possible.
Reimplemented from JFactory.
References JFactoryT< T >::Set().
Referenced by JFactoryT< T >::Set().
|
inlineoverridevirtual |
Set a flag (or flags)
Reimplemented from JFactory.