SourceXtractorPlusPlus  0.11
Please provide a description of the project.
Deblending.h
Go to the documentation of this file.
1 
23 #ifndef _SEFRAMEWORK_PIPELINE_DEBLENDING_H
24 #define _SEFRAMEWORK_PIPELINE_DEBLENDING_H
25 
26 #include "SEUtils/Observable.h"
29 
30 namespace SourceXtractor {
31 
37 class DeblendStep {
38 public:
39 
41  virtual ~DeblendStep() = default;
42 
43  // Performs the DeblendStep on the SourceGroup
44  virtual void deblend(SourceGroupInterface& group) const = 0;
45 };
46 
53 class Deblending : public Observer<std::shared_ptr<SourceGroupInterface>>,
54  public Observable<std::shared_ptr<SourceGroupInterface>> {
55 
56 public:
57 
59  virtual ~Deblending() = default;
60 
63 
65  virtual void handleMessage(const std::shared_ptr<SourceGroupInterface>& group) override;
66 
67 private:
69 }; /* End of Deblending class */
70 
71 } /* namespace SourceXtractor */
72 
73 
74 #endif
SourceXtractor::Observer
Observer interface to be used with Observable to implement the Observer pattern.
Definition: Observable.h:38
SourceXtractor::Deblending
Performs a number of steps on a SourceGroup that can add or remove Sources for deblending the group.
Definition: Deblending.h:54
std::shared_ptr
STL class.
SourceGroupInterface.h
std::vector
STL class.
SourceXtractor::Deblending::handleMessage
virtual void handleMessage(const std::shared_ptr< SourceGroupInterface > &group) override
Handles a new SourceGroup, applies the DeblendSteps and then notifies the observers with the result.
Definition: Deblending.cpp:31
SourceXtractor::DeblendStep::deblend
virtual void deblend(SourceGroupInterface &group) const =0
SourceXtractor::Deblending::m_deblend_steps
std::vector< std::shared_ptr< DeblendStep > > m_deblend_steps
Definition: Deblending.h:68
SourceXtractor
Definition: Aperture.h:30
SourceXtractor::Deblending::Deblending
Deblending(std::vector< std::shared_ptr< DeblendStep >> deblend_steps)
Constructor - takes a vector of DeblendStep to be applied, in order, to every SourceGroup.
Definition: Deblending.cpp:27
Observable.h
SourceXtractor::Observable
Implements the Observer pattern. Notifications will be made using a message of type T.
Definition: Observable.h:51
TaskProvider.h
SourceXtractor::SourceGroupInterface
Defines the interface used to group sources.
Definition: SourceGroupInterface.h:37
SourceXtractor::Deblending::~Deblending
virtual ~Deblending()=default
Destructor.
SourceXtractor::DeblendStep::~DeblendStep
virtual ~DeblendStep()=default
Destructor.
SourceXtractor::DeblendStep
An action to be applied to a SourceGroup for deblending its sources.
Definition: Deblending.h:37