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: dcmnet 00015 * 00016 * Author: Marco Eichelberg 00017 * 00018 * Purpose: 00019 * class DcmProfileEntry 00020 * class DcmProfileMap 00021 * 00022 * Last Update: $Author: joergr $ 00023 * Update Date: $Date: 2010-10-14 13:17:22 $ 00024 * CVS/RCS Revision: $Revision: 1.4 $ 00025 * Status: $State: Exp $ 00026 * 00027 * CVS/RCS Log at end of file 00028 * 00029 */ 00030 00031 #ifndef DCCFPRMP_H 00032 #define DCCFPRMP_H 00033 00034 #include "dcmtk/config/osconfig.h" 00035 #include "dcmtk/ofstd/ofstring.h" /* for class OFString */ 00036 #include "dcmtk/ofstd/ofcond.h" /* for class OFCondition */ 00037 #include "dcmtk/dcmnet/dcmsmap.h" /* for class DcmSimpleMap<> */ 00038 00039 00043 class DcmProfileEntry 00044 { 00045 public: 00051 DcmProfileEntry( 00052 const OFString& presentationContextGroup, 00053 const OFString& roleSelectionGroup, 00054 const OFString& extendedNegotiationGroup); 00055 00057 DcmProfileEntry(const DcmProfileEntry& arg); 00058 00060 ~DcmProfileEntry(); 00061 00065 const char *getPresentationContextKey() const; 00066 00070 const char *getRoleSelectionKey() const; 00071 00075 const char *getExtendedNegotiationKey() const; 00076 00081 OFBool operator==(const DcmProfileEntry& arg) const 00082 { 00083 return (presentationContextGroup_ == arg.presentationContextGroup_) 00084 && (roleSelectionGroup_ == arg.roleSelectionGroup_) 00085 && (extendedNegotiationGroup_ == arg.extendedNegotiationGroup_); 00086 } 00087 00088 private: 00089 00091 DcmProfileEntry& operator=(const DcmProfileEntry& arg); 00092 00094 OFString presentationContextGroup_; 00095 00097 OFString roleSelectionGroup_; 00098 00100 OFString extendedNegotiationGroup_; 00101 }; 00102 00103 00107 class DcmProfileMap 00108 { 00109 public: 00111 DcmProfileMap(); 00112 00114 ~DcmProfileMap(); 00115 00123 OFCondition add( 00124 const char *key, 00125 const char *presentationContextKey, 00126 const char *roleSelectionKey, 00127 const char *extendedNegotiationKey); 00128 00133 OFBool isKnownKey(const char *key) const; 00134 00139 const char *getPresentationContextKey(const char *key) const; 00140 00145 const char *getRoleSelectionKey(const char *key) const; 00146 00151 const char *getExtendedNegotiationKey(const char *key) const; 00152 00153 private: 00155 DcmProfileMap(const DcmProfileMap& arg); 00156 00158 DcmProfileMap& operator=(const DcmProfileMap& arg); 00159 00161 DcmSimpleMap<DcmProfileEntry *> map_; 00162 00163 }; 00164 00165 00166 #endif 00167 00168 /* 00169 * CVS/RCS Log 00170 * $Log: dccfprmp.h,v $ 00171 * Revision 1.4 2010-10-14 13:17:22 joergr 00172 * Updated copyright header. Added reference to COPYRIGHT file. 00173 * 00174 * Revision 1.3 2005/12/08 16:02:12 meichel 00175 * Changed include path schema for all DCMTK header files 00176 * 00177 * Revision 1.2 2003/06/18 08:16:16 meichel 00178 * Added comparison operators to keep MSVC5 compiler happy 00179 * 00180 * Revision 1.1 2003/06/10 14:27:33 meichel 00181 * Initial release of class DcmAssociationConfiguration and support 00182 * classes. This class maintains a list of association negotiation 00183 * profiles that can be addressed by symbolic keys. The profiles may 00184 * be read from a configuration file. 00185 * 00186 * 00187 */