This class implements a shared memory region mapped to a file.
Objects can be placed into this shared memory area using the Add() member function. To actually place a copy of the object is shared memory call Update() also whenever the mapped object(s) change(s) call Update() to put a fresh copy in the shared memory. This extra step is necessary since it is not possible to share objects with virtual pointers between processes (the vtbl ptr points to the originators unique address space and can not be used by the consumer process(es)). Consumer processes can map the memory region from this file and access the objects stored in it via the Get() method (which returns a copy of the object stored in the shared memory with correct vtbl ptr set). Only objects of classes with a Streamer() member function defined can be shared.
I know the current implementation is not ideal (you need to copy to and from the shared memory file) but the main problem is with the class' virtual_table pointer. This pointer points to a table unique for every process. Therefore, different options are:
Option 1) saves one copy, but requires solid copy ctor's (along the full inheritance chain) to rebuild the object in the consumer. Most classes don't provide these copy ctor's, especially not when objects contain collections, etc. 2) is too limiting or dangerous (calling accidentally a virtual function will segv). So since we have a robust Streamer mechanism I opted for 3).
Definition at line 26 of file TMapFile.h.
Public Types | |
| enum | { kDefaultMapSize = 0x80000 } |
| enum | { kSingleKey = (1ULL << (0)) , kOverwrite = (1ULL << (1)) , kWriteDelete = (1ULL << (2)) } |
| enum | { kIsOnHeap = 0x01000000 , kNotDeleted = 0x02000000 , kZombie = 0x04000000 , kInconsistent = 0x08000000 , kBitMask = 0x00ffffff } |
| enum | EDeprecatedStatusBits { kObjInCanvas = (1ULL << (3)) } |
| enum | EStatusBits { kCanDelete = (1ULL << (0)) , kMustCleanup = (1ULL << (3)) , kIsReferenced = (1ULL << (4)) , kHasUUID = (1ULL << (5)) , kCannotPick = (1ULL << (6)) , kNoContextMenu = (1ULL << (8)) , kInvalidObject = (1ULL << (13)) } |
Public Member Functions | |
| void | AbstractMethod (const char *method) const |
| Call this function within a function that you don't want to define as purely virtual, in order not to force all users deriving from that class to implement that maybe (on their side) unused function; but at the same time, emit a run-time warning if they try to call it, telling that it is not implemented in the derived class: action must thus be taken on the user side to override it. | |
| void | Add (const TObject *obj, const char *name="") |
| Add an object to the list of objects to be stored in shared memory. | |
| virtual void | AppendPad (Option_t *option="") |
| Append graphics object to current pad. | |
| void | Browse (TBrowser *b) override |
| Browse contents of TMapFile. | |
| Bool_t | cd (const char *path=nullptr) |
| Cd to associated directory. | |
| ULong_t | CheckedHash () |
| Check and record whether this class has a consistent Hash/RecursiveRemove setup (*) and then return the regular Hash value for this object. | |
| virtual const char * | ClassName () const |
| Returns name of class to which the object belongs. | |
| virtual void | Clear (Option_t *="") |
| virtual TObject * | Clone (const char *newname="") const |
| Make a clone of an object using the Streamer facility. | |
| void | Close (Option_t *option="") override |
| Close a mapped file. | |
| virtual Int_t | Compare (const TObject *obj) const |
| Compare abstract method. | |
| virtual void | Copy (TObject &object) const |
| Copy this to obj. | |
| virtual void | Delete (Option_t *option="") |
| Delete this object. | |
| virtual Int_t | DistancetoPrimitive (Int_t px, Int_t py) |
| Computes distance from point (px,py) to the object. | |
| virtual void | Draw (Option_t *option="") |
| Default Draw method for all objects. | |
| virtual void | DrawClass () const |
| Draw class inheritance tree of the class to which this object belongs. | |
| virtual TObject * | DrawClone (Option_t *option="") const |
| Draw a clone of this object in the current selected pad with: gROOT->SetSelectedPad(c1). | |
| virtual void | Dump () const |
| Dump contents of object on stdout. | |
| virtual void | Error (const char *method, const char *msgfmt,...) const |
| Issue error message. | |
| virtual void | Execute (const char *method, const char *params, Int_t *error=nullptr) |
| Execute method on this object with the given parameter string, e.g. | |
| virtual void | Execute (TMethod *method, TObjArray *params, Int_t *error=nullptr) |
| Execute method on this object with parameters stored in the TObjArray. | |
| virtual void | ExecuteEvent (Int_t event, Int_t px, Int_t py) |
| Execute action corresponding to an event at (px,py). | |
| virtual void | Fatal (const char *method, const char *msgfmt,...) const |
| Issue fatal error message. | |
| virtual TObject * | FindObject (const char *name) const |
| Must be redefined in derived classes. | |
| virtual TObject * | FindObject (const TObject *obj) const |
| Must be redefined in derived classes. | |
| TObject * | Get (const char *name, TObject *retObj=nullptr) |
| Return pointer to object retrieved from shared memory. | |
| void * | GetBaseAddr () const |
| void * | GetBreakval () const |
| Return the current location in the memory region for this malloc heap which represents the end of memory in use. | |
| TDirectory * | GetDirectory () const |
| virtual Option_t * | GetDrawOption () const |
| Get option used by the graphics system to draw this object. | |
| Int_t | GetFd () const |
| TMapRec * | GetFirst () const |
| virtual const char * | GetIconName () const |
| Returns mime type name of object. | |
| TMapRec * | GetLast () const |
| void * | GetMmallocDesc () const |
| const char * | GetName () const override |
| Returns name of object. | |
| virtual char * | GetObjectInfo (Int_t px, Int_t py) const |
| Returns string containing info about the object at position (px,py). | |
| const char * | GetOption () const override |
| Int_t | GetSize () const |
| const char * | GetTitle () const override |
| Returns title of object. | |
| virtual UInt_t | GetUniqueID () const |
| Return the unique object id. | |
| virtual Bool_t | HandleTimer (TTimer *timer) |
| Execute action in response of a timer timing out. | |
| virtual ULong_t | Hash () const |
| Return hash value for this object. | |
| Bool_t | HasInconsistentHash () const |
| Return true is the type of this object is known to have an inconsistent setup for Hash and RecursiveRemove (i.e. | |
| virtual void | Info (const char *method, const char *msgfmt,...) const |
| Issue info message. | |
| virtual Bool_t | InheritsFrom (const char *classname) const |
| Returns kTRUE if object inherits from class "classname". | |
| virtual Bool_t | InheritsFrom (const TClass *cl) const |
| Returns kTRUE if object inherits from TClass cl. | |
| virtual void | Inspect () const |
| Dump contents of this object in a graphics canvas. | |
| void | InvertBit (UInt_t f) |
| TClass * | IsA () const override |
| Bool_t | IsDestructed () const |
| IsDestructed. | |
| virtual Bool_t | IsEqual (const TObject *obj) const |
| Default equal comparison (objects are equal if they have the same address in memory). | |
| Bool_t | IsFolder () const override |
| Returns kTRUE in case object is a folder (i.e. contains browsable lists). | |
| Bool_t | IsOnHeap () const |
| virtual Bool_t | IsSortable () const |
| Bool_t | IsWritable () const |
| Bool_t | IsZombie () const |
| void | ls (Option_t *option="") const override |
| List contents of TMapFile. | |
| void | MayNotUse (const char *method) const |
| Use this method to signal that a method (defined in a base class) may not be called in a derived class (in principle against good design since a child class should not provide less functionality than its parent, however, sometimes it is necessary). | |
| virtual Bool_t | Notify () |
| This method must be overridden to handle object notification (the base implementation is no-op). | |
| void | Obsolete (const char *method, const char *asOfVers, const char *removedFromVers) const |
| Use this method to declare a method obsolete. | |
| void | operator delete (void *, size_t) |
| Operator delete for sized deallocation. | |
| void | operator delete (void *ptr, void *vp) |
| Only called by placement new when throwing an exception. | |
| void | operator delete[] (void *, size_t) |
| Operator delete [] for sized deallocation. | |
| void | operator delete[] (void *ptr) |
| Operator delete []. | |
| void | operator delete[] (void *ptr, void *vp) |
| Only called by placement new[] when throwing an exception. | |
| void * | OrgAddress (void *addr) const |
| virtual void | Paint (Option_t *option="") |
| This method must be overridden if a class wants to paint itself. | |
| virtual void | Pop () |
| Pop on object drawn in a pad to the top of the display list. | |
| void | Print (Option_t *option="") const override |
| Print some info about the mapped file. | |
| virtual Int_t | Read (const char *name) |
| Read contents of object with specified name from the current directory. | |
| virtual void | RecursiveRemove (TObject *obj) |
| Recursively remove this object from a list. | |
| TObject * | Remove (const char *name) |
| TObject * | Remove (TObject *obj) |
| void | RemoveAll () |
| Remove all objects from shared memory. | |
| void | ResetBit (UInt_t f) |
| virtual void | SaveAs (const char *filename="", Option_t *option="") const |
| Save this object in the file specified by filename. | |
| virtual void | SavePrimitive (std::ostream &out, Option_t *option="") |
| Save a primitive as a C++ statement(s) on output stream "out". | |
| void | SetBit (UInt_t f) |
| void | SetBit (UInt_t f, Bool_t set) |
| Set or unset the user status bits as specified in f. | |
| virtual void | SetDrawOption (Option_t *option="") |
| Set drawing option for object. | |
| virtual void | SetUniqueID (UInt_t uid) |
| Set the unique object id. | |
| void | Streamer (TBuffer &) override |
| Stream an object of class TObject. | |
| void | StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b) |
| virtual void | SysError (const char *method, const char *msgfmt,...) const |
| Issue system error message. | |
| Bool_t | TestBit (UInt_t f) const |
| Int_t | TestBits (UInt_t f) const |
| void | Update (TObject *obj=nullptr) |
| Update an object (or all objects, if obj == 0) in shared memory. | |
| virtual void | UseCurrentStyle () |
| Set current style settings in this object This function is called when either TCanvas::UseCurrentStyle or TROOT::ForceStyle have been invoked. | |
| virtual void | Warning (const char *method, const char *msgfmt,...) const |
| Issue warning message. | |
| virtual Int_t | Write (const char *name=nullptr, Int_t option=0, Int_t bufsize=0) |
| Write this object to the current directory. | |
| virtual Int_t | Write (const char *name=nullptr, Int_t option=0, Int_t bufsize=0) const |
| Write this object to the current directory. | |
Static Public Member Functions | |
| static TClass * | Class () |
| static const char * | Class_Name () |
| static constexpr Version_t | Class_Version () |
| static TMapFile * | Create (const char *name, Option_t *option="READ", Int_t size=kDefaultMapSize, const char *title="") |
| Create a memory mapped file. | |
| static const char * | DeclFileName () |
| static Longptr_t | GetDtorOnly () |
| Return destructor only flag. | |
| static Bool_t | GetObjectStat () |
| Get status of object stat flag. | |
| static void | SetDtorOnly (void *obj) |
| Set destructor only flag. | |
| static void | SetMapAddress (Longptr_t addr) |
| Set preferred map address. | |
| static void | SetObjectStat (Bool_t stat) |
| Turn on/off tracking of objects in the TObjectTable. | |
| static TMapFile * | WhichMapFile (void *addr) |
Protected Types | |
| enum | { kOnlyPrepStep = (1ULL << (3)) } |
Protected Member Functions | |
| TMapFile () | |
| Default ctor. Does not much except setting some basic values. | |
| TMapFile (const char *name, const char *title, Option_t *option, Int_t size, TMapFile *&newMapFile) | |
| Create a memory mapped file. | |
| TMapFile (const TMapFile &f, Longptr_t offset=0) | |
| Private copy ctor. | |
| ~TMapFile () override | |
| TMapFiles may not be deleted, since we want to keep the complete TMapFile object in the mapped file for later re-use. | |
| Int_t | AcquireSemaphore () |
| Acquire semaphore. Returns 0 if OK, -1 on error. | |
| void | CreateSemaphore (Int_t pid=0) |
| Create semaphore used for synchronizing access to shared memory. | |
| void | DeleteSemaphore () |
| Delete the semaphore. | |
| virtual void | DoError (int level, const char *location, const char *fmt, va_list va) const |
| Interface to ErrorHandler (protected). | |
| TMapFile * | FindShadowMapFile () |
| Returns shadow map file. | |
| Int_t | GetBestBuffer () |
| Return the best buffer size for objects in this file. | |
| void | InitDirectory () |
| Create the directory associated to this mapfile. | |
| void | MakeZombie () |
| void | operator delete (void *vp) |
| Need special "operator delete" in which we close the shared memory. | |
| void * | operator new (size_t sz) |
| void * | operator new (size_t sz, void *vp) |
| void * | operator new[] (size_t sz) |
| void * | operator new[] (size_t sz, void *vp) |
| TMapFile & | operator= (const TMapFile &rhs)=delete |
| Int_t | ReleaseSemaphore () |
| Release semaphore. Returns 0 if OK, -1 on error. | |
| TObject * | Remove (const char *name, Bool_t lock) |
| Remove object by name from shared memory. | |
| TObject * | Remove (TObject *obj, Bool_t lock) |
| Remove object from shared memory. | |
| void | SumBuffer (Int_t bufsize) |
| Increment statistics for buffer sizes of objects in this file. | |
Static Protected Member Functions | |
| static void * | MapToAddress () |
| Return the base address at which we would like the next TMapFile's mapped data to start. | |
| static void | SavePrimitiveConstructor (std::ostream &out, TClass *cl, const char *variable_name, const char *constructor_agrs="", Bool_t empty_line=kTRUE) |
| Save object constructor in the output stream "out". | |
| static void | SavePrimitiveDraw (std::ostream &out, const char *variable_name, Option_t *option=nullptr) |
| Save invocation of primitive Draw() method Skipped if option contains "nodraw" string. | |
| static TString | SavePrimitiveVector (std::ostream &out, const char *prefix, Int_t len, Double_t *arr, Int_t flag=0) |
| Save array in the output stream "out" as vector. | |
Static Private Member Functions | |
| static void | AddToTObjectTable (TObject *) |
| Private helper function which will dispatch to TObjectTable::AddObj. | |
Private Attributes | |
| ULongptr_t | fBaseAddr |
| Base address of mapped memory region. | |
| UInt_t | fBits |
| bit field status word | |
| TList * | fBrowseList |
| List of KeyMapFile objects. | |
| TDirectory * | fDirectory |
| Pointer to directory associated to this mapfile. | |
| Longptr_t | fFd |
| Descriptor of mapped file. | |
| TMapRec * | fFirst |
| List of streamed objects is shared memory. | |
| TObject * | fGetting |
| Don't deadlock in update mode, when from Get() Add() is called. | |
| ULongptr_t | fhSemaphore |
| HANDLE of WIN32 Mutex object to implement semaphore. | |
| TMapRec * | fLast |
| Last object in list of shared objects. | |
| void * | fMmallocDesc |
| Pointer to mmalloc descriptor. | |
| char * | fName |
| Name of mapped file. | |
| Longptr_t | fOffset |
| Offset in bytes for region mapped by reader. | |
| char * | fOption |
| Directory creation options. | |
| Longptr_t | fSemaphore |
| Modification semaphore (or getpid() for WIN32). | |
| Int_t | fSize |
| Original start size of memory mapped region. | |
| Double_t | fSum2Buffer |
| Sum of squares of buffer sizes of objects written so far. | |
| Double_t | fSumBuffer |
| Sum of buffer sizes of objects written so far. | |
| char * | fTitle |
| Title of mapped file. | |
| UInt_t | fUniqueID |
| object unique identifier | |
| Int_t | fVersion |
| ROOT version (or -1 for shadow map file). | |
| Bool_t | fWritable |
| TRUE if mapped file opened in RDWR mode. | |
| Int_t | fWritten |
| Number of objects written so far. | |
Static Private Attributes | |
| static Longptr_t | fgDtorOnly = 0 |
| object for which to call dtor only (i.e. no delete) | |
| static Longptr_t | fgMapAddress = 0 |
| Map to this address, set address via SetMapAddress(). | |
| static void * | fgMmallocDesc = 0 |
| Used in Close() and operator delete(). | |
| static Bool_t | fgObjectStat = kTRUE |
| if true keep track of objects in TObjectTable | |
Friends | |
| class | TMapRec |
#include <TMapFile.h>
| anonymous enum |
| Enumerator | |
|---|---|
| kDefaultMapSize | |
Definition at line 84 of file TMapFile.h.
|
protectedinherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
protected |
Default ctor. Does not much except setting some basic values.
Definition at line 210 of file TMapFile.cxx.
|
protected |
Create a memory mapped file.
This opens a file (to which the memory will be mapped) and attaches a memory region to it. Option can be either: "NEW", "CREATE", "RECREATE", "UPDATE" or "READ" (see TFile). The default open mode is "READ". The size argument specifies the maximum size of shared memory file in bytes. This protected ctor is called via the static Create() method.
Definition at line 244 of file TMapFile.cxx.
Private copy ctor.
Used by the ctor to create a new version of TMapFile in the memory mapped heap. It's main purpose is to correctly create the string data members.
Definition at line 525 of file TMapFile.cxx.
|
overrideprotected |
TMapFiles may not be deleted, since we want to keep the complete TMapFile object in the mapped file for later re-use.
To enforce this the delete operator has been made private. Use Close() to properly terminate a TMapFile (also done via the TROOT dtor).
Definition at line 559 of file TMapFile.cxx.
|
inherited |
Call this function within a function that you don't want to define as purely virtual, in order not to force all users deriving from that class to implement that maybe (on their side) unused function; but at the same time, emit a run-time warning if they try to call it, telling that it is not implemented in the derived class: action must thus be taken on the user side to override it.
In other word, this method acts as a "runtime purely virtual" warning instead of a "compiler purely virtual" error.
Definition at line 1149 of file TObject.cxx.
|
protected |
Acquire semaphore. Returns 0 if OK, -1 on error.
Definition at line 901 of file TMapFile.cxx.
| void TMapFile::Add | ( | const TObject * | obj, |
| const char * | name = "" ) |
Add an object to the list of objects to be stored in shared memory.
To place the object actually into shared memory call Update().
Definition at line 610 of file TMapFile.cxx.
|
staticprivateinherited |
Private helper function which will dispatch to TObjectTable::AddObj.
Included here to avoid circular dependency between header files.
Definition at line 195 of file TObject.cxx.
|
virtualinherited |
Append graphics object to current pad.
In case no current pad is set yet, create a default canvas with the name "c1".
Definition at line 204 of file TObject.cxx.
|
overridevirtual |
Browse contents of TMapFile.
Reimplemented from TObject.
Definition at line 1065 of file TMapFile.cxx.
| Bool_t TMapFile::cd | ( | const char * | path = nullptr | ) |
Cd to associated directory.
Definition at line 1092 of file TMapFile.cxx.
|
inlineinherited |
Check and record whether this class has a consistent Hash/RecursiveRemove setup (*) and then return the regular Hash value for this object.
The intent is for this routine to be called instead of directly calling the function Hash during "insert" operations. See TObject::HasInconsistenTObjectHash();
(*) The setup is consistent when all classes in the class hierarchy that overload TObject::Hash do call ROOT::CallRecursiveRemoveIfNeeded in their destructor. i.e. it is safe to call the Hash virtual function during the RecursiveRemove operation.
|
static |
|
static |
|
inlinestaticconstexpr |
Definition at line 117 of file TMapFile.h.
|
virtualinherited |
Returns name of class to which the object belongs.
Definition at line 227 of file TObject.cxx.
|
inlinevirtualinherited |
Reimplemented in JetEvent, RooLinkedList, ROOT::TSchemaRule, ROOT::v5::TFormula, TBackCompFitter, TBits, TBranchRef, TBtree, TCanvas, TClonesArray, TCollection, TDictAttributeMap, TDirectory, TEventList, TFitter, TFolder, TFormula, TFumili, TGeoCombiTrans, TGeoGenTrans, TGeoHMatrix, TGeoRotation, TGHtml, TGraph2D, TGTextEdit, TGTextEntry, TGTextView, TGView, THashList, THashTable, TLegend, TLinearFitter, TList, TListOfDataMembers, TListOfEnums, TListOfEnumsWithLock, TListOfFunctions, TListOfFunctionTemplates, TMap, TMatrixT< Element >, TMatrixT< AReal >, TMatrixT< Double_t >, TMatrixT< Float_t >, TMatrixTBase< Element >, TMatrixTBase< Double_t >, TMatrixTBase< Float_t >, TMatrixTSparse< Element >, TMatrixTSparse< Double_t >, TMatrixTSparse< Float_t >, TMatrixTSym< Element >, TMatrixTSym< Double_t >, TMatrixTSym< Float_t >, TMrbSubevent_Caen, TMultiDimFit, TMVA::MinuitWrapper, TMVA::ResultsClassification, TMVA::ResultsMulticlass, TMVA::ResultsRegression, TNamed, TNotifyLinkBase, TObjArray, TOrdCollection, TPad, TPaveText, TPrincipal, TProcessID, TRefArray, TRefTable, TStreamerInfo, TTask, TUsrHitBuffer, TVectorT< Element >, TVectorT< Double_t >, TVectorT< Float_t >, TViewPubDataMembers, TViewPubFunctions, TVirtualFitter, TVirtualPad, and TVirtualStreamerInfo.
|
virtualinherited |
Make a clone of an object using the Streamer facility.
If the object derives from TNamed, this function is called by TNamed::Clone. TNamed::Clone uses the optional argument to set a new name to the newly created object.
If the object class has a DirectoryAutoAdd function, it will be called at the end of the function with the parameter gDirectory. This usually means that the object will be appended to the current ROOT directory.
Reimplemented in RooAbsArg, RooAbsBinning, RooAbsCollection, RooAbsStudy, RooCatType, RooCmdArg, RooDataHist, RooDataSet, RooFitResult, RooLinkedList, RooStats::HypoTestResult, RooStats::ModelConfig, RooStudyPackage, RooTemplateProxy< T >, RooTemplateProxy< const RooHistFunc >, RooTemplateProxy< RooAbsCategory >, RooTemplateProxy< RooAbsPdf >, RooTemplateProxy< RooAbsReal >, RooTemplateProxy< RooAbsRealLValue >, RooTemplateProxy< RooMultiCategory >, RooTemplateProxy< RooRealVar >, RooWorkspace, TASImage, TChainIndex, TClass, TCollection, TF1, TFunction, TFunctionTemplate, TH1, TImage, TMethod, TMethodCall, TMinuit, TMVA::MinuitWrapper, TNamed, TStreamerInfo, and TTreeIndex.
Definition at line 243 of file TObject.cxx.
|
overridevirtual |
Close a mapped file.
First detach mapped memory then close file. No member functions of a TMapFile that was opened in write mode may be called after Close() (this includes, of course, "delete" which would call the dtors). The option="dtor" is only used when called via the ~TMapFile.
Implements TVirtualMapFile.
Definition at line 978 of file TMapFile.cxx.
Compare abstract method.
Must be overridden if a class wants to be able to compare itself with other objects. Must return -1 if this is smaller than obj, 0 if objects are equal and 1 if this is larger than obj.
Reimplemented in RooAbsArg, RooDouble, TCollection, TEnvRec, TFileInfo, TGeoBranchArray, TGeoOverlap, TGFSFrameElement, TGLBFrameElement, TNamed, TObjString, TParameter< AParamType >, TParameter< Long64_t >, TStructNode, TStructNodeProperty, and TUrl.
Definition at line 258 of file TObject.cxx.
|
virtualinherited |
Copy this to obj.
Reimplemented in ROOT::v5::TFormula, TArc, TArrow, TAxis3D, TAxis, TBox, TColor, TCrown, TDirectory, TDirectoryFile, TEllipse, TF12, TF1, TF1AbsComposition, TF1Convolution, TF1NormSum, TF2, TF3, TFile, TFolder, TFormula, TFrame, TGTextEdit, TGTextView, TH1, TH1C, TH1D, TH1F, TH1I, TH1L, TH1S, TH2, TH2C, TH2D, TH2F, TH2I, TH2L, TH2Poly, TH2S, TH3, TH3C, TH3D, TH3F, TH3I, TH3L, TH3S, THelix, TLatex, TLegend, TLegendEntry, TLine, TMarker, TMathText, TNamed, TPaletteAxis, TPave, TPaveClass, TPaveLabel, TPieSlice, TPolyLine3D, TPolyLine, TPolyMarker3D, TPolyMarker, TProfile2D, TProfile3D, TProfile, TStyle, TSystemDirectory, TSystemFile, TText, TWbox, and TXTRU.
Definition at line 159 of file TObject.cxx.
|
static |
Create a memory mapped file.
This opens a file (to which the memory will be mapped) and attaches a memory region to it. Option can be either: "NEW", "CREATE", "RECREATE", "UPDATE" or "READ" (see TFile). The default open mode is "READ". The size argument specifies the maximum size of shared memory file in bytes. TMapFile's can only be created via this method. Create() enforces that a TMapFile is always on the memory mapped heap (when "NEW", "CREATE" or "RECREATE" are used).
Definition at line 1171 of file TMapFile.cxx.
|
protected |
Create semaphore used for synchronizing access to shared memory.
Definition at line 846 of file TMapFile.cxx.
|
inlinestatic |
Definition at line 117 of file TMapFile.h.
|
virtualinherited |
Delete this object.
Typically called as a command via the interpreter. Normally use "delete" operator when object has been allocated on the heap.
Reimplemented in RooLinkedList, TAxis, TBtree, TCanvas, TClonesArray, TCollection, TDirectory, TDirectoryFile, TExMap, TFile, TGFrame, TGItemContext, TGTextEdit, THashList, THashTable, TKey, TKeySQL, TKeyXML, TList, TListOfDataMembers, TListOfEnums, TListOfEnumsWithLock, TListOfFunctions, TListOfFunctionTemplates, TMap, TMVA::Results, TObjArray, TObjectTable, TOrdCollection, TProtoClass, TQCommand, TRefArray, TSystemDirectory, TSystemFile, TThread, TTree, TTreeViewer, TViewPubDataMembers, and TViewPubFunctions.
Definition at line 268 of file TObject.cxx.
|
protected |
Delete the semaphore.
Definition at line 876 of file TMapFile.cxx.
Computes distance from point (px,py) to the object.
This member function must be implemented for each graphics primitive. This default function returns a big number (999999).
Reimplemented in TASImage, TAxis3D, TAxis, TBox, TBRIK, TColorWheel, TCrown, TCurlyArc, TCurlyLine, TDiamond, TEfficiency, TEllipse, TF1, TF2, TF3, TFileDrawMap, TGenerator, TGeoBBox, TGeoCompositeShape, TGeoCone, TGeoConeSeg, TGeoEltu, TGeoHalfSpace, TGeoHype, TGeoNode, TGeoOverlap, TGeoParaboloid, TGeoPcon, TGeoPgon, TGeoScaledShape, TGeoShape, TGeoShapeAssembly, TGeoSphere, TGeoTessellated, TGeoTorus, TGeoTrack, TGeoTube, TGeoTubeSeg, TGeoVGShape, TGeoVolume, TGeoXtru, TGL5DDataSet, TGLHistPainter, TGLParametricEquation, TGLScenePad, TGLTH3Composition, TGLViewer, TGraph2D, TGraph, TGraphEdge, TGraphNode, TGraphPolargram, TH1, THistPainter, THStack, TLine, TMarker3DBox, TMarker, TMultiGraph, TNode, TPad, TPaletteAxis, TParallelCoord, TParallelCoordRange, TParallelCoordVar, TParticle, TPave, TPCON, TPie, TPieSlice, TPoints3DABC, TPolyLine3D, TPolyLine, TPolyMarker3D, TPolyMarker, TPrimary, TScatter2D, TScatter, TSPHE, TSpider, TSpline, TStyle, TText, TTreePerfStats, TTUBE, TTUBS, TVirtualHistPainter, and TXTRU.
Definition at line 284 of file TObject.cxx.
|
protectedvirtualinherited |
Interface to ErrorHandler (protected).
Reimplemented in TThread, and TTreeViewer.
Definition at line 1059 of file TObject.cxx.
|
virtualinherited |
Default Draw method for all objects.
Reimplemented in RooAbsData, RooPlot, RooStats::HypoTestInverterPlot, RooStats::SamplingDistPlot, ROOT::Experimental::XRooFit::xRooNLLVar::xRooHypoPoint, ROOT::Experimental::XRooFit::xRooNLLVar::xRooHypoSpace, ROOT::Experimental::XRooFit::xRooNode, ROOT::RGeoPainter, TArrow, TASImage, TBox, TBrowser, TButton, TCanvas, TChain, TClass, TClassTree, TCollection, TColorWheel, TDiamond, TDirectory, TEfficiency, TEllipse, TEveGeoNode, TEveGeoTopNode, TF1, TF2, TF3, TFile, TFITSHDU, TFrame, TGenerator, TGeoBatemanSol, TGeometry, TGeoNode, TGeoOverlap, TGeoPainter, TGeoParallelWorld, TGeoPhysicalNode, TGeoPolygon, TGeoShape, TGeoTrack, TGeoVGShape, TGeoVolume, TGItemContext, TGListTree, TGPicture, TGraph2D, TGraph, TGraphPolar, TGraphPolargram, TGraphStruct, TGraphTime, TH1, THelix, THStack, TLegend, TMarker, TMatrixTBase< Element >, TMatrixTBase< Double_t >, TMatrixTBase< Float_t >, TMultiDimFit, TMultiGraph, TMultiLayerPerceptron, TNode, TNodeDiv, TPad, TParallelCoord, TParallelCoordRange, TParallelCoordVar, TPave, TPaveLabel, TPavesText, TPaveText, TPie, TPolyLine3D, TPolyLine, TPolyMarker3D, TPolyMarker, TRatioPlot, TSpider, TSpline, TStructViewer, TStructViewerGUI, TTree, TTreePerfStats, TVectorT< Element >, TVectorT< Double_t >, TVectorT< Float_t >, TVirtualPad, and TWbox.
Definition at line 293 of file TObject.cxx.
|
virtualinherited |
Draw class inheritance tree of the class to which this object belongs.
If a class B inherits from a class A, description of B is drawn on the right side of description of A. Member functions overridden by B are shown in class A with a blue line crossing-out the corresponding member function. The following picture is the class inheritance tree of class TPaveLabel:
Reimplemented in TGFrame, TSystemDirectory, and TSystemFile.
Definition at line 308 of file TObject.cxx.
Draw a clone of this object in the current selected pad with: gROOT->SetSelectedPad(c1).
If pad was not selected - gPad will be used.
Reimplemented in TAxis, TCanvas, TGFrame, TSystemDirectory, and TSystemFile.
Definition at line 319 of file TObject.cxx.
|
virtualinherited |
Dump contents of object on stdout.
Using the information in the object dictionary (class TClass) each data member is interpreted. If a data member is a pointer, the pointer value is printed
The following output is the Dump of a TArrow object:
Reimplemented in TClass, TCollection, TGFrame, TGPack, and TSystemFile.
Definition at line 367 of file TObject.cxx.
|
virtualinherited |
Issue error message.
Use "location" to specify the method where the error occurred. Accepts standard printf formatting arguments.
Reimplemented in TFitResult.
Definition at line 1098 of file TObject.cxx.
|
virtualinherited |
Execute method on this object with the given parameter string, e.g.
"3.14,1,\"text\"".
Reimplemented in ROOT::R::TRInterface, TCling, TContextMenu, TInterpreter, and TMethodCall.
Definition at line 378 of file TObject.cxx.
|
virtualinherited |
Execute method on this object with parameters stored in the TObjArray.
The TObjArray should contain an argv vector like:
Reimplemented in ROOT::R::TRInterface, TCling, TContextMenu, TInterpreter, and TMethodCall.
Definition at line 398 of file TObject.cxx.
Execute action corresponding to an event at (px,py).
This method must be overridden if an object can react to graphics events.
Reimplemented in TASImage, TASPaletteEditor::LimitLine, TAxis3D, TAxis, TBox, TButton, TCanvas, TCrown, TCurlyArc, TCurlyLine, TDiamond, TEfficiency, TEllipse, TF1, TF2, TF3, TFrame, TGenerator, TGeoManager, TGeoNode, TGeoOverlap, TGeoShape, TGeoTrack, TGeoVolume, TGL5DDataSet, TGLEventHandler, TGLHistPainter, TGLParametricEquation, TGLScenePad, TGLTH3Composition, TGLViewer, TGraph2D, TGraph, TGraphEdge, TGraphNode, TGraphPolargram, TGroupButton, TH1, THistPainter, TLine, TLink, TMarker3DBox, TMarker, TNode, TPad, TPaletteAxis, TParallelCoord, TParallelCoordRange, TParallelCoordVar, TParticle, TPave, TPie, TPolyLine3D, TPolyLine, TPolyMarker3D, TPolyMarker, TPrimary, TScatter2D, TScatter, TSliderBox, TSpider, TSpline, TText, TTreePerfStats, TView3D, TView, TVirtualHistPainter, and TWbox.
Definition at line 415 of file TObject.cxx.
|
virtualinherited |
Issue fatal error message.
Use "location" to specify the method where the fatal error occurred. Accepts standard printf formatting arguments.
Definition at line 1126 of file TObject.cxx.
|
virtualinherited |
Must be redefined in derived classes.
This function is typically used with TCollections, but can also be used to find an object by name inside this object.
Reimplemented in RooAbsCollection, RooLinkedList, TBtree, TCollection, TDirectory, TFolder, TGeometry, TGraph2D, TGraph, TH1, THashList, THashTable, THbookFile, TList, TListOfDataMembers, TListOfEnums, TListOfEnumsWithLock, TListOfFunctions, TListOfFunctionTemplates, TListOfTypes, TMap, TObjArray, TPad, TROOT, TViewPubDataMembers, and TViewPubFunctions.
Definition at line 425 of file TObject.cxx.
Must be redefined in derived classes.
This function is typically used with TCollections, but can also be used to find an object inside this object.
Reimplemented in RooAbsCollection, RooLinkedList, TBtree, TCollection, TDirectory, TFolder, TGeometry, TGraph2D, TGraph, TH1, THashList, THashTable, THbookFile, TList, TListOfDataMembers, TListOfEnums, TListOfEnumsWithLock, TListOfFunctions, TListOfFunctionTemplates, TListOfTypes, TMap, TObjArray, TPad, TROOT, TViewPubDataMembers, and TViewPubFunctions.
Definition at line 435 of file TObject.cxx.
|
protected |
Returns shadow map file.
Definition at line 1023 of file TMapFile.cxx.
Return pointer to object retrieved from shared memory.
The object must be deleted after use. If delObj is a pointer to a previously allocated object it will be deleted. Returns 0 in case object with the given name does not exist.
Definition at line 799 of file TMapFile.cxx.
|
inline |
Definition at line 88 of file TMapFile.h.
|
protected |
Return the best buffer size for objects in this file.
The best buffer size is estimated based on the current mean value and standard deviation of all objects written so far to this file. Returns mean value + one standard deviation.
Definition at line 1141 of file TMapFile.cxx.
| void * TMapFile::GetBreakval | ( | ) | const |
Return the current location in the memory region for this malloc heap which represents the end of memory in use.
Returns 0 if map file was closed.
Definition at line 1153 of file TMapFile.cxx.
|
inline |
Definition at line 90 of file TMapFile.h.
|
virtualinherited |
Get option used by the graphics system to draw this object.
Note that before calling object.GetDrawOption(), you must have called object.Draw(..) before in the current pad.
Reimplemented in TBrowser, TFitEditor, TGedFrame, TGFileBrowser, TRootBrowser, and TRootBrowserLite.
Definition at line 445 of file TObject.cxx.
|
staticinherited |
Return destructor only flag.
Definition at line 1196 of file TObject.cxx.
|
inline |
Definition at line 91 of file TMapFile.h.
|
inline |
Definition at line 97 of file TMapFile.h.
|
virtualinherited |
Returns mime type name of object.
Used by the TBrowser (via TGMimeTypes class). Override for class of which you would like to have different icons for objects of the same class.
Reimplemented in ROOT::Experimental::XRooFit::xRooNode, TASImage, TBranch, TBranchElement, TGeoVolume, TGMainFrame, TKey, TMethodBrowsable, TSystemFile, and TVirtualBranchBrowsable.
Definition at line 472 of file TObject.cxx.
|
inline |
Definition at line 98 of file TMapFile.h.
|
inline |
Definition at line 92 of file TMapFile.h.
|
inlineoverridevirtual |
Returns name of object.
This default method returns the class name. Classes that give objects a name should override this method.
Reimplemented from TObject.
Definition at line 93 of file TMapFile.h.
Returns string containing info about the object at position (px,py).
This method is typically overridden by classes of which the objects can report peculiarities for different positions. Returned string will be re-used (lock in MT environment).
Reimplemented in TASImage, TAxis3D, TColorWheel, TF1, TF2, TFileDrawMap, TGeoNode, TGeoTrack, TGeoVolume, TGL5DDataSet, TGLHistPainter, TGLParametricEquation, TGLTH3Composition, TGraph, TH1, THistPainter, TNode, TPaletteAxis, TParallelCoordVar, and TVirtualHistPainter.
Definition at line 491 of file TObject.cxx.
|
staticinherited |
Get status of object stat flag.
Definition at line 1181 of file TObject.cxx.
|
inlineoverridevirtual |
Reimplemented from TObject.
Definition at line 95 of file TMapFile.h.
|
inline |
Definition at line 94 of file TMapFile.h.
|
inlineoverridevirtual |
Returns title of object.
This default method returns the class title (i.e. description). Classes that give objects a title should override this method.
Reimplemented from TObject.
Definition at line 96 of file TMapFile.h.
|
virtualinherited |
Return the unique object id.
Definition at line 480 of file TObject.cxx.
Execute action in response of a timer timing out.
This method must be overridden if an object has to react to timers.
Reimplemented in TGCommandPlugin, TGDNDManager, TGFileContainer, TGHtml, TGLEventHandler, TGPopupMenu, TGraphTime, TGScrollBar, TGShutter, TGTextEdit, TGTextEditor, TGTextEntry, TGTextView, TGToolTip, TGuiBldDragManager, TGWindow, and TTreeViewer.
Definition at line 516 of file TObject.cxx.
|
virtualinherited |
Return hash value for this object.
Note: If this routine is overloaded in a derived class, this derived class should also add
Otherwise, when RecursiveRemove is called (by ~TObject or example) for this type of object, the transversal of THashList and THashTable containers will will have to be done without call Hash (and hence be linear rather than logarithmic complexity). You will also see warnings like
Reimplemented in RooLinkedList, TASImagePlugin, TASPluginGS, TCollection, TEnvRec, TGObject, TGPicture, TIconBoxThumb, TImagePlugin, TNamed, TObjString, TPad, TPair, TParameter< AParamType >, TParameter< Long64_t >, TPave, and TStatistic.
Definition at line 539 of file TObject.cxx.
|
inlineinherited |
Return true is the type of this object is known to have an inconsistent setup for Hash and RecursiveRemove (i.e.
missing call to RecursiveRemove in destructor).
Note: Since the consistency is only tested for during inserts, this routine will return true for object that have never been inserted whether or not they have a consistent setup. This has no negative side-effect as searching for the object with the right or wrong Hash will always yield a not-found answer (Since anyway no hash can be guaranteed unique, there is always a check)
|
virtualinherited |
Issue info message.
Use "location" to specify the method where the warning occurred. Accepts standard printf formatting arguments.
Definition at line 1072 of file TObject.cxx.
|
virtualinherited |
Returns kTRUE if object inherits from class "classname".
Reimplemented in TClass.
Definition at line 549 of file TObject.cxx.
Returns kTRUE if object inherits from TClass cl.
Reimplemented in TClass.
Definition at line 557 of file TObject.cxx.
|
protected |
Create the directory associated to this mapfile.
Definition at line 595 of file TMapFile.cxx.
|
virtualinherited |
Dump contents of this object in a graphics canvas.
Same action as Dump but in a graphical form. In addition pointers to other objects can be followed.
The following picture is the Inspect of a histogram object:
Reimplemented in ROOT::Experimental::XRooFit::xRooNode, TGFrame, TInspectorObject, and TSystemFile.
Definition at line 570 of file TObject.cxx.
|
inlineoverridevirtual |
Reimplemented from TObject.
Definition at line 117 of file TMapFile.h.
|
inlineinherited |
IsDestructed.
Default equal comparison (objects are equal if they have the same address in memory).
More complicated classes might want to override this function.
Reimplemented in TGObject, TObjString, TPair, and TQCommand.
Definition at line 589 of file TObject.cxx.
|
overridevirtual |
Returns kTRUE in case object is a folder (i.e. contains browsable lists).
Reimplemented from TObject.
Definition at line 1056 of file TMapFile.cxx.
|
inlinevirtualinherited |
Reimplemented in RooAbsArg, RooDouble, TCollection, TFileInfo, TGeoBranchArray, TGeoOverlap, TGFSFrameElement, TGLBFrameElement, TNamed, TObjString, TParameter< AParamType >, TParameter< Long64_t >, TPave, TStructNode, TStructNodeProperty, TUri, and TUrl.
|
inline |
Definition at line 100 of file TMapFile.h.
|
overridevirtual |
List contents of TMapFile.
Reimplemented from TObject.
Definition at line 1102 of file TMapFile.cxx.
|
staticprotected |
Return the base address at which we would like the next TMapFile's mapped data to start.
For now, we let the system decide (start address 0). There are a lot of issues to deal with here to make this work reasonably, including:
Once created, a mmalloc heap that is to be mapped back in must be mapped at the original address. I.e. each TMapFile will expect to be remapped at it's original address. This becomes a problem if the desired address is already in use.
Definition at line 1230 of file TMapFile.cxx.
|
inherited |
Use this method to signal that a method (defined in a base class) may not be called in a derived class (in principle against good design since a child class should not provide less functionality than its parent, however, sometimes it is necessary).
Definition at line 1160 of file TObject.cxx.
|
virtualinherited |
This method must be overridden to handle object notification (the base implementation is no-op).
Different objects in ROOT use the Notify method for different purposes, in coordination with other objects that call this method at the appropriate time.
For example, TLeaf uses it to load class information; TBranchRef to load contents of referenced branches TBranchRef; most notably, based on Notify, TChain implements a callback mechanism to inform interested parties when it switches to a new sub-tree.
Reimplemented in h1analysis, h1analysisTreeReader, TARInterruptHandler, TASInputHandler, TASInterruptHandler, TASLogHandler, TASSigPipeHandler, TBlinkTimer, TBranchElement, TBranchRef, TBreakLineCom, TBrowserTimer, TCollection, TDelCharCom, TDelTextCom, TFileHandler, TGContainerKeyboardTimer, TGContainerScrollTimer, TGInputHandler, TGLRedrawTimer, TGTextEditHist, TGuiBldDragManagerRepeatTimer, TIdleTimer, TInsCharCom, TInsTextCom, TInterruptHandler, TLeafObject, TMessageHandler, TNotifyLink< Type >, TNotifyLink< RNoCleanupNotifierHelper >, TNotifyLink< ROOT::Detail::TBranchProxy >, TNotifyLink< TTreeReader >, TPopupDelayTimer, TProcessEventTimer, TRefTable, TRepeatTimer, TSBRepeatTimer, TSelector, TSelectorDraw, TSelectorEntries, TSignalHandler, TSingleShotCleaner, TSocketHandler, TStdExceptionHandler, TSysEvtHandler, TTermInputHandler, TThreadTimer, TTimeOutTimer, TTimer, TTipDelayTimer, TTree, TTreeFormula, TTreeFormulaManager, TTreeReader, TViewTimer, and TViewUpdateTimer.
Definition at line 618 of file TObject.cxx.
|
inherited |
Use this method to declare a method obsolete.
Specify as of which version the method is obsolete and as from which version it will be removed.
Definition at line 1169 of file TObject.cxx.
|
protected |
Need special "operator delete" in which we close the shared memory.
This has to be done after the dtor chain has been finished.
Definition at line 1246 of file TMapFile.cxx.
|
inherited |
Operator delete for sized deallocation.
Definition at line 1234 of file TObject.cxx.
|
inherited |
Only called by placement new when throwing an exception.
Definition at line 1266 of file TObject.cxx.
|
inherited |
Operator delete [] for sized deallocation.
Definition at line 1245 of file TObject.cxx.
|
inherited |
Operator delete [].
Definition at line 1223 of file TObject.cxx.
|
inherited |
Only called by placement new[] when throwing an exception.
Definition at line 1274 of file TObject.cxx.
|
inlineprotected |
Definition at line 77 of file TMapFile.h.
|
inlineprotected |
Definition at line 79 of file TMapFile.h.
|
inlineprotected |
Definition at line 78 of file TMapFile.h.
|
inlineprotected |
Definition at line 80 of file TMapFile.h.
|
inline |
Definition at line 101 of file TMapFile.h.
|
virtualinherited |
This method must be overridden if a class wants to paint itself.
The difference between Paint() and Draw() is that when a object draws itself it is added to the display list of the pad in which it is drawn (and automatically redrawn whenever the pad is redrawn). While paint just draws the object without adding it to the pad display list.
Reimplemented in ROOT::Experimental::RTreeMapPainter, ROOT::RGeoPainter, TAnnotation, TArrow, TASImage, TASPaletteEditor::LimitLine, TASPaletteEditor::PaintPalette, TAxis3D, TBits, TBox, TButton, TCanvas, TClassTree, TCollection, TColorWheel, TCrown, TDiamond, TDirectory, TEfficiency, TEllipse, TEveArrow, TEveCaloViz, TEveDigitSet, TEveGeoShape, TEveGeoTopNode, TEvePlot3D, TEvePointSet, TEveProjectionAxes, TEveScene, TEveShape, TEveStraightLineSet, TEveText, TEveTriangleSet, TExec, TF1, TF2, TF3, TFile, TFileDrawMap, TFrame, TGaxis, TGenerator, TGeoBoolNode, TGeoIntersection, TGeoNode, TGeoOverlap, TGeoPainter, TGeoPhysicalNode, TGeoShape, TGeoSubtraction, TGeoTrack, TGeoUnion, TGeoVGShape, TGeoVolume, TGL5DDataSet, TGLHistPainter, TGLParametricEquation, TGLTH3Composition, TGraph2D, TGraph2DPainter, TGraph, TGraphEdge, TGraphNode, TGraphPolargram, TGraphTime, TH1, THistPainter, THStack, TLatex, TLegend, TLine, TMacro, TMarker3DBox, TMarker, TMathText, TMultiGraph, TNode, TNodeDiv, TPad, TPaletteAxis, TParallelCoord, TParallelCoordRange, TParallelCoordVar, TParticle, TPave, TPaveLabel, TPaveStats, TPavesText, TPaveText, TPie, TPolyLine3D, TPolyLine, TPolyMarker3D, TPolyMarker, TPrimary, TRatioPlot, TScatter2D, TScatter, TShape, TSpectrum2Painter, TSpider, TSpline, TSQLFile, TStyle, TText, TTreePerfStats, TVirtualGeoPainter, TVirtualGeoTrack, TVirtualHistPainter, TVirtualPad, TWbox, and TXMLFile.
Definition at line 631 of file TObject.cxx.
|
virtualinherited |
Pop on object drawn in a pad to the top of the display list.
I.e. it will be drawn last and on top of all other primitives.
Reimplemented in TFrame, TPad, and TVirtualPad.
Definition at line 640 of file TObject.cxx.
|
overridevirtual |
Print some info about the mapped file.
Reimplemented from TObject.
Definition at line 1039 of file TMapFile.cxx.
|
virtualinherited |
Read contents of object with specified name from the current directory.
First the key with the given name is searched in the current directory, next the key buffer is deserialized into the object. The object must have been created before via the default constructor. See TObject::Write().
Reimplemented in TBuffer, TKey, TKeySQL, and TKeyXML.
Definition at line 673 of file TObject.cxx.
|
virtualinherited |
Recursively remove this object from a list.
Typically implemented by classes that can contain multiple references to a same object.
Reimplemented in RooAbsCollection, RooAbsData, RooLinkedList, RooMCStudy, ROOT::Internal::TCheckHashRecursiveRemoveConsistency, ROOT::RBrowserDataCleanup, RooWorkspace, TBrowser, TChain, TCling, TCollection, TDialogCanvas, TDirectory, TEfficiency, TFileMerger, TFitEditor, TFolder, TFriendElement, TGedEditor, TGeometry, TGFileBrowser, TGraph2D, TGraph, TH1, TH1Editor, TH2Editor, THashList, THistPainter, THStack, TInspectCanvas, TLegend, TList, TListOfDataMembers, TListOfEnums, TListOfEnumsWithLock, TListOfFunctions, TListOfFunctionTemplates, TMultiGraph, TNode, TObjArray, TObjectRefSpy, TObjectSpy, TPad, TProcessID, TROOT, TRootBrowser, TRootBrowserHistory, TRootBrowserLite, TRootContextMenu, TTree, TTreePlayer, TViewPubDataMembers, TViewPubFunctions, and TVirtualPad.
Definition at line 684 of file TObject.cxx.
|
protected |
Release semaphore. Returns 0 if OK, -1 on error.
Definition at line 946 of file TMapFile.cxx.
|
inline |
Definition at line 109 of file TMapFile.h.
Remove object by name from shared memory.
Returns pointer to removed object if successful, 0 otherwise.
Definition at line 737 of file TMapFile.cxx.
Definition at line 108 of file TMapFile.h.
Remove object from shared memory.
Returns pointer to removed object if successful, 0 otherwise.
Definition at line 698 of file TMapFile.cxx.
| void TMapFile::RemoveAll | ( | ) |
Remove all objects from shared memory.
Definition at line 774 of file TMapFile.cxx.
|
virtualinherited |
Save this object in the file specified by filename.
otherwise the object is written to filename as a CINT/C++ script. The C++ code to rebuild this object is generated via SavePrimitive(). The "option" parameter is passed to SavePrimitive. By default it is an empty string. It can be used to specify the Draw option in the code generated by SavePrimitive.
The function is available via the object context menu.
Reimplemented in ROOT::Experimental::XRooFit::xRooNode, TClassTree, TFolder, TGeoVolume, TGObject, TGraph, TH1, TPad, TPaveClass, TSpline3, TSpline5, TSpline, TTreePerfStats, and TVirtualPad.
Definition at line 708 of file TObject.cxx.
|
virtualinherited |
Save a primitive as a C++ statement(s) on output stream "out".
Reimplemented in TAnnotation, TArc, TArrow, TASImage, TAxis3D, TBox, TButton, TCanvas, TChain, TCrown, TCurlyArc, TCurlyLine, TCutG, TDiamond, TEfficiency, TEllipse, TExec, TF12, TF1, TF2, TF3, TFrame, TGaxis, TGButton, TGButtonGroup, TGCanvas, TGCheckButton, TGColorSelect, TGColumnLayout, TGComboBox, TGCompositeFrame, TGContainer, TGDockableFrame, TGDoubleHSlider, TGDoubleVSlider, TGedMarkerSelect, TGedPatternSelect, TGeoArb8, TGeoBBox, TGeoBoolNode, TGeoCombiTrans, TGeoCompositeShape, TGeoCone, TGeoConeSeg, TGeoCtub, TGeoDecayChannel, TGeoElementRN, TGeoEltu, TGeoGtra, TGeoHalfSpace, TGeoHMatrix, TGeoHype, TGeoIdentity, TGeoIntersection, TGeoMaterial, TGeoMedium, TGeoMixture, TGeoPara, TGeoParaboloid, TGeoPatternCylPhi, TGeoPatternCylR, TGeoPatternParaX, TGeoPatternParaY, TGeoPatternParaZ, TGeoPatternSphPhi, TGeoPatternSphR, TGeoPatternSphTheta, TGeoPatternTrapZ, TGeoPatternX, TGeoPatternY, TGeoPatternZ, TGeoPcon, TGeoPgon, TGeoRotation, TGeoScaledShape, TGeoShapeAssembly, TGeoSphere, TGeoSubtraction, TGeoTessellated, TGeoTorus, TGeoTranslation, TGeoTrap, TGeoTrd1, TGeoTrd2, TGeoTube, TGeoTubeSeg, TGeoUnion, TGeoVolume, TGeoXtru, TGFileContainer, TGFont, TGFrame, TGFSComboBox, TGGC, TGGroupFrame, TGHButtonGroup, TGHorizontal3DLine, TGHorizontalFrame, TGHorizontalLayout, TGHProgressBar, TGHScrollBar, TGHSlider, TGHSplitter, TGHtml, TGIcon, TGLabel, TGLayoutHints, TGLineStyleComboBox, TGLineWidthComboBox, TGListBox, TGListDetailsLayout, TGListLayout, TGListTree, TGListView, TGLVContainer, TGMainFrame, TGMatrixLayout, TGMdiFrame, TGMdiMainFrame, TGMdiMenuBar, TGMenuBar, TGMenuTitle, TGNumberEntry, TGNumberEntryField, TGPictureButton, TGPopupMenu, TGProgressBar, TGRadioButton, TGraph2D, TGraph2DAsymmErrors, TGraph2DErrors, TGraph, TGraphAsymmErrors, TGraphBentErrors, TGraphEdge, TGraphErrors, TGraphMultiErrors, TGraphNode, TGraphPolar, TGraphPolargram, TGraphStruct, TGroupButton, TGRowLayout, TGShapedFrame, TGShutter, TGShutterItem, TGSplitFrame, TGStatusBar, TGTab, TGTabLayout, TGTableLayout, TGTableLayoutHints, TGTextButton, TGTextEdit, TGTextEntry, TGTextLBEntry, TGTextView, TGTileLayout, TGToolBar, TGTransientFrame, TGTripleHSlider, TGTripleVSlider, TGVButtonGroup, TGVertical3DLine, TGVerticalFrame, TGVerticalLayout, TGVFileSplitter, TGVProgressBar, TGVScrollBar, TGVSlider, TGVSplitter, TGXYLayout, TGXYLayoutHints, TH1, TH2Poly, THelix, THStack, TLatex, TLegend, TLine, TMacro, TMarker3DBox, TMarker, TMathText, TMultiGraph, TPad, TPaletteAxis, TParallelCoord, TParallelCoordVar, TPave, TPaveClass, TPaveLabel, TPaveStats, TPavesText, TPaveText, TPie, TPieSlice, TPolyLine3D, TPolyLine, TPolyMarker3D, TPolyMarker, TProfile2D, TProfile3D, TProfile, TRootContainer, TRootEmbeddedCanvas, TScatter2D, TScatter, TSlider, TSliderBox, TSpline3, TSpline5, TStyle, TText, TTreePerfStats, and TWbox.
Definition at line 858 of file TObject.cxx.
|
staticprotectedinherited |
Save object constructor in the output stream "out".
Can be used as first statement when implementing SavePrimitive() method for the object
Definition at line 777 of file TObject.cxx.
|
staticprotectedinherited |
Save invocation of primitive Draw() method Skipped if option contains "nodraw" string.
Definition at line 845 of file TObject.cxx.
|
staticprotectedinherited |
Save array in the output stream "out" as vector.
Create unique variable name based on prefix value Returns name of vector which can be used in constructor or in other places of C++ code If flag === kTRUE, just add empty line If flag === 111, check if array is empty and return nullptr or <vectorname>.data()
Definition at line 796 of file TObject.cxx.
Set or unset the user status bits as specified in f.
Definition at line 888 of file TObject.cxx.
|
virtualinherited |
Set drawing option for object.
This option only affects the drawing style and is stored in the option field of the TObjOptLink supporting a TPad's primitive list (TList). Note that it does not make sense to call object.SetDrawOption(option) before having called object.Draw().
Reimplemented in RooPlot, TAxis, TBrowser, TGedFrame, TGFrame, TPad, TPaveStats, TRootBrowserLite, TSystemDirectory, and TSystemFile.
Definition at line 871 of file TObject.cxx.
|
staticinherited |
Set destructor only flag.
Definition at line 1204 of file TObject.cxx.
|
static |
Set preferred map address.
Find out preferred map address as follows:
Repeat this if more than one map file is being used. The above procedure allow programs using, e.g., different number of shared libraries (that cause the default mapping address to be different) to create shared memory regions in the same location without overwriting a shared library. The above assumes the consumer program is larger (i.e. has more shared memory occupied) than the producer. If this is not true inverse the procedure.
Definition at line 1208 of file TMapFile.cxx.
|
staticinherited |
Turn on/off tracking of objects in the TObjectTable.
Definition at line 1188 of file TObject.cxx.
|
virtualinherited |
Set the unique object id.
Definition at line 899 of file TObject.cxx.
|
overridevirtual |
Stream an object of class TObject.
Reimplemented from TObject.
|
inline |
Definition at line 117 of file TMapFile.h.
|
protected |
Increment statistics for buffer sizes of objects in this file.
Definition at line 1127 of file TMapFile.cxx.
|
virtualinherited |
Issue system error message.
Use "location" to specify the method where the system error occurred. Accepts standard printf formatting arguments.
Definition at line 1112 of file TObject.cxx.
| void TMapFile::Update | ( | TObject * | obj = nullptr | ) |
Update an object (or all objects, if obj == 0) in shared memory.
Definition at line 657 of file TMapFile.cxx.
|
virtualinherited |
|
virtualinherited |
Issue warning message.
Use "location" to specify the method where the warning occurred. Accepts standard printf formatting arguments.
Definition at line 1084 of file TObject.cxx.
|
static |
Definition at line 1256 of file TMapFile.cxx.
|
virtualinherited |
Write this object to the current directory.
For more see the const version of this method.
Reimplemented in ROOT::TBufferMergerFile, TBuffer, TCollection, TDirectory, TDirectoryFile, TFile, TMap, TParallelMergingFile, TSQLFile, TTree, and TXMLFile.
Definition at line 989 of file TObject.cxx.
|
virtualinherited |
Write this object to the current directory.
The data structure corresponding to this object is serialized. The corresponding buffer is written to the current directory with an associated key with name "name".
Writing an object to a file involves the following steps:
Bufsize can be given to force a given buffer size to write this object. By default, the buffersize will be taken from the average buffer size of all objects written to the current file so far.
If a name is specified, it will be the name of the key. If name is not given, the name of the key will be the name as returned by GetName().
The option can be a combination of: kSingleKey, kOverwrite or kWriteDelete Using the kOverwrite option a previous key with the same name is overwritten. The previous key is deleted before writing the new object. Using the kWriteDelete option a previous key with the same name is deleted only after the new object has been written. This option is safer than kOverwrite but it is slower. NOTE: Neither kOverwrite nor kWriteDelete reduces the size of a TFile– the space is simply freed up to be overwritten; in the case of a TTree, it is more complicated. If one opens a TTree, appends some entries, then writes it out, the behaviour is effectively the same. If, however, one creates a new TTree and writes it out in this way, only the metadata is replaced, effectively making the old data invisible without deleting it. TTree::Delete() can be used to mark all disk space occupied by a TTree as free before overwriting its metadata this way. The kSingleKey option is only used by TCollection::Write() to write a container with a single key instead of each object in the container with its own key.
An object is read from the file into memory via TKey::Read() or via TObject::Read().
The function returns the total number of bytes written to the file. It returns 0 if the object cannot be written.
Reimplemented in TBuffer, TCollection, TDirectory, TDirectoryFile, TFile, TMap, TParallelMergingFile, TSQLFile, TTree, and TXMLFile.
Definition at line 964 of file TObject.cxx.
|
friend |
Definition at line 28 of file TMapFile.h.
|
private |
Base address of mapped memory region.
Definition at line 37 of file TMapFile.h.
|
privateinherited |
|
private |
List of KeyMapFile objects.
Definition at line 43 of file TMapFile.h.
|
private |
Pointer to directory associated to this mapfile.
Definition at line 42 of file TMapFile.h.
|
private |
Descriptor of mapped file.
Definition at line 31 of file TMapFile.h.
|
private |
List of streamed objects is shared memory.
Definition at line 39 of file TMapFile.h.
|
staticprivateinherited |
|
private |
Don't deadlock in update mode, when from Get() Add() is called.
Definition at line 47 of file TMapFile.h.
|
staticprivate |
Map to this address, set address via SetMapAddress().
Definition at line 52 of file TMapFile.h.
|
staticprivate |
Used in Close() and operator delete().
Definition at line 53 of file TMapFile.h.
|
private |
HANDLE of WIN32 Mutex object to implement semaphore.
Definition at line 46 of file TMapFile.h.
|
private |
Last object in list of shared objects.
Definition at line 40 of file TMapFile.h.
|
private |
Pointer to mmalloc descriptor.
Definition at line 36 of file TMapFile.h.
|
private |
Name of mapped file.
Definition at line 33 of file TMapFile.h.
|
private |
Offset in bytes for region mapped by reader.
Definition at line 41 of file TMapFile.h.
|
private |
Directory creation options.
Definition at line 35 of file TMapFile.h.
|
private |
Modification semaphore (or getpid() for WIN32).
Definition at line 45 of file TMapFile.h.
|
private |
Original start size of memory mapped region.
Definition at line 38 of file TMapFile.h.
|
private |
Sum of squares of buffer sizes of objects written so far.
Definition at line 50 of file TMapFile.h.
|
private |
Sum of buffer sizes of objects written so far.
Definition at line 49 of file TMapFile.h.
|
private |
Title of mapped file.
Definition at line 34 of file TMapFile.h.
|
privateinherited |
|
private |
ROOT version (or -1 for shadow map file).
Definition at line 32 of file TMapFile.h.
|
private |
TRUE if mapped file opened in RDWR mode.
Definition at line 44 of file TMapFile.h.
|
private |
Number of objects written so far.
Definition at line 48 of file TMapFile.h.