220 lines
8.3 KiB
Plaintext
Executable File
220 lines
8.3 KiB
Plaintext
Executable File
// Filename: p3dPackage.I
|
|
// Created by: drose (12Jun09)
|
|
//
|
|
////////////////////////////////////////////////////////////////////
|
|
//
|
|
// 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: P3DPackage::get_info_ready
|
|
// Access: Public
|
|
// Description: Returns true if the package file information has been
|
|
// downloaded and verified and is ready to be consulted,
|
|
// false if it is not yet available.
|
|
////////////////////////////////////////////////////////////////////
|
|
inline bool P3DPackage::
|
|
get_info_ready() const {
|
|
return _info_ready;
|
|
}
|
|
|
|
////////////////////////////////////////////////////////////////////
|
|
// Function: P3DPackage::get_download_size
|
|
// Access: Public
|
|
// Description: If get_info_ready() is true but get_ready() is false,
|
|
// it means the package is ready to be downloaded. In
|
|
// this case, this method returns the number of bytes
|
|
// that need to be downloaded for this package. This is
|
|
// intended to be used to estimate the download time for
|
|
// this package relative to other packages, for instance
|
|
// to update a progress bar sensibly.
|
|
////////////////////////////////////////////////////////////////////
|
|
inline size_t P3DPackage::
|
|
get_download_size() const {
|
|
return _download_size;
|
|
}
|
|
|
|
////////////////////////////////////////////////////////////////////
|
|
// Function: P3DPackage::get_ready
|
|
// Access: Public
|
|
// Description: Returns true if the package has been downloaded and
|
|
// verified and is ready to be used, false if it has
|
|
// not.
|
|
////////////////////////////////////////////////////////////////////
|
|
inline bool P3DPackage::
|
|
get_ready() const {
|
|
return _ready;
|
|
}
|
|
|
|
////////////////////////////////////////////////////////////////////
|
|
// Function: P3DPackage::get_failed
|
|
// Access: Public
|
|
// Description: Returns true if the package cannot be made ready, for
|
|
// instance because the download server is down.
|
|
////////////////////////////////////////////////////////////////////
|
|
inline bool P3DPackage::
|
|
get_failed() const {
|
|
return _failed;
|
|
}
|
|
|
|
////////////////////////////////////////////////////////////////////
|
|
// Function: P3DPackage::get_host
|
|
// Access: Public
|
|
// Description: Returns the host server which offers this package for
|
|
// download.
|
|
////////////////////////////////////////////////////////////////////
|
|
inline P3DHost *P3DPackage::
|
|
get_host() const {
|
|
return _host;
|
|
}
|
|
|
|
////////////////////////////////////////////////////////////////////
|
|
// Function: P3DPackage::get_package_dir
|
|
// Access: Public
|
|
// Description: Returns the directory into which this package is
|
|
// installed.
|
|
////////////////////////////////////////////////////////////////////
|
|
inline const string &P3DPackage::
|
|
get_package_dir() const {
|
|
return _package_dir;
|
|
}
|
|
|
|
////////////////////////////////////////////////////////////////////
|
|
// Function: P3DPackage::get_package_name
|
|
// Access: Public
|
|
// Description: Returns the name of this package. This is an
|
|
// internal name, used to generate filenames and the
|
|
// like; it will generally be all-lowercase and will not
|
|
// contain spaces. See also get_package_display_name()
|
|
// for a name suitable for displaying to the user.
|
|
////////////////////////////////////////////////////////////////////
|
|
inline const string &P3DPackage::
|
|
get_package_name() const {
|
|
return _package_name;
|
|
}
|
|
|
|
////////////////////////////////////////////////////////////////////
|
|
// Function: P3DPackage::get_package_version
|
|
// Access: Public
|
|
// Description: Returns the version string of this package.
|
|
////////////////////////////////////////////////////////////////////
|
|
inline const string &P3DPackage::
|
|
get_package_version() const {
|
|
return _package_version;
|
|
}
|
|
|
|
////////////////////////////////////////////////////////////////////
|
|
// Function: P3DPackage::get_package_display_name
|
|
// Access: Public
|
|
// Description: Returns the display_name name of this package, as set
|
|
// in the desc file.
|
|
////////////////////////////////////////////////////////////////////
|
|
inline const string &P3DPackage::
|
|
get_package_display_name() const {
|
|
return _package_display_name;
|
|
}
|
|
|
|
////////////////////////////////////////////////////////////////////
|
|
// Function: P3DPackage::get_xconfig
|
|
// Access: Public
|
|
// Description: Returns the <config> entry of the package desc file,
|
|
// if any, or NULL if it was not present.
|
|
////////////////////////////////////////////////////////////////////
|
|
inline const TiXmlElement *P3DPackage::
|
|
get_xconfig() const {
|
|
return _xconfig;
|
|
}
|
|
|
|
////////////////////////////////////////////////////////////////////
|
|
// Function: P3DPackage::get_desc_file_pathname
|
|
// Access: Public
|
|
// Description: Returns the full path to the package's desc file. If
|
|
// this is a "solo" type package, the desc file itself
|
|
// represents the entire contents of the package.
|
|
////////////////////////////////////////////////////////////////////
|
|
inline const string &P3DPackage::
|
|
get_desc_file_pathname() const {
|
|
return _desc_file_pathname;
|
|
}
|
|
|
|
////////////////////////////////////////////////////////////////////
|
|
// Function: P3DPackage::get_desc_file_dirname
|
|
// Access: Public
|
|
// Description: Returns the relative path, on the host, of the
|
|
// directory that contains the desc file (and to which
|
|
// all of the paths in the desc file are relative).
|
|
////////////////////////////////////////////////////////////////////
|
|
inline const string &P3DPackage::
|
|
get_desc_file_dirname() const {
|
|
return _desc_file_dirname;
|
|
}
|
|
|
|
////////////////////////////////////////////////////////////////////
|
|
// Function: P3DPackage::get_archive_file_pathname
|
|
// Access: Public
|
|
// Description: Returns the full path to the package's uncompressed
|
|
// archive file. This is only valid if get_ready() is
|
|
// true and the package is not a "solo" package.
|
|
////////////////////////////////////////////////////////////////////
|
|
inline string P3DPackage::
|
|
get_archive_file_pathname() const {
|
|
return _uncompressed_archive.get_pathname(_package_dir);
|
|
}
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////
|
|
// Function: P3DPackage::InstallStep::get_effort
|
|
// Access: Public
|
|
// Description: Returns the relative amount of effort of this step.
|
|
////////////////////////////////////////////////////////////////////
|
|
inline double P3DPackage::InstallStep::
|
|
get_effort() const {
|
|
return _bytes_needed * _bytes_factor;
|
|
}
|
|
|
|
////////////////////////////////////////////////////////////////////
|
|
// Function: P3DPackage::InstallStep::get_progress
|
|
// Access: Public
|
|
// Description: Returns the progress of this step, in the range 0..1.
|
|
////////////////////////////////////////////////////////////////////
|
|
inline double P3DPackage::InstallStep::
|
|
get_progress() const {
|
|
if (_bytes_needed == 0) {
|
|
return 1.0;
|
|
}
|
|
return min((double)_bytes_done / (double)_bytes_needed, 1.0);
|
|
}
|
|
|
|
////////////////////////////////////////////////////////////////////
|
|
// Function: P3DPackage::InstallStep::report_step_progress
|
|
// Access: Public
|
|
// Description: Notifies the Package that progress has been made on
|
|
// this particular step.
|
|
////////////////////////////////////////////////////////////////////
|
|
inline void P3DPackage::InstallStep::
|
|
report_step_progress() {
|
|
_package->report_progress(this);
|
|
}
|
|
|
|
////////////////////////////////////////////////////////////////////
|
|
// Function: P3DPackage::RequiredPackage::Constructor
|
|
// Access: Public
|
|
// Description:
|
|
////////////////////////////////////////////////////////////////////
|
|
inline P3DPackage::RequiredPackage::
|
|
RequiredPackage(const string &package_name, const string &package_version,
|
|
P3DHost *host) :
|
|
_package_name(package_name),
|
|
_package_version(package_version),
|
|
_host(host)
|
|
{
|
|
}
|
|
|