DCMTK Version 3.7.0 OFFIS DICOM Toolkit

Public Member Functions | Protected Member Functions | Private Attributes | List of all members
DcmAssociationConfiguration Class Reference

This class maintains a list of association negotiation configuration profiles. More...

## Public Member Functions
| DcmAssociationConfiguration ()
| default constructor
| ~DcmAssociationConfiguration ()
| destructor
| DcmAssociationConfiguration (const DcmAssociationConfiguration &arg)
| Copy constructor, performs deep copy. More...
DcmAssociationConfiguration & | operator= (const DcmAssociationConfiguration &arg)
| Copy assignment operator, performs deep copy. More...
void | clear ()
| Reset configuration.
OFCondition | setAssociationParameters (const char *profile, T_ASC_Parameters &params) const
| this method prepares a T_ASC_Parameters structure according to the settings of a profile maintained by this object. More...
OFCondition | evaluateAssociationParameters (const char *profile, T_ASC_Association &assoc) const
| this method evaluates an incoming association request according to the settings of a profile maintained by this object. More...
OFCondition | addTransferSyntax (const char *key, const char *transferSyntaxUID)
| adds the given transfer syntax UID to the list of transfer syntaxes maintained under the given key. More...
OFCondition | addPresentationContext (const char *key, const char *abstractSyntaxUID, const char *transferSyntaxKey, OFBool scuMode)
| adds the given abstract syntax UID and transfer syntax list key to the list of presentation contexts maintained under the given key. More...
OFCondition | addRole (const char *key, const char *abstractSyntaxUID, T_ASC_SC_ROLE role)
| adds the given abstract syntax UID and role to the list of SCP/SCU role selection items maintained under the given key. More...
OFCondition | createEmptyRoleList (const char *key)
| adds empty role list, also returns ok if list is already existing. More...
OFCondition | addExtendedNegotiation (const char *key, const char *abstractSyntaxUID, const unsigned char *rawData, Uint32 length)
| adds the given abstract syntax UID and extended negotiation data to the list of extended negotiation items maintained under the given key. More...
OFCondition | addProfile (const char *key, const char *presentationContextKey, const char *roleSelectionKey=NULL, const char *extendedNegotiationKey=NULL)
| creates a new association negotiation profile under the given key. More...
OFBool | isKnownProfile (const char *key) const
| checks if the profile is known More...
const DcmProfileEntry * | getProfileEntry (const OFString &profileName)
| returns profile identified by given name More...
OFBool | isValidSCPProfile (const char *key) const
| checks if the profile is suitable for use by an SCP. More...
OFBool | isValidSCUProfile (const char *key) const
| checks if the profile is suitable for use by an SCU. More...
OFString | findTSKey (const OFList< OFString > &tslist)
| find a list of transfer syntaxes that matches the given list and return its name. More...
void | setAlwaysAcceptDefaultRole (const OFBool enabled)
| Option to always accept a default role as association acceptor. More...
void | dumpProfiles (STD_NAMESPACE ostream &out, const OFString &profileName="")
| dumps all profiles or a selected profile to the given output stream. More...

## Protected Member Functions
void | dumpProfile (STD_NAMESPACE ostream &out, const DcmProfileEntry *profile, const OFString &profileName)
| dump a single association profile, mainly interesting for debugging purposes. More...

## Private Attributes
DcmTransferSyntaxMap | xferSyntaxes_
| map of transfer syntax lists
DcmPresentationContextMap | contexts_
| map of presentation context lists
DcmRoleSelectionMap | roleselection_
| map of role selection lists
DcmExtendedNegotiationMap | extneg_
| map of extended negotiation lists
DcmProfileMap | profiles_
| map of profiles
OFBool | alwaysAcceptDefaultRole_
| Option to always accept a default role as association acceptor. More...

## Detailed Description

This class maintains a list of association negotiation configuration profiles.

A profile is a combination of the following components: A list of presentation contexts, an optional list of SCP/SCU role selection items and an optional list of extended negotiation items. A presentation context itself consist of an abstract syntax and a list of transfer syntaxes, the latter each being separate components. Role selection and extended negotiation items are atomic (i.e. they do not reference other components). All components are identified by a unique symbolic name. All components are re-usable since they are only referenced from a profile by their respective symbolic names. E.g. a list of transfer syntaxes can be referenced from various presentation contexts. This approach has been taken in order to save memory since, for instance, in many presentation contexts, the list of supported transfer syntaxes will be the same.

## Constructor & Destructor Documentation

## ◆ DcmAssociationConfiguration()

DcmAssociationConfiguration::DcmAssociationConfiguration | ( | const DcmAssociationConfiguration & | arg | ) |

Copy constructor, performs deep copy.

Parameters

  arg | the DcmAC to copy

## Member Function Documentation

## ◆ addExtendedNegotiation()

OFCondition DcmAssociationConfiguration::addExtendedNegotiation | ( | const char * | key,
|  | const char * | abstractSyntaxUID,
|  | const unsigned char * | rawData,
|  | Uint32 | length
| ) |  |

adds the given abstract syntax UID and extended negotiation data to the list of extended negotiation items maintained under the given key.

If key is not yet known, a new list is created under this key. One abstract syntax UID must not appear twice within one list.

Parameters

  key | role list key, must not be NULL
  abstractSyntaxUID | abstract syntax UID in symbolic or numeric format
  rawData | pointer to raw data, must not be NULL
  length | length of data block pointed to by data, in bytes

Returns
  EC_Normal if successful, an error code otherwise

## ◆ addPresentationContext()

OFCondition DcmAssociationConfiguration::addPresentationContext | ( | const char * | key,
|  | const char * | abstractSyntaxUID,
|  | const char * | transferSyntaxKey,
|  | OFBool | scuMode
| ) |  |

adds the given abstract syntax UID and transfer syntax list key to the list of presentation contexts maintained under the given key.

If key is not yet known, a new list is created under this key. One list of presentation contexts may not have more than 128 entries because of the limitations of the DICOM ACSE protocol.

Parameters

  key | presentation context list key, must not be NULL
  abstractSyntaxUID | abstract syntax UID in symbolic or numeric format
  transferSyntaxKey | symbolic key that has been used in a call to addTransferSyntax() prior to this call.
  scuMode | true if the configuration is intended for an SCU (i.e. the limit of 128 presentation contexts must be preserved), false otherwise

Returns
  EC_Normal if successful, an error code otherwise

## ◆ addProfile()

OFCondition DcmAssociationConfiguration::addProfile | ( | const char * | key,
|  | const char * | presentationContextKey,
|  | const char * | roleSelectionKey = `NULL`,
|  | const char * | extendedNegotiationKey = `NULL`
| ) |  |

creates a new association negotiation profile under the given key.

A profile consists of a list of presentation contexts and may optionally also include a list of SCP/SCU role selection items and a list of extended negotiation items. This method checks the consistency of the three lists, i.e. makes sure that all abstract syntaxes mentioned either in the list of role selection items or the list of extended negotiation items are also contained in at least one presentation context.

Parameters

  key | profile key, must not be NULL
  presentationContextKey | presentation context list key, must not be NULL
  roleSelectionKey | role selection list key, may be NULL
  extendedNegotiationKey | extended negotiation list key, may be NULL

Returns
  EC_Normal if successful, an error code otherwise

## ◆ addRole()

OFCondition DcmAssociationConfiguration::addRole | ( | const char * | key,
|  | const char * | abstractSyntaxUID,
|  | T_ASC_SC_ROLE | role
| ) |  |

adds the given abstract syntax UID and role to the list of SCP/SCU role selection items maintained under the given key.

If key is not yet known, a new list is created under this key. One abstract syntax UID must not appear twice within one list.

Parameters

  key | role list key, must not be NULL
  abstractSyntaxUID | abstract syntax UID in symbolic or numeric format
  role | role enum

Returns
  EC_Normal if successful, an error code otherwise

## ◆ addTransferSyntax()

OFCondition DcmAssociationConfiguration::addTransferSyntax | ( | const char * | key,
|  | const char * | transferSyntaxUID
| ) |  |

adds the given transfer syntax UID to the list of transfer syntaxes maintained under the given key.

If key is not yet known, a new list is created under this key.

Parameters

  key | transfer syntax list key, must not be NULL
  transferSyntaxUID | transfer syntax UID in symbolic or numeric format

Returns
  EC_Normal if successful, an error code otherwise

## ◆ createEmptyRoleList()

OFCondition DcmAssociationConfiguration::createEmptyRoleList | ( | const char * | key | ) |

adds empty role list, also returns ok if list is already existing.

If key is not yet known, a new list is created under this key.

Parameters

  key | role list key, must not be NULL

Returns
  EC_Normal if successful, an error code otherwise

## ◆ dumpProfile()

void DcmAssociationConfiguration::dumpProfile | ( | STD_NAMESPACE ostream & | out,
|  | const DcmProfileEntry * | profile,
|  | const OFString & | profileName
| ) |  |
| protected

dump a single association profile, mainly interesting for debugging purposes.

Parameters

  out | output stream to be used
  profile | profile to dump
  profileName | name of the profile to dump (used for debug output)

## ◆ dumpProfiles()

void DcmAssociationConfiguration::dumpProfiles | ( | STD_NAMESPACE ostream & | out,
|  | const OFString & | profileName = `""`
| ) |  |

dumps all profiles or a selected profile to the given output stream.

Mainly useful for debugging.

Parameters

  out | output stream to be used
  profileName | if not empty, only the profile defined by the given is dumped. Otherwise, all profiles are dumped.

## ◆ evaluateAssociationParameters()

OFCondition DcmAssociationConfiguration::evaluateAssociationParameters | ( | const char * | profile,
|  | T_ASC_Association & | assoc
| ) |  | const

this method evaluates an incoming association request according to the settings of a profile maintained by this object.

It is used by an association acceptor.

Note
  The first transfer syntax in the list that is acceptable will be preferred. More details can be found in the text file "asconfig.txt".

Parameters

  profile | symbolic profile name, must not be NULL
  assoc | T_ASC_Association structure to be evaluated

Returns
  EC_Normal if successful, an error code otherwise

## ◆ findTSKey()

OFString DcmAssociationConfiguration::findTSKey | ( | const OFList< OFString > & | tslist | ) |

find a list of transfer syntaxes that matches the given list and return its name.

A match is only found if the number of transfer syntaxes is the same, each transfer syntax exists in the other list and the order is preserved.

Parameters

  tslist | the list of transfer syntaxes to look for

Returns
  the symbolic name of the list found. If no match is found, an empty string is returned.

## ◆ getProfileEntry()

const DcmProfileEntry* DcmAssociationConfiguration::getProfileEntry | ( | const OFString & | profileName | ) |

returns profile identified by given name

Parameters

  profileName | the name of the profile to look for

Returns
  the profile if existent, otherwise NULL

## ◆ isKnownProfile()

OFBool DcmAssociationConfiguration::isKnownProfile | ( | const char * | key | ) | const

checks if the profile is known

Parameters

  key | profile name, must not be NULL

Returns
  true if profile is known, false otherwise

## ◆ isValidSCPProfile()

OFBool DcmAssociationConfiguration::isValidSCPProfile | ( | const char * | key | ) | const

checks if the profile is suitable for use by an SCP.

A profile is suitable for use by an SCP if each SOP class in the list of presentation contexts appears at most once.

Parameters

  key | profile name, must not be NULL

Returns
  true if profile is suitable for use by an SCP, false otherwise

## ◆ isValidSCUProfile()

OFBool DcmAssociationConfiguration::isValidSCUProfile | ( | const char * | key | ) | const

checks if the profile is suitable for use by an SCU.

A profile is suitable for use by an SCU if the list of presentation contexts appears has not more than 128 entries.

Parameters

  key | profile name, must not be NULL

Returns
  true if profile is suitable for use by an SCU, false otherwise

## ◆ operator=()

DcmAssociationConfiguration& DcmAssociationConfiguration::operator= | ( | const DcmAssociationConfiguration & | arg | ) |

Copy assignment operator, performs deep copy.

Parameters

  arg | the DcmAC to copy

## ◆ setAlwaysAcceptDefaultRole()

void DcmAssociationConfiguration::setAlwaysAcceptDefaultRole | ( | const OFBool | enabled | ) |

Option to always accept a default role as association acceptor.

If OFFalse (default) the acceptor will reject a presentation context proposed with Default role (no role selection at all) when it is configured for role SCP only. If this option is set to OFTrue then such presentation contexts will be accepted in Default role (i.e. acceptor does not return role selection for this presentation context at all). Overall, if set to OFTrue, there are no requestor proposals possible that lead to a complete rejection of a presentation context. See also role documentation in dul.h.

Parameters

  enabled | If OFTrue, do not reject Default role proposals when configured for SCP role. OFFalse (default behaviour): Reject such proposals.

## ◆ setAssociationParameters()

OFCondition DcmAssociationConfiguration::setAssociationParameters | ( | const char * | profile,
|  | T_ASC_Parameters & | params
| ) |  | const

this method prepares a T_ASC_Parameters structure according to the settings of a profile maintained by this object.

It is used by an association initiator.

Parameters

  profile | symbolic profile name, must not be NULL
  params | T_ASC_Parameters structure to be filled

Returns
  EC_Normal if successful, an error code otherwise

## Member Data Documentation

## ◆ alwaysAcceptDefaultRole_

OFBool DcmAssociationConfiguration::alwaysAcceptDefaultRole_
| private

Option to always accept a default role as association acceptor.

If OFFalse (default) the acceptor will reject a presentation context proposed with Default role (no role selection at all) when it is configured for role SCP only. If this option is set to OFTrue then such presentation contexts will be accepted in Default role (i.e. acceptor does not return role selection for this presentation context at all). Overall, if set to OFTrue, there are no requestor proposals possible that lead to a complete rejection of a presentation context. See also role documentation in dul.h.

The documentation for this class was generated from the following file:

- dcmnet/include/dcmtk/dcmnet/dcasccfg.h

Generated on Mon Dec 15 2025 for DCMTK Version 3.7.0 by Doxygen 1.9.1