2020-09-24 23:33:18 -05:00
|
|
|
#ifndef STORM_ARRAY_TS_BASE_ARRAY_HPP
|
|
|
|
|
#define STORM_ARRAY_TS_BASE_ARRAY_HPP
|
|
|
|
|
|
|
|
|
|
#include <cstdint>
|
2020-12-08 19:40:26 -06:00
|
|
|
#include <typeinfo>
|
2020-09-24 23:33:18 -05:00
|
|
|
|
2020-11-14 17:12:00 -06:00
|
|
|
template <class T>
|
2020-09-24 23:33:18 -05:00
|
|
|
class TSBaseArray {
|
|
|
|
|
public:
|
|
|
|
|
uint32_t m_alloc = 0;
|
|
|
|
|
uint32_t m_count = 0;
|
|
|
|
|
T* m_data = nullptr;
|
|
|
|
|
|
2020-12-08 19:40:26 -06:00
|
|
|
virtual const char* MemFileName() const;
|
|
|
|
|
|
2020-09-24 23:33:18 -05:00
|
|
|
T& operator[](uint32_t i);
|
|
|
|
|
uint32_t Count(void);
|
|
|
|
|
void Clear(void);
|
|
|
|
|
};
|
|
|
|
|
|
2020-11-14 17:12:00 -06:00
|
|
|
template <class T>
|
2020-09-24 23:33:18 -05:00
|
|
|
T& TSBaseArray<T>::operator[](uint32_t i) {
|
|
|
|
|
return this->m_data[i];
|
|
|
|
|
}
|
|
|
|
|
|
2020-11-14 17:12:00 -06:00
|
|
|
template <class T>
|
2020-09-24 23:33:18 -05:00
|
|
|
uint32_t TSBaseArray<T>::Count() {
|
|
|
|
|
return this->m_count;
|
|
|
|
|
}
|
|
|
|
|
|
2020-11-14 17:12:00 -06:00
|
|
|
template <class T>
|
2020-09-24 23:33:18 -05:00
|
|
|
void TSBaseArray<T>::Clear() {
|
|
|
|
|
delete[] this->m_data;
|
|
|
|
|
TSBaseArray<T>();
|
|
|
|
|
}
|
|
|
|
|
|
2020-12-08 19:40:26 -06:00
|
|
|
template <class T>
|
|
|
|
|
const char* TSBaseArray<T>::MemFileName() const {
|
|
|
|
|
return typeid(T).name();
|
|
|
|
|
}
|
|
|
|
|
|
2020-09-24 23:33:18 -05:00
|
|
|
#endif
|