gdcmPDUFactory.h
Go to the documentation of this file.
/*=========================================================================
*
* Copyright NumFOCUS
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0.txt
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*=========================================================================*/
#ifndef GDCMPDUFACTORY_H
#define GDCMPDUFACTORY_H
#include "gdcmTypes.h"
#include "gdcmNetworkEvents.h"
#include "gdcmULConnection.h"
#include "gdcmPresentationDataValue.h"
namespace gdcm{
class BaseRootQuery;
class BaseQuery;
class File;
namespace network{
class BasePDU;
class PDUFactory {
public:
static BasePDU* ConstructPDU(uint8_t itemtype);//eventually needs to be smartpointer'd
static EEventID DetermineEventByPDU(const BasePDU* inPDU);
static BasePDU* ConstructReleasePDU();
static BasePDU* ConstructAbortPDU();
//these are the composite PDU construction methods for the PDataPDUs.
//basically, builds a pdatapdu, and then puts the appropriate information in
//for the appropriate composite service (c-echo, c-find, c-store, c-get, c-move)
//the connection is necessary to construct the stream of PDVs that will
//be then placed into the vector of PDUs
static std::vector<BasePDU*> CreateCEchoPDU(const ULConnection& inConnection);
static std::vector<BasePDU*> CreateCStoreRQPDU(const ULConnection& inConnection, const File &file, bool writeDataSet = true );
static std::vector<BasePDU*> CreateCStoreRSPPDU(const DataSet *inDataSet, const BasePDU* inPC);
static std::vector<BasePDU*> CreateCFindPDU(const ULConnection& inConnection, const BaseRootQuery* inRootQuery);
static std::vector<BasePDU*> CreateCMovePDU(const ULConnection& inConnection, const BaseRootQuery* inRootQuery);
static std::vector<BasePDU*> CreateNEventReportPDU (const ULConnection& inConnection, const BaseQuery *inQuery);
static std::vector<BasePDU*> CreateNGetPDU (const ULConnection& inConnection, const BaseQuery *inQuery);
static std::vector<BasePDU*> CreateNSetPDU (const ULConnection& inConnection, const BaseQuery *inQuery);
static std::vector<BasePDU*> CreateNActionPDU (const ULConnection& inConnection, const BaseQuery *inQuery);
static std::vector<BasePDU*> CreateNCreatePDU (const ULConnection& inConnection, const BaseQuery *inQuery);
static std::vector<BasePDU*> CreateNDeletePDU (const ULConnection& inConnection, const BaseQuery *inQuery);
//given data pdus, produce the presentation data values stored within.
//all operations have these as the payload of the data sending operation
//however, echo does not have a dataset in the pdv.
static std::vector<PresentationDataValue> GetPDVs(const std::vector<BasePDU*> & inDataPDUs);
};
}
}
#endif //GDCMPDUFACTORY_H
gdcm::BaseQuery
BaseQuery.
Definition gdcmBaseQuery.h:42
gdcm::BaseRootQuery
BaseRootQuery.
Definition gdcmBaseRootQuery.h:67
gdcm::DataSet
Class to represent a Data Set (which contains Data Elements).
Definition gdcmDataSet.h:56
gdcm::File
a DICOM File
Definition gdcmFile.h:34
gdcm::network::BasePDU
BasePDU.
Definition gdcmBasePDU.h:51
gdcm::network::PDUFactory
PDUFactory basically, given an initial byte, construct the.
Definition gdcmPDUFactory.h:38
gdcm::network::PDUFactory::CreateNDeletePDU
static std::vector< BasePDU * > CreateNDeletePDU(const ULConnection &inConnection, const BaseQuery *inQuery)
gdcm::network::PDUFactory::CreateNEventReportPDU
static std::vector< BasePDU * > CreateNEventReportPDU(const ULConnection &inConnection, const BaseQuery *inQuery)
gdcm::network::PDUFactory::CreateNGetPDU
static std::vector< BasePDU * > CreateNGetPDU(const ULConnection &inConnection, const BaseQuery *inQuery)
gdcm::network::PDUFactory::DetermineEventByPDU
static EEventID DetermineEventByPDU(const BasePDU *inPDU)
gdcm::network::PDUFactory::CreateNSetPDU
static std::vector< BasePDU * > CreateNSetPDU(const ULConnection &inConnection, const BaseQuery *inQuery)
gdcm::network::PDUFactory::CreateCStoreRSPPDU
static std::vector< BasePDU * > CreateCStoreRSPPDU(const DataSet *inDataSet, const BasePDU *inPC)
gdcm::network::PDUFactory::CreateCStoreRQPDU
static std::vector< BasePDU * > CreateCStoreRQPDU(const ULConnection &inConnection, const File &file, bool writeDataSet=true)
gdcm::network::PDUFactory::GetPDVs
static std::vector< PresentationDataValue > GetPDVs(const std::vector< BasePDU * > &inDataPDUs)
gdcm::network::PDUFactory::CreateNCreatePDU
static std::vector< BasePDU * > CreateNCreatePDU(const ULConnection &inConnection, const BaseQuery *inQuery)
gdcm::network::PDUFactory::ConstructPDU
static BasePDU * ConstructPDU(uint8_t itemtype)
gdcm::network::PDUFactory::ConstructAbortPDU
static BasePDU * ConstructAbortPDU()
gdcm::network::PDUFactory::CreateNActionPDU
static std::vector< BasePDU * > CreateNActionPDU(const ULConnection &inConnection, const BaseQuery *inQuery)
gdcm::network::PDUFactory::CreateCEchoPDU
static std::vector< BasePDU * > CreateCEchoPDU(const ULConnection &inConnection)
gdcm::network::PDUFactory::CreateCMovePDU
static std::vector< BasePDU * > CreateCMovePDU(const ULConnection &inConnection, const BaseRootQuery *inRootQuery)
gdcm::network::PDUFactory::ConstructReleasePDU
static BasePDU * ConstructReleasePDU()
gdcm::network::PDUFactory::CreateCFindPDU
static std::vector< BasePDU * > CreateCFindPDU(const ULConnection &inConnection, const BaseRootQuery *inRootQuery)
gdcm::network::ULConnection
ULConnection.
Definition gdcmULConnection.h:58
gdcmNetworkEvents.h
gdcmPresentationDataValue.h
gdcmTypes.h
gdcmULConnection.h
gdcm::network
Definition gdcmAAbortPDU.h:24
gdcm::network::EEventID
EEventID
Definition gdcmNetworkEvents.h:33
gdcm
Definition gdcmASN1.h:21