diff --git a/etk/Hash.hpp b/etk/Hash.hpp deleted file mode 100644 index 70cb8e0..0000000 --- a/etk/Hash.hpp +++ /dev/null @@ -1,278 +0,0 @@ -/** @file - * @author Edouard DUPIN - * @copyright 2011, Edouard DUPIN, all right reserved - * @license MPL v2.0 (see license file) - */ - -#include - -#pragma once -#include - -namespace etk { - /** - * @brief Internal data of the [class[etk::hash]] class, it contain - * the name and the value of the hash vector. - * @internal - */ - template class HashData { - public: - etk::String m_key; //!< name of the current hash - MY_TYPE m_value; //!< data of the current Hash - /** - * @brief Constructor of the data for hash table. - * @param[in] _key name of the hash table. - * @param[in] _val Value of the hash element. - */ - HashData(const etk::String& _key, const MY_TYPE& _val) : - m_key(_key), - m_value(_val) { - // nothing to do ... - } - }; - /** - * @brief Hash table template is a simple classical hash interface. - * A hash table is a equivalent of the dictionary in python, this is a - * simple interface between a name and a value: - * - "name" : 19 - * - "name 2" : 99 - * - * @note The name is unique and the value is what you want - * - * @todo check if something else exist in the generic library. (not the etk::Map and the std::unordered_map - * - * @note The index are all time available since they are created. The order is the the one created - * - * A simple example of use: - * @code{.cpp} - * // Create a integer hash table - * Hash myValue; - * // add some element (note add and set is the same function) - * myValue.add("example", 98837); - * myValue.add("plop", 88); - * // Display an element: - * printf("my value is : %d", myValue["example"]); - * // Change value of an element: - * myValue.set("example", 99); - * // Remove an element: - * myValue.remove("plop"); - * //Clean all the table: - * myValue.clear(); - * @endcode - */ - template class Hash { - private: - etk::Vector* > m_data; //!< Data of the hash ==> the Hash table is composed of pointer, this permit to have high speed when resize the vector ... - public: - /** - * @brief Constructor of the Hash table. - * @param[in] _count Number of basic element in the table. - */ - Hash(int32_t _count = 0) : - m_data(_count) { - // nothing to do - } - /** - * @brief Destructor of the Hash table (clear all element in the table) - */ - ~Hash() { - clear(); - } - /** - * @brief Remove all entry in the Hash table. - * @note It does not delete pointer if your value is a pointer type... - */ - void clear() { - for (auto &it : m_data) { - if (it != nullptr) { - delete(it); - it=nullptr; - } - } - m_data.clear(); - } - /** - * @brief Get a current element ID in the Hash table - * @param[in] _key Name of the hash requested - * @return Id of the element in the table or -1 of it does not existed - */ - int64_t getId(const etk::String& _key) const { - for (size_t iii=0; iiim_key << "' with '" << _key << "'" ); - if (m_data[iii]->m_key == _key) { - return iii; - } - } - } - //TK_ERROR(" ==> not fund key '" << _key << "'" ); - return -1; - } - /** - * @brief Check if an element exist or not - * @param[in] _name Name of the hash requested - * @return true if the element exist - */ - bool exist(const etk::String& _name) const { - int64_t elementId = getId(_name); - //TK_INFO(" Exist ? '" << _name << "' id=" << elementId ); - if (elementId<0) { - //TK_INFO(" ==> return false" ); - return false; - } - //TK_INFO(" ==> return true" ); - return true; - } - /** - * @brief Get a current element in the hash table, with his name. - * @param[in] _key Name of the hash requested - * @return Reference on the Element - */ - MY_TYPE& get(const etk::String& _key) const { - static MY_TYPE g_error; - int64_t elementId = getId(_key); - if (elementId<0) { - //TK_ERROR("try to access at an inexistent hash element : " << _key); - return g_error; - } - return m_data[elementId]->m_value; - } - /** - * @brief Get an copy Element an a special position - * @param[in] _key Name of the hash requested - * @return An reference on the copy of selected element - */ - MY_TYPE& operator[] (const etk::String& _key) { - return get(_key); - } - /** - * @brief Get an copy Element an a special position - * @param[in] _key Name of the hash requested - * @return An reference on the copy of selected element - */ - const MY_TYPE& operator[] (const etk::String& _key) const { - return get(_key); - } - /** - * @brief Add an element OR set an element value - * @note add and set is the same function. - * @param[in] _key Name of the value to set in the hash table. - * @param[in] _value Value to set in the hash table. - */ - void add(const etk::String& _key, const MY_TYPE& _value) { - int64_t elementId = getId(_key); - if (elementId <0) { - HashData* tmp = new HashData(_key, _value); - if (tmp == nullptr) { - //TK_ERROR("allocation error in Hash table : '" << _key << "'"); - return; - } - m_data.pushBack(tmp); - return; - } - m_data[elementId]->m_value = _value; - } - /** - * @brief Set an element value - * @note add and set is the same function. - * @param[in] _key Name of the value to set in the hash table. - * @param[in] _value Value to set in the hash table. - */ - void set(const etk::String& _key, const MY_TYPE& _value) { - add(_key, _value); - } - /** - * @brief Remove an element in the hash table. - * @param[in] _key Name of the element to remove. - */ - void remove(const etk::String& _key) { - int64_t elementId = getId(_key); - if (elementId <0) { - //nothing to do ==> not existed - return; - } - delete(m_data[elementId]); - m_data[elementId] = nullptr; - m_data.erase(m_data.begin()+elementId); - } - /** - * @brief Get the number of element in the hash table - * @return number of elements - */ - size_t size() const { - return m_data.size(); - } - /** - * @brief get an element with his id. - * @param[in] _pos Position on the element in the hash table. - * @return requested element at this position. - * @note this is a dangerous use of the hash table. Maybe you will use a simple vector. - */ - MY_TYPE& operator[] (size_t _pos) { - return getValue(_pos); - } - /** - * @brief get an element with his id. - * @param[in] _pos Position on the element in the hash table. - * @return requested element at this position. - * @note this is a dangerous use of the hash table. Maybe you will use a simple vector. - */ - const MY_TYPE& operator[] (size_t _pos) const { - return getValue(_pos); - } - /** - * @brief Get the name of the element at a specific position. - * @param[in] _pos Position of the element in the hash table. - * @return name of the element (key). - */ - const etk::String& getKey(size_t _pos) const { - // NOTE :Do not change log level, this generate error only in debug mode - #if DEBUG_LEVEL > 2 - if(_pos>m_data.size()){ - //TK_CRITICAL("Access to an inexistent data in hash : " << _pos << "/ " << m_data.size()); - } - #endif - return m_data[_pos]->m_key; - } - /** - * @brief Get all the element name (keys). - * @return a vector of all name (key). - */ - etk::Vector getKeys() const { - etk::Vector keys; - for (auto &it : m_data) { - if (it != nullptr) { - keys.pushBack(it->m_key); - } - } - return keys; - } - /** - * @brief Get a value of the hash table at a specific position. - * @param[in] _pos of the element in the hash table. - * @return Value available at this position. - */ - const MY_TYPE& getValue(size_t _pos) const { - // NOTE :Do not change log level, this generate error only in debug mode - #if DEBUG_LEVEL > 2 - if(_pos>m_data.size()){ - //TK_CRITICAL("Access to an inexistent data in hash : " << _pos << "/ " << m_data.size()); - } - #endif - return m_data[_pos]->m_value; - } - /** - * @copydoc getValue (size_t) - */ - MY_TYPE& getValue(size_t _pos) { - // NOTE :Do not change log level, this generate error only in debug mode - #if DEBUG_LEVEL > 2 - if(_pos>m_data.size()){ - //TK_CRITICAL("Access to an inexistent data in hash : " << _pos << "/ " << m_data.size()); - } - #endif - return m_data[_pos]->m_value; - } - }; -} - diff --git a/etk/Map.hpp b/etk/Map.hpp index bb59a07..fb6d2a4 100644 --- a/etk/Map.hpp +++ b/etk/Map.hpp @@ -187,16 +187,16 @@ namespace etk { * @brief Get reference on the current Element * @return the reference on the current Element */ - ETK_MAP_TYPE_DATA& operator-> () const { + etk::Pair* operator-> () const { //TK_CHECK_INOUT(m_current < m_map->size()); - return &m_map->getValue(m_current); + return &m_map->getContent(m_current); } /** * @brief Get reference on the current Element * @return the reference on the current Element */ - ETK_MAP_TYPE_DATA& operator* () const { - return m_map->getValue(m_current); + etk::Pair& operator* () const { + return m_map->getContent(m_current); } /** * @brief Get Key on the current Element @@ -219,7 +219,14 @@ namespace etk { ETK_MAP_TYPE_DATA& getValue () { return m_map->getValue(m_current); } - + bool operator== (const Iterator& _obj) const{ + return m_map == _obj.m_map + && m_current == _obj.m_current; + } + bool operator!= (const Iterator& _obj) const { + return m_map != _obj.m_map + || m_current != _obj.m_current; + } private: Iterator(const etk::Map * _obj, int32_t _pos): m_current(_pos), @@ -312,7 +319,7 @@ namespace etk { //TK_ERROR("try to access at an inexistent Map element : " << _key); return g_error; } - return m_data[elementId]->m_value; + return m_data[elementId]->second; } /** * @brief Get an copy Element an a special position @@ -393,13 +400,19 @@ namespace etk { size_t size() const { return m_data.size(); } + const etk::Pair& getContent(size_t _pos) const { + return *m_data[_pos]; + } + etk::Pair& getContent(size_t _pos) { + return *m_data[_pos]; + } /** * @brief Get the name of the element at a specific position. * @param[in] _pos Position of the element in the Map table. * @return name of the element (key). */ const ETK_MAP_TYPE_KEY& getKey(size_t _pos) const { - return m_data[_pos]->m_key; + return m_data[_pos]->first; } /** * @brief Get all the element name (keys). @@ -409,7 +422,7 @@ namespace etk { etk::Vector keys; for (auto &it : m_data) { if (it != nullptr) { - keys.pushBack(it->m_key); + keys.pushBack(it->first); } } return etk::move(keys); @@ -455,10 +468,10 @@ namespace etk { * @return The Iterator */ Iterator end() { - return position(size()-1); + return position(size()); } const Iterator end() const { - return position(size()-1); + return position(size()); } Iterator find(const ETK_MAP_TYPE_KEY& _key) { diff --git a/etk/Pair.hpp b/etk/Pair.hpp index ad5ac90..3d2203d 100644 --- a/etk/Pair.hpp +++ b/etk/Pair.hpp @@ -12,6 +12,7 @@ namespace etk { template class Pair { public: + // this is bad for coding rules, but an idiom of c++ pair imposed by the STL ETK_PAIR_TYPE_1 first; ETK_PAIR_TYPE_2 second; Pair(): @@ -30,6 +31,14 @@ namespace etk { second(_pair.second) { } + bool operator== (const Pair& _obj) const{ + return first == _obj.first + && second == _obj.second; + } + bool operator!= (const Pair& _obj) const{ + return first != _obj.first + || second != _obj.second; + } }; template Pair makePair(ETK_PAIR_TYPE_1 _obj1, ETK_PAIR_TYPE_2 _obj2) { diff --git a/etk/RegEx.hpp b/etk/RegEx.hpp index 3eead66..ea5b7fe 100644 --- a/etk/RegEx.hpp +++ b/etk/RegEx.hpp @@ -12,7 +12,7 @@ #include #include #include -#include +#include #include #define TK_REG_DEBUG TK_HIDDEN diff --git a/etk/String.cpp b/etk/String.cpp index 0733c70..c19f7c9 100644 --- a/etk/String.cpp +++ b/etk/String.cpp @@ -933,6 +933,13 @@ etk::Vector etk::String::split(etk::String _val) const { return list; } +void etk::String::append(Iterator _start, Iterator _stop) { + while (_stop != _start) { + pushBack(*_start); + ++_start; + } +} + namespace etk { long double string_to_long_double(const etk::String& _obj) { return _obj.to(); diff --git a/etk/String.hpp b/etk/String.hpp index a886775..f63b2de 100644 --- a/etk/String.hpp +++ b/etk/String.hpp @@ -420,6 +420,7 @@ namespace etk { * @param[in] _value Value to set at the new element */ void resize(size_t _newSize, char _value = '\0'); + void append(Iterator _start, Iterator _stop); /***************************************************** * == operator *****************************************************/ diff --git a/etk/Vector.hpp b/etk/Vector.hpp index 4040d6d..e2ca59a 100644 --- a/etk/Vector.hpp +++ b/etk/Vector.hpp @@ -189,7 +189,7 @@ namespace etk { * @brief Get reference on the current Element * @return the reference on the current Element */ - ETK_VECTOR_TYPE & operator-> () const { + ETK_VECTOR_TYPE* operator-> () const { //TK_CHECK_INOUT(m_current < m_vector->size()); return &m_vector->get(m_current); } @@ -197,7 +197,7 @@ namespace etk { * @brief Get reference on the current Element * @return the reference on the current Element */ - ETK_VECTOR_TYPE & operator* () const { + ETK_VECTOR_TYPE& operator* () const { //TK_CHECK_INOUT(m_current < m_vector->size()); return m_vector->get(m_current); } @@ -626,10 +626,10 @@ namespace etk { * @return The Iterator */ Iterator end() { - return position( size()-1 ); + return position(size()); } const Iterator end() const { - return position( size()-1 ); + return position(size()); } /** diff --git a/etk/archive/Archive.cpp b/etk/archive/Archive.cpp index bbd9e6c..df4fada 100644 --- a/etk/archive/Archive.cpp +++ b/etk/archive/Archive.cpp @@ -17,7 +17,7 @@ const etk::String& etk::Archive::getName(size_t _id) const { size_t id = 0; for (auto &it : m_content) { if (id == _id) { - return it.getKey(); + return it.first; } ++id; } @@ -30,7 +30,7 @@ const etk::ArchiveContent& etk::Archive::getContent(size_t _id) const { size_t id = 0; for (auto &it : m_content) { if (id == _id) { - return it.getValue(); + return it.second; } ++id; } @@ -43,7 +43,7 @@ const etk::ArchiveContent& etk::Archive::getContent(const etk::String& _key) con if (it == m_content.end()) { return g_error; } - return it->getValue(); + return it->second; } @@ -55,9 +55,9 @@ bool etk::Archive::exist(const etk::String& _key) const { void etk::Archive::display() { std::unique_lock lock(m_mutex); for (auto &it : m_content) { - int32_t size = it.getValue().getTheoricSize(); - int32_t sizeR = it.getValue().size(); - TK_INFO(" element : " << it.getKey() << " size=" << size << " allocated=" << sizeR); + int32_t size = it.second.getTheoricSize(); + int32_t sizeR = it.second.size(); + TK_INFO(" element : " << it.first << " size=" << size << " allocated=" << sizeR); } } @@ -118,11 +118,11 @@ void etk::Archive::open(const etk::String& _key) { TK_ERROR("Try open an unexistant file : '" << _key << "'"); return; } - if (it->getValue().getNumberOfRef()==-1) { + if (it->second.getNumberOfRef()==-1) { loadFile(it); - it->getValue().increaseRef(); + it->second.increaseRef(); } - it->getValue().increaseRef(); + it->second.increaseRef(); } void etk::Archive::close(const etk::String& _key) { @@ -132,10 +132,10 @@ void etk::Archive::close(const etk::String& _key) { TK_ERROR("Try close an unexistant file : '" << _key << "'"); return; } - if (it->getValue().getNumberOfRef()==0){ + if (it->second.getNumberOfRef()==0){ TK_ERROR("Try close one more time the file : '" << _key << "'"); } else { - it->getValue().decreaseRef(); + it->second.decreaseRef(); } } diff --git a/etk/archive/Zip.cpp b/etk/archive/Zip.cpp index b87538d..2c75789 100644 --- a/etk/archive/Zip.cpp +++ b/etk/archive/Zip.cpp @@ -38,7 +38,7 @@ etk::archive::Zip::Zip(const etk::String& _fileName, uint64_t _offset) : // find directory ... } else { TK_INFO("find file : " << tmpFileName); - m_content.insert(etk::Pair(tmpFileName, etk::ArchiveContent(tmpFileInfo.uncompressed_size))); + m_content.set(tmpFileName, etk::ArchiveContent(tmpFileInfo.uncompressed_size)); } /* Go the the next entry listed in the zip file. */ if((iii+1) < m_info.number_entry) { diff --git a/etk/move.hpp b/etk/move.hpp index f2f5c71..f219da5 100644 --- a/etk/move.hpp +++ b/etk/move.hpp @@ -1 +1,32 @@ -https://stackoverflow.com/questions/7510182/how-does-stdmove-transfer-values-into-rvalues \ No newline at end of file +/** + * @author Edouard DUPIN + * @copyright 2011, Edouard DUPIN, all right reserved + * @license MPL-2 (see license file) + */ +#pragma once + + +namespace etk { + template + struct _Remove_reference { + // remove reference + typedef ETK_MOVE_TYPE m_type; + }; + template + struct _Remove_reference { + // remove reference + typedef ETK_MOVE_TYPE m_type; + }; + template + struct _Remove_reference { + // remove rvalue reference + typedef ETK_MOVE_TYPE m_type; + }; + + template inline + typename etk::_Remove_reference::m_type&& move(ETK_MOVE_TYPE&& _obj) { + // forward _Arg as movable + return ((typename etk::_Remove_reference::m_type&&)_obj); + } + +} diff --git a/etk/os/FSNode.cpp b/etk/os/FSNode.cpp index 428f68b..aae1aa9 100644 --- a/etk/os/FSNode.cpp +++ b/etk/os/FSNode.cpp @@ -489,11 +489,6 @@ etk::String getApplicationPath() { TK_INFO("Binary name : " << binaryName); return binaryName; } -#if __CPP_VERSION__ >= 2011 - etk::UString getUApplicationPath() { - return etk::toUString(getApplicationPath()); - } -#endif void etk::initDefaultFolder(const char* _applName) { baseApplName = _applName; @@ -652,20 +647,10 @@ void etk::initDefaultFolder(const char* _applName) { etk::String etk::getUserHomeFolder() { return baseFolderHome; } -#if __CPP_VERSION__ >= 2011 - etk::UString etk::getUUserHomeFolder() { - return etk::toUString(baseFolderHome); - } -#endif etk::String etk::getUserRunFolder() { return baseRunPath; } -#if __CPP_VERSION__ >= 2011 - etk::UString etk::getUUserRunFolder() { - return etk::toUString(baseRunPath); - } -#endif #ifdef HAVE_ZIP_DATA @@ -704,23 +689,6 @@ etk::FSNode::FSNode(const etk::String& _nodeName) : { privateSetName(_nodeName); } -#if __CPP_VERSION__ >= 2011 - etk::FSNode::FSNode(const etk::UString& _nodeName) : - m_userFileName(""), - m_type(etk::FSNType_unknow), - m_typeNode(etk::typeNode_unknow), - m_PointerFile(nullptr), - m_timeCreate(0), - m_timeModify(0), - m_timeAccess(0) - #ifdef HAVE_ZIP_DATA - , m_zipContent(nullptr), - m_zipReadingOffset(-1) - #endif - { - privateSetName(_nodeName); - } -#endif etk::FSNode::~FSNode() { @@ -939,11 +907,6 @@ void etk::FSNode::privateSetName(etk::String _newName) { updateFileSystemProperty(); TK_DBG_MODE("6 : type : [" << m_typeNode << "] right :" << m_rights); } -#if __CPP_VERSION__ >= 2011 - void etk::FSNode::privateSetName(const etk::UString& _newName) { - privateSetName(etk::toString(_newName)); - } -#endif bool directCheckFile(etk::String _tmpFileNameDirect, bool _checkInAPKIfNeeded = false) { #ifdef HAVE_ZIP_DATA @@ -962,11 +925,6 @@ bool directCheckFile(etk::String _tmpFileNameDirect, bool _checkInAPKIfNeeded = } return true; } -#if __CPP_VERSION__ >= 2011 - bool directCheckFile(etk::UString _tmpFileNameDirect, bool _checkInAPKIfNeeded = false) { - return directCheckFile(etk::toString(_tmpFileNameDirect)); - } -#endif // Now we generate the real FS path: void etk::FSNode::generateFileSystemPath() { bool forceLibFolder(false); @@ -1026,7 +984,6 @@ void etk::FSNode::generateFileSystemPath() { case etk::FSNType_theme: case etk::FSNType_themeData: { - //etk::UString myCompleateName=baseFolderData + "/theme/"; etk::String themeName(""); etk::String basicName(m_userFileName); size_t firstPos = m_userFileName.find(':'); @@ -1230,11 +1187,6 @@ bool etk::FSNode::setRight(etk::FSNodeRight _newRight) { void etk::FSNode::setName(const etk::String& _newName) { privateSetName(_newName); } -#if __CPP_VERSION__ >= 2011 - void etk::FSNode::setName(const etk::UString& _newName) { - privateSetName(_newName); - } -#endif etk::String etk::FSNode::getNameFolder() const { size_t lastPos = m_systemFileName.rfind('/'); @@ -1243,20 +1195,10 @@ etk::String etk::FSNode::getNameFolder() const { } return ""; } -#if __CPP_VERSION__ >= 2011 - etk::UString etk::FSNode::getUNameFolder() const { - return etk::toUString(getNameFolder()); - } -#endif etk::String etk::FSNode::getFileSystemName() const { return m_systemFileName; } -#if __CPP_VERSION__ >= 2011 - etk::UString etk::FSNode::getUFileSystemName() const { - return etk::toUString(getFileSystemName()); - } -#endif etk::String etk::FSNode::getName() const { etk::String output(""); @@ -1296,11 +1238,6 @@ etk::String etk::FSNode::getName() const { output += m_userFileName; return output; } -#if __CPP_VERSION__ >= 2011 - etk::UString etk::FSNode::getUName() const { - return etk::toUString(getName()); - } -#endif etk::String etk::FSNode::getNameFile() const { size_t lastPos = m_systemFileName.rfind('/'); @@ -1309,11 +1246,6 @@ etk::String etk::FSNode::getNameFile() const { } return ""; } -#if __CPP_VERSION__ >= 2011 - etk::UString etk::FSNode::getUNameFile() const { - return etk::toUString(getNameFile()); - } -#endif etk::String etk::FSNode::getRelativeFolder() const { etk::String tmppp = getName(); @@ -1353,11 +1285,6 @@ etk::String etk::FSNode::getRelativeFolder() const { TK_DBG_MODE(" ==> : ''" ); return ""; } -#if __CPP_VERSION__ >= 2011 - etk::UString etk::FSNode::getURelativeFolder() const { - return etk::toUString(getRelativeFolder()); - } -#endif bool etk::FSNode::touch() { @@ -1389,11 +1316,6 @@ bool etk::FSNode::move(const etk::String& _path) { return true; } } -#if __CPP_VERSION__ >= 2011 - bool etk::FSNode::move(const etk::UString& _path) { - return move(etk::toString(_path)); - } -#endif bool etk::FSNode::remove() { if (getNodeType()==etk::typeNode_folder) { @@ -1426,11 +1348,6 @@ etk::String etk::FSNode::timeCreatedString() const { } return tmpTime; } -#if __CPP_VERSION__ >= 2011 - etk::UString etk::FSNode::timeUCreatedString() const { - return etk::toUString(timeCreatedString()); - } -#endif uint64_t etk::FSNode::timeModified() const { return m_timeModify; @@ -1444,11 +1361,6 @@ etk::String etk::FSNode::timeModifiedString() const { } return tmpTime; } -#if __CPP_VERSION__ >= 2011 - etk::UString etk::FSNode::timeUModifiedString() const { - return etk::toUString(timeModifiedString()); - } -#endif uint64_t etk::FSNode::timeAccessed() const { return m_timeAccess; @@ -1462,11 +1374,6 @@ etk::String etk::FSNode::timeAccessedString() const { } return tmpTime; } -#if __CPP_VERSION__ >= 2011 - etk::UString etk::FSNode::timeUAccessedString() const { - return etk::toUString(timeAccessedString()); - } -#endif /* Operator : */ @@ -1903,16 +1810,6 @@ void etk::FSNode::folderGetRecursiveFiles(etk::Vector& _output, boo } return; } -#if __CPP_VERSION__ >= 2011 - void etk::FSNode::folderGetRecursiveFiles(etk::Vector& _output, bool _recursiveEnable) { - _output.clear(); - etk::Vector tmpVal; - folderGetRecursiveFiles(tmpVal, _recursiveEnable); - for (size_t iii=0; iii= 2011 - etk::UString etk::FSNode::fileUGetExtention() { - return etk::toUString(fileGetExtention()); - } -#endif uint64_t etk::FSNode::fileSize() { if (m_typeNode != etk::typeNode_file) { @@ -2317,99 +2209,43 @@ static etk::Map g_listTheme; void etk::theme::setName(const etk::String& _refName, const etk::String& _folderName) { TK_WARNING("Change theme : '" << _refName << "' : '" << _folderName << "'"); - #if __CPP_VERSION__ >= 2011 - auto it = g_listTheme.find(_refName); - #else - etk::Map::iterator it = g_listTheme.find(_refName); - #endif - if (it != g_listTheme.end()) { - it->second = _folderName; - return; - } - g_listTheme.insert(etk::Pair(_refName, _folderName)); + g_listTheme.set(_refName, _folderName); } -#if __CPP_VERSION__ >= 2011 - void etk::theme::setName(const etk::UString& _refName, const etk::UString& _folderName) { - setName(etk::toString(_refName), etk::toString(_folderName)); - } -#endif etk::String etk::theme::getName(const etk::String& _refName) { - #if __CPP_VERSION__ >= 2011 - auto it = g_listTheme.find(_refName); - #else - etk::Map::iterator it = g_listTheme.find(_refName); - #endif + auto it = g_listTheme.find(_refName); if (it != g_listTheme.end()) { return it->second; } return _refName; } -#if __CPP_VERSION__ >= 2011 - etk::UString etk::theme::getName(const etk::UString& _refName) { - return etk::toUString(getName(etk::toString(_refName))); - } -#endif // get the list of all the theme folder availlable in the user Home/appl etk::Vector etk::theme::list() { etk::Vector keys; - #if __CPP_VERSION__ >= 2011 - for (auto &it : g_listTheme) { - keys.pushBack(it.first); - } - #else - for (etk::Map::iterator it(g_listTheme.begin()); it != g_listTheme.end(); ++it) { - keys.pushBack(it->first); - } - #endif + for (auto &it : g_listTheme) { + keys.pushBack(it.first); + } return keys; } -#if __CPP_VERSION__ >= 2011 - etk::Vector etk::theme::listU() { - etk::Vector keys; - for (auto &it : g_listTheme) { - keys.pushBack(etk::toUString(it.first)); - } - return keys; - } -#endif static etk::Map g_listThemeDefault; void etk::theme::setNameDefault(const etk::String& _refName, const etk::String& _folderName) { - #if __CPP_VERSION__ >= 2011 - auto it = g_listThemeDefault.find(_refName); - #else - etk::Map::iterator it = g_listThemeDefault.find(_refName); - #endif + auto it = g_listThemeDefault.find(_refName); if (it != g_listThemeDefault.end()) { it->second = _folderName; return; } - g_listThemeDefault.insert(etk::Pair(_refName, _folderName)); + g_listThemeDefault.set(_refName, _folderName); } -#if __CPP_VERSION__ >= 2011 - void etk::theme::setNameDefault(const etk::UString& _refName, const etk::UString& _folderName) { - setNameDefault(etk::toString(_refName), etk::toString(_folderName)); - } -#endif etk::String etk::theme::getNameDefault(const etk::String& _refName) { - #if __CPP_VERSION__ >= 2011 - auto it=g_listThemeDefault.find(_refName); - #else - etk::Map::iterator it = g_listThemeDefault.find(_refName); - #endif + auto it = g_listThemeDefault.find(_refName); if (it != g_listThemeDefault.end()) { return it->second; } return "default"; } -#if __CPP_VERSION__ >= 2011 - etk::UString etk::theme::getNameDefault(const etk::UString& _refName) { - return etk::toUString(getNameDefault(etk::toString(_refName))); - } -#endif @@ -2420,16 +2256,11 @@ etk::String etk::theme::getNameDefault(const etk::String& _refName) { * -------------------------------------------------------------------------- */ uint64_t etk::FSNodeGetSize(const etk::String& _path) { etk::FSNode tmpNode(_path); - if (false==tmpNode.exist()) { + if (tmpNode.exist() == false) { return 0; } return tmpNode.fileSize(); } -#if __CPP_VERSION__ >= 2011 - uint64_t etk::FSNodeGetSize(const etk::UString& _path) { - return FSNodeGetSize(etk::toString(_path)); - } -#endif bool etk::FSNodeRemove(const etk::String& _path) { etk::FSNode tmpNode(_path); @@ -2438,11 +2269,6 @@ bool etk::FSNodeRemove(const etk::String& _path) { } return tmpNode.remove(); } -#if __CPP_VERSION__ >= 2011 - bool etk::FSNodeRemove(const etk::UString& _path) { - return FSNodeRemove(etk::toString(_path)); - } -#endif int64_t etk::FSNodeGetCount(const etk::String& _path) { etk::FSNode tmpNode(_path); @@ -2451,31 +2277,16 @@ int64_t etk::FSNodeGetCount(const etk::String& _path) { } return tmpNode.folderCount(); } -#if __CPP_VERSION__ >= 2011 - int64_t etk::FSNodeGetCount(const etk::UString& _path) { - return FSNodeGetCount(etk::toString(_path)); - } -#endif bool etk::FSNodeCreate(const etk::String& _path, etk::FSNodeRight _right, enum etk::typeNode _type) { // TODO : return false; } -#if __CPP_VERSION__ >= 2011 - bool etk::FSNodeCreate(const etk::UString& _path, etk::FSNodeRight _right, enum etk::typeNode _type) { - return FSNodeCreate(etk::toString(_path), _right, _type); - } -#endif bool etk::FSNodeExist(const etk::String& _path) { etk::FSNode tmpNode(_path); return tmpNode.exist(); } -#if __CPP_VERSION__ >= 2011 - bool etk::FSNodeExist(const etk::UString& _path) { - return FSNodeExist(etk::toString(_path)); - } -#endif bool etk::FSNodeMove(const etk::String& _path1, const etk::String& _path2) { etk::FSNode tmpNode(_path1); @@ -2488,71 +2299,36 @@ bool etk::FSNodeMove(const etk::String& _path1, const etk::String& _path2) { //move the node return tmpNode.move(_path2); } -#if __CPP_VERSION__ >= 2011 - bool etk::FSNodeMove(const etk::UString& _path1, const etk::UString& _path2) { - return FSNodeMove(etk::toString(_path1), etk::toString(_path2)); - } -#endif etk::FSNodeRight etk::FSNodeGetRight(const etk::String& _path) { etk::FSNode tmpNode(_path); return tmpNode.getRight(); } -#if __CPP_VERSION__ >= 2011 - etk::FSNodeRight etk::FSNodeGetRight(const etk::UString& _path) { - return FSNodeGetRight(etk::toString(_path)); - } -#endif enum etk::typeNode etk::FSNodeGetType(const etk::String& _path) { etk::FSNode tmpNode(_path); return tmpNode.getNodeType(); } -#if __CPP_VERSION__ >= 2011 - enum etk::typeNode etk::FSNodeGetType(const etk::UString& _path) { - return FSNodeGetType(etk::toString(_path)); - } -#endif uint64_t etk::FSNodeGetTimeCreated(const etk::String& _path) { etk::FSNode tmpNode(_path); return tmpNode.timeCreated(); } -#if __CPP_VERSION__ >= 2011 - uint64_t etk::FSNodeGetTimeCreated(const etk::UString& _path) { - return FSNodeGetTimeCreated(etk::toString(_path)); - } -#endif uint64_t etk::FSNodeGetTimeModified(const etk::String& _path) { etk::FSNode tmpNode(_path); return tmpNode.timeModified(); } -#if __CPP_VERSION__ >= 2011 - uint64_t etk::FSNodeGetTimeModified(const etk::UString& _path) { - return FSNodeGetTimeModified(etk::toString(_path)); - } -#endif uint64_t etk::FSNodeGetTimeAccessed(const etk::String& _path) { etk::FSNode tmpNode(_path); return tmpNode.timeAccessed(); } -#if __CPP_VERSION__ >= 2011 - uint64_t etk::FSNodeGetTimeAccessed(const etk::UString& _path) { - return FSNodeGetTimeAccessed(etk::toString(_path)); - } -#endif bool etk::FSNodeTouch(const etk::String& _path) { etk::FSNode tmpNode(_path); return tmpNode.touch(); } -#if __CPP_VERSION__ >= 2011 - bool etk::FSNodeTouch(const etk::UString& _path) { - return FSNodeTouch(etk::toString(_path)); - } -#endif bool etk::FSNodeEcho(const etk::String& _path, const etk::String& _dataTowrite) { etk::FSNode tmpNode(_path); @@ -2572,11 +2348,6 @@ bool etk::FSNodeEcho(const etk::String& _path, const etk::String& _dataTowrite) } return tmpNode.fileClose(); } -#if __CPP_VERSION__ >= 2011 - bool etk::FSNodeEcho(const etk::UString& _path, const etk::UString& _dataTowrite) { - return FSNodeEcho(etk::toString(_path), etk::toString(_dataTowrite)); - } -#endif bool etk::FSNodeEchoAdd(const etk::String& _path, const etk::String& _dataTowrite) { etk::FSNode tmpNode(_path); @@ -2596,11 +2367,6 @@ bool etk::FSNodeEchoAdd(const etk::String& _path, const etk::String& _dataTowrit } return tmpNode.fileClose(); } -#if __CPP_VERSION__ >= 2011 - bool etk::FSNodeEchoAdd(const etk::UString& _path, const etk::UString& _dataTowrite) { - return FSNodeEchoAdd(etk::toString(_path), etk::toString(_dataTowrite)); - } -#endif void etk::FSNodeHistory(const etk::String& _path, int32_t _historyCount) { // step 1 : Move the file to prevent writing error @@ -2614,11 +2380,6 @@ void etk::FSNodeHistory(const etk::String& _path, int32_t _historyCount) { etk::FSNodeMove(_path, _path + "-1"); } } -#if __CPP_VERSION__ >= 2011 - void etk::FSNodeHistory(const etk::UString& _path, int32_t _historyCount) { - return FSNodeHistory(etk::toString(_path), _historyCount); - } -#endif etk::String etk::FSNodeReadAllData(const etk::String& _path) { etk::String output; diff --git a/etk/os/FSNode.hpp b/etk/os/FSNode.hpp index cb53c80..1469ab5 100644 --- a/etk/os/FSNode.hpp +++ b/etk/os/FSNode.hpp @@ -196,9 +196,6 @@ namespace etk { * @param[in] _path Path of the curent file /folder ... */ FSNode(const etk::String& _path = "~"); - #if __CPP_VERSION__ >= 2011 - FSNode(const etk::UString& _path); - #endif /** * @brief Destructor * @note you will have some warning if you did not close your files @@ -218,9 +215,6 @@ namespace etk { * @param[in] _newName Name of the Node */ void privateSetName(etk::String _newName); - #if __CPP_VERSION__ >= 2011 - void privateSetName(const etk::UString& _newName); - #endif private: #ifdef HAVE_ZIP_DATA /** @@ -269,52 +263,34 @@ namespace etk { * @return false action not done */ void setName(const etk::String& _newName); - #if __CPP_VERSION__ >= 2011 - void setName(const etk::UString& _newName); - #endif /** * @brief Get the Generate FileSystem name * @return the requested filename */ etk::String getFileSystemName() const; - #if __CPP_VERSION__ >= 2011 - etk::UString getUFileSystemName() const; - #endif /** * @brief Get the current folder of the Node. (file system name) * @return the common name define (like /xxxxx/xxxxx/ or c:/xxxxx/xxxxx/) * @note Auto remove of ../../../ and // */ etk::String getNameFolder() const; - #if __CPP_VERSION__ >= 2011 - etk::UString getUNameFolder() const; - #endif /** * @brief Get the current compleate node name (file system name) * @return All the user name definition (like /xxxxx/xxxxx/myFile.kkk or c:/xxxxx/xxxxx/myFile.kkk) * @note Auto remove of ../../../ and // */ etk::String getName() const; - #if __CPP_VERSION__ >= 2011 - etk::UString getUName() const; - #endif /** * @brief Get the file or current file name (if it was a file) * @return the name of the node (like myFile.kkk) */ etk::String getNameFile() const; - #if __CPP_VERSION__ >= 2011 - etk::UString getUNameFile() const; - #endif /** * @brief Get the current folder of the Node. * @return the common name define (like DATA:xxxxx/xxxxx/) * @note Auto remove of ../../../ and // */ etk::String getRelativeFolder() const; - #if __CPP_VERSION__ >= 2011 - etk::UString getURelativeFolder() const; - #endif /** * @brief update the Time of the file with the current time * @return true : action done @@ -328,9 +304,6 @@ namespace etk { * @return false : action not done */ bool move(const etk::String& _path); - #if __CPP_VERSION__ >= 2011 - bool move(const etk::UString& _path); - #endif /** * @brief Get the node type (DATA/DIRECT...) * @return the requested type @@ -354,9 +327,6 @@ namespace etk { * @return The time requested (in string) */ etk::String timeCreatedString() const; - #if __CPP_VERSION__ >= 2011 - etk::UString timeUCreatedString() const; - #endif /** * @brief Get the modifying time of the File * @return The time requested @@ -367,9 +337,6 @@ namespace etk { * @return The time requested (in string) */ etk::String timeModifiedString() const; - #if __CPP_VERSION__ >= 2011 - etk::UString timeUModifiedString() const; - #endif /** * @brief Get the Accessed time of the File * @return The time requested @@ -380,9 +347,6 @@ namespace etk { * @return The time requested (in string) */ etk::String timeAccessedString() const; - #if __CPP_VERSION__ >= 2011 - etk::UString timeUAccessedString() const; - #endif /** * @brief copy the other FSnode ==> for vector * @param[in] _obj input node @@ -458,9 +422,6 @@ namespace etk { * @param[in] _recursiveEnable Activate the recursive mode (enable by default) */ void folderGetRecursiveFiles(etk::Vector& _output, bool _recursiveEnable=true); - #if __CPP_VERSION__ >= 2011 - void folderGetRecursiveFiles(etk::Vector& _output, bool _recursiveEnable=true); - #endif /** * @brief Check if the file have an extention ( ***.ccc) * @return true The file have an extention. @@ -472,9 +433,6 @@ namespace etk { * @return the requested extention */ etk::String fileGetExtention(); - #if __CPP_VERSION__ >= 2011 - etk::UString fileUGetExtention(); - #endif /** * @brief Get the File size * @return the requested size @@ -616,11 +574,6 @@ namespace etk { fileRead(&value[0], sizeof(char), fileSize()/sizeof(char)); return value; } - #if __CPP_VERSION__ >= 2011 - etk::UString fileReadAllU32String() { - return utf8::convertUnicode(fileReadAllString()); - } - #endif /** * @brief Write all the vector in a file * @param[in] _value Data to write in the File @@ -636,11 +589,6 @@ namespace etk { void fileWriteAll(const etk::String& _value) { fileWrite(static_cast(&(_value[0])), sizeof(char), _value.size()/sizeof(char)); } - #if __CPP_VERSION__ >= 2011 - void fileWriteAll(const etk::UString& _value) { - fileWriteAll(u32char::convertToUtf8(_value)); - } - #endif private: /** * @brief Order the list of subnode the folder first and the alphabetical order @@ -677,17 +625,11 @@ namespace etk { * @return the home folder : like : "/home/machin/" */ etk::String getUserHomeFolder(); - #if __CPP_VERSION__ >= 2011 - etk::UString getUUserHomeFolder(); - #endif /** * @brief Get the folder of the Program is running * @return the basic folder name (ex : run ./appl in the pwd=/home/machin/sousFolder ==> this return the pwd folder) */ etk::String getUserRunFolder(); - #if __CPP_VERSION__ >= 2011 - etk::UString getUUserRunFolder(); - #endif namespace theme { // TODO : Add an INIT ... @@ -697,49 +639,29 @@ namespace etk { * @param[in] _folderName The associated folder of the Theme (like "myTheme/folder/folder2/") */ void setName(const etk::String& _refName, const etk::String& _folderName); - #if __CPP_VERSION__ >= 2011 - //! @previous - void setName(const etk::UString& _refName, const etk::UString& _folderName); - #endif /** * @brief get the folder from a Reference theme * @param[in] _refName Theme cathegorie ex : "GUI" "SHADER" "DEFAULT" * @return the path of the theme */ etk::String getName(const etk::String& _refName); - #if __CPP_VERSION__ >= 2011 - //! @previous - etk::UString getName(const etk::UString& _refName); - #endif /** * @brief Set the default folder of a subset of a theme ... * @param[in] _refName Theme cathegorie ex : "GUI" "SHADER" "DEFAULT" * @param[in] _folderName The associated default folder of the Theme (like "myTheme/color/default/") */ void setNameDefault(const etk::String& _refName, const etk::String& _folderName); - #if __CPP_VERSION__ >= 2011 - //! @previous - void setNameDefault(const etk::UString& _refName, const etk::UString& _folderName); - #endif /** * @brief get the default folder from a Reference theme * @param[in] _refName Theme cathegorie ex : "GUI" "SHADER" "DEFAULT" * @return the path of the theme */ etk::String getNameDefault(const etk::String& _refName); - #if __CPP_VERSION__ >= 2011 - //! @previous - etk::UString getNameDefault(const etk::UString& _refName); - #endif /** * @brief Get the list of all the theme folder availlable in the user Home/appl * @return The list of elements */ etk::Vector list(); - #if __CPP_VERSION__ >= 2011 - //! @previous - etk::Vector listU(); - #endif }; /** * @brief Get the size of a specific file @@ -747,9 +669,6 @@ namespace etk { * @return size of the file */ uint64_t FSNodeGetSize(const etk::String& _path); - #if __CPP_VERSION__ >= 2011 - uint64_t FSNodeGetSize(const etk::UString& _path); - #endif /** * @brief Simple access for : Remove folder and subFolder, files pipes ... @@ -758,9 +677,6 @@ namespace etk { * @return false : An error occured */ bool FSNodeRemove(const etk::String& _path); - #if __CPP_VERSION__ >= 2011 - bool FSNodeRemove(const etk::UString& _path); - #endif /** * @brief Simple access for : count the number of element in a path (if it is not a path ==> return -1) * @param[in] _path Folder/File/Pipe path of the node @@ -768,9 +684,6 @@ namespace etk { * @return -1 : An error occured */ int64_t FSNodeGetCount(const etk::String& _path); - #if __CPP_VERSION__ >= 2011 - int64_t FSNodeGetCount(const etk::UString& _path); - #endif /** * @brief Simple access for : Create a file or a folder depending of the request * @param[in] _path Folder/File/Pipe path of the node @@ -780,9 +693,6 @@ namespace etk { * @return false : An error occured */ bool FSNodeCreate(const etk::String& _path, etk::FSNodeRight _right, enum etk::typeNode _type=etk::typeNode_folder); - #if __CPP_VERSION__ >= 2011 - bool FSNodeCreate(const etk::UString& _path, etk::FSNodeRight _right, enum etk::typeNode _type=etk::typeNode_folder); - #endif /** * @brief Simple access for : chexk the exestance of an element * @param[in] _path Folder/File/Pipe path of the node @@ -790,9 +700,6 @@ namespace etk { * @return false : An error occured */ bool FSNodeExist(const etk::String& _path); - #if __CPP_VERSION__ >= 2011 - bool FSNodeExist(const etk::UString& _path); - #endif /** * @brief Simple access for : chexk the exestance of an element * @param[in] _path1 Folder/File/Pipe path of the node sources @@ -801,9 +708,6 @@ namespace etk { * @return false : An error occured */ bool FSNodeMove(const etk::String& _path1, const etk::String& _path2); - #if __CPP_VERSION__ >= 2011 - bool FSNodeMove(const etk::UString& _path1, const etk::UString& _path2); - #endif /** * @brief Simple access for : Get right of the current Node * @param[in] _path Folder/File/Pipe path of the node @@ -811,9 +715,6 @@ namespace etk { * @return false : An error occured */ etk::FSNodeRight FSNodeGetRight(const etk::String& _path); - #if __CPP_VERSION__ >= 2011 - etk::FSNodeRight FSNodeGetRight(const etk::UString& _path); - #endif /** * @brief Simple access for : Get type of the current node * @param[in] _path Folder/File/Pipe path of the node @@ -821,9 +722,6 @@ namespace etk { * @return false : An error occured */ enum etk::typeNode FSNodeGetType(const etk::String& _path); - #if __CPP_VERSION__ >= 2011 - enum etk::typeNode FSNodeGetType(const etk::UString& _path); - #endif /** * @brief Simple access for : Getting creation time of the current node * @param[in] _path Folder/File/Pipe path of the node @@ -831,9 +729,6 @@ namespace etk { * @return false : An error occured */ uint64_t FSNodeGetTimeCreated(const etk::String& _path); - #if __CPP_VERSION__ >= 2011 - uint64_t FSNodeGetTimeCreated(const etk::UString& _path); - #endif /** * @brief Simple access for : Getting Modification time of the current node * @param[in] _path Folder/File/Pipe path of the node @@ -841,9 +736,6 @@ namespace etk { * @return false : An error occured */ uint64_t FSNodeGetTimeModified(const etk::String& _path); - #if __CPP_VERSION__ >= 2011 - uint64_t FSNodeGetTimeModified(const etk::UString& _path); - #endif /** * @brief Simple access for : Getting Accessing time of the current node * @param[in] _path Folder/File/Pipe path of the node @@ -851,9 +743,6 @@ namespace etk { * @return false : An error occured */ uint64_t FSNodeGetTimeAccessed(const etk::String& _path); - #if __CPP_VERSION__ >= 2011 - uint64_t FSNodeGetTimeAccessed(const etk::UString& _path); - #endif /** * @brief Simple access for : Update Modification time with the current time of the node (>) * @param[in] _path Folder/File/Pipe path of the node @@ -861,9 +750,6 @@ namespace etk { * @return false : An error occured */ bool FSNodeTouch(const etk::String& _path); - #if __CPP_VERSION__ >= 2011 - bool FSNodeTouch(const etk::UString& _path); - #endif /** * @brief Simple access for : Basic write on the node (like console echo) * @param[in] _path Folder/File/Pipe path of the node @@ -872,9 +758,6 @@ namespace etk { * @return false : An error occured */ bool FSNodeEcho(const etk::String& _path, const etk::String& _dataTowrite); - #if __CPP_VERSION__ >= 2011 - bool FSNodeEcho(const etk::UString& _path, const etk::UString& _dataTowrite); - #endif /** * @brief Simple access for : Basic write on the node (like console echo) in adding mode (>>) * @param[in] _path Folder/File/Pipe path of the node @@ -883,18 +766,12 @@ namespace etk { * @return false : An error occured */ bool FSNodeEchoAdd(const etk::String& _path, const etk::String& _dataTowrite); - #if __CPP_VERSION__ >= 2011 - bool FSNodeEchoAdd(const etk::UString& _path, const etk::UString& _dataTowrite); - #endif /** * @brief move file to generate an history of the current file * @param[in] _path Folder/File/Pipe path of the node * @param[in] _historyCount number of saved file in the history (-xxx) */ void FSNodeHistory(const etk::String& _path, int32_t _historyCount); - #if __CPP_VERSION__ >= 2011 - void FSNodeHistory(const etk::UString& _path, int32_t _historyCount); - #endif /** * @brief Read all the data from a file * @param[in] _path Folder/File/Pipe path of the node diff --git a/etk/os/FSNodeRight.cpp b/etk/os/FSNodeRight.cpp index 5ae6e0a..4e0ca02 100644 --- a/etk/os/FSNodeRight.cpp +++ b/etk/os/FSNodeRight.cpp @@ -147,11 +147,6 @@ void etk::FSNodeRight::setOtherRunable(bool _newStatus) { m_rights |= right_other_execute; } } -#if __CPP_VERSION__ >= 2011 - etk::UString etk::FSNodeRight::getURight() const { - return etk::toUString(getRight()); - } -#endif etk::String etk::FSNodeRight::getRight() const { etk::String tmp; diff --git a/etk/os/FSNodeRight.hpp b/etk/os/FSNodeRight.hpp index c943b86..d78ec90 100644 --- a/etk/os/FSNodeRight.hpp +++ b/etk/os/FSNodeRight.hpp @@ -9,7 +9,6 @@ #pragma once #include -#include namespace etk { /** @@ -139,13 +138,6 @@ namespace etk { * @param[in] _newStatus New value to set on the file/folder/... */ void setOtherRunable(bool _newStatus); - #if __CPP_VERSION__ >= 2011 - /** - * @brief Get the write written in a string mode (like in linux rw-r-----) - * @return String with the right in string - */ - etk::UString getURight() const; - #endif /** * @brief Get the write written in a string mode (like in linux rw-r-----) * @return String with the right in string diff --git a/etk/types.hpp b/etk/types.hpp index 4d803c7..393e206 100644 --- a/etk/types.hpp +++ b/etk/types.hpp @@ -97,30 +97,7 @@ namespace etk { } return out; } - - template - struct _Remove_reference { - // remove reference - typedef ETK_MOVE_TYPE m_type; - }; - template - struct _Remove_reference { - // remove reference - typedef ETK_MOVE_TYPE m_type; - }; - template - struct _Remove_reference { - // remove rvalue reference - typedef ETK_MOVE_TYPE m_type; - }; - - template inline - typename etk::_Remove_reference::m_type&& move(ETK_MOVE_TYPE&& _obj) { - // forward _Arg as movable - return ((typename etk::_Remove_reference::m_type&&)_obj); - } - } - +#include #include diff --git a/etk/utf8.cpp b/etk/utf8.cpp index b24b960..2d6106c 100644 --- a/etk/utf8.cpp +++ b/etk/utf8.cpp @@ -136,7 +136,7 @@ etk::String u32char::convertToUtf8(const etk::UString& _input) { size_t u32char::strlen(const char32_t* _input) { uint32_t out = 0; - while (_input != 0) { + while (*_input != 0) { out++; _input++; } diff --git a/lutin_etk-base.py b/lutin_etk-base.py index e624f51..e6064ca 100644 --- a/lutin_etk-base.py +++ b/lutin_etk-base.py @@ -39,7 +39,6 @@ def configure(target, my_module): 'etk/types.hpp', 'etk/stdTools.hpp', 'etk/Buffer.hpp', - 'etk/Hash.hpp', 'etk/String.hpp', 'etk/UString.hpp', 'etk/utf8.hpp', @@ -47,6 +46,7 @@ def configure(target, my_module): 'etk/Stream.hpp', 'etk/Pair.hpp', 'etk/Map.hpp', + 'etk/move.hpp', ]) # build in C++ mode diff --git a/test/testHash.cpp b/test/testHash.cpp index e1d2daf..43039a9 100644 --- a/test/testHash.cpp +++ b/test/testHash.cpp @@ -8,17 +8,17 @@ #include -#include +#include #include -#define NAME "Hash" +#define NAME "MAP_unorderer" -TEST(TestEtkHash, Creation) { - etk::Hash testData; +TEST(TestEtkMap_unordered, Creation) { + etk::Map testData(0,false); EXPECT_EQ(testData.size(), 0); } -TEST(TestEtkHash, AddElement) { - etk::Hash testData; +TEST(TestEtkMap_unordered, AddElement) { + etk::Map testData(0,false); testData.add("TEST", "testData"); testData.add("TEST2", "22222222222222222"); testData.add("TEST4", "4444444444444444444"); @@ -30,8 +30,8 @@ TEST(TestEtkHash, AddElement) { EXPECT_EQ(testData["TEST3"], "3333333333"); } -TEST(TestEtkHash, OverWriteElement) { - etk::Hash testData; +TEST(TestEtkMap_unordered, OverWriteElement) { + etk::Map testData(0,false); testData.add("TEST", "testData"); testData.add("TEST2", "22222222222222222"); testData.add("TEST4", "4444444444444444444"); @@ -44,8 +44,8 @@ TEST(TestEtkHash, OverWriteElement) { EXPECT_EQ(testData["TEST"], "testData22"); } -TEST(TestEtkHash, RemoveElement) { - etk::Hash testData; +TEST(TestEtkMap_unordered, RemoveElement) { + etk::Map testData(0,false); testData.add("TEST", "testData"); testData.add("TEST2", "22222222222222222"); testData.add("TEST4", "4444444444444444444"); @@ -53,20 +53,20 @@ TEST(TestEtkHash, RemoveElement) { testData.add("TEST1", "11111111111"); testData.add("TEST55", "555555555555555((((5555"); EXPECT_EQ(testData.size(), 6); - testData.remove("TEST1"); + testData.erase("TEST1"); EXPECT_EQ(testData.size(), 5); } -TEST(TestEtkHash, ExistElement) { - etk::Hash testData; +TEST(TestEtkMap_unordered, ExistElement) { + etk::Map testData(0,false); testData.add("TEST", "testData"); testData.add("TEST2", "22222222222222222"); EXPECT_EQ(testData.exist("TEST"), true); EXPECT_EQ(testData.exist("Tlskdfjgmsqlkdfjgmlqskdfg"), false); } -TEST(TestEtkHash, clear) { - etk::Hash testData; +TEST(TestEtkMap_unordered, clear) { + etk::Map testData(0,false); testData.add("TEST", "1"); testData.add("TEST2", "2"); EXPECT_EQ(testData.size(), 2); @@ -74,16 +74,16 @@ TEST(TestEtkHash, clear) { EXPECT_EQ(testData.size(), 0); } -TEST(TestEtkHash, getKey) { - etk::Hash testData; +TEST(TestEtkMap_unordered, getKey) { + etk::Map testData(0,false); testData.add("TEST", "1"); testData.add("TEST2", "2"); testData.add("TEST3", "3"); EXPECT_EQ(testData.getKey(1), "TEST2"); } -TEST(TestEtkHash, getKeys) { - etk::Hash testData; +TEST(TestEtkMap_unordered, getKeys) { + etk::Map testData(0,false); testData.add("TEST", "1"); testData.add("TEST2", "2"); testData.add("TEST3", "3");