PetaVision  Alpha
CloneConn.hpp
1 /* CloneConn.cpp
2  *
3  * Created on: May 23, 2011
4  * Author: peteschultz
5  */
6 
7 #ifndef CLONECONN_HPP_
8 #define CLONECONN_HPP_
9 
10 #include "components/OriginalConnNameParam.hpp"
11 #include "connections/HyPerConn.hpp"
12 
13 namespace PV {
14 
15 class HyPerCol;
16 
17 class CloneConn : public HyPerConn {
18  public:
19  CloneConn(char const *name, HyPerCol *hc);
20 
21  virtual ~CloneConn();
22 
23  protected:
24  CloneConn();
25 
26  int initialize(char const *name, HyPerCol *hc);
27 
28  virtual void defineComponents() override;
29 
30  virtual BaseDelivery *createDeliveryObject() override;
31  virtual ArborList *createArborList() override;
32  virtual PatchSize *createPatchSize() override;
33  virtual SharedWeights *createSharedWeights() override;
34  virtual WeightsPairInterface *createWeightsPair() override;
35  virtual InitWeights *createWeightInitializer() override;
36  virtual NormalizeBase *createWeightNormalizer() override;
37  virtual BaseWeightUpdater *createWeightUpdater() override;
38  virtual OriginalConnNameParam *createOriginalConnNameParam();
39 
40  virtual Response::Status initializeState() override;
41 
42  protected:
43  OriginalConnNameParam *mOriginalConnNameParam = nullptr;
44 }; // class CloneConn
45 
46 } // namespace PV
47 
48 #endif // CLONECONN_HPP_