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 DcmPresentationContextItem 00024 * class DcmPresentationContextMap 00025 * 00026 * Last Update: $Author: meichel $ 00027 * Update Date: $Date: 2005/12/08 16:02:11 $ 00028 * Source File: $Source: /share/dicom/cvs-depot/dcmtk/dcmnet/include/dcmtk/dcmnet/dccfpcmp.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 DCCFPCMP_H 00037 #define DCCFPCMP_H 00038 00039 #include "dcmtk/config/osconfig.h" 00040 #include "dcmtk/ofstd/oflist.h" /* for class OFList<> */ 00041 #include "dcmtk/ofstd/ofstring.h" /* for class OFString */ 00042 #include "dcmtk/ofstd/ofcond.h" /* for class OFCondition */ 00043 #include "dcmtk/dcmnet/dcmsmap.h" /* for class DcmSimpleMap<> */ 00044 #include "dcmtk/dcmnet/dccfuidh.h" /* for class DcmUIDHandler */ 00045 00046 00050 class DcmPresentationContextItem 00051 { 00052 public: 00057 DcmPresentationContextItem( 00058 const DcmUIDHandler& abstractSyntax, 00059 const OFString& xferSyntaxGroup ); 00060 00062 DcmPresentationContextItem(const DcmPresentationContextItem& arg); 00063 00065 ~DcmPresentationContextItem(); 00066 00072 OFBool matches(const DcmUIDHandler& arg) const 00073 { 00074 return arg == uid_; 00075 } 00076 00080 const char *getAbstractSyntax() const 00081 { 00082 return uid_.c_str(); 00083 } 00084 00089 const char *getTransferSyntaxKey() const 00090 { 00091 return xferSyntaxGroup_.c_str(); 00092 } 00093 00098 OFBool operator==(const DcmPresentationContextItem& arg) const 00099 { 00100 return (uid_ == arg.uid_) && (xferSyntaxGroup_ == arg.xferSyntaxGroup_); 00101 } 00102 00103 private: 00104 00106 DcmPresentationContextItem& operator=(const DcmPresentationContextItem& arg); 00107 00109 DcmUIDHandler uid_; 00110 00112 OFString xferSyntaxGroup_; 00113 }; 00114 00115 00119 typedef OFList<DcmPresentationContextItem> DcmPresentationContextList; 00120 00121 00125 class DcmPresentationContextMap 00126 { 00127 public: 00129 DcmPresentationContextMap(); 00130 00132 ~DcmPresentationContextMap(); 00133 00142 OFCondition add( 00143 const char *key, 00144 const char *abstractSyntaxUID, 00145 const char *transferSyntaxKey); 00146 00151 OFBool isKnownKey(const char *key) const; 00152 00159 OFBool isKnownAbstractSyntax(const char *key, const DcmUIDHandler& abstractSyntax) const; 00160 00165 const DcmPresentationContextList *getPresentationContextList(const char *key) const; 00166 00167 private: 00169 DcmPresentationContextMap(const DcmPresentationContextMap& arg); 00170 00172 DcmPresentationContextMap& operator=(const DcmPresentationContextMap& arg); 00173 00175 DcmSimpleMap<DcmPresentationContextList *> map_; 00176 00177 }; 00178 00179 #endif 00180 00181 /* 00182 * CVS/RCS Log 00183 * $Log: dccfpcmp.h,v $ 00184 * Revision 1.3 2005/12/08 16:02:11 meichel 00185 * Changed include path schema for all DCMTK header files 00186 * 00187 * Revision 1.2 2003/06/18 08:16:16 meichel 00188 * Added comparison operators to keep MSVC5 compiler happy 00189 * 00190 * Revision 1.1 2003/06/10 14:27:33 meichel 00191 * Initial release of class DcmAssociationConfiguration and support 00192 * classes. This class maintains a list of association negotiation 00193 * profiles that can be addressed by symbolic keys. The profiles may 00194 * be read from a configuration file. 00195 * 00196 * 00197 */