gStore/Signature/SigEntry.h

40 lines
1.2 KiB
C++

/*=============================================================================
# Filename: SigEntry.h
# Author: Bookug Lobert
# Mail: zengli-bookug@pku.edu.cn
# Last Modified: 2016-04-11 13:48
# Description: written by liyouhuan and hanshuo
=============================================================================*/
#ifndef _SIGNATURE_SIGENTRY_H
#define _SIGNATURE_SIGENTRY_H
#include "../Util/Util.h"
#include "Signature.h"
class SigEntry
{
private:
EntitySig sig;
//-1 if not in leaf node
TYPE_ENTITY_LITERAL_ID entity_id;
public:
SigEntry();
SigEntry(TYPE_ENTITY_LITERAL_ID _entity_id, EntityBitSet& _bitset);
SigEntry(const SigEntry& _sig_entry);
SigEntry(const EntitySig& sig, TYPE_ENTITY_LITERAL_ID _entity_id);
const EntitySig& getEntitySig() const;
TYPE_ENTITY_LITERAL_ID getEntityId() const;
int getSigCount() const;
SigEntry& operator=(const SigEntry _sig_entry);
SigEntry& operator|=(const SigEntry _sig_entry);
bool cover(const SigEntry& _sig_entry) const;
bool cover(const EntitySig& _sig) const;
int xEpsilen(const SigEntry& _sig_entry) const;
int xOR(const SigEntry& _sig_entry) const;
std::string to_str() const;
};
#endif // _SIGNATURE_SIGENTRY_H