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: dcmnet 00019 * 00020 * Author: Marco Eichelberg 00021 * 00022 * Purpose: 00023 * class DcmProfileEntry 00024 * class DcmProfileMap 00025 * 00026 * Last Update: $Author: meichel $ 00027 * Update Date: $Date: 2005/12/08 16:02:12 $ 00028 * Source File: $Source: /share/dicom/cvs-depot/dcmtk/dcmnet/include/dcmtk/dcmnet/dccfprmp.h,v $ 00029 * CVS/RCS Revision: $Revision: 1.3 $ 00030 * Status: $State: Exp $ 00031 * 00032 * CVS/RCS Log at end of file 00033 * 00034 */ 00035 00036 #ifndef DCCFPRMP_H 00037 #define DCCFPRMP_H 00038 00039 #include "dcmtk/config/osconfig.h" 00040 #include "dcmtk/ofstd/ofstring.h" /* for class OFString */ 00041 #include "dcmtk/ofstd/ofcond.h" /* for class OFCondition */ 00042 #include "dcmtk/dcmnet/dcmsmap.h" /* for class DcmSimpleMap<> */ 00043 00044 00048 class DcmProfileEntry 00049 { 00050 public: 00056 DcmProfileEntry( 00057 const OFString& presentationContextGroup, 00058 const OFString& roleSelectionGroup, 00059 const OFString& extendedNegotiationGroup); 00060 00062 DcmProfileEntry(const DcmProfileEntry& arg); 00063 00065 ~DcmProfileEntry(); 00066 00070 const char *getPresentationContextKey() const; 00071 00075 const char *getRoleSelectionKey() const; 00076 00080 const char *getExtendedNegotiationKey() const; 00081 00086 OFBool operator==(const DcmProfileEntry& arg) const 00087 { 00088 return (presentationContextGroup_ == arg.presentationContextGroup_) 00089 && (roleSelectionGroup_ == arg.roleSelectionGroup_) 00090 && (extendedNegotiationGroup_ == arg.extendedNegotiationGroup_); 00091 } 00092 00093 private: 00094 00096 DcmProfileEntry& operator=(const DcmProfileEntry& arg); 00097 00099 OFString presentationContextGroup_; 00100 00102 OFString roleSelectionGroup_; 00103 00105 OFString extendedNegotiationGroup_; 00106 }; 00107 00108 00112 class DcmProfileMap 00113 { 00114 public: 00116 DcmProfileMap(); 00117 00119 ~DcmProfileMap(); 00120 00128 OFCondition add( 00129 const char *key, 00130 const char *presentationContextKey, 00131 const char *roleSelectionKey, 00132 const char *extendedNegotiationKey); 00133 00138 OFBool isKnownKey(const char *key) const; 00139 00144 const char *getPresentationContextKey(const char *key) const; 00145 00150 const char *getRoleSelectionKey(const char *key) const; 00151 00156 const char *getExtendedNegotiationKey(const char *key) const; 00157 00158 private: 00160 DcmProfileMap(const DcmProfileMap& arg); 00161 00163 DcmProfileMap& operator=(const DcmProfileMap& arg); 00164 00166 DcmSimpleMap<DcmProfileEntry *> map_; 00167 00168 }; 00169 00170 00171 #endif 00172 00173 /* 00174 * CVS/RCS Log 00175 * $Log: dccfprmp.h,v $ 00176 * Revision 1.3 2005/12/08 16:02:12 meichel 00177 * Changed include path schema for all DCMTK header files 00178 * 00179 * Revision 1.2 2003/06/18 08:16:16 meichel 00180 * Added comparison operators to keep MSVC5 compiler happy 00181 * 00182 * Revision 1.1 2003/06/10 14:27:33 meichel 00183 * Initial release of class DcmAssociationConfiguration and support 00184 * classes. This class maintains a list of association negotiation 00185 * profiles that can be addressed by symbolic keys. The profiles may 00186 * be read from a configuration file. 00187 * 00188 * 00189 */