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: Marco Eichelberg 00017 * 00018 * Purpose: singleton class that registers RLE encoder. 00019 * 00020 * Last Update: $Author: joergr $ 00021 * Update Date: $Date: 2010-10-14 13:15:42 $ 00022 * CVS/RCS Revision: $Revision: 1.7 $ 00023 * Status: $State: Exp $ 00024 * 00025 * CVS/RCS Log at end of file 00026 * 00027 */ 00028 00029 #ifndef DCRLEERG_H 00030 #define DCRLEERG_H 00031 00032 #include "dcmtk/config/osconfig.h" 00033 #include "dcmtk/ofstd/oftypes.h" /* for OFBool */ 00034 #include "dcmtk/ofstd/oftypes.h" /* for Uint32 */ 00035 00036 class DcmRLECodecParameter; 00037 class DcmRLECodecEncoder; 00038 00041 class DcmRLEEncoderRegistration 00042 { 00043 public: 00044 00055 static void registerCodecs( 00056 OFBool pCreateSOPInstanceUID = OFFalse, 00057 Uint32 pFragmentSize = 0, 00058 OFBool pCreateOffsetTable = OFTrue, 00059 OFBool pConvertToSC = OFFalse); 00060 00066 static void cleanup(); 00067 00068 private: 00069 00071 DcmRLEEncoderRegistration(const DcmRLEEncoderRegistration&); 00072 00074 DcmRLEEncoderRegistration& operator=(const DcmRLEEncoderRegistration&); 00075 00077 static OFBool registered; 00078 00080 static DcmRLECodecParameter *cp; 00081 00083 static DcmRLECodecEncoder *codec; 00084 00085 // dummy friend declaration to prevent gcc from complaining 00086 // that this class only defines private constructors and has no friends. 00087 friend class DcmRLEEncoderRegistrationDummyFriend; 00088 00089 }; 00090 00091 #endif 00092 00093 /* 00094 * CVS/RCS Log 00095 * $Log: dcrleerg.h,v $ 00096 * Revision 1.7 2010-10-14 13:15:42 joergr 00097 * Updated copyright header. Added reference to COPYRIGHT file. 00098 * 00099 * Revision 1.6 2010-03-01 09:08:44 uli 00100 * Removed some unnecessary include directives in the headers. 00101 * 00102 * Revision 1.5 2009-11-04 09:58:07 uli 00103 * Switched to logging mechanism provided by the "new" oflog module 00104 * 00105 * Revision 1.4 2005-12-08 16:28:39 meichel 00106 * Changed include path schema for all DCMTK header files 00107 * 00108 * Revision 1.3 2004/01/20 12:57:21 meichel 00109 * Added dummy friend class to avoid warning on certain gcc releases 00110 * 00111 * Revision 1.2 2003/03/21 13:06:46 meichel 00112 * Minor code purifications for warnings reported by MSVC in Level 4 00113 * 00114 * Revision 1.1 2002/06/06 14:52:37 meichel 00115 * Initial release of the new RLE codec classes 00116 * and the dcmcrle/dcmdrle tools in module dcmdata 00117 * 00118 * 00119 */