X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src%2FgdcmDocument.h;h=7c2ef447404ac2fd449a0237b733751c85d2aa42;hb=62fd402e1fc63c4928ab86195dd66208b072dadb;hp=e8d61d81bf149c3833fed5154fdacf1c687b0583;hpb=cda99e070e95c3990119c503d6621ee845ae8d84;p=gdcm.git diff --git a/src/gdcmDocument.h b/src/gdcmDocument.h index e8d61d81..7c2ef447 100644 --- a/src/gdcmDocument.h +++ b/src/gdcmDocument.h @@ -3,8 +3,8 @@ Program: gdcm Module: $RCSfile: gdcmDocument.h,v $ Language: C++ - Date: $Date: 2004/07/31 18:43:43 $ - Version: $Revision: 1.26 $ + Date: $Date: 2004/09/14 16:47:08 $ + Version: $Revision: 1.36 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -50,10 +50,6 @@ private: /// \brief Optional "shadow dictionary" (private elements) used to parse /// this header gdcmDict *RefShaDict; - - /// \brief Equals =1 if user wants to skip shadow groups while parsing - /// (to save space) - int IgnoreShadow; /// \brief Size threshold above which an element value will NOT be loaded /// in memory (to avoid loading the image/volume itself). By default, @@ -111,11 +107,11 @@ public: gdcmDict *GetPubDict(); gdcmDict *GetShaDict(); bool SetShaDict(gdcmDict *dict); - bool SetShaDict(DictKey dictName); + bool SetShaDict(DictKey const & dictName); // Informations contained in the parser virtual bool IsReadable(); - bool IsGivenTransferSyntax(std::string const & SyntaxToCheck); + bool IsGivenTransferSyntax(std::string const & syntaxToCheck); bool IsImplicitVRLittleEndianTransferSyntax(); bool IsExplicitVRLittleEndianTransferSyntax(); bool IsDeflatedExplicitVRLittleEndianTransferSyntax(); @@ -131,22 +127,31 @@ public: FileType GetFileType(); - FILE* OpenFile(bool exception_on_error = false) throw(gdcmFileError); + FILE* OpenFile(); bool CloseFile(); void Write(FILE* fp, FileType type); - gdcmValEntry* ReplaceOrCreateByNumber(std::string value, + gdcmValEntry* ReplaceOrCreateByNumber(std::string const & value, uint16_t group, uint16_t elem); + gdcmValEntry* ReplaceOrCreateByNumber(std::string const & value, + uint16_t group, uint16_t elem, + std::string const & VR); + gdcmBinEntry* ReplaceOrCreateByNumber(void *voidArea, int lgth, uint16_t group, uint16_t elem); - bool ReplaceIfExistByNumber (const char* value, uint16_t group, uint16_t elem); + + gdcmSeqEntry* ReplaceOrCreateByNumber(uint16_t group, uint16_t elem); + + bool ReplaceIfExistByNumber ( std::string const & value, + uint16_t group, + uint16_t elem ); virtual void* LoadEntryVoidArea(uint16_t group, uint16_t elem); virtual void* LoadEntryVoidArea(gdcmBinEntry* entry); - // System access + // System access (meaning endian related !?) uint16_t SwapShort(uint16_t); // needed by gdcmFile uint32_t SwapLong(uint32_t); // needed by gdcmFile uint16_t UnswapShort(uint16_t); // needed by gdcmFile @@ -156,23 +161,23 @@ protected: // Constructor and destructor are protected to forbid end user // to instanciate from this class gdcmDocument (only gdcmHeader and // gdcmDicomDir are meaningfull). - gdcmDocument(bool exception_on_error = false); - gdcmDocument(std::string const & filename, - bool exception_on_error = false); + gdcmDocument(); + gdcmDocument( std::string const & filename ); virtual ~gdcmDocument(); void Parse7FE0 (); // Entry - int CheckIfEntryExistByNumber(uint16_t group, uint16_t elem ); // int ! + bool CheckIfEntryExistByNumber(uint16_t group, uint16_t elem ); public: - virtual std::string GetEntryByName (TagName tagName); - virtual std::string GetEntryVRByName (TagName tagName); + virtual std::string GetEntryByName (TagName const & tagName); + virtual std::string GetEntryVRByName (TagName const & tagName); virtual std::string GetEntryByNumber (uint16_t group, uint16_t elem); virtual std::string GetEntryVRByNumber(uint16_t group, uint16_t elem); virtual int GetEntryLengthByNumber(uint16_t group, uint16_t elem); -protected: - virtual bool SetEntryByName (std::string content, std::string tagName); - virtual bool SetEntryByNumber(std::string content, +//protected: + virtual bool SetEntryByName (std::string const & content, + std::string const & tagName); + virtual bool SetEntryByNumber(std::string const & content, uint16_t group, uint16_t element); virtual bool SetEntryByNumber(void *content, int lgth, uint16_t group, uint16_t element); @@ -197,11 +202,11 @@ protected: private: // Read - long ParseDES(gdcmDocEntrySet *set, long offset, long l_max,bool delim_mode); - long ParseSQ(gdcmSeqEntry *seq, long offset, long l_max, bool delim_mode); + long ParseDES(gdcmDocEntrySet *set,long offset, long l_max, bool delim_mode); + long ParseSQ (gdcmSeqEntry *seq, long offset, long l_max, bool delim_mode); void LoadDocEntry (gdcmDocEntry *); - void FindDocEntryLength(gdcmDocEntry *); + void FindDocEntryLength(gdcmDocEntry *) throw ( gdcmFormatError ); void FindDocEntryVR (gdcmDocEntry *); bool CheckDocEntryVR (gdcmDocEntry *, gdcmVRKey); @@ -214,10 +219,10 @@ private: void FixDocEntryFoundLength(gdcmDocEntry *, uint32_t); bool IsDocEntryAnInteger (gdcmDocEntry *); - uint32_t FindDocEntryLengthOB(); + uint32_t FindDocEntryLengthOB() throw( gdcmFormatUnexpected ); - uint16_t ReadInt16(); - uint32_t ReadInt32(); + uint16_t ReadInt16() throw ( gdcmFormatError ); + uint32_t ReadInt32() throw ( gdcmFormatError ); void SkipBytes(uint32_t); bool ReadTag(uint16_t, uint16_t); uint32_t ReadTagLength(uint16_t, uint16_t); @@ -235,7 +240,7 @@ private: public: // Accessors: - /// Accessor to \ref printLevel + /// Accessor to \ref PrintLevel void SetPrintLevel(int level) { PrintLevel = level; } /// Accessor to \ref Filename @@ -244,7 +249,7 @@ public: /// Accessor to \ref Filename void SetFileName(std::string const & fileName) { Filename = fileName; } - /// 'Swap code' accessor (see \ref sw ) + /// 'Swap code' accessor (see \ref SwapCode ) int GetSwapCode() { return SwapCode; } /// File pointer