Commit cd8d1f59941987f1011d0c18b67e62a7624aed47

Authored by knodlseder
1 parent 04d8c154

initial default implementation

include/GData.hpp
... ... @@ -10,41 +10,46 @@
10 10 * (at your option) any later version. *
11 11 * *
12 12 ***************************************************************************/
  13 +/**
  14 + * @file GData.hpp
  15 + * @brief GData abstract base class definition.
  16 + * @author J. Knodlseder
  17 + */
13 18  
14 19 #ifndef GDATA_HPP
15 20 #define GDATA_HPP
16 21  
17 22 /* __ Includes ___________________________________________________________ */
18   -//#include "GVector.hpp"
19 23  
20 24 /* __ Namespaces _________________________________________________________ */
21   -using namespace std;
22 25  
23 26  
24   -/***************************************************************************
25   - * GData class definition *
  27 +/***********************************************************************//**
  28 + * @class GData
  29 + *
  30 + * @brief Abstract GData class interface defintion
26 31 ***************************************************************************/
27 32 class GData {
28 33  
29   -// Public methods
30 34 public:
31 35 // Constructors and destructors
32   - //GData();
33   - //GData(const GData& d);
34   - //virtual ~GData();
  36 + GData();
  37 + GData(const GData& d);
  38 + virtual ~GData();
35 39  
36 40 // Operators
  41 + GData& operator= (const GData& data);
37 42  
38 43 // Methods
39 44  
40   -// Methods and data that are available to derived classes
41 45 protected:
42 46 // Protected methods
  47 + void init_members(void);
  48 + void copy_members(const GData& data);
  49 + void free_members(void);
  50 + virtual GData* clone(void) const = 0;
43 51  
44 52 // Protected data area
45   - // this is a test
46   -
47   -// Methods that are available to the base class only
48 53 private:
49 54 };
50 55  
... ...
src/data/GData.cpp
... ... @@ -11,13 +11,17 @@
11 11 * *
12 12 * ----------------------------------------------------------------------- *
13 13 ***************************************************************************/
  14 +/**
  15 + * @file GData.cpp
  16 + * @brief GData abstract base class implementation.
  17 + * @author J. Knodlseder
  18 + */
14 19  
15 20 /* __ Includes ___________________________________________________________ */
16 21 #include "GException.hpp"
17 22 #include "GData.hpp"
18 23  
19 24 /* __ Namespaces _________________________________________________________ */
20   -using namespace std;
21 25  
22 26 /* __ Method name definitions ____________________________________________ */
23 27  
... ... @@ -35,6 +39,49 @@ using namespace std;
35 39 = =
36 40 ==========================================================================*/
37 41  
  42 +/***********************************************************************//**
  43 + * @brief Constructor
  44 + ***************************************************************************/
  45 +GData::GData()
  46 +{
  47 + // Initialise class members for clean destruction
  48 + init_members();
  49 +
  50 + // Return
  51 + return;
  52 +}
  53 +
  54 +
  55 +/***********************************************************************//**
  56 + * @brief Copy constructor
  57 + *
  58 + * @param data GData instance which should be used for construction
  59 + ***************************************************************************/
  60 +GData::GData(const GData& data)
  61 +{
  62 + // Initialise class members for clean destruction
  63 + init_members();
  64 +
  65 + // Copy members
  66 + copy_members(data);
  67 +
  68 + // Return
  69 + return;
  70 +}
  71 +
  72 +
  73 +/***********************************************************************//**
  74 + * @brief Destructor
  75 + ***************************************************************************/
  76 +GData::~GData()
  77 +{
  78 + // Free members
  79 + free_members();
  80 +
  81 + // Return
  82 + return;
  83 +}
  84 +
38 85  
39 86 /*==========================================================================
40 87 = =
... ... @@ -42,20 +89,84 @@ using namespace std;
42 89 = =
43 90 ==========================================================================*/
44 91  
  92 +/***********************************************************************//**
  93 + * @brief Assignment operator
  94 + *
  95 + * @param[in] data GData instance to be assigned
  96 + ***************************************************************************/
  97 +GData& GData::operator= (const GData& data)
  98 +{
  99 + // Execute only if object is not identical
  100 + if (this != &data) {
  101 +
  102 + // Free members
  103 + free_members();
  104 +
  105 + // Initialise private members for clean destruction
  106 + init_members();
  107 +
  108 + // Copy members
  109 + copy_members(data);
  110 +
  111 + } // endif: object was not identical
  112 +
  113 + // Return this object
  114 + return *this;
  115 +}
  116 +
45 117  
46 118 /*==========================================================================
47 119 = =
48   - = GData methods =
  120 + = GData public methods =
49 121 = =
50 122 ==========================================================================*/
51 123  
52 124  
53 125 /*==========================================================================
54 126 = =
55   - = GData private functions =
  127 + = GData private methods =
56 128 = =
57 129 ==========================================================================*/
58 130  
  131 +/***********************************************************************//**
  132 + * @brief Initialise class members
  133 + ***************************************************************************/
  134 +void GData::init_members(void)
  135 +{
  136 + // Initialise members
  137 +
  138 + // Return
  139 + return;
  140 +}
  141 +
  142 +
  143 +/***********************************************************************//**
  144 + * @brief Copy class members
  145 + *
  146 + * @param[in] data GData instance from which members should be copied
  147 + ***************************************************************************/
  148 +void GData::copy_members(const GData& data)
  149 +{
  150 + // Copy attributes
  151 +
  152 + // Return
  153 + return;
  154 +}
  155 +
  156 +
  157 +/***********************************************************************//**
  158 + * @brief Delete class members
  159 + ***************************************************************************/
  160 +void GData::free_members(void)
  161 +{
  162 + // Free memory
  163 +
  164 + // Mark memory as free
  165 +
  166 + // Return
  167 + return;
  168 +}
  169 +
59 170  
60 171 /*==========================================================================
61 172 = =
... ...