[DEV] ordered etk::typeInfo
This commit is contained in:
parent
4a62e68b09
commit
0dbd99ac34
@ -8,19 +8,26 @@
|
|||||||
#include <etk/String.hpp>
|
#include <etk/String.hpp>
|
||||||
#include <etk/UString.hpp>
|
#include <etk/UString.hpp>
|
||||||
#include <etk/Stream.hpp>
|
#include <etk/Stream.hpp>
|
||||||
|
#include <etk/Map.hpp>
|
||||||
|
|
||||||
static etk::Vector<const char*>& getListType() {
|
static etk::Map<const char*, size_t>& getListElement() {
|
||||||
static etk::Vector<const char*> s_list;
|
static etk::Map<const char*, size_t> s_list(0, true, [](etk::Pair<const char*, size_t>* const & _key1,
|
||||||
|
etk::Pair<const char*, size_t>* const & _key2) {
|
||||||
|
return strcoll(_key1->first, _key2->first) < 0;
|
||||||
|
});
|
||||||
return s_list;
|
return s_list;
|
||||||
}
|
}
|
||||||
|
|
||||||
const etk::Vector<const char*>& etk::getListDeclaredType() {
|
etk::Vector<const char*> etk::getListDeclaredType() {
|
||||||
return getListType();
|
return getListElement().getKeys();
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t etk::addType(const char* _name) {
|
size_t etk::addType(const char* _name) {
|
||||||
getListType().pushBack(_name);
|
size_t id = getListElement().size()+1;
|
||||||
return getListType().size();
|
getListElement().set(_name, id);
|
||||||
|
return id;
|
||||||
|
// return size_t(_name);
|
||||||
|
// return getListType().size();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -13,18 +13,18 @@ namespace etk {
|
|||||||
template<typename ETK_TYPE>
|
template<typename ETK_TYPE>
|
||||||
class TypeTraitInfo {
|
class TypeTraitInfo {
|
||||||
public:
|
public:
|
||||||
// Name of the Type
|
// Name of the type
|
||||||
static const char* m_name;
|
static const char* m_name;
|
||||||
// Size of the type
|
// Size of the type
|
||||||
static const size_t m_size;
|
static const size_t m_size;
|
||||||
// Dynamic Usnique ID of the Type
|
// Dynamic unique ID of the Type
|
||||||
static const size_t m_id;
|
static const size_t m_id;
|
||||||
};
|
};
|
||||||
/**
|
/**
|
||||||
* @brief Get list of all type declared in this software.
|
* @brief Get list of all type declared in this software.
|
||||||
* @return A static list of all register type in the system.
|
* @return A static list of all register type in the system.
|
||||||
*/
|
*/
|
||||||
const etk::Vector<const char*>& getListDeclaredType();
|
etk::Vector<const char*> getListDeclaredType();
|
||||||
/**
|
/**
|
||||||
* @brief Add an element declared type in the system database.
|
* @brief Add an element declared type in the system database.
|
||||||
* @param[in] Name of the type
|
* @param[in] Name of the type
|
||||||
|
Loading…
x
Reference in New Issue
Block a user