115 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			115 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
| //
 | |
| // ENTRCR.CPP
 | |
| //
 | |
| //  Source file for ArchiveLib 2.0
 | |
| //
 | |
| //  Copyright (c) Greenleaf Software, Inc. 1994-1996
 | |
| //  All Rights Reserved
 | |
| //
 | |
| // CONTENTS
 | |
| //
 | |
| //  ALEntry::CompressionRatio()
 | |
| //  ALEntryCompressionRatio()
 | |
| //
 | |
| // REVISION HISTORY
 | |
| //
 | |
| //   February 14, 1996  2.0A : New release
 | |
| //
 | |
| 
 | |
| #include "arclib.h"
 | |
| #if !defined( AL_IBM )
 | |
| #pragma hdrstop
 | |
| #endif
 | |
| 
 | |
| //
 | |
| // NAME
 | |
| //
 | |
| //  ALEntry::CompressionRatio()
 | |
| //
 | |
| // PLATFORMS/ENVIRONMENTS
 | |
| //
 | |
| //  Console  Windows  PM
 | |
| //  C++  C  VB  Delphi
 | |
| //
 | |
| // SHORT DESCRIPTION
 | |
| //
 | |
| //  Return the compression ratio for an entry in terms of 0-100%
 | |
| //
 | |
| // C++ SYNOPSIS
 | |
| //
 | |
| //  #include "arclib.h"
 | |
| //
 | |
| //  int ALEntry::CompressionRatio()
 | |
| //
 | |
| // C SYNOPSIS
 | |
| //
 | |
| //  #include "arclib.h"
 | |
| //
 | |
| //  int ALEntryCompressionRatio( hALEntry this_object );
 | |
| //
 | |
| // VB SYNOPSIS
 | |
| //
 | |
| //  Declare Function ALEntryCompressionRatio Lib "AL20LW"
 | |
| //    (ByVal this_object&) As Integer
 | |
| //
 | |
| // DELPHI SYNOPSIS
 | |
| //
 | |
| //  function ALEntryCompressionRatio( this_object : hALEntry ) : Integer;
 | |
| //
 | |
| // ARGUMENTS
 | |
| //
 | |
| //  this_object  :  A reference or pointer to the ALEntry object that
 | |
| //                  you are intereseted in.  Note that the C++
 | |
| //                  version of this call doesn't have an explicit argument
 | |
| //                  here, since it has access to 'this' implicitly.
 | |
| //
 | |
| // DESCRIPTION
 | |
| //
 | |
| //  This calculates and returns the compression ratio.  We don't store the
 | |
| //  ratio in ALEntry, because it is so darned easy to calculate when
 | |
| //  we need it.  However, there are going to be times when we don't have
 | |
| //  it.
 | |
| //
 | |
| // RETURNS
 | |
| //
 | |
| //  The integer representing the compression ratio.  The ratio is a number
 | |
| //  from 0 to 100 (or maybe more) with 0 being perfect compression.
 | |
| //
 | |
| //  It is possible to get a -1 back from this routine if the compression
 | |
| //  ratio is not presently known.  This will be the case if you have
 | |
| //  not created the archive yet, or have a new object that hasn't been
 | |
| //  inserted yet.
 | |
| //
 | |
| // EXAMPLE
 | |
| //
 | |
| // SEE ALSO
 | |
| //
 | |
| // REVISION HISTORY
 | |
| //
 | |
| //   February 14, 1996  2.0A : New release
 | |
| //
 | |
| 
 | |
| int AL_PROTO
 | |
| ALEntry::CompressionRatio()  /* Tag public function */
 | |
| {
 | |
|     long uncompressed_size = mpStorageObject->GetSize();
 | |
| 
 | |
|     if ( uncompressed_size  <= 0 )
 | |
|         return -1;
 | |
|     if ( mlCompressedSize <= 0 )
 | |
|        return -1;
 | |
|     return (int) ( 100 * mlCompressedSize / uncompressed_size );
 | |
| }
 | |
| 
 | |
| #if !defined( AL_NO_C )
 | |
| 
 | |
| extern "C" AL_LINKAGE int AL_FUNCTION
 | |
| ALEntryCompressionRatio( hALEntry this_object )  /* Tag public function */
 | |
| {
 | |
|     AL_ASSERT_OBJECT( this_object, ALEntry, "ALEntryCompressionRatio" );
 | |
|     return ( (ALEntry *) this_object )->CompressionRatio();
 | |
| }
 | |
| 
 | |
| #endif
 | |
| 
 |