Slicer  4.10
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"
6 class vtkCacheManager;
8 class vtkDataTransfer;
9 class vtkMRMLNode;
10 
11 // VTK includes
12 #include <vtkObject.h>
13 class vtkCallbackCommand;
14 class vtkCollection;
15 
16 #ifndef vtkObjectPointer
17 #define vtkObjectPointer(xx) (reinterpret_cast <vtkObject **>( (xx) ))
18 #endif
19 
20 class VTK_MRML_EXPORT vtkDataIOManager : public vtkObject
21 {
22  public:
23 
25  static vtkDataIOManager *New();
26  vtkTypeMacro(vtkDataIOManager,vtkObject);
27  void PrintSelf(ostream& os, vtkIndent indent) VTK_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 
38  vtkDataFileFormatHelper* GetFileFormatHelper();
39  virtual void SetFileFormatHelper(vtkDataFileFormatHelper* helper);
40 
41  void SetEnableAsynchronousIO ( int );
42 
45  vtkDataTransfer *AddNewDataTransfer ( );
46  vtkDataTransfer *AddNewDataTransfer ( vtkMRMLNode *node);
47  void AddNewDataTransfer ( vtkDataTransfer *transfer, vtkMRMLNode *node);
48  void AllTransfersClearedFromCache();
49 
52  void AddDataTransfer ( vtkDataTransfer *transfer );
55  void RemoveDataTransfer ( vtkDataTransfer *transfer );
56  void RemoveDataTransfer ( int transferID );
57  int GetNumberOfDataTransfers();
60  vtkDataTransfer *GetDataTransfer ( int transferID );
64  void ClearDataTransfers ( );
67  int GetUniqueTransferID ( );
68 
72  void QueueRead ( vtkMRMLNode *node );
73 
77  void QueueWrite ( vtkMRMLNode *node );
78 
83  void SetTransferStatus(vtkDataTransfer *transfer, int status);
84  int GetTransferStatus( vtkDataTransfer *transfer);
85 
86  const char* GetTransferStatusString( vtkDataTransfer *transfer );
87 
88  virtual void ProcessTransferUpdates ( vtkObject *caller, unsigned long event, void *callData );
89 
90  enum
91  {
92  RemoteReadEvent = 19001,
100  RefreshDisplayEvent
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:
120  virtual ~vtkDataIOManager();
122  void operator=(const vtkDataIOManager&);
123 
124 };
125 
126 #endif
127 
128 
129 
Abstract Superclass for all specific types of MRML nodes.
Definition: vtkMRMLNode.h:138
vtkCallbackCommand * TransferUpdateCommand
Holder for update callback.