1/* 2 * File: DataSourceImager.h 3 * 4 * Copyright (c) Freescale Semiconductor, Inc. All rights reserved. 5 * See included license file for license details. 6 */ 7#if !defined(_DataSourceImager_h_) 8#define _DataSourceImager_h_ 9 10#include "Blob.h" 11#include "DataSource.h" 12 13namespace elftosb { 14 15/*! 16 * \brief Converts a DataSource into a single binary buffer. 17 */ 18class DataSourceImager : public Blob 19{ 20public: 21 //! \brief Constructor. 22 DataSourceImager(); 23 24 //! \name Setup 25 //@{ 26 void setBaseAddress(uint32_t address); 27 void setFillPattern(uint8_t pattern); 28 //@} 29 30 void reset(); 31 32 //! \name Accessors 33 //@{ 34 uint32_t getBaseAddress() { return m_baseAddress; } 35 //@} 36 37 //! \name Operations 38 //@{ 39 //! \brief Adds all of the segments of which \a dataSource is composed. 40 void addDataSource(DataSource * source); 41 42 //! \brief Adds the data from one data segment. 43 void addDataSegment(DataSource::Segment * segment); 44 //@} 45 46protected: 47 uint8_t m_fill; 48 uint32_t m_baseAddress; 49 bool m_isBaseAddressSet; 50}; 51 52}; 53 54#endif // _DataSourceImager_h_ 55