#ifndef __INTEL_HEX_RECORD_HPP_
#define __INTEL_HEX_RECORD_HPP_

#include <string>
#include <boost/shared_ptr.hpp>

class IntelHEXRecordImpl;

class IntelHEXRecord {
private:
	IntelHEXRecordImpl* impl_;

public:
	IntelHEXRecord(std::string record);
	virtual ~IntelHEXRecord();

public:
	IntelHEXRecord(const IntelHEXRecord& record);
	IntelHEXRecord& operator=(const IntelHEXRecord& record);

public:
	int length();
	std::string address();
	std::string type();
	std::string data();
	std::string checksum();

public:
	std::string record(bool column = true);
};

#endif
