GDCM  2.2.0
gdcmPresentationContext.h
Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program: GDCM (Grassroots DICOM). A DICOM library
00004 
00005   Copyright (c) 2006-2011 Mathieu Malaterre
00006   All rights reserved.
00007   See Copyright.txt or http://gdcm.sourceforge.net/Copyright.html for details.
00008 
00009      This software is distributed WITHOUT ANY WARRANTY; without even
00010      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
00011      PURPOSE.  See the above copyright notice for more information.
00012 
00013 =========================================================================*/
00014 #ifndef GDCMPRESENTATIONCONTEXT_H
00015 #define GDCMPRESENTATIONCONTEXT_H
00016 
00017 #include "gdcmTypes.h"
00018 #include "gdcmUIDs.h"
00019 
00020 #include <vector>
00021 
00022 namespace gdcm
00023 {
00024 
00029 class GDCM_EXPORT PresentationContext
00030 {
00031 public:
00032   PresentationContext();
00033 
00037   PresentationContext( UIDs::TSName asname,
00038     UIDs::TSName tsname = UIDs::ImplicitVRLittleEndianDefaultTransferSyntaxforDICOM );
00039 
00040   void SetAbstractSyntax( const char *as ) { AbstractSyntax = as; }
00041   const char *GetAbstractSyntax() const { return AbstractSyntax.c_str(); }
00042 
00043   void AddTransferSyntax( const char *tsstr );
00044   typedef std::vector<std::string> TransferSyntaxArrayType;
00045   typedef TransferSyntaxArrayType::size_type SizeType;
00046   const char *GetTransferSyntax(SizeType i) const { return TransferSyntaxes[i].c_str(); }
00047   SizeType GetNumberOfTransferSyntaxes() const { return TransferSyntaxes.size(); }
00048 
00049   void SetPresentationContextID( uint8_t id );
00050   uint8_t GetPresentationContextID() const;
00051 
00052   void Print(std::ostream &os) const;
00053 
00054   bool operator==(const PresentationContext & pc) const
00055     {
00056     assert( TransferSyntaxes.size() == 1 ); // TODO
00057     assert( pc.TransferSyntaxes.size() == 1 );
00058     return AbstractSyntax == pc.AbstractSyntax && TransferSyntaxes == pc.TransferSyntaxes;
00059     }
00060 
00061 private:
00062   std::string AbstractSyntax;
00063   std::vector<std::string> TransferSyntaxes;
00064   uint8_t /*PresentationContext*/ID;
00065 };
00066 
00067 } // end namespace gdcm
00068 
00069 #endif //GDCMPRESENTATIONCONTEXT_H

Generated on Tue Mar 27 2012 18:19:33 for GDCM by doxygen 1.8.0
SourceForge.net Logo