Platform.Data.Doublets C++
Loading...
Searching...
No Matches
NonNullContentsLinkDeletionResolver.h
Go to the documentation of this file.
2{
3 template <typename TFacade, typename TDecorated>
4 struct NonNullContentsLinkDeletionResolver : public DecoratorBase<TFacade, TDecorated>
5 {
6 public:
7 using base = DecoratorBase<TFacade, TDecorated>;
8 using base::Constants;
9 using typename base::LinkAddressType;
10 using typename base::LinkType;
11 using typename base::ReadHandlerType;
12 using typename base::WriteHandlerType;
13
14 public:
16
17 public:
18 LinkAddressType Delete(const LinkType& restriction, const WriteHandlerType& handler)
19 {
20 auto linkIndex = restriction[Constants.IndexPart];
21 WriteHandlerState<TDecorated> handlerState{Constants.Continue, Constants.Break, handler};
22 handlerState.Apply(EnforceResetValues(this->decorated(), linkIndex, handlerState.Handler));
23 return handlerState.Apply(this->decorated().TDecorated::Delete(LinkType{linkIndex}, handlerState.Handler));
24 }
25 };
26} // namespace Platform::Data::Doublets::Decorators
Definition Decorators.h:4
Definition NonNullContentsLinkDeletionResolver.h:5
USE_ALL_BASE_CONSTRUCTORS(NonNullContentsLinkDeletionResolver, base)
LinkAddressType Delete(const LinkType &restriction, const WriteHandlerType &handler)
Definition NonNullContentsLinkDeletionResolver.h:18
DecoratorBase< TFacade, TDecorated > base
Definition NonNullContentsLinkDeletionResolver.h:7