F´ Flight Software - C/C++ Documentation
A framework for building embedded system applications to NASA flight quality standards.
FileStatusEnumAc.cpp
Go to the documentation of this file.
1 // ======================================================================
2 // \title FileStatusEnumAc.cpp
3 // \author Generated by fpp-to-cpp
4 // \brief cpp file for FileStatus enum
5 // ======================================================================
6 
7 #include <cstring>
8 #include <limits>
9 
11 
12 namespace Os {
13 
14  // ----------------------------------------------------------------------
15  // Operators
16  // ----------------------------------------------------------------------
17 
18  FileStatus& FileStatus ::
20  {
21  this->e = obj.e;
22 #ifdef BUILD_UT
23  this->m_serializeValueIsSet = obj.m_serializeValueIsSet;
24  this->m_serializeValue = obj.m_serializeValue;
25 #endif
26  return *this;
27  }
28 
31  {
32  FW_ASSERT(isValid(e1), static_cast<FwAssertArgType>(e1));
33  this->e = static_cast<enum T>(e1);
34 #ifdef BUILD_UT
35  this->m_serializeValueIsSet = false;
36  this->m_serializeValue = 0;
37 #endif
38  return *this;
39  }
40 
42  operator=(enum T e1)
43  {
44  FW_ASSERT(isValid(e1), static_cast<FwAssertArgType>(e1));
45  this->e = e1;
46 #ifdef BUILD_UT
47  this->m_serializeValueIsSet = false;
48  this->m_serializeValue = 0;
49 #endif
50  return *this;
51  }
52 
53 #ifdef BUILD_UT
54 
55  std::ostream& operator<<(std::ostream& os, const FileStatus& obj) {
56  Fw::String s;
57  obj.toString(s);
58  os << s;
59  return os;
60  }
61 
62 #endif
63 
64  // ----------------------------------------------------------------------
65  // Member functions
66  // ----------------------------------------------------------------------
67 
68  bool FileStatus ::
69  isValid() const
70  {
71  return FileStatus::isValid(this->e);
72  }
73 
76  Fw::SerialBufferBase& buffer,
77  Fw::Endianness mode
78  ) const
79  {
80  SerialType es = static_cast<SerialType>(this->e);
81 #ifdef BUILD_UT
82  // Unit testing only: On request, override the enum value
83  // with the numeric value, which is allowed to be invalid
84  if (this->m_serializeValueIsSet) {
85  es = this->m_serializeValue;
86  }
87 #endif
88  const Fw::SerializeStatus status = buffer.serializeFrom(es, mode);
89  return status;
90  }
91 
94  Fw::SerialBufferBase& buffer,
95  Fw::Endianness mode
96  )
97  {
98  SerialType es;
99  Fw::SerializeStatus status = buffer.deserializeTo(es, mode);
100  if ((status == Fw::FW_SERIALIZE_OK) && !FileStatus::isValid(es)) {
102  }
103  if (status == Fw::FW_SERIALIZE_OK) {
104  this->e = static_cast<enum T>(es);
105  }
106  return status;
107  }
108 
109 #if FW_SERIALIZABLE_TO_STRING
110 
111  void FileStatus ::
112  toString(Fw::StringBase& sb) const
113  {
114  Fw::String s;
115  switch (e) {
116  case OP_OK:
117  s = "OP_OK";
118  break;
119  case DOESNT_EXIST:
120  s = "DOESNT_EXIST";
121  break;
122  case NO_SPACE:
123  s = "NO_SPACE";
124  break;
125  case NO_PERMISSION:
126  s = "NO_PERMISSION";
127  break;
128  case BAD_SIZE:
129  s = "BAD_SIZE";
130  break;
131  case NOT_OPENED:
132  s = "NOT_OPENED";
133  break;
134  case FILE_EXISTS:
135  s = "FILE_EXISTS";
136  break;
137  case NOT_SUPPORTED:
138  s = "NOT_SUPPORTED";
139  break;
140  case INVALID_MODE:
141  s = "INVALID_MODE";
142  break;
143  case INVALID_ARGUMENT:
144  s = "INVALID_ARGUMENT";
145  break;
146  case NO_MORE_RESOURCES:
147  s = "NO_MORE_RESOURCES";
148  break;
149  case OTHER_ERROR:
150  s = "OTHER_ERROR";
151  break;
152  case OUTSIDE_SANDBOX:
153  s = "OUTSIDE_SANDBOX";
154  break;
155  default:
156  s = "[invalid]";
157  break;
158  }
159  sb.format("%s (%" PRIu8 ")", s.toChar(), e);
160  }
161 
162 #endif
163 
164 #ifdef BUILD_UT
165 
166  void FileStatus ::
167  setSerializeValue(SerialType serializeValue)
168  {
169  this->m_serializeValue = serializeValue;
170  this->m_serializeValueIsSet = true;
171  }
172 
173 #endif
174 
175  // ----------------------------------------------------------------------
176  // Static functions
177  // ----------------------------------------------------------------------
178 
179  bool FileStatus ::
180  isValid(SerialType serialTypeValue)
181  {
182  return (serialTypeValue <= OUTSIDE_SANDBOX);
183  }
184 
185 }
Serialization/Deserialization operation was successful.
Fw::SerializeStatus serializeTo(Fw::SerialBufferBase &buffer, Fw::Endianness mode=Fw::Endianness::BIG) const
Serialize raw enum value to SerialType.
Fw::SerializeStatus deserializeFrom(Fw::SerialBufferBase &buffer, Fw::Endianness mode=Fw::Endianness::BIG)
Deserialize raw enum value from SerialType.
bool isValid() const
Check raw enum value for validity.
file hasn&#39;t been opened yet
Deserialization data had incorrect values (unexpected data types)
No permission to read/write file.
virtual SerializeStatus serializeFrom(U8 val, Endianness mode=Endianness::BIG)=0
Serialize an 8-bit unsigned integer value.
File doesn&#39;t exist (for read)
FileStatus & operator=(const FileStatus &obj)
Copy assignment operator (object)
SerializeStatus
forward declaration for string
virtual SerializeStatus deserializeTo(U8 &val, Endianness mode=Endianness::BIG)=0
Deserialize an 8-bit unsigned integer value.
enum T e
The raw enum value.
file already exist (for CREATE with O_EXCL enabled)
No more available resources.
T
The raw enum type.
const char * toChar() const
Convert to a C-style char*.
A catch-all for other errors. Have to look in implementation-specific code.
FormatStatus format(const CHAR *formatString,...)
write formatted string to buffer
Definition: StringBase.cpp:58
U8 SerialType
The serial representation type.
Path falls outside the configured sandbox directory.
Kernel or file system does not support operation.
Mode for file access is invalid for current operation.
Invalid argument passed in.
Endianness
FPP shadow-enum representing Os::File::Status.
Invalid size parameter.
Operation was successful.
#define FW_ASSERT(...)
Definition: Assert.hpp:14
ComCfg::Apid::SerialType SerialType
Definition: TestUtils.cpp:14