CC
Size: a a a
CC
CC
IZ
Т8
CD
Т8
CC
IZ
Т8
Т8
CC
CC
НТ
НТ
class CronosABI
{
public:
CronosABI();
CronosABI(cronos_version ver);
CronosABI(cronos_version ver, cronos_abi_num num);
virtual ~CronosABI() {}
virtual CronosABI* LoadABI(cronos_abi_num num) const;
virtual bool IsCompatible(cronos_abi_num num) const;
virtual bool IsLite() const;
virtual cronos_model GetModel() const;
cronos_version GetVersion() const;
cronos_abi_num GetABIVersion() const;
inline cronos_version Minor() const { return m_ABIVersion.second; }
const struct cronos_abi_value* GetValue(
cronos_value value) const noexcept;
const char* GetValueName(cronos_value value) const noexcept;
inline cronos_off Offset(cronos_value value) const noexcept
{
return GetValue(value)->m_Offset;
}
inline cronos_size Size(cronos_value value) const noexcept
{
return GetValue(value)->m_Size;
}
protected:
virtual void InstallABI(cronos_version ver, cronos_abi_num num) noexcept;
cronos_version m_Version;
cronos_abi_num m_ABIVersion;
std::vector<struct cronos_abi_value> m_Values;
static std::vector<CronosABI*> s_ABIFamily;
static std::vector<std::unique_ptr<CronosABI>> s_ABI;
public:
static CronosABI* GetABI(cronos_abi_num num);
static CronosABI* GenericABI();
};
НТ
ТЗ
Т8
#define, а в хедере #ifdef, то #include хедер с остальными методами/
Т8
R