Slicer  4.10
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
vtkStreamingVolumeCodecFactory.h
Go to the documentation of this file.
1 /*==============================================================================
2 
3 Copyright (c) Laboratory for Percutaneous Surgery (PerkLab)
4 Queen's University, Kingston, ON, Canada. All Rights Reserved.
5 
6 See COPYRIGHT.txt
7 or http://www.slicer.org/copyright/copyright.txt for details.
8 
9 Unless required by applicable law or agreed to in writing, software
10 distributed under the License is distributed on an "AS IS" BASIS,
11 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 See the License for the specific language governing permissions and
13 limitations under the License.
14 
15 This file was originally developed by Kyle Sunderland, PerkLab, Queen's University
16 and was supported through CANARIE's Research Software Program, and Cancer
17 Care Ontario.
18 
19 ==============================================================================*/
20 
21 #ifndef __vtkStreamingVolumeCodecFactory_h
22 #define __vtkStreamingVolumeCodecFactory_h
23 
24 // VTK includes
25 #include <vtkObject.h>
26 #include <vtkSmartPointer.h>
27 
28 // STD includes
29 #include <map>
30 
31 // vtkAddon includes
32 #include "vtkAddon.h"
34 
40 class VTK_ADDON_EXPORT vtkStreamingVolumeCodecFactory : public vtkObject
41 {
42 public:
43 
44  vtkTypeMacro(vtkStreamingVolumeCodecFactory, vtkObject);
45  void PrintSelf(ostream& os, vtkIndent indent) VTK_OVERRIDE;
46 
49  bool RegisterStreamingCodec(vtkSmartPointer<vtkStreamingVolumeCodec> codec);
50 
55  bool UnRegisterStreamingCodecByClassName(const std::string& codecClassName);
56 
60  vtkStreamingVolumeCodec* CreateCodecByClassName(const std::string& codecClassName);
61 
66  vtkStreamingVolumeCodec* CreateCodecByFourCC(const std::string codecFourCC);
67 
69  const std::vector<std::string> GetStreamingCodecClassNames();
70 
72  std::vector<std::string> GetStreamingCodecFourCCs();
73 
74 public:
76  static vtkStreamingVolumeCodecFactory* GetInstance();
77 
83  static vtkStreamingVolumeCodecFactory* New();
84 
85 protected:
89  void operator=(const vtkStreamingVolumeCodecFactory&);
90 
93 
94  // Singleton management functions.
95  static void classInitialize();
96  static void classFinalize();
97 
99  std::vector< vtkSmartPointer<vtkStreamingVolumeCodec> > RegisteredCodecs;
100 };
101 
102 
105 {
106 public:
108 
111 private:
112  static unsigned int Count;
113 };
114 
119 
120 #endif
VTK object for representing a volume compression codec (normally a video compression codec) ...
Class that can create compresion device for streaming volume instances.
std::vector< vtkSmartPointer< vtkStreamingVolumeCodec > > RegisteredCodecs
Registered codec classes.
vtkStreamingVolumeCodecFactoryInitialize Self
Utility class to make sure qSlicerModuleManager is initialized before it is used. ...
static vtkStreamingVolumeCodecFactoryInitialize vtkStreamingVolumeCodecFactoryInitializer