51 lines
1.4 KiB
C++
51 lines
1.4 KiB
C++
/*
|
|
* File: BootImage.h
|
|
*
|
|
* Copyright (c) Freescale Semiconductor, Inc. All rights reserved.
|
|
* See included license file for license details.
|
|
*/
|
|
#if !defined(_BootImage_h_)
|
|
#define _BootImage_h_
|
|
|
|
#include <iostream>
|
|
#include "Version.h"
|
|
|
|
namespace elftosb
|
|
{
|
|
/*!
|
|
* \brief Abstract base class for all boot image format classes.
|
|
*
|
|
* Provides virtual methods for all of the common features between different
|
|
* boot image formats. These are the product and component version numbers
|
|
* and the drive tag.
|
|
*
|
|
* Also provided is the virtual method writeToStream() that lets the caller
|
|
* stream out the boot image without knowing the underlying format type.
|
|
*/
|
|
class BootImage
|
|
{
|
|
public:
|
|
//! \brief Constructor.
|
|
BootImage() {}
|
|
//! \brief Destructor.
|
|
virtual ~BootImage() {}
|
|
//! \name Versions
|
|
//@{
|
|
virtual void setProductVersion(const version_t &version) = 0;
|
|
virtual void setComponentVersion(const version_t &version) = 0;
|
|
//@}
|
|
|
|
//! \brief Specify the drive tag to be set in the output file header.
|
|
virtual void setDriveTag(uint16_t tag) = 0;
|
|
|
|
//! \brief Returns a string containing the preferred file extension for image format.
|
|
virtual std::string getFileExtension() const = 0;
|
|
|
|
//! \brief Write the boot image to an output stream.
|
|
virtual void writeToStream(std::ostream &stream) = 0;
|
|
};
|
|
|
|
}; // namespace elftosb
|
|
|
|
#endif // _BootImage_h_
|