- Timestamp:
- 08/05/16 23:02:08 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/nv/core/resource.hh
r509 r513 20 20 21 21 #include <nv/core/logging.hh> 22 22 #include <nv/core/types.hh> 23 23 24 24 namespace nv … … 30 30 template < typename T > class resource_lock; 31 31 using resource_id = shash64; 32 using resource_type_id = shash64;32 using resource_type_id = thash64; 33 33 34 34 class resource_handler … … 211 211 Manager* register_resource_handler( Manager* handler ) 212 212 { 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>() ) ); 214 214 } 215 215 … … 217 217 resource< T > get( const string_view& id ) 218 218 { 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>() ); 220 220 NV_ASSERT( m != m_handlers.end(), "Resource type unrecognized!" ); 221 221 shash64 hid( id ); … … 229 229 resource< T > get( uint64 id ) 230 230 { 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>() ); 232 232 NV_ASSERT( m != m_handlers.end(), "Resource type unrecognized!" ); 233 233 shash64 hid( id ); … … 243 243 resource< T > add( shash64 id, T* value ) 244 244 { 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>() ); 246 246 NV_ASSERT( m != m_handlers.end(), "Resource type unrecognized!" ); 247 247 m->second->raw_add( id, value ); … … 252 252 void remove( shash64 id ) 253 253 { 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 ); 255 285 NV_ASSERT( m != m_handlers.end(), "Resource type unrecognized!" ); 256 286 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 );273 287 } 274 288 … … 279 293 delete *i; 280 294 } 295 296 281 297 protected: 282 298
Note: See TracChangeset
for help on using the changeset viewer.