/*========================================================================= Program: GDCM (Grassroots DICOM). A DICOM library Copyright (c) 2006-2011 Mathieu Malaterre All rights reserved. See Copyright.txt or http://gdcm.sourceforge.net/Copyright.html for details. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the above copyright notice for more information. =========================================================================*/ #ifndef GDCMUSERINFORMATION_H #define GDCMUSERINFORMATION_H #include "gdcmTypes.h" #include "gdcmMaximumLengthSub.h" #include "gdcmImplementationVersionNameSub.h" #include "gdcmImplementationClassUIDSub.h" namespace gdcm { namespace network { class AsynchronousOperationsWindowSub; class RoleSelectionSub; struct RoleSelectionSubItems; class SOPClassExtendedNegociationSub; struct SOPClassExtendedNegociationSubItems; /** * \brief UserInformation * \details Table 9-16 * USER INFORMATION ITEM FIELDS * * TODO what is the goal of : * * Table 9-20 * USER INFORMATION ITEM FIELDS */ class UserInformation { public: UserInformation(); ~UserInformation(); std::istream &Read(std::istream &is); const std::ostream &Write(std::ostream &os) const; size_t Size() const; void Print(std::ostream &os) const; const MaximumLengthSub &GetMaximumLengthSub() const { return MLS; } MaximumLengthSub &GetMaximumLengthSub() { return MLS; } void AddRoleSelectionSub( RoleSelectionSub const & r ); void AddSOPClassExtendedNegociationSub( SOPClassExtendedNegociationSub const & s ); private: static const uint8_t ItemType; static const uint8_t Reserved2; uint16_t ItemLength; // len of MaximumLengthSub MLS; ImplementationClassUIDSub ICUID; AsynchronousOperationsWindowSub *AOWS; RoleSelectionSubItems *RSSI; SOPClassExtendedNegociationSubItems *SOPCENSI; ImplementationVersionNameSub IVNS; public: UserInformation(const UserInformation&) = delete; UserInformation &operator=(const UserInformation&); }; } // end namespace network } // end namespace gdcm #endif //GDCMUSERINFORMATION_H