PetaVision  Alpha
CloneVLayer.hpp
1 /*
2  * CloneVLayer.hpp
3  *
4  * Created on: Aug 15, 2013
5  * Author: pschultz
6  */
7 
8 #ifndef CLONEVLAYER_HPP_
9 #define CLONEVLAYER_HPP_
10 
11 #include "HyPerLayer.hpp"
12 
13 namespace PV {
14 
15 class CloneVLayer : public PV::HyPerLayer {
16  public:
17  CloneVLayer(const char *name, HyPerCol *hc);
18  virtual Response::Status
19  communicateInitInfo(std::shared_ptr<CommunicateInitInfoMessage const> message) override;
20  virtual Response::Status allocateDataStructures() override;
21  virtual int requireChannel(int channelNeeded, int *numChannelsResult) override;
22  virtual void allocateGSyn() override;
23  virtual int
24  requireMarginWidth(int marginWidthNeeded, int *marginWidthResult, char axis) override;
25  virtual bool activityIsSpiking() override { return false; }
26  HyPerLayer *getOriginalLayer() { return originalLayer; }
27  virtual ~CloneVLayer();
28 
29  protected:
30  CloneVLayer();
31  int initialize(const char *name, HyPerCol *hc);
32  virtual int ioParamsFillGroup(enum ParamsIOFlag ioFlag) override;
33  virtual void ioParam_originalLayerName(enum ParamsIOFlag ioFlag);
34  virtual void ioParam_InitVType(enum ParamsIOFlag ioFlag) override;
35  virtual void allocateV() override;
36  virtual Response::Status registerData(Checkpointer *checkpointer) override;
37  virtual void initializeV() override;
38  virtual void readVFromCheckpoint(Checkpointer *checkpointer) override;
39  virtual Response::Status updateState(double timed, double dt) override;
40 
41  private:
42  int initialize_base();
43 
44  protected:
45  char *originalLayerName;
46  HyPerLayer *originalLayer;
47 }; // class CloneVLayer
48 
49 } /* namespace PV */
50 #endif /* CLONEVLAYER_HPP_ */
virtual void ioParam_InitVType(enum ParamsIOFlag ioFlag) override
initVType: Specifies how to initialize the V buffer.
Definition: CloneVLayer.cpp:45
virtual int ioParamsFillGroup(enum ParamsIOFlag ioFlag) override
Definition: CloneVLayer.cpp:34