dcasccfg.h

00001 /*
00002  *
00003  *  Copyright (C) 1994-2005, OFFIS
00004  *
00005  *  This software and supporting documentation were developed by
00006  *
00007  *    Kuratorium OFFIS e.V.
00008  *    Healthcare Information and Communication Systems
00009  *    Escherweg 2
00010  *    D-26121 Oldenburg, Germany
00011  *
00012  *  THIS SOFTWARE IS MADE AVAILABLE,  AS IS,  AND OFFIS MAKES NO  WARRANTY
00013  *  REGARDING  THE  SOFTWARE,  ITS  PERFORMANCE,  ITS  MERCHANTABILITY  OR
00014  *  FITNESS FOR ANY PARTICULAR USE, FREEDOM FROM ANY COMPUTER DISEASES  OR
00015  *  ITS CONFORMITY TO ANY SPECIFICATION. THE ENTIRE RISK AS TO QUALITY AND
00016  *  PERFORMANCE OF THE SOFTWARE IS WITH THE USER.
00017  *
00018  *  Module:  dcmnet
00019  *
00020  *  Author:  Marco Eichelberg
00021  *
00022  *  Purpose: 
00023  *
00024  *  Last Update:      $Author: meichel $
00025  *  Update Date:      $Date: 2005/12/08 16:02:09 $
00026  *  Source File:      $Source: /share/dicom/cvs-depot/dcmtk/dcmnet/include/dcmtk/dcmnet/dcasccfg.h,v $
00027  *  CVS/RCS Revision: $Revision: 1.3 $
00028  *  Status:           $State: Exp $
00029  *
00030  *  CVS/RCS Log at end of file
00031  *
00032  */
00033 
00034 #ifndef DCASCCFG_H
00035 #define DCASCCFG_H
00036 
00037 #include "dcmtk/config/osconfig.h"
00038 #include "dcmtk/ofstd/ofcond.h"   /* for class OFCondition */
00039 #include "dcmtk/dcmnet/assoc.h"    /* for T_ASC_Parameters */
00040 #include "dcmtk/dcmnet/dccftsmp.h" /* for class DcmTransferSyntaxMap */
00041 #include "dcmtk/dcmnet/dccfpcmp.h" /* for class DcmPresentationContextMap */
00042 #include "dcmtk/dcmnet/dccfrsmp.h" /* for class DcmRoleSelectionMap */
00043 #include "dcmtk/dcmnet/dccfenmp.h" /* for class DcmExtendedNegotiationMap */
00044 #include "dcmtk/dcmnet/dccfprmp.h" /* for class DcmProfileMap */
00045 
00046 
00050 class DcmAssociationConfiguration
00051 {
00052 public:
00054   DcmAssociationConfiguration();
00055 
00057   ~DcmAssociationConfiguration();
00058 
00065   OFCondition setAssociationParameters(
00066     const char *profile,
00067     T_ASC_Parameters& params) const;
00068 
00075   OFCondition evaluateAssociationParameters(
00076     const char *profile,
00077     T_ASC_Association &assoc) const;
00078 
00086   OFCondition addTransferSyntax(
00087     const char *key,
00088     const char *transferSyntaxUID);
00089 
00101   OFCondition addPresentationContext(
00102     const char *key,
00103     const char *abstractSyntaxUID,
00104     const char *transferSyntaxKey);
00105 
00115   OFCondition addRole(
00116     const char *key,
00117     const char *abstractSyntaxUID,
00118     T_ASC_SC_ROLE role);
00119 
00130   OFCondition addExtendedNegotiation(
00131     const char *key,
00132     const char *abstractSyntaxUID,
00133     const unsigned char *rawData,
00134     Uint32 length);
00135 
00149   OFCondition addProfile(
00150     const char *key,
00151     const char *presentationContextKey,
00152     const char *roleSelectionKey=NULL,
00153     const char *extendedNegotiationKey=NULL);
00154 
00159   OFBool isKnownProfile(const char *key) const;
00160 
00167   OFBool isValidSCPProfile(const char *key) const;
00168 
00169 private:
00171   DcmAssociationConfiguration(const DcmAssociationConfiguration& arg);
00172 
00174   DcmAssociationConfiguration& operator=(const DcmAssociationConfiguration& arg);
00175 
00177   DcmTransferSyntaxMap xferSyntaxes_;
00178 
00180   DcmPresentationContextMap contexts_;
00181 
00183   DcmRoleSelectionMap roleselection_;
00184 
00186   DcmExtendedNegotiationMap extneg_;
00187 
00189   DcmProfileMap profiles_;
00190 };
00191 
00192 #endif
00193 
00194 /*
00195  * CVS/RCS Log
00196  * $Log: dcasccfg.h,v $
00197  * Revision 1.3  2005/12/08 16:02:09  meichel
00198  * Changed include path schema for all DCMTK header files
00199  *
00200  * Revision 1.2  2003/08/14 10:58:49  meichel
00201  * Added check if association configuration profile is valid for SCP use
00202  *
00203  * Revision 1.1  2003/06/10 14:27:33  meichel
00204  * Initial release of class DcmAssociationConfiguration and support
00205  *   classes. This class maintains a list of association negotiation
00206  *   profiles that can be addressed by symbolic keys. The profiles may
00207  *   be read from a configuration file.
00208  *
00209  *
00210  */


Generated on 20 Dec 2005 for OFFIS DCMTK Version 3.5.4 by Doxygen 1.4.5