summaryrefslogtreecommitdiffstats
path: root/src/usr/errl/errlsctnhdr.H
blob: 18dd75110ca0c902867bc7805e98b929c4bfb1b1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
#ifndef ERRLSCTNHDR_H
#define ERRLSCTNHDR_H
/**
 *  @file errlsctnhdr.H
 *
 *  @brief  This file contain the class that abstracts the header of
 *  an error log section.
 *
 */

/*****************************************************************************/
// I n c l u d e s
/*****************************************************************************/
#include <stdint.h>
#include <stdlib.h>
#include <errl/errltypes.H>
#include <hbotcompid.H>
#include <string.h>

namespace ERRORLOG
{

/**
 *  @brief This class abstracts a header of a section in an error log object
 */
class ErrlSctnHdr
{
    // ErrlSctn accesses ErrlSctnHdr directly.
    friend class ErrlSctn;

    /**
     * @brief Section header constructor
     *
     * @param[in]   i_compId        Component Id of the caller
     * @param[in]   i_sctnVer       A user supplied identifier which
     *                              classifies the data in the section
     * @param[in]   i_subSect       A user supplied sub section identifier
     *                              which classifies the data.  This in
     *                              conjunction with the version can be used
     *                              to decode the data.
     * @return void
     */
    ErrlSctnHdr(const compId_t i_compId,
                const uint8_t i_sctnVer,
                const uint8_t i_subSect);

    /**
     * @brief   Default destructor
     *
     * @return void
     */
    ~ErrlSctnHdr();

    //@todo - Need to add serialization interfaces for ErrlSctnHdr object.
    //        Serialization method (boost serialization?) for HostBoot
    //        is currently not yet determined.
    //        Note: stream is currently not supported



private:

    /**
     * @brief   Disabled copy constructor and assignment operator
     */
    ErrlSctnHdr(const ErrlSctnHdr& i_right);
    ErrlSctnHdr& operator=(const ErrlSctnHdr& i_right);

    // Data
    // Can/will be accessed by friend class ErrlSctn
    compId_t iv_compId;
    uint8_t iv_sctnVer;
    uint8_t iv_subSect;

};

} // End namespace

#endif //ERRLSCTNHDR_H

OpenPOWER on IntegriCloud