112 lines
4.6 KiB
Plaintext
112 lines
4.6 KiB
Plaintext
// Filename: interrogateDatabase.I
|
|
// Created by: drose (01Aug00)
|
|
//
|
|
////////////////////////////////////////////////////////////////////
|
|
//
|
|
// PANDA 3D SOFTWARE
|
|
// Copyright (c) Carnegie Mellon University. All rights reserved.
|
|
//
|
|
// All use of this software is subject to the terms of the revised BSD
|
|
// license. You should have received a copy of this license along
|
|
// with this source code in a file named "LICENSE."
|
|
//
|
|
////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////
|
|
// Function: InterrogateDatabase::check_latest
|
|
// Access: Public
|
|
// Description: Checks that all the latest data for all the libraries
|
|
// have been loaded. Loads them if not.
|
|
////////////////////////////////////////////////////////////////////
|
|
INLINE void InterrogateDatabase::
|
|
check_latest() {
|
|
if (!_requests.empty()) {
|
|
load_latest();
|
|
}
|
|
}
|
|
|
|
////////////////////////////////////////////////////////////////////
|
|
// Function: InterrogateDatabase::lookup_type_by_name
|
|
// Access: Public
|
|
// Description: Returns the TypeIndex associated with the first type
|
|
// found with the given name, or 0 if no type has this
|
|
// name.
|
|
////////////////////////////////////////////////////////////////////
|
|
INLINE TypeIndex InterrogateDatabase::
|
|
lookup_type_by_name(const string &name) {
|
|
check_latest();
|
|
return lookup(name, _types_by_name, LT_type_name,
|
|
&InterrogateDatabase::freshen_types_by_name);
|
|
}
|
|
|
|
////////////////////////////////////////////////////////////////////
|
|
// Function: InterrogateDatabase::lookup_type_by_scoped_name
|
|
// Access: Public
|
|
// Description: Returns the TypeIndex associated with the first type
|
|
// found with the given scoped name, or 0 if no type has
|
|
// this name.
|
|
////////////////////////////////////////////////////////////////////
|
|
INLINE TypeIndex InterrogateDatabase::
|
|
lookup_type_by_scoped_name(const string &name) {
|
|
check_latest();
|
|
return lookup(name, _types_by_scoped_name, LT_type_scoped_name,
|
|
&InterrogateDatabase::freshen_types_by_scoped_name);
|
|
}
|
|
|
|
////////////////////////////////////////////////////////////////////
|
|
// Function: InterrogateDatabase::lookup_type_by_true_name
|
|
// Access: Public
|
|
// Description: Returns the TypeIndex associated with the first type
|
|
// found with the given true name, or 0 if no type has
|
|
// this name.
|
|
////////////////////////////////////////////////////////////////////
|
|
INLINE TypeIndex InterrogateDatabase::
|
|
lookup_type_by_true_name(const string &name) {
|
|
check_latest();
|
|
return lookup(name, _types_by_true_name, LT_type_true_name,
|
|
&InterrogateDatabase::freshen_types_by_true_name);
|
|
}
|
|
|
|
////////////////////////////////////////////////////////////////////
|
|
// Function: InterrogateDatabase::lookup_manifest_by_name
|
|
// Access: Public
|
|
// Description: Returns the ManifestIndex associated with the first
|
|
// manifest found with the given name, or 0 if no
|
|
// manifest has this name.
|
|
////////////////////////////////////////////////////////////////////
|
|
INLINE ManifestIndex InterrogateDatabase::
|
|
lookup_manifest_by_name(const string &name) {
|
|
check_latest();
|
|
return lookup(name, _manifests_by_name, LT_manifest_name,
|
|
&InterrogateDatabase::freshen_manifests_by_name);
|
|
}
|
|
|
|
////////////////////////////////////////////////////////////////////
|
|
// Function: InterrogateDatabase::lookup_element_by_name
|
|
// Access: Public
|
|
// Description: Returns the ElementIndex associated with the first
|
|
// element found with the given name, or 0 if no element
|
|
// has this name.
|
|
////////////////////////////////////////////////////////////////////
|
|
INLINE ElementIndex InterrogateDatabase::
|
|
lookup_element_by_name(const string &name) {
|
|
check_latest();
|
|
return lookup(name, _elements_by_name, LT_element_name,
|
|
&InterrogateDatabase::freshen_elements_by_name);
|
|
}
|
|
|
|
////////////////////////////////////////////////////////////////////
|
|
// Function: InterrogateDatabase::lookup_element_by_scoped_name
|
|
// Access: Public
|
|
// Description: Returns the ElementIndex associated with the first
|
|
// element found with the given scoped name, or 0 if no
|
|
// element has this name.
|
|
////////////////////////////////////////////////////////////////////
|
|
INLINE ElementIndex InterrogateDatabase::
|
|
lookup_element_by_scoped_name(const string &name) {
|
|
check_latest();
|
|
return lookup(name, _elements_by_scoped_name, LT_element_scoped_name,
|
|
&InterrogateDatabase::freshen_elements_by_scoped_name);
|
|
}
|