116 lines
2.6 KiB
C++
116 lines
2.6 KiB
C++
/*
|
|
*
|
|
* Copyright (C) 1994-2011, OFFIS e.V.
|
|
* All rights reserved. See COPYRIGHT file for details.
|
|
*
|
|
* This software and supporting documentation were developed by
|
|
*
|
|
* OFFIS e.V.
|
|
* R&D Division Health
|
|
* Escherweg 2
|
|
* D-26121 Oldenburg, Germany
|
|
*
|
|
*
|
|
* Module: dcmnet
|
|
*
|
|
* Author: Marco Eichelberg
|
|
*
|
|
* Purpose:
|
|
* class DcmUIDHandler
|
|
*
|
|
*/
|
|
|
|
#ifndef DCCFUIDH_H
|
|
#define DCCFUIDH_H
|
|
|
|
#include "dcmtk/config/osconfig.h"
|
|
#include "dcmtk/ofstd/ofstring.h" /* for class OFString */
|
|
#include "dcmtk/dcmnet/dndefine.h"
|
|
|
|
/** helper class that manages a single DICOM UID.
|
|
* Unlike class DcmUniqueIdentifier, this class does not manage an
|
|
* attribute tag or means of encoding/decoding UIDs. Instead it allows
|
|
* to convert between numeric and symbolic representation of a UID and
|
|
* implements a syntactical check.
|
|
*
|
|
* This class supports two special Transfer Syntax names,
|
|
* "LocalEndianExplicit" and "OppositeEndianExplicit". These are
|
|
* resolved to the explicit VR transfer syntaxes of the local byte
|
|
* order and the opposite byte order of the system the application is
|
|
* running on.
|
|
*/
|
|
class DCMTK_DCMNET_EXPORT DcmUIDHandler
|
|
{
|
|
public:
|
|
/// default constructor
|
|
DcmUIDHandler();
|
|
|
|
/// construct from OFString
|
|
DcmUIDHandler(const OFString& arg);
|
|
|
|
/// construct from C string
|
|
DcmUIDHandler(const char *arg);
|
|
|
|
/// copy constructor
|
|
DcmUIDHandler(const DcmUIDHandler& arg);
|
|
|
|
/// copy assignment operator
|
|
DcmUIDHandler& operator=(const DcmUIDHandler& arg);
|
|
|
|
/// assign from OFString
|
|
DcmUIDHandler& operator=(const OFString& arg);
|
|
|
|
/// assign from C string
|
|
DcmUIDHandler& operator=(const char *arg);
|
|
|
|
/// destructor
|
|
~DcmUIDHandler();
|
|
|
|
/// equal operator
|
|
OFBool operator==(const DcmUIDHandler& arg) const
|
|
{
|
|
return uid_ == arg.uid_;
|
|
}
|
|
|
|
/// not equal operator
|
|
OFBool operator!=(const DcmUIDHandler& arg) const
|
|
{
|
|
return uid_ != arg.uid_;
|
|
}
|
|
|
|
/** checks if the UID maintained by this object
|
|
* is a syntactically valid UID string
|
|
*/
|
|
OFBool isValidUID() const;
|
|
|
|
/** returns UID as C string
|
|
* @return UID
|
|
*/
|
|
const char *c_str() const
|
|
{
|
|
return uid_.c_str();
|
|
}
|
|
|
|
/** returns UID as const OFString reference
|
|
* @return UID
|
|
*/
|
|
const OFString& str() const
|
|
{
|
|
return uid_;
|
|
}
|
|
|
|
private:
|
|
|
|
/** this method checks if the UID value passed to this object
|
|
* is a symbolic UID and in this case attempts to resolve by name.
|
|
* This method is called from the constructor, must never be virtual.
|
|
*/
|
|
void lookupSymbolicUID();
|
|
|
|
/// the UID maintained by this object.
|
|
OFString uid_;
|
|
};
|
|
|
|
|
|
#endif
|