Blob Blame Raw
#pragma once

#ifndef TIDENTIFIABLE_INCLUDED
#define TIDENTIFIABLE_INCLUDED

#include "tutil.h"

#undef DVAPI
#undef DVVAR
#ifdef TNZCORE_EXPORTS
#define DVAPI DV_EXPORT_API
#define DVVAR DV_EXPORT_VAR
#else
#define DVAPI DV_IMPORT_API
#define DVVAR DV_IMPORT_VAR
#endif

//=========================================================

class DVAPI TIdentifiable
{
	unsigned long m_id;

public:
	TIdentifiable();
	virtual ~TIdentifiable();
	TIdentifiable(const TIdentifiable &);
	const TIdentifiable &operator=(const TIdentifiable &);

	unsigned long getIdentifier() const { return m_id; }
	void setIdentifier(unsigned long id);
	void setNewIdentifier();

	void storeByIdentifier();
	static TIdentifiable *fetchByIdentifier(unsigned long id);
};

#endif