
// Filename : simulation_serialization.h

#ifndef SIMULATION_SERIALIZATION_H
#define SIMULATION_SERIALIZATION_H

#include "spacecomp.h"
#include "sdevice.h"
#include "application_definitions.h"

// Do NOT move macros, functions and includes beginning with "spacecomp".

class simulation_serialization: public sdevice {
	SPACECOMP_START(simulation_serialization, INDEX, simulation_serialization);

public:
	simulation_serialization(SPACECOMP_CTOR_PARAMS(simulation_serialization, INDEX));
	~simulation_serialization();
	virtual void access(tlm::tlm_generic_payload& trans, sc_core::sc_time& delay);

	// You may add member functions and fields as desired here.

	SPACECOMP_END(simulation_serialization, INDEX, simulation_serialization);

private:
	FILE* m_file;
	uint8_t* m_content;
	uint32_t m_image_size;
};

#endif