Project
Loading...
Searching...
No Matches
MergeInterface.h
Go to the documentation of this file.
1// Copyright 2019-2020 CERN and copyright holders of ALICE O2.
2// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders.
3// All rights not expressly granted are reserved.
4//
5// This software is distributed under the terms of the GNU General Public
6// License v3 (GPL Version 3), copied verbatim in the file "COPYING".
7//
8// In applying this license CERN does not waive the privileges and immunities
9// granted to it by virtue of its status as an Intergovernmental Organization
10// or submit itself to any jurisdiction.
11
12#ifndef ALICEO2_MERGEINTERFACE_H
13#define ALICEO2_MERGEINTERFACE_H
14
19
20#include <Rtypes.h>
21
22namespace o2::mergers
23{
24
30{
31 public:
32 // Please make sure to properly delete an object. If the inheriting class object is a container,
33 // make sure that all entries are correctly deleted as well.
34 virtual ~MergeInterface() = default;
35
37 virtual void merge(MergeInterface* const other) = 0; // const argument
38
40 virtual void postDeserialization(){};
41
43 virtual MergeInterface* cloneMovingWindow() const { return nullptr; }
44
46};
47
48} // namespace o2::mergers
49
50#endif //ALICEO2_MERGEINTERFACE_H
An interface which allows to merge custom objects.
virtual void merge(MergeInterface *const other)=0
Custom merge method.
virtual ~MergeInterface()=default
virtual MergeInterface * cloneMovingWindow() const
Should return an object subset which is supposed to take part in generating moving windows.
virtual void postDeserialization()
Lets the child perform any routines after the object was deserialized (e.g. setting the correct owner...
ClassDef(MergeInterface, 1)
VectorOfTObjectPtrs other