Horus Doc || C++ Reference || Class Overview   Pixels   Images   Detector   Geometry   Registry || Doxygen's quick Index  

HxDataPtrFactory.h

00001 /*
00002  *  Copyright (c) 2000, University of Amsterdam, The Netherlands.
00003  *  All rights reserved.
00004  *
00005  *  Author(s):
00006  *  Edo Poll                (poll@wins.uva.nl)
00007  */
00008 
00009 
00010 #ifndef HxDataPtrFactory_h
00011 #define HxDataPtrFactory_h
00012 
00013 #include "HxStd.h"
00014 #include "HxImageSignature.h"
00015 
00016 #include <map>
00017 
00018 class HxImageData;
00019 class HxDataPtrClone;
00020 class HxDataPtrCreator;
00021 
00022 class L_HXIMAGEREP HxDataPtrFactory
00023 {
00024 public:
00025     static HxDataPtrFactory&    instance();
00026 
00027     const HxDataPtrClone*       makeDataPtr(const HxImageData*) const;
00028     void                        registerCreator(
00029                                     HxImageSignature sig,
00030                                     const HxDataPtrCreator*);
00031 
00032 private:
00033                                 HxDataPtrFactory();
00034                                 HxDataPtrFactory(const HxDataPtrFactory&);
00035     HxDataPtrFactory&           operator=(const HxDataPtrFactory&);
00036 
00037     typedef const HxDataPtrCreator*                     HxDataPtrCreatorPtr;
00038     typedef std::map<
00039                 HxImageSignature, HxDataPtrCreatorPtr,
00040                 std::less<HxImageSignature> >           Map;
00041     typedef Map::value_type                             Entry;
00042 
00043 #pragma warning (disable : 4251)
00044     Map                         _map;
00045 #pragma warning (default : 4251)
00046 };
00047 
00048 #endif

Generated on Mon Jan 27 15:48:42 2003 for C++Reference by doxygen1.2.12 written by Dimitri van Heesch, © 1997-2001