89 lines
2.8 KiB
Text
89 lines
2.8 KiB
Text
/**
|
|
* 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."
|
|
*
|
|
* @file interrogateDatabase.I
|
|
* @author drose
|
|
* @date 2000-08-01
|
|
*/
|
|
|
|
/**
|
|
* 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();
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 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 std::string &name) {
|
|
check_latest();
|
|
return lookup(name, _types_by_name, LT_type_name,
|
|
&InterrogateDatabase::freshen_types_by_name);
|
|
}
|
|
|
|
/**
|
|
* 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 std::string &name) {
|
|
check_latest();
|
|
return lookup(name, _types_by_scoped_name, LT_type_scoped_name,
|
|
&InterrogateDatabase::freshen_types_by_scoped_name);
|
|
}
|
|
|
|
/**
|
|
* 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 std::string &name) {
|
|
check_latest();
|
|
return lookup(name, _types_by_true_name, LT_type_true_name,
|
|
&InterrogateDatabase::freshen_types_by_true_name);
|
|
}
|
|
|
|
/**
|
|
* 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 std::string &name) {
|
|
check_latest();
|
|
return lookup(name, _manifests_by_name, LT_manifest_name,
|
|
&InterrogateDatabase::freshen_manifests_by_name);
|
|
}
|
|
|
|
/**
|
|
* 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 std::string &name) {
|
|
check_latest();
|
|
return lookup(name, _elements_by_name, LT_element_name,
|
|
&InterrogateDatabase::freshen_elements_by_name);
|
|
}
|
|
|
|
/**
|
|
* 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 std::string &name) {
|
|
check_latest();
|
|
return lookup(name, _elements_by_scoped_name, LT_element_scoped_name,
|
|
&InterrogateDatabase::freshen_elements_by_scoped_name);
|
|
}
|