dcmdata/include/dcmtk/dcmdata/dcchrstr.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:  dcmdata
00015  *
00016  *  Author:  Andreas Barth
00017  *
00018  *  Purpose: Interface of class DcmCharString
00019  *
00020  *  Last Update:      $Author: joergr $
00021  *  Update Date:      $Date: 2010-10-14 13:15:40 $
00022  *  CVS/RCS Revision: $Revision: 1.16 $
00023  *  Status:           $State: Exp $
00024  *
00025  *  CVS/RCS Log at end of file
00026  *
00027  */
00028 
00029 
00030 #ifndef DCCHRSTR_H
00031 #define DCCHRSTR_H
00032 
00033 #include "dcmtk/config/osconfig.h"    /* make sure OS specific configuration is included first */
00034 
00035 //
00036 // This implementation does not support 16 bit character sets. Since 8 bit
00037 // character sets are supported by the class DcmByteString the class
00038 // DcmCharString is derived from DcmByteString without any extensions.
00039 //
00040 // If the extension for 16 bit character sets will be implemented this class
00041 // must be derived directly from DcmElement. This class is designed to support
00042 // the value representations (LO, LT, PN, SH, ST, UT). They are a problem because
00043 // their value width (1, 2, .. Bytes) is specified by the element
00044 // SpecificCharacterSet (0008, 0005) and an implementation must support
00045 // different value widths that cannot be derived from the value representation.
00046 //
00047 
00048 #include "dcmtk/dcmdata/dcbytstr.h"
00049 
00050 
00053 class DcmCharString
00054   : public DcmByteString
00055 {
00056 
00057   public:
00058 
00064     DcmCharString(const DcmTag &tag,
00065                   const Uint32 len);
00066 
00070     DcmCharString(const DcmCharString &old);
00071 
00074     virtual ~DcmCharString();
00075 
00080     DcmCharString &operator=(const DcmCharString &obj);
00081 
00085     virtual DcmObject *clone() const
00086     {
00087       return new DcmCharString(*this);
00088     }
00089     
00102     virtual OFCondition copyFrom(const DcmObject& rhs);    
00103 
00108     virtual OFBool containsExtendedCharacters(const OFBool checkAllStrings = OFFalse);
00109 
00113     virtual OFBool isAffectedBySpecificCharacterSet() const;
00114 };
00115 
00116 
00117 #endif // DCCHRSTR_H
00118 
00119 
00120 /*
00121  * CVS/RCS Log:
00122  * $Log: dcchrstr.h,v $
00123  * Revision 1.16  2010-10-14 13:15:40  joergr
00124  * Updated copyright header. Added reference to COPYRIGHT file.
00125  *
00126  * Revision 1.15  2008-07-17 11:19:48  onken
00127  * Updated copyFrom() documentation.
00128  *
00129  * Revision 1.14  2008-07-17 10:30:22  onken
00130  * Implemented copyFrom() method for complete DcmObject class hierarchy, which
00131  * permits setting an instance's value from an existing object. Implemented
00132  * assignment operator where necessary.
00133  *
00134  * Revision 1.13  2006-12-15 14:18:07  joergr
00135  * Added new method that checks whether a DICOM object or element is affected
00136  * by SpecificCharacterSet (0008,0005).
00137  *
00138  * Revision 1.12  2006/12/13 13:58:15  joergr
00139  * Added new optional parameter "checkAllStrings" to method containsExtended
00140  * Characters().
00141  *
00142  * Revision 1.11  2006/05/11 08:52:09  joergr
00143  * Moved checkForNonASCIICharacters() from application to library.
00144  *
00145  * Revision 1.10  2005/12/08 16:28:00  meichel
00146  * Changed include path schema for all DCMTK header files
00147  *
00148  * Revision 1.9  2004/07/01 12:28:25  meichel
00149  * Introduced virtual clone method for DcmObject and derived classes.
00150  *
00151  * Revision 1.8  2002/12/06 12:49:08  joergr
00152  * Enhanced "print()" function by re-working the implementation and replacing
00153  * the boolean "showFullData" parameter by a more general integer flag.
00154  * Added doc++ documentation.
00155  * Made source code formatting more consistent with other modules/files.
00156  *
00157  * Revision 1.7  2001/06/01 15:48:33  meichel
00158  * Updated copyright header
00159  *
00160  * Revision 1.6  2000/03/08 16:26:11  meichel
00161  * Updated copyright header.
00162  *
00163  * Revision 1.5  1999/03/31 09:24:30  meichel
00164  * Updated copyright header in module dcmdata
00165  *
00166  *
00167  */


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