dcmnet/include/dcmtk/dcmnet/dccfenmp.h

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  */


Generated on 6 Jan 2011 for OFFIS DCMTK Version 3.6.0 by Doxygen 1.5.1