00001 /* 00002 * 00003 * Copyright (C) 1994-2010, OFFIS e.V. 00004 * All rights reserved. See COPYRIGHT file for details. 00005 * 00006 * This software and supporting documentation were developed by 00007 * 00008 * OFFIS e.V. 00009 * R&D Division Health 00010 * Escherweg 2 00011 * D-26121 Oldenburg, Germany 00012 * 00013 * 00014 * Module: dcmdata 00015 * 00016 * Author: Marco Eichelberg 00017 * 00018 * Purpose: class DcmPrivateTagCache 00019 * 00020 * Last Update: $Author: joergr $ 00021 * Update Date: $Date: 2010-10-14 13:15:41 $ 00022 * CVS/RCS Revision: $Revision: 1.5 $ 00023 * Status: $State: Exp $ 00024 * 00025 * CVS/RCS Log at end of file 00026 * 00027 */ 00028 00029 #ifndef DCPCACHE_H 00030 #define DCPCACHE_H 00031 00032 #include "dcmtk/config/osconfig.h" /* make sure OS specific configuration is included first */ 00033 #include "dcmtk/ofstd/oftypes.h" /* for OFBool */ 00034 #include "dcmtk/ofstd/oflist.h" /* for OFList */ 00035 #include "dcmtk/ofstd/ofstring.h" /* for OFString */ 00036 #include "dcmtk/dcmdata/dctagkey.h" /* for DcmTagKey */ 00037 00038 class DcmObject; 00039 00042 class DcmPrivateTagCacheEntry 00043 { 00044 public: 00049 DcmPrivateTagCacheEntry(const DcmTagKey& tk, const char *pc); 00050 00052 virtual ~DcmPrivateTagCacheEntry(); 00053 00056 const char *getPrivateCreator() const; 00057 00064 OFBool isPrivateCreatorFor(const DcmTagKey& tk) const; 00065 00066 private: 00067 00069 DcmPrivateTagCacheEntry(const DcmPrivateTagCacheEntry&); 00070 00072 DcmPrivateTagCacheEntry& operator=(const DcmPrivateTagCacheEntry&); 00073 00075 DcmTagKey tagKey; 00076 00078 OFString privateCreator; 00079 }; 00080 00081 00085 class DcmPrivateTagCache 00086 { 00087 public: 00089 DcmPrivateTagCache(); 00090 00092 virtual ~DcmPrivateTagCache(); 00093 00095 void clear(); 00096 00101 const char *findPrivateCreator(const DcmTagKey& tk) const; 00102 00108 void updateCache(DcmObject *dobj); 00109 00110 private: 00111 00113 DcmPrivateTagCache(const DcmPrivateTagCache&); 00114 00116 DcmPrivateTagCache& operator=(const DcmPrivateTagCache&); 00117 00119 OFList<DcmPrivateTagCacheEntry *> list_; 00120 }; 00121 00122 #endif 00123 00124 /* 00125 * CVS/RCS Log: 00126 * $Log: dcpcache.h,v $ 00127 * Revision 1.5 2010-10-14 13:15:41 joergr 00128 * Updated copyright header. Added reference to COPYRIGHT file. 00129 * 00130 * Revision 1.4 2009-11-04 09:58:07 uli 00131 * Switched to logging mechanism provided by the "new" oflog module 00132 * 00133 * Revision 1.3 2005-12-08 16:28:29 meichel 00134 * Changed include path schema for all DCMTK header files 00135 * 00136 * Revision 1.2 2004/10/20 15:56:13 meichel 00137 * Changed private inheritance from OFList to class member, 00138 * needed for compilation with HAVE_STL. 00139 * 00140 * Revision 1.1 2002/07/23 14:21:27 meichel 00141 * Added support for private tag data dictionaries to dcmdata 00142 * 00143 * 00144 */