116 lines
4.8 KiB
Plaintext
116 lines
4.8 KiB
Plaintext
// Filename: interrogateDatabase.I
|
|
// Created by: drose (01Aug00)
|
|
//
|
|
////////////////////////////////////////////////////////////////////
|
|
//
|
|
// PANDA 3D SOFTWARE
|
|
// Copyright (c) 2001, Disney Enterprises, Inc. All rights reserved
|
|
//
|
|
// All use of this software is subject to the terms of the Panda 3d
|
|
// Software license. You should have received a copy of this license
|
|
// along with this source code; you will also find a current copy of
|
|
// the license at http://www.panda3d.org/license.txt .
|
|
//
|
|
// To contact the maintainers of this program write to
|
|
// panda3d@yahoogroups.com .
|
|
//
|
|
////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////
|
|
// 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);
|
|
}
|