00001 /* 00002 * 00003 * Copyright (C) 1994-2005, OFFIS 00004 * 00005 * This software and supporting documentation were developed by 00006 * 00007 * Kuratorium OFFIS e.V. 00008 * Healthcare Information and Communication Systems 00009 * Escherweg 2 00010 * D-26121 Oldenburg, Germany 00011 * 00012 * THIS SOFTWARE IS MADE AVAILABLE, AS IS, AND OFFIS MAKES NO WARRANTY 00013 * REGARDING THE SOFTWARE, ITS PERFORMANCE, ITS MERCHANTABILITY OR 00014 * FITNESS FOR ANY PARTICULAR USE, FREEDOM FROM ANY COMPUTER DISEASES OR 00015 * ITS CONFORMITY TO ANY SPECIFICATION. THE ENTIRE RISK AS TO QUALITY AND 00016 * PERFORMANCE OF THE SOFTWARE IS WITH THE USER. 00017 * 00018 * Module: dcmdata 00019 * 00020 * Author: Marco Eichelberg 00021 * 00022 * Purpose: class DcmPrivateTagCache 00023 * 00024 * Last Update: $Author: meichel $ 00025 * Update Date: $Date: 2005/12/08 16:28:29 $ 00026 * Source File: $Source: /share/dicom/cvs-depot/dcmtk/dcmdata/include/dcmtk/dcmdata/dcpcache.h,v $ 00027 * CVS/RCS Revision: $Revision: 1.3 $ 00028 * Status: $State: Exp $ 00029 * 00030 * CVS/RCS Log at end of file 00031 * 00032 */ 00033 00034 #ifndef DCPCACHE_H 00035 #define DCPCACHE_H 00036 00037 #include "dcmtk/config/osconfig.h" /* make sure OS specific configuration is included first */ 00038 #include "dcmtk/ofstd/oftypes.h" /* for OFBool */ 00039 #include "dcmtk/ofstd/oflist.h" /* for OFList */ 00040 #include "dcmtk/ofstd/ofstring.h" /* for OFString */ 00041 #include "dcmtk/dcmdata/dctagkey.h" /* for DcmTagKey */ 00042 00043 class DcmObject; 00044 00047 class DcmPrivateTagCacheEntry 00048 { 00049 public: 00054 DcmPrivateTagCacheEntry(const DcmTagKey& tk, const char *pc); 00055 00057 virtual ~DcmPrivateTagCacheEntry(); 00058 00061 const char *getPrivateCreator() const; 00062 00069 OFBool isPrivateCreatorFor(const DcmTagKey& tk) const; 00070 00071 private: 00072 00074 DcmPrivateTagCacheEntry(const DcmPrivateTagCacheEntry&); 00075 00077 DcmPrivateTagCacheEntry& operator=(const DcmPrivateTagCacheEntry&); 00078 00080 DcmTagKey tagKey; 00081 00083 OFString privateCreator; 00084 }; 00085 00086 00090 class DcmPrivateTagCache 00091 { 00092 public: 00094 DcmPrivateTagCache(); 00095 00097 virtual ~DcmPrivateTagCache(); 00098 00100 void clear(); 00101 00106 const char *findPrivateCreator(const DcmTagKey& tk) const; 00107 00113 void updateCache(DcmObject *dobj); 00114 00115 private: 00116 00118 DcmPrivateTagCache(const DcmPrivateTagCache&); 00119 00121 DcmPrivateTagCache& operator=(const DcmPrivateTagCache&); 00122 00124 OFList<DcmPrivateTagCacheEntry *> list_; 00125 }; 00126 00127 #endif 00128 00129 /* 00130 * CVS/RCS Log: 00131 * $Log: dcpcache.h,v $ 00132 * Revision 1.3 2005/12/08 16:28:29 meichel 00133 * Changed include path schema for all DCMTK header files 00134 * 00135 * Revision 1.2 2004/10/20 15:56:13 meichel 00136 * Changed private inheritance from OFList to class member, 00137 * needed for compilation with HAVE_STL. 00138 * 00139 * Revision 1.1 2002/07/23 14:21:27 meichel 00140 * Added support for private tag data dictionaries to dcmdata 00141 * 00142 * 00143 */