Changeset 513


Ignore:
Timestamp:
08/05/16 23:02:08 (9 years ago)
Author:
epyon
Message:
  • changed resource_type_id to a thash64 instead of a shash64 - more representive to what it actually is
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/nv/core/resource.hh

    r509 r513  
    2020
    2121#include <nv/core/logging.hh>
    22 
     22#include <nv/core/types.hh>
    2323
    2424namespace nv
     
    3030        template < typename T > class resource_lock;
    3131        using resource_id = shash64;
    32         using resource_type_id = shash64;
     32        using resource_type_id = thash64;
    3333
    3434        class resource_handler
     
    211211                Manager* register_resource_handler( Manager* handler )
    212212                {
    213                         return static_cast<Manager*>( register_resource_handler( handler, resource_type_id( rtti_type_hash<T>::value ) ) );
     213                        return static_cast<Manager*>( register_resource_handler( handler, resource_type_id::create<T>() ) );
    214214                }
    215215
     
    217217                resource< T > get( const string_view& id )
    218218                {
    219                         auto m = m_handlers.find( resource_type_id( rtti_type_hash<T>::value ) );
     219                        auto m = m_handlers.find( resource_type_id::create<T>() );
    220220                        NV_ASSERT( m != m_handlers.end(), "Resource type unrecognized!" );
    221221                        shash64 hid( id );
     
    229229                resource< T > get( uint64 id )
    230230                {
    231                         auto m = m_handlers.find( resource_type_id( rtti_type_hash<T>::value ) );
     231                        auto m = m_handlers.find( resource_type_id::create<T>() );
    232232                        NV_ASSERT( m != m_handlers.end(), "Resource type unrecognized!" );
    233233                        shash64 hid( id );
     
    243243                resource< T > add( shash64 id, T* value )
    244244                {
    245                         auto m = m_handlers.find( resource_type_id( rtti_type_hash<T>::value ) );
     245                        auto m = m_handlers.find( resource_type_id::create<T>() );
    246246                        NV_ASSERT( m != m_handlers.end(), "Resource type unrecognized!" );
    247247                        m->second->raw_add( id, value );
     
    252252                void remove( shash64 id )
    253253                {
    254                         auto m = m_handlers.find( resource_type_id( rtti_type_hash<T>::value ) );
     254                        remove( resource_type_id::create<T>(), id );
     255                }
     256
     257                template < typename T >
     258                void rename( shash64 id, shash64 new_id )
     259                {
     260                        rename( resource_type_id::create<T>(), id, new_id );
     261                }
     262
     263                template < typename T > bool exists( shash64 id )
     264                {
     265                        return exists( resource_type_id::create<T>(), id );
     266                }
     267
     268                bool exists( resource_type_id tid, resource_id id )
     269                {
     270                        auto m = m_handlers.find( tid );
     271                        NV_ASSERT( m != m_handlers.end(), "Resource type unrecognized!" );
     272                        return m->second->exists( id );
     273                }
     274
     275                void rename( resource_type_id tid, resource_id id, resource_id new_id )
     276                {
     277                        auto m = m_handlers.find( tid );
     278                        NV_ASSERT( m != m_handlers.end(), "Resource type unrecognized!" );
     279                        m->second->rename( id, new_id );
     280                }
     281
     282                void remove( resource_type_id tid, resource_id id )
     283                {
     284                        auto m = m_handlers.find( tid );
    255285                        NV_ASSERT( m != m_handlers.end(), "Resource type unrecognized!" );
    256286                        m->second->remove( id );
    257                 }
    258 
    259                 template < typename T >
    260                 void rename( shash64 id, shash64 new_id )
    261                 {
    262                         auto m = m_handlers.find( resource_type_id( rtti_type_hash<T>::value ) );
    263                         NV_ASSERT( m != m_handlers.end(), "Resource type unrecognized!" );
    264                         m->second->rename( id, new_id );
    265                 }
    266 
    267                 template < typename T >
    268                 bool exists( shash64 id )
    269                 {
    270                         auto m = m_handlers.find( resource_type_id( rtti_type_hash<T>::value ) );
    271                         NV_ASSERT( m != m_handlers.end(), "Resource type unrecognized!" );
    272                         return m->second->exists( id );
    273287                }
    274288
     
    279293                                delete *i;
    280294                }
     295
     296
    281297        protected:
    282298
Note: See TracChangeset for help on using the changeset viewer.