F´ Flight Software - C/C++ Documentation  devel
A framework for building embedded system applications to NASA flight quality standards.
PrmDbImpl.hpp
Go to the documentation of this file.
1 
13 #ifndef PRMDBIMPL_HPP_
14 #define PRMDBIMPL_HPP_
15 
17 #include <PrmDbImplCfg.hpp>
18 #include <Fw/Types/String.hpp>
19 #include <Os/Mutex.hpp>
20 
21 namespace Svc {
22 
29 
30  class PrmDbImpl : public PrmDbComponentBase {
31  public:
32 
33  friend class PrmDbImplTester;
34 
42  PrmDbImpl(const char* name);
43 
51 
52  void init(NATIVE_INT_TYPE queueDepth, NATIVE_INT_TYPE instance);
53 
59  void configure(const char* file);
60 
61 
67  void readParamFile(); // NOTE: Assumed to run at initialization time. No guard of data structure.
68 
71  virtual ~PrmDbImpl();
72  protected:
73  private:
82  Fw::ParamValid getPrm_handler(NATIVE_INT_TYPE portNum, FwPrmIdType id, Fw::ParamBuffer &val);
91  void setPrm_handler(NATIVE_INT_TYPE portNum, FwPrmIdType id, Fw::ParamBuffer &val);
92 
101 
102  void pingIn_handler(NATIVE_INT_TYPE portNum, U32 key);
111  void PRM_SAVE_FILE_cmdHandler(FwOpcodeType opCode, U32 cmdSeq);
112 
117 
118  void clearDb();
119 
120  Fw::String m_fileName;
121 
122  struct t_dbStruct {
123  bool used;
124  FwPrmIdType id;
125  Fw::ParamBuffer val;
126  } m_db[PRMDB_NUM_DB_ENTRIES];
127 
128  };
129 }
130 
131 #endif /* PRMDBIMPL_HPP_ */
PlatformIntType NATIVE_INT_TYPE
Definition: BasicTypes.h:51
U32 FwOpcodeType
Definition: FpConfig.h:78
U32 FwPrmIdType
Definition: FpConfig.h:90
void init()
Object initializer.
Definition: ObjBase.cpp:27
Enum representing parameter validity.
Auto-generated base for PrmDb component.
Component class for managing parameters.
Definition: PrmDbImpl.hpp:30
void readParamFile()
PrmDb file read function.
Definition: PrmDbImpl.cpp:258
virtual ~PrmDbImpl()
PrmDb destructor.
Definition: PrmDbImpl.cpp:255
PrmDbImpl(const char *name)
PrmDb constructor.
Definition: PrmDbImpl.cpp:44
void configure(const char *file)
PrmDb configure method.
Definition: PrmDbImpl.cpp:48
friend class PrmDbImplTester
Definition: PrmDbImpl.hpp:33