2023-04-27 22:19:39 -04:00
|
|
|
#ifndef MXATOMID_H
|
|
|
|
#define MXATOMID_H
|
|
|
|
|
2023-07-02 03:00:28 -04:00
|
|
|
#include "mxtypes.h"
|
2023-08-16 13:09:44 -04:00
|
|
|
#include "mxatomidcounter.h"
|
2023-07-02 03:00:28 -04:00
|
|
|
|
2023-06-19 00:45:25 -04:00
|
|
|
enum LookupMode
|
|
|
|
{
|
2023-07-03 13:24:51 -04:00
|
|
|
LookupMode_Exact = 0,
|
|
|
|
LookupMode_LowerCase = 1,
|
|
|
|
LookupMode_UpperCase = 2,
|
|
|
|
LookupMode_LowerCase2 = 3
|
2023-06-19 00:45:25 -04:00
|
|
|
};
|
2023-06-11 21:03:54 -04:00
|
|
|
|
2023-04-27 22:19:39 -04:00
|
|
|
class MxAtomId
|
|
|
|
{
|
|
|
|
public:
|
2023-06-11 21:03:54 -04:00
|
|
|
__declspec(dllexport) MxAtomId(const char *, LookupMode);
|
2023-04-27 22:19:39 -04:00
|
|
|
__declspec(dllexport) MxAtomId &operator=(const MxAtomId &id);
|
|
|
|
__declspec(dllexport) ~MxAtomId();
|
|
|
|
|
2023-06-19 20:18:53 -04:00
|
|
|
MxAtomId()
|
|
|
|
{
|
|
|
|
this->m_internal = 0;
|
2023-06-29 04:10:08 -04:00
|
|
|
}
|
2023-04-27 22:19:39 -04:00
|
|
|
|
2023-07-02 03:00:28 -04:00
|
|
|
inline MxBool operator ==(const MxAtomId &other) const
|
|
|
|
{
|
|
|
|
return this->m_internal == other.m_internal;
|
|
|
|
}
|
2023-08-16 13:09:44 -04:00
|
|
|
void Clear();
|
2023-07-02 03:00:28 -04:00
|
|
|
|
2023-06-19 20:18:53 -04:00
|
|
|
private:
|
2023-08-16 13:09:44 -04:00
|
|
|
MxAtomIdCounter* GetCounter(const char *, LookupMode);
|
|
|
|
void Destroy();
|
|
|
|
|
|
|
|
const char *m_internal;
|
2023-04-27 22:19:39 -04:00
|
|
|
};
|
|
|
|
|
|
|
|
#endif // MXATOMID_H
|