Slicer 5.9
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
vtkDataIOManager.h
Go to the documentation of this file.
1#ifndef __vtkDataIOManager_h
2#define __vtkDataIOManager_h
3
4// MRML includes
5#include "vtkMRML.h"
9class vtkMRMLNode;
10
11// VTK includes
12#include <vtkObject.h>
13class vtkCallbackCommand;
14class vtkCollection;
15
16#ifndef vtkObjectPointer
17#define vtkObjectPointer(xx) (reinterpret_cast <vtkObject **>( (xx) ))
18#endif
19
20class VTK_MRML_EXPORT vtkDataIOManager : public vtkObject
21{
22 public:
23
26 vtkTypeMacro(vtkDataIOManager,vtkObject);
27 void PrintSelf(ostream& os, vtkIndent indent) override;
28 vtkGetObjectMacro ( DataTransferCollection, vtkCollection );
29 void SetDataTransferCollection(vtkCollection* dataTransfer );
30 vtkGetObjectMacro ( CacheManager, vtkCacheManager );
31 virtual void SetCacheManager(vtkCacheManager* cacheManager);
32 vtkGetMacro ( EnableAsynchronousIO, int );
33 vtkGetMacro ( InUpdateCallbackFlag, int );
34 vtkSetMacro ( InUpdateCallbackFlag, int );
35
40
42
49
52 void AddDataTransfer ( vtkDataTransfer *transfer );
56 void RemoveDataTransfer ( int transferID );
60 vtkDataTransfer *GetDataTransfer ( int transferID );
68
72 void QueueRead ( vtkMRMLNode *node );
73
77 void QueueWrite ( vtkMRMLNode *node );
78
83 void SetTransferStatus(vtkDataTransfer *transfer, int status);
85
86 const char* GetTransferStatusString( vtkDataTransfer *transfer );
87
88 virtual void ProcessTransferUpdates ( vtkObject *caller, unsigned long event, void *callData );
89
90 enum
91 {
101 };
102
104 static void TransferUpdateCallback ( vtkObject *__caller,
105 unsigned long eid, void *__clientData, void *callData );
106
108 vtkCallbackCommand *TransferUpdateCommand;
110
111 private:
112 vtkCollection *DataTransferCollection;
113 vtkCacheManager *CacheManager;
114 int EnableAsynchronousIO;
115
116 vtkDataFileFormatHelper* FileFormatHelper;
117
118 protected:
123
124};
125
126#endif
virtual void SetCacheManager(vtkCacheManager *cacheManager)
vtkCallbackCommand * TransferUpdateCommand
Holder for update callback.
void ClearDataTransfers()
int GetUniqueTransferID()
Gets a unique id to assign to a new data transfer.
vtkDataTransfer * AddNewDataTransfer(vtkMRMLNode *node)
~vtkDataIOManager() override
void AddDataTransfer(vtkDataTransfer *transfer)
Adds a new data transfer object to the collection.
vtkDataTransfer * AddNewDataTransfer()
Creates and adds a new data transfer object to the collection.
static void TransferUpdateCallback(vtkObject *__caller, unsigned long eid, void *__clientData, void *callData)
function that gets called when a data transfer has been updated.
int GetTransferStatus(vtkDataTransfer *transfer)
virtual void SetFileFormatHelper(vtkDataFileFormatHelper *helper)
void operator=(const vtkDataIOManager &)
void QueueRead(vtkMRMLNode *node)
vtkDataTransfer * GetDataTransfer(int transferID)
Returns an individual data transfer by id.
int GetNumberOfDataTransfers()
virtual void ProcessTransferUpdates(vtkObject *caller, unsigned long event, void *callData)
static vtkDataIOManager * New()
The Usual vtk class functions.
void SetTransferStatus(vtkDataTransfer *transfer, int status)
vtkDataIOManager(const vtkDataIOManager &)
void PrintSelf(ostream &os, vtkIndent indent) override
const char * GetTransferStatusString(vtkDataTransfer *transfer)
void RemoveDataTransfer(int transferID)
void AddNewDataTransfer(vtkDataTransfer *transfer, vtkMRMLNode *node)
void AllTransfersClearedFromCache()
void QueueWrite(vtkMRMLNode *node)
vtkDataFileFormatHelper * GetFileFormatHelper()
Get/Set the DataFileFormatHelper object.
void SetEnableAsynchronousIO(int)
void RemoveDataTransfer(vtkDataTransfer *transfer)
Removes a data transfer object from the collection.
void SetDataTransferCollection(vtkCollection *dataTransfer)
Abstract Superclass for all specific types of MRML nodes.