Index: trunk/src/uid.cc
===================================================================
--- trunk/src/uid.cc	(revision 59)
+++ trunk/src/uid.cc	(revision 59)
@@ -0,0 +1,52 @@
+// Copyright (C) 2012-2013 ChaosForge / Kornel Kisielewicz
+// http://chaosforge.org/
+//
+// This file is part of NV Libraries.
+// For conditions of distribution and use, see copyright notice in nv.hh
+
+#include "nv/uid.hh"
+
+using namespace nv;
+
+uid_store::uid_store()
+	: m_map(), m_current(0)
+{
+	
+}
+
+object* uid_store::get( uid auid ) const
+{
+	map::const_iterator i = m_map.find( auid );
+	if ( i != m_map.end() )
+	{
+		return i->second;
+	}
+	return nullptr;
+}
+
+bool uid_store::remove( uid auid )
+{
+	return m_map.erase( auid ) != 0;
+}
+
+void uid_store::insert( object* o, uid auid )
+{
+	m_map[ auid ] = o;
+}
+
+uid uid_store::insert( object* o )
+{
+	uid u = request_uid();
+	m_map[ u ] = o;
+	return u;
+}
+
+uid uid_store::request_uid()
+{
+	return ++m_current;
+}
+
+uid_store::~uid_store()
+{
+	// no-op
+}
