historical/toontown-classic.git/panda/include/load_prc_file.h

78 lines
2.2 KiB
C
Raw Normal View History

2024-01-16 11:20:27 -06:00
/**
* 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 load_prc_file.h
* @author drose
* @date 2004-10-22
*/
#ifndef LOAD_PRC_FILE_H
#define LOAD_PRC_FILE_H
#include "pandabase.h"
#include "filename.h"
class ConfigPage;
class HashVal;
BEGIN_PUBLISH
/**
* A convenience function for loading explicit prc files from a disk file or
* from within a multifile (via the virtual file system). Save the return
* value and pass it to unload_prc_file() if you ever want to unload this file
* later.
*
* The filename is first searched along the default prc search path, and then
* also along the model path, for convenience.
*
* This function is defined in putil instead of in dtool with the read of the
* prc stuff, so that it can take advantage of the virtual file system (which
* is defined in express), and the model path (which is in putil).
*/
EXPCL_PANDA_PUTIL ConfigPage *
load_prc_file(const Filename &filename);
/**
* Another convenience function to load a prc file from an explicit string,
* which represents the contents of the prc file.
*
* The first parameter is an arbitrary name to assign to this in-memory prc
* file. Supply a filename if the data was read from a file, or use any other
* name that is meaningful to you. The name is only used when the set of
* loaded prc files is listed.
*/
EXPCL_PANDA_PUTIL ConfigPage *
load_prc_file_data(const std::string &name, const std::string &data);
/**
* Unloads (and deletes) a ConfigPage that represents a prc file that was
* previously loaded by load_prc_file(). Returns true if successful, false if
* the file was unknown.
*
* After this function has been called, the ConfigPage pointer is no longer
* valid and should not be used again.
*/
EXPCL_PANDA_PUTIL bool
unload_prc_file(ConfigPage *page);
#ifdef HAVE_OPENSSL
/**
* Fills HashVal with the hash from the current prc file state as reported by
* ConfigVariableManager::write_prc_variables().
*/
EXPCL_PANDA_PUTIL void
hash_prc_variables(HashVal &hash);
#endif // HAVE_OPENSSL
END_PUBLISH
#endif