/********************************************************************
*
* File: fsCTaggableComponent.h
*
* Purpose: Identification component - removes empty component
* behaviour when we just need identification.
*
*********************************************************************/
#ifndef fsCTaggableComponenthdr
#define fsCTaggableComponenthdr
#include <fsCore/src/fsCUniqueId.h>
#include <fsAppCore/src/components/fsIComponent.h>
class fsCTaggableComponent : public fsIComponent
{
friend class fsCComponentFactory;
public:
fsBool tagged(fsStr const& pTag) const;
void tag(fsStr const& pTag);
static const fsCUniqueId mTypeId;
protected:
static fsIComponent* create(fsCEntity* pParent);
fsCTaggableComponent(fsCEntity* pParent);
virtual ~fsCTaggableComponent();<--- Destructor in derived class
private:
std::vector<fsStr> mTags;
};
#endif