![]() |
ICF 3.0.5.47
Technical documentation of ICF Libraries
|
Common interface for data model objects, which can be changed. More...
#include <IChangeable.h>
Inherits istd::IPolymorphic.
Inherited by ibase::TContainer< ItemClass, typename TContainer< ItemClass >::Container > [virtual]
, i2d::CSplineSegment [virtual]
, i2d::ICalibration2dProvider [virtual]
, i2d::IMultiCalibrationProvider [virtual]
, iattr::IAttributeMetaInfo [virtual]
, iattr::IAttributesMetaInfoProvider [virtual]
, iattr::IAttributesProvider [virtual]
, iauth::ILogin [virtual]
, iauth::IRightsProvider [virtual]
, ibase::ICommandsProvider [virtual]
, ibase::IRuntimeStatusProvider [virtual]
, ibase::ITranslationManager [virtual]
, ibase::TContainer< ItemClass, ContainerType > [virtual]
, icam::CCameraDelegatorComp [protected, virtual]
, icam::ICameraListProvider [virtual]
, icam::IExposureConstraints [virtual]
, icmpstr::IComponentNoteController [virtual]
, icmpstr::IElementSelectionInfo [virtual]
, icmpstr::IRegistryPreview [virtual]
, icomp::IComponentListProvider [virtual]
, icomp::IPackagesManager [virtual]
, idoc::IDocumentManager [virtual]
, idoc::IDocumentMetaInfo [virtual]
, idoc::IDocumentStateComparator [virtual]
, idoc::IMultiPageDocument [virtual]
, idoc::IMultiPageDocumentProvider [virtual]
, ifile::IFileListProvider [virtual]
, ifile::IFileSystemInfoProvider [virtual]
, iimg::IBitmapProvider [virtual]
, iimg::IMultiBitmapProvider [virtual]
, iinsp::CInspectionTaskComp::Status [virtual]
, iinsp::CSupplierCompBase::Status [virtual]
, iinsp::IIdProvider [virtual]
, iinsp::IModelTeachController [virtual]
, iinsp::ISupplier [virtual]
, iinsp::ITimeStampProvider [virtual]
, iipr::CDelegatedBitmapSupplierComp [virtual]
, iipr::IFeaturesConsumer [virtual]
, iipr::IFeaturesProvider [virtual]
, iipr::IPatternController [virtual]
, iipr::ISearchConstraints [virtual]
, imath::IUnitInfo [virtual]
, imath::TISampledFunction< ArgumentDimensions, ResultDimensions > [virtual]
, imeas::IDataSequenceProvider [virtual]
, imeas::IDataStatistics [virtual]
, imeas::ILinearAdjustConstraints [virtual]
, imeas::IMultiDataSequenceProvider [virtual]
, imeas::INumericConstraints [virtual]
, iprm::IOptionsList [virtual]
, iproc::CDelegatedProgressManager [virtual]
, iproc::IElapsedTimeProvider [virtual]
, iser::ISerializable [virtual]
, iser::IVersionInfo [virtual]
, isig::IPulseConstraints [virtual]
, istd::IChangeDelegator [virtual]
, istd::IInformationProvider [virtual]
, istd::ITimeStamp [virtual]
, istdgui::IMultiVisualStatusProvider [virtual]
, istdgui::IVisualStatus [virtual]
, istdgui::IVisualStatusProvider [virtual]
, iview::IRuler [virtual]
, iview::IShapeStatusInfo [virtual]
, iview::ITextLabelParams [virtual]
, iview::IToolsLayerInfo [virtual]
, and iview::IVisualCalibrationInfo [virtual]
.
Classes | |
class | ChangeSet |
Set of change flags (its IDs). More... | |
Public Types | |
enum | ChangeFlags { CF_ICF_INTERNAL = 0 , CF_ALL_DATA , CF_ANY , CF_DESTROYING , CF_DELEGATED , CF_NO_UNDO } |
Data model change notification flags. More... | |
enum | SupportedOperations { SO_NONE = 0 , SO_OBSERVE = 1 << 0 , SO_COPY = 1 << 1 , SO_CLONE = 1 << 2 , SO_COMPARE = 1 << 3 , SO_RESET = 1 << 4 , SO_CHANGE_LOCK = 1 << 5 } |
Flags for supported operations. More... | |
enum | CompatibilityMode { CM_STRICT , CM_WITHOUT_REFS , CM_WITH_REFS , CM_CONVERT } |
Control how relationship betweeen objects are interpreted. More... | |
Public Member Functions | |
virtual int | GetSupportedOperations () const |
Get set of flags for supported operations. | |
virtual bool | CopyFrom (const IChangeable &object, CompatibilityMode mode=CM_WITHOUT_REFS) |
Copy this object from another one. | |
virtual bool | IsEqual (const IChangeable &object) const |
Compare this object with another object. | |
virtual std::unique_ptr< IChangeable > | CloneMe (CompatibilityMode mode=CM_WITHOUT_REFS) const |
Make a copy of this object. | |
virtual bool | ResetData (CompatibilityMode mode=CM_WITHOUT_REFS) |
Reset data to its default state. | |
virtual QMutex * | GetChangesLock () const |
Get mutex beeing locked during changes, if available. | |
virtual void | BeginChanges (const ChangeSet &changeSet) |
Starts the change transaction. | |
virtual void | EndChanges (const ChangeSet &changeSet) |
Ends the change transaction. | |
virtual void | BeginChangeGroup (const ChangeSet &changeSet) |
Starts group of changes. | |
virtual void | EndChangeGroup (const ChangeSet &changeSet) |
Ends group of changes. | |
Static Public Member Functions | |
static const ChangeSet & | GetNoChanges () |
Get empty set of changes. | |
static const ChangeSet & | GetAnyChange () |
Get anonymous change set. | |
static const ChangeSet & | GetAllChanges () |
Get anonymous change set. | |
static const ChangeSet & | GetDelegatedChanges () |
Get delegated change set. | |
Protected Member Functions | |
virtual void | OnBeginChanges () |
Callback function for begin change event. | |
virtual void | OnEndChanges (const ChangeSet &changeSet) |
Callback function for end change event. | |
Common interface for data model objects, which can be changed.
Data model changes are executed in two steps: begin and end. The caller can also put some flags and additional data to the update functions, to control the update logic.
Definition at line 31 of file IChangeable.h.
Data model change notification flags.
Definition at line 120 of file IChangeable.h.
Control how relationship betweeen objects are interpreted.
It is also used to define how objects are copied.
Definition at line 200 of file IChangeable.h.
Flags for supported operations.
This flags can be combined.
Definition at line 158 of file IChangeable.h.
|
inlinevirtual |
Starts group of changes.
It doesn't start signaling of changes, it allows simply to group set of changes into single transaction block.
Reimplemented in imod::TModelWrap< i2d::CCircle >, imod::TModelWrap< i2d::CLine2d >, imod::TModelWrap< icmpstr::CPackagesLoaderExtComp::ParamsManager >, imod::TModelWrap< iimg::CBitmap >, imod::TModelWrap< iiprgui::CMultiLineSupplierGuiComp::LineSelection >, imod::TModelWrap< ilog::CMessageContainer >, imod::TModelWrap< imeas::CGeneralDataSequence >, imod::TModelWrap< imeas::CSimpleSamplesSequence32 >, imod::TModelWrap< iprm::CEnableableParam >, imod::TModelWrap< iprm::COptionsManager >, imod::TModelWrap< iprm::CParamsManagerCompBase::SelectedParams >, and imod::TModelWrap< istdgui::CGuiComponentBase::VisualStatus >.
Definition at line 393 of file IChangeable.h.
Referenced by istd::CChangeGroup::CChangeGroup().
|
inlinevirtual |
Starts the change transaction.
OnBeginChanges
instead. EndChanges
Reimplemented in imod::TModelWrap< i2d::CCircle >, imod::TModelWrap< i2d::CLine2d >, imod::TModelWrap< icmpstr::CPackagesLoaderExtComp::ParamsManager >, imod::TModelWrap< iimg::CBitmap >, imod::TModelWrap< iiprgui::CMultiLineSupplierGuiComp::LineSelection >, imod::TModelWrap< ilog::CMessageContainer >, imod::TModelWrap< imeas::CGeneralDataSequence >, imod::TModelWrap< imeas::CSimpleSamplesSequence32 >, imod::TModelWrap< iprm::CEnableableParam >, imod::TModelWrap< iprm::COptionsManager >, imod::TModelWrap< iprm::CParamsManagerCompBase::SelectedParams >, imod::TModelWrap< istdgui::CGuiComponentBase::VisualStatus >, istd::TCachedUpdateManagerWrap< iimg::CGeneralBitmap >, and istd::TCachedUpdateManagerWrap< iser::ISerializable >.
Definition at line 381 of file IChangeable.h.
References OnBeginChanges().
Referenced by istd::CChangeNotifier::CChangeNotifier().
|
inlinevirtual |
Make a copy of this object.
You may check, if this functionality is supported over GetSupportedOperations()
.
Reimplemented in i2d::CAffineTransformation2d, i2d::CAnnulus, i2d::CAnnulusSegment, i2d::CArc, i2d::CCircle, i2d::CLabel, i2d::CLine2d, i2d::COrientedCircle, i2d::COrientRectangle, i2d::CParallelogram, i2d::CPolygon, i2d::CPolyline, i2d::CPolypoint, i2d::CPosition2d, i2d::CQuadrangle, i2d::CRectangle, i2d::CSpline, i2d::CSplineSegment, icalib::CAffineCalibration2d, icalib::CCalibration2dProxyComp, icalib::CPerspectiveCalibration2d, icalib::CPointGrid, icalib::CSimpleLensCorrection, idoc::CStandardDocumentMetaInfo, ifileproc::CFileNamingParams, iimg::CBitmap, iimg::CBitmapSlice, iimg::CGeneralBitmap, iimg::TMultiPageBitmap< BitmapImpl >, iimg::TMultiPageBitmap< iimg::CBitmap >, iipr::CBlobFeature, iipr::CObjectFeature, iipr::CPointGridFeature, iipr::CSearchFeature, iipr::TWeightedFeatureWrap< BaseObject >, iipr::TWeightedFeatureWrap< i2d::CLine2d >, iipr::TWeightedFeatureWrap< i2d::CPosition2d >, iipr::TWeightedFeatureWrap< icalib::CPointGrid >, ilog::CExtMessage, ilog::CMessage, ilog::CMessageContainer, ilog::TExtMessage< Element >, imeas::CGeneralDataSequence, imeas::CGeneralNumericValue, imeas::TMeasurementValue< ValueType >, imeas::TMeasurementValue< double >, imod::TModelWrap< i2d::CCircle >, imod::TModelWrap< i2d::CLine2d >, imod::TModelWrap< icmpstr::CPackagesLoaderExtComp::ParamsManager >, imod::TModelWrap< iimg::CBitmap >, imod::TModelWrap< iiprgui::CMultiLineSupplierGuiComp::LineSelection >, imod::TModelWrap< ilog::CMessageContainer >, imod::TModelWrap< imeas::CGeneralDataSequence >, imod::TModelWrap< imeas::CSimpleSamplesSequence32 >, imod::TModelWrap< iprm::CEnableableParam >, imod::TModelWrap< iprm::COptionsManager >, imod::TModelWrap< iprm::CParamsManagerCompBase::SelectedParams >, imod::TModelWrap< istdgui::CGuiComponentBase::VisualStatus >, iprm::CEnableableParam, iprm::CIdParam, iprm::CNameParam, iprm::CSelectionParam, iprm::CTextParam, and istdgui::CHierarchicalCommand.
Definition at line 363 of file IChangeable.h.
Referenced by iinspgui::TSupplierGuiCompBase< UI >::AddItemsToScene(), and iinspgui::TSupplierGuiCompBase< UI >::BeforeSupplierGuiUpdated().
|
inlinevirtual |
Copy this object from another one.
Default implementation in istd::IChangeable does nothing. You may check, if this functionality is supported over GetSupportedOperations()
.
Reimplemented in i2d::CAffineTransformation2d, i2d::CObject2dBase, icalib::CAffineCalibration2d, icalib::CPerspectiveCalibration2d, icalib::CSimpleLensCorrection, idoc::TMultiPageDocumentWrap< Base >, idoc::TMultiPageDocumentWrap< idoc::IMultiPageDocument >, ifileproc::CFileNamingParams, iimg::CBitmap, iimg::CBitmapSlice, iimg::CGeneralBitmap, iimg::CMultiPageBitmapBase, iimg::CScanlineMask, iinsp::CInspectionTaskComp::Parameters, ilog::CExtMessage, ilog::CMessage, ilog::CMessageContainer, ilog::TExtMessage< Element >, imeas::CGeneralDataSequence, imeas::CGeneralNumericValue, imeas::TDiscreteDataSequence< Element >, imeas::TMeasurementValue< ValueType >, imeas::TMeasurementValue< double >, iprm::CComposedParamsSetComp, iprm::CParamsManagerComp, iprm::CParamsManagerCompBase::ParamSet, iprm::CSelectionParam, iser::CArchiveHeaderInfo, iser::TCopySerializedWrap< i2d::CCircle >, iser::TCopySerializedWrap< i2d::CLine2d >, iser::TCopySerializedWrap< icmpstr::CPackagesLoaderExtComp::ParamsManager >, iser::TCopySerializedWrap< iimg::CBitmap >, iser::TCopySerializedWrap< iiprgui::CMultiLineSupplierGuiComp::LineSelection >, iser::TCopySerializedWrap< ilog::CMessageContainer >, iser::TCopySerializedWrap< imeas::CGeneralDataSequence >, iser::TCopySerializedWrap< imeas::CSimpleSamplesSequence32 >, iser::TCopySerializedWrap< iprm::CEnableableParam >, iser::TCopySerializedWrap< iprm::COptionsManager >, iser::TCopySerializedWrap< iprm::CParamsManagerCompBase::SelectedParams >, iser::TCopySerializedWrap< iser::IObject >, iser::TCopySerializedWrap< istdgui::CGuiComponentBase::VisualStatus >, and istdgui::CHierarchicalCommand.
Definition at line 351 of file IChangeable.h.
Referenced by idoc::TMultiPageDocumentWrap< Base >::CopyFrom().
|
inlinevirtual |
Ends group of changes.
It doesn't start signaling of changes, it allows simply to group set of changes into single transaction block.
Reimplemented in imod::TModelWrap< i2d::CCircle >, imod::TModelWrap< i2d::CLine2d >, imod::TModelWrap< icmpstr::CPackagesLoaderExtComp::ParamsManager >, imod::TModelWrap< iimg::CBitmap >, imod::TModelWrap< iiprgui::CMultiLineSupplierGuiComp::LineSelection >, imod::TModelWrap< ilog::CMessageContainer >, imod::TModelWrap< imeas::CGeneralDataSequence >, imod::TModelWrap< imeas::CSimpleSamplesSequence32 >, imod::TModelWrap< iprm::CEnableableParam >, imod::TModelWrap< iprm::COptionsManager >, imod::TModelWrap< iprm::CParamsManagerCompBase::SelectedParams >, and imod::TModelWrap< istdgui::CGuiComponentBase::VisualStatus >.
Definition at line 398 of file IChangeable.h.
Referenced by istd::CChangeGroup::~CChangeGroup().
|
inlinevirtual |
Ends the change transaction.
OnEndChanges
instead. changeSet | set of IDs used to identify what kind of change was done. for the empty set you can assume, that no change was done. |
BeginChanges
Reimplemented in imod::TModelWrap< i2d::CCircle >, imod::TModelWrap< i2d::CLine2d >, imod::TModelWrap< icmpstr::CPackagesLoaderExtComp::ParamsManager >, imod::TModelWrap< iimg::CBitmap >, imod::TModelWrap< iiprgui::CMultiLineSupplierGuiComp::LineSelection >, imod::TModelWrap< ilog::CMessageContainer >, imod::TModelWrap< imeas::CGeneralDataSequence >, imod::TModelWrap< imeas::CSimpleSamplesSequence32 >, imod::TModelWrap< iprm::CEnableableParam >, imod::TModelWrap< iprm::COptionsManager >, imod::TModelWrap< iprm::CParamsManagerCompBase::SelectedParams >, imod::TModelWrap< istdgui::CGuiComponentBase::VisualStatus >, istd::TCachedUpdateManagerWrap< iimg::CGeneralBitmap >, and istd::TCachedUpdateManagerWrap< iser::ISerializable >.
Definition at line 387 of file IChangeable.h.
References OnEndChanges().
Referenced by istd::CChangeNotifier::~CChangeNotifier().
|
inlinestatic |
Get anonymous change set.
Definition at line 419 of file IChangeable.h.
Referenced by ibase::TFactorisableContainer< InterfaceClass >::Serialize().
|
inlinestatic |
Get anonymous change set.
Definition at line 413 of file IChangeable.h.
|
inlinevirtual |
Get mutex beeing locked during changes, if available.
Default implementation in istd::IChangeable returns nullptr
. You may check, if this functionality is supported over GetSupportedOperations()
.
nullptr
if not available. Reimplemented in imod::TModelWrap< i2d::CCircle >, imod::TModelWrap< i2d::CLine2d >, imod::TModelWrap< icmpstr::CPackagesLoaderExtComp::ParamsManager >, imod::TModelWrap< iimg::CBitmap >, imod::TModelWrap< iiprgui::CMultiLineSupplierGuiComp::LineSelection >, imod::TModelWrap< ilog::CMessageContainer >, imod::TModelWrap< imeas::CGeneralDataSequence >, imod::TModelWrap< imeas::CSimpleSamplesSequence32 >, imod::TModelWrap< iprm::CEnableableParam >, imod::TModelWrap< iprm::COptionsManager >, imod::TModelWrap< iprm::CParamsManagerCompBase::SelectedParams >, and imod::TModelWrap< istdgui::CGuiComponentBase::VisualStatus >.
Definition at line 375 of file IChangeable.h.
|
inlinestatic |
Get delegated change set.
Definition at line 425 of file IChangeable.h.
|
inlinestatic |
Get empty set of changes.
Definition at line 407 of file IChangeable.h.
|
inlinevirtual |
Get set of flags for supported operations.
Reimplemented in i2d::CAnnulus, i2d::CAnnulusSegment, i2d::CArc, i2d::CCircle, i2d::CLabel, i2d::CLine2d, i2d::COrientedCircle, i2d::CParallelogram, i2d::CPolypoint, i2d::CPosition2d, i2d::CQuadrangle, i2d::CRectangle, i2d::CSpline, i2d::CSplineSegment, icalib::CAffineCalibration2d, icalib::CPerspectiveCalibration2d, icalib::CSimpleLensCorrection, ifile::CFileNameParam, ifileproc::CFileNamingParams, iimg::CBitmap, iimg::CBitmapSlice, iimg::CGeneralBitmap, iimg::CScanlineMask, ilog::CMessageContainer, imeas::CGeneralDataSequence, imod::TModelWrap< i2d::CCircle >, imod::TModelWrap< i2d::CLine2d >, imod::TModelWrap< icmpstr::CPackagesLoaderExtComp::ParamsManager >, imod::TModelWrap< iimg::CBitmap >, imod::TModelWrap< iiprgui::CMultiLineSupplierGuiComp::LineSelection >, imod::TModelWrap< ilog::CMessageContainer >, imod::TModelWrap< imeas::CGeneralDataSequence >, imod::TModelWrap< imeas::CSimpleSamplesSequence32 >, imod::TModelWrap< iprm::CEnableableParam >, imod::TModelWrap< iprm::COptionsManager >, imod::TModelWrap< iprm::CParamsManagerCompBase::SelectedParams >, imod::TModelWrap< istdgui::CGuiComponentBase::VisualStatus >, iprm::CComposedParamsSetComp, iprm::CIdParam, iprm::COptionsManager, iprm::CParamsManagerComp, iprm::CTextParam, iser::TCopySerializedWrap< i2d::CCircle >, iser::TCopySerializedWrap< i2d::CLine2d >, iser::TCopySerializedWrap< icmpstr::CPackagesLoaderExtComp::ParamsManager >, iser::TCopySerializedWrap< iimg::CBitmap >, iser::TCopySerializedWrap< iiprgui::CMultiLineSupplierGuiComp::LineSelection >, iser::TCopySerializedWrap< ilog::CMessageContainer >, iser::TCopySerializedWrap< imeas::CGeneralDataSequence >, iser::TCopySerializedWrap< imeas::CSimpleSamplesSequence32 >, iser::TCopySerializedWrap< iprm::CEnableableParam >, iser::TCopySerializedWrap< iprm::COptionsManager >, iser::TCopySerializedWrap< iprm::CParamsManagerCompBase::SelectedParams >, iser::TCopySerializedWrap< iser::IObject >, iser::TCopySerializedWrap< istdgui::CGuiComponentBase::VisualStatus >, and istdgui::CHierarchicalCommand.
Definition at line 345 of file IChangeable.h.
References SO_NONE.
|
inlinevirtual |
Compare this object with another object.
object | Object to be compared You may check, if this functionality is supported over GetSupportedOperations() . |
true
if the objects are identical and false
otherwise. Reimplemented in i2d::CPosition2d, icalib::CPerspectiveCalibration2d, icalib::CSimpleLensCorrection, ifileproc::CFileNamingParams, ilog::CMessageContainer, iprm::CComposedParamsSetComp, iser::TCopySerializedWrap< i2d::CCircle >, iser::TCopySerializedWrap< i2d::CLine2d >, iser::TCopySerializedWrap< icmpstr::CPackagesLoaderExtComp::ParamsManager >, iser::TCopySerializedWrap< iimg::CBitmap >, iser::TCopySerializedWrap< iiprgui::CMultiLineSupplierGuiComp::LineSelection >, iser::TCopySerializedWrap< ilog::CMessageContainer >, iser::TCopySerializedWrap< imeas::CGeneralDataSequence >, iser::TCopySerializedWrap< imeas::CSimpleSamplesSequence32 >, iser::TCopySerializedWrap< iprm::CEnableableParam >, iser::TCopySerializedWrap< iprm::COptionsManager >, iser::TCopySerializedWrap< iprm::CParamsManagerCompBase::SelectedParams >, iser::TCopySerializedWrap< iser::IObject >, iser::TCopySerializedWrap< istdgui::CGuiComponentBase::VisualStatus >, and istdgui::CHierarchicalCommand.
Definition at line 357 of file IChangeable.h.
Referenced by iinspgui::TSupplierGuiCompBase< UI >::BeforeSupplierGuiUpdated().
|
inlineprotectedvirtual |
Callback function for begin change event.
Please note, that in some cases no following OnEndChanges can be called.
Reimplemented in istd::CChangeDelegator, istd::TChangeDelegator< Base >, istd::TChangeDelegator< ibase::IHierarchicalCommand >, and istd::TChangeDelegator< IHierarchicalMessageContainer >.
Definition at line 433 of file IChangeable.h.
Referenced by BeginChanges().
|
inlineprotectedvirtual |
Callback function for end change event.
Reimplemented in icalib::CPerspectiveCalibration2d, idocgui::CMultiDocumentWorkspaceGuiComp, idocgui::CSingleDocumentWorkspaceGuiComp, iimg::CBitmapSurface, iproc::CDelegatedProgressManager, istd::CChangeDelegator, istd::TChangeDelegator< Base >, istd::TChangeDelegator< ibase::IHierarchicalCommand >, istd::TChangeDelegator< IHierarchicalMessageContainer >, and istdgui::CProgressManagerGuiComp.
Definition at line 438 of file IChangeable.h.
Referenced by EndChanges().
|
inlinevirtual |
Reset data to its default state.
Default implementation in istd::IChangeable does nothing. You may check, if this functionality is supported over GetSupportedOperations()
.
true
if the operation was successful, and false
otherwise. Reimplemented in i2d::CAnnulusComp, i2d::CObject2dBase, icalib::CAffineCalibration2d, icalib::CPerspectiveCalibration2d, icalib::CSimpleLensCorrection, idoc::CStandardDocumentMetaInfo, idoc::TMultiPageDocumentWrap< Base >, idoc::TMultiPageDocumentWrap< idoc::IMultiPageDocument >, ifileproc::CFileNamingParams, iimg::CBitmapBase, iimg::CMultiPageBitmapBase, iimg::CScanlineMask, iinsp::CInformationProviderCacheComp, iinsp::CInspectionTaskComp::Parameters, iipr::CBitmapProviderCacheComp, iipr::CFeaturesContainer, iipr::TWeightedFeatureWrap< BaseObject >, iipr::TWeightedFeatureWrap< i2d::CLine2d >, iipr::TWeightedFeatureWrap< i2d::CPosition2d >, iipr::TWeightedFeatureWrap< icalib::CPointGrid >, ilog::CMessageContainer, imeas::CGeneralNumericValue, iprm::CIdParam, iprm::CParamsSet, and iprm::CTextParam.
Definition at line 369 of file IChangeable.h.
© Witold Gantzke and Kirill Lepskiy