CTL  0.6.1
Computed Tomography Library
Public Types | Public Member Functions | Protected Member Functions | List of all members
CTL::SerializationInterface Class Reference

Specify an interface for de-/serialization from/to QVariants. More...

#include <serializationinterface.h>

Inheritance diagram for CTL::SerializationInterface:
Inheritance graph
[legend]

Public Types

enum  { Type = -1, UserType = 65536 }
 

Public Member Functions

virtual int type () const
 
virtual void fromVariant (const QVariant &variant)
 
virtual QVariant toVariant () const
 
virtual ~SerializationInterface ()=default
 

Protected Member Functions

 SerializationInterface ()=default
 
 SerializationInterface (const SerializationInterface &)=default
 
 SerializationInterface (SerializationInterface &&)=default
 
SerializationInterfaceoperator= (const SerializationInterface &)=default
 
SerializationInterfaceoperator= (SerializationInterface &&)=default
 

Detailed Description

Specify an interface for de-/serialization from/to QVariants.

See also
CTL_TYPE_ID(newIndex)

Constructor & Destructor Documentation

◆ ~SerializationInterface()

CTL::SerializationInterface::~SerializationInterface ( )
virtualdefault

Default destructor. Virtual for purpose of polymorphism.

◆ SerializationInterface() [1/3]

CTL::SerializationInterface::SerializationInterface ( )
protecteddefault

Standard default constructor.

◆ SerializationInterface() [2/3]

CTL::SerializationInterface::SerializationInterface ( const SerializationInterface )
protecteddefault

Standard copy constructor.

◆ SerializationInterface() [3/3]

CTL::SerializationInterface::SerializationInterface ( SerializationInterface &&  )
protecteddefault

Standard move constructor.

Member Function Documentation

◆ fromVariant()

void CTL::SerializationInterface::fromVariant ( const QVariant &  variant)
inlinevirtual

◆ operator=() [1/2]

SerializationInterface & CTL::SerializationInterface::operator= ( const SerializationInterface )
protecteddefault

Standard copy assignment operator.

◆ operator=() [2/2]

SerializationInterface & CTL::SerializationInterface::operator= ( SerializationInterface &&  )
protecteddefault

Standard move assignment operator.

◆ toVariant()

QVariant CTL::SerializationInterface::toVariant ( ) const
inlinevirtual

Interface to store all member variables in a QVariant.

Stores the object's type-id.

Reimplement this method such that it stores all newly introduced object data when sub-classing. This needs to cover everything that is necessary to fully determine the state of an object. Best practice is to invoke the base class version of this method to take care of all content originating from underlying base classes.

A typical reimplementation in sub-classes might look like this:

QVariantMap ret = DirectBaseClass::toVariant().toMap();
ret.insert("my member variable", _myMemberVariable);
return ret;

Reimplemented in CTL::AcquisitionSetup::View, CTL::AbstractReconstructor, CTL::prepare::GenericDetectorParam, CTL::AcquisitionSetup, CTL::GaussianModel1D, CTL::prepare::XrayTubeParam, CTL::prepare::XrayLaserParam, CTL::ProjectorExtension, CTL::prepare::SourceParam, CTL::SeparableProductModel, CTL::StandardPipeline, CTL::AbstractFixedSizeSubsetGenerator, CTL::ARTReconstructor, CTL::prepare::GantryDisplacementParam, CTL::CTSystem, CTL::RectModel2D, CTL::TransitionSchemeExtension, CTL::AbstractProjector, CTL::SpectralEffectsExtension, CTL::ProjectionPipeline, CTL::AbstractSource, CTL::OCL::SimpleBackprojector, CTL::ArealFocalSpotExtension, CTL::prepare::GenericGantryParam, CTL::AbstractGantry, CTL::PoissonNoiseExtension, CTL::SimpleBackprojectorCPU, CTL::SimpleSubsetGenerator, CTL::AbstractDetector, CTL::DetectorSaturationExtension, CTL::AbstractDataModel, CTL::AbstractSubsetGenerator, CTL::SystemComponent, CTL::AbstractDataModel2D, CTL::AbstractBeamModifier, CTL::GaussianModel2D, CTL::OCL::SFPBackprojector, CTL::AbstractPrepareStep, CTL::prepare::CarmGantryParam, CTL::CylindricalDetector, CTL::TubularGantry, CTL::GenericGantry, CTL::OCL::RayCasterProjector, CTL::GenericDetector, CTL::CarmGantry, CTL::XrayLaser, CTL::DynamicProjectorExtension, CTL::AttenuationFilter, CTL::GenericBeamModifier, CTL::GenericSource, CTL::FlatPanelDetector, CTL::RayCasterProjectorCPU, CTL::prepare::TubularGantryParam, CTL::XrayTube, CTL::ConstantModel2D, CTL::AbstractVolumeFilter, and CTL::AbstractProjectionFilter.

◆ type()

int CTL::SerializationInterface::type ( ) const
inlinevirtual

Returns the type-id of the serializable object. Used in deserialization to determine the proper object type.

Add derived classes to the enumeration using the CTL_TYPE_ID macro.

Reimplemented in CTL::TASMIPSpectrumModel, CTL::HeuristicCubicSpectrumModel, CTL::KramersLawSpectrumModel, CTL::FixedXraySpectrumModel, CTL::prepare::GenericDetectorParam, CTL::GaussianModel1D, CTL::DataModel2DDiv, CTL::DataModel2DMul, CTL::prepare::XrayTubeParam, CTL::IdentityModel, CTL::HuberRegularizer, CTL::OCL::HilbertFilter, CTL::DataModel2DSub, CTL::DataModel2DAdd, CTL::AbstractReconstructor, CTL::prepare::XrayLaserParam, CTL::OCL::RamLakFilter, CTL::RectFunctionModel, CTL::DefaultSubsetGenerator, CTL::ProjectorExtension, CTL::ConstantModel, CTL::XrayLaserSpectrumModel, CTL::prepare::SourceParam, CTL::OCL::GenericOCLProjectionFilter, CTL::IntegrableDataModelSub, CTL::TVRegularizer, CTL::SeparableProductModel, CTL::OCL::ApodizationFilter, CTL::OCL::GenericOCLVolumeFilter, CTL::AbstractFixedSizeSubsetGenerator, CTL::IntegrableDataModelAdd, CTL::StepFunctionModel, CTL::StandardPipeline, CTL::prepare::GantryDisplacementParam, CTL::TransitionSchemeExtension, CTL::RectModel2D, CTL::OCL::BackprojectorBase, CTL::OCL::ParkerWeightingRev, CTL::DataModelCat, CTL::ARTReconstructor, CTL::SpectralEffectsExtension, CTL::ProjectionPipeline, CTL::XraySpectrumTabulatedModel, CTL::OrthogonalSubsetGenerator, CTL::MedianFilterRegularizer, CTL::AbstractSource, CTL::AbstractProjector, CTL::prepare::GenericGantryParam, CTL::DataModelDiv, CTL::OCL::TVRegularizer, CTL::OCL::SimpleBackprojector, CTL::AbstractGantry, CTL::ArealFocalSpotExtension, CTL::OCL::FDKReconstructor, CTL::PoissonNoiseExtension, CTL::SimpleBackprojectorCPU, CTL::SaturatedSplineModel, CTL::SimpleSubsetGenerator, CTL::DetectorSaturationExtension, CTL::AbstractSubsetGenerator, CTL::AbstractDataModel, CTL::DataModelMul, CTL::AbstractDetector, CTL::SystemComponent, CTL::AbstractDataModel2D, CTL::AbstractPrepareStep, CTL::AbstractBeamModifier, CTL::prepare::CarmGantryParam, CTL::GaussianModel2D, CTL::DataModelSub, CTL::TabulatedDataModel, CTL::OCL::SFPBackprojector, CTL::OCL::HuberRegularizer, CTL::DataModelAdd, CTL::OCL::CosineWeighting, CTL::TubularGantry, CTL::GenericGantry, CTL::CarmGantry, CTL::SaturatedLinearModel, CTL::DynamicProjectorExtension, CTL::GenericDetector, CTL::CylindricalDetector, CTL::OCL::RayCasterProjector, CTL::GenericBeamModifier, CTL::prepare::TubularGantryParam, CTL::NumericalIntegrationDecorator, CTL::IdentityRegularizer, CTL::AttenuationFilter, CTL::ConstantModel2D, CTL::FlatPanelDetector, CTL::XrayLaser, CTL::RayCasterProjectorCPU, CTL::GenericSource, CTL::AbstractVolumeFilter, CTL::AbstractProjectionFilter, and CTL::XrayTube.


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