14#include "arcane/utils/ArcanePrecomp.h"
16#include "arcane/utils/UserDataList.h"
17#include "arcane/utils/String.h"
18#include "arcane/utils/TraceInfo.h"
19#include "arcane/utils/ArgumentException.h"
20#include "arcane/utils/IUserData.h"
35 typedef std::map<String,IUserData*> MapType;
64 Impl::MapType::const_iterator begin = m_p->m_list.begin();
65 Impl::MapType::const_iterator end = m_p->m_list.end();
66 for( ; begin!=end; ++begin )
67 begin->second->notifyDetach();
77 Impl::MapType::const_iterator i = m_p->m_list.find(name);
78 if (i!=m_p->m_list.end())
79 throw ArgumentException(A_FUNCINFO,String::format(
"key '{0}' already exists",name));
80 m_p->m_list.insert(std::make_pair(name,ud));
90 Impl::MapType::const_iterator i = m_p->m_list.find(name);
91 if (i==m_p->m_list.end()){
105 Impl::MapType::iterator i = m_p->m_list.find(name);
106 if (i==m_p->m_list.end()){
111 i->second->notifyDetach();
112 m_p->m_list.erase(i);
Interface pour une donnée utilisateur attachée à un autre objet.
virtual void notifyAttach()=0
Méthode exécutée lorsque l'instance est attachée.
virtual void clear()
Supprime toutes les données utilisateurs.
virtual void removeData(const String &name, bool allow_null=false)
Supprime la donnée associèe au nom name.
virtual IUserData * data(const String &name, bool allow_null=false) const
Donnée associée à name.
virtual void setData(const String &name, IUserData *ud)
Positionne le user-data associé au nom name.
~UserDataList()
Libère les ressources.
Exception lorsqu'un argument est invalide.
Chaîne de caractères unicode.