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 DcmExtendedNegotiationItem 00020 * class DcmExtendedNegotiationMap 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 DCCFENMP_H 00032 #define DCCFENMP_H 00033 00034 #include "dcmtk/config/osconfig.h" 00035 #include "dcmtk/ofstd/oflist.h" /* for class OFList<> */ 00036 #include "dcmtk/ofstd/ofcond.h" /* for class OFCondition */ 00037 #include "dcmtk/dcmnet/dcmsmap.h" /* for class DcmSimpleMap<> */ 00038 #include "dcmtk/dcmnet/dccfuidh.h" /* for class DcmUIDHandler */ 00039 00040 class DcmPresentationContextMap; 00041 00045 class DcmExtendedNegotiationItem 00046 { 00047 public: 00053 DcmExtendedNegotiationItem( 00054 const DcmUIDHandler& abstractSyntax, 00055 const unsigned char *data, 00056 Uint32 length); 00057 00059 DcmExtendedNegotiationItem(const DcmExtendedNegotiationItem& arg); 00060 00062 ~DcmExtendedNegotiationItem(); 00063 00069 OFBool matches(const DcmUIDHandler& arg) const 00070 { 00071 return arg == uid_; 00072 } 00073 00078 const DcmUIDHandler& getAbstractSyntax() const 00079 { 00080 return uid_; 00081 } 00082 00087 const char *getAbstractSyntaxC() const 00088 { 00089 return uid_.c_str(); 00090 } 00091 00094 Uint32 getLength() const 00095 { 00096 return length_; 00097 } 00098 00101 const unsigned char *getRaw() const 00102 { 00103 return raw_; 00104 } 00105 00110 OFBool operator==(const DcmExtendedNegotiationItem& arg) const; 00111 00112 private: 00113 00115 DcmExtendedNegotiationItem& operator=(const DcmExtendedNegotiationItem& arg); 00116 00118 unsigned char *raw_; 00119 00121 Uint32 length_; 00122 00124 DcmUIDHandler uid_; 00125 }; 00126 00127 00131 typedef OFList<DcmExtendedNegotiationItem> DcmExtendedNegotiationList; 00132 00136 class DcmExtendedNegotiationMap 00137 { 00138 public: 00140 DcmExtendedNegotiationMap(); 00141 00143 ~DcmExtendedNegotiationMap(); 00144 00154 OFCondition add( 00155 const char *key, 00156 const char *abstractSyntaxUID, 00157 const unsigned char *rawData, 00158 Uint32 length); 00159 00164 OFBool isKnownKey(const char *key) const; 00165 00174 OFCondition checkConsistency( 00175 const char *key, 00176 const DcmPresentationContextMap& pclist, 00177 const char *pckey) const; 00178 00183 const DcmExtendedNegotiationList *getExtendedNegotiationList(const char *key) const; 00184 00185 private: 00187 DcmExtendedNegotiationMap(const DcmExtendedNegotiationMap& arg); 00188 00190 DcmExtendedNegotiationMap& operator=(const DcmExtendedNegotiationMap& arg); 00191 00193 DcmSimpleMap<DcmExtendedNegotiationList *> map_; 00194 00195 }; 00196 00197 00198 #endif 00199 00200 /* 00201 * CVS/RCS Log 00202 * $Log: dccfenmp.h,v $ 00203 * Revision 1.4 2010-10-14 13:17:22 joergr 00204 * Updated copyright header. Added reference to COPYRIGHT file. 00205 * 00206 * Revision 1.3 2005/12/08 16:02:10 meichel 00207 * Changed include path schema for all DCMTK header files 00208 * 00209 * Revision 1.2 2003/06/18 08:16:16 meichel 00210 * Added comparison operators to keep MSVC5 compiler happy 00211 * 00212 * Revision 1.1 2003/06/10 14:27:33 meichel 00213 * Initial release of class DcmAssociationConfiguration and support 00214 * classes. This class maintains a list of association negotiation 00215 * profiles that can be addressed by symbolic keys. The profiles may 00216 * be read from a configuration file. 00217 * 00218 * 00219 */