ndmspc v1.2.0-0.1.rc4
Loading...
Searching...
No Matches
NGnThreadData.h
1#ifndef Ndmspc_NHnSparseThreadData_H
2#define Ndmspc_NHnSparseThreadData_H
3// #include "NBinning.h"
4// #include "NStorageTree.h"
5#include "NGnTree.h"
6#include "NThreadData.h"
7
8namespace Ndmspc {
9
19class NGnThreadData : public NThreadData {
20 public:
25
29 virtual ~NGnThreadData();
30
42 bool Init(size_t id, NGnProcessFuncPtr func, NGnBeginFuncPtr beginFunc, NGnEndFuncPtr endFunc, NGnTree * ngnt,
43 NBinning * binningIn, NGnTree * input = nullptr, const std::string & filename = "",
44 const std::string & treename = "ngnt");
45
51
59 bool InitStorage(NStorageTree * ts, const std::string & filename = "", const std::string & treename = "ngnt");
60
66
71 Long64_t GetNProcessed() const { return fNProcessed; }
72
77 void SetNProcessed(Long64_t n) { fNProcessed = n; }
78
83 void SetCfg(const json & cfg) { fCfg = cfg; }
84
89 json GetCfg() const { return fCfg; }
90
98 void SetResultsFilename(const std::string & filename) { fResultsFilename = filename; }
99
104 const std::string & GetResultsFilename() const { return fResultsFilename; }
105
110 bool IsPureCopy() const { return fIsPureCopy; }
111
116 void SetIsPureCopy(bool val) { fIsPureCopy = val; }
117
122 virtual void Process(const std::vector<int> & coords);
123
124 void SetCurrentDefinitionName(const std::string & name);
125 void SyncCurrentDefinitionIds(const std::vector<Long64_t> & ids);
126
127 void ExecuteBeginFunction();
128 void ExecuteEndFunction();
129
134
140 virtual Long64_t Merge(TCollection * list);
141
142 private:
147 Long64_t fNProcessed{0};
149 json fCfg{};
150 bool fIsPureCopy{false};
151 std::string fResultsFilename{};
152 std::vector<TObject *> fDeferredDeletes;
153
155 ClassDef(NGnThreadData, 1);
157};
158} // namespace Ndmspc
159#endif
NBinning object for managing multi-dimensional binning and axis definitions.
Definition NBinning.h:45
void SetIsPureCopy(bool val)
Sets the pure copy status of the object.
NGnEndFuncPtr fEndFunc
Function pointer to the end function.
NGnBeginFuncPtr fBeginFunc
Function pointer to the begin function.
void SetNProcessed(Long64_t n)
Set number of processed entries.
json GetCfg() const
Get configuration JSON object.
bool IsPureCopy() const
Checks if the object is a pure copy.
std::string fResultsFilename
Shared-FS path to copy result to after Close(true) (TCP mode)
bool Init(size_t id, NGnProcessFuncPtr func, NGnBeginFuncPtr beginFunc, NGnEndFuncPtr endFunc, NGnTree *ngnt, NBinning *binningIn, NGnTree *input=nullptr, const std::string &filename="", const std::string &treename="ngnt")
Initialize thread data for processing.
NGnThreadData()
Constructor.
void SetResultsFilename(const std::string &filename)
Set the results filename for TCP mode (shared filesystem path).
void SetProcessFunc(NGnProcessFuncPtr func)
Set the processing function pointer.
NBinning * fBiningSource
Pointer to the source binning (from the original NGnTree)
virtual void Process(const std::vector< int > &coords)
Process coordinates (virtual).
const std::string & GetResultsFilename() const
Get the results filename for TCP mode.
Long64_t GetNProcessed() const
Get number of processed entries.
bool InitStorage(NStorageTree *ts, const std::string &filename="", const std::string &treename="ngnt")
Initialize storage tree for thread data.
virtual Long64_t Merge(TCollection *list)
Merge thread data from a collection (virtual).
NGnTree * GetHnSparseBase() const
Get pointer to base NGnTree object.
virtual ~NGnThreadData()
Destructor.
json fCfg
Configuration object.
void FlushDeferredDeletes()
Delete deferred ROOT objects, skipping TCanvas/TPad (leaked safely).
void SetCfg(const json &cfg)
Set configuration JSON object.
std::vector< TObject * > fDeferredDeletes
Objects deferred for single-threaded deletion.
NGnTree * fHnSparseBase
Pointer to the base class.
Long64_t fNProcessed
Number of processed entries.
bool fIsPureCopy
Flag indicating pure copy mode.
NGnProcessFuncPtr fProcessFunc
Function pointer to the processing function.
NDMSPC tree object for managing multi-dimensional data storage and processing.
Definition NGnTree.h:75
NDMSPC storage tree object for managing ROOT TTree-based data storage.
NThreadData()
Default constructor.
Global callback function for libwebsockets client events.
void(*)(Ndmspc::NBinningPoint *, TList *, TList *, int) NGnProcessFuncPtr
Function pointer type for processing binning points and lists.
Definition NGnTree.h:40
void(*)(Ndmspc::NBinningPoint *, int) NGnEndFuncPtr
Function pointer type for termination functions used in NGnTree.
Definition NGnTree.h:62
void(*)(Ndmspc::NBinningPoint *, int) NGnBeginFuncPtr
Function pointer type for the beginning of a tree operation.
Definition NGnTree.h:52