F´ Flight Software - C/C++ Documentation
A framework for building embedded system applications to NASA flight quality standards.
ValidatedFile.cpp
Go to the documentation of this file.
1 // ======================================================================
2 // \title ValidatedFile.cpp
3 // \author bocchino
4 // \brief Os::ValidatedFile implementation
5 //
6 // \copyright
7 // Copyright (C) 2017 California Institute of Technology.
8 // ALL RIGHTS RESERVED. United States Government Sponsorship
9 // acknowledged.
10 //
11 // ======================================================================
12 
13 #include "Os/ValidatedFile.hpp"
14 #include "Fw/Types/Assert.hpp"
15 #include "Utils/Hash/Hash.hpp"
16 
17 namespace Os {
18 
19 ValidatedFile ::ValidatedFile(const char* const fileName) : m_fileName(fileName), m_hashFileName(""), m_hashBuffer() {
20  const Fw::FormatStatus formatStatus = Utils::Hash::addFileExtension(this->m_fileName, this->m_hashFileName);
21  // A truncated hash file name would silently validate against the wrong file
22  FW_ASSERT(formatStatus == Fw::FormatStatus::SUCCESS, static_cast<FwAssertArgType>(formatStatus));
23 }
24 
26  const Os::ValidateFile::Status status =
27  Os::ValidateFile::validate(this->m_fileName.toChar(), this->m_hashFileName.toChar(), this->m_hashBuffer);
28  return status;
29 }
30 
33  this->m_fileName.toChar(), this->m_hashFileName.toChar(), this->m_hashBuffer);
34  return status;
35 }
36 
38  this->m_hashBuffer = hashBuffer;
39  const Os::ValidateFile::Status status =
40  Os::ValidateFile::createValidation(this->m_hashFileName.toChar(), this->m_hashBuffer);
41  return status;
42 }
43 
45  return this->m_fileName;
46 }
47 
49  return this->m_hashFileName;
50 }
51 
53  return this->m_hashBuffer;
54 }
55 
56 } // namespace Os
const Fw::ConstStringBase & getHashFileName() const
const Fw::ConstStringBase & getFileName() const
Os::ValidateFile::Status createHashFile()
static Fw::FormatStatus addFileExtension(const Fw::ConstStringBase &baseName, Fw::StringBase &extendedName)
Definition: HashCommon.cpp:9
Status validate(const char *fileName, const char *hashFileName, Utils::HashBuffer &hashBuffer)
Validate the contents of a file &#39;fileName&#39; against its hash.
const char * toChar() const
Convert to a C-style char*.
Status createValidation(const char *fileName, const char *hash, Utils::HashBuffer &hashBuffer)
ValidatedFile(const char *const fileName)
Construct a validated file.
A read-only abstract superclass for StringBase.
const Utils::HashBuffer & getHashBuffer() const
A container class for holding a hash buffer.
Definition: HashBuffer.hpp:26
Os::ValidateFile::Status validate()
#define FW_ASSERT(...)
Definition: Assert.hpp:14
FormatStatus
status of string format calls
Definition: format.hpp:18