236 lines
		
	
	
		
			4.8 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			236 lines
		
	
	
		
			4.8 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
| //
 | |
| //  STATUS.INL
 | |
| //
 | |
| //  Source file for ArchiveLib 2.0
 | |
| //  Inline function definitions
 | |
| //
 | |
| //  Copyright (c) Greenleaf Software, Inc. 1994-1996
 | |
| //  All Rights Reserved
 | |
| //
 | |
| // CONTENTS
 | |
| //
 | |
| //  ALStatus::GetStatusCode()
 | |
| //  ALStatus::operator int()
 | |
| //  operator<<( ostream& stream, const ALStatus &status )
 | |
| //
 | |
| // DESCRIPTION
 | |
| //
 | |
| //  Inline functions for class ALStatus.
 | |
| //
 | |
| // REVISION HISTORY
 | |
| //
 | |
| //   February 14, 1996  2.0A : New release
 | |
| 
 | |
| //
 | |
| // NAME
 | |
| //
 | |
| //  ALStatus::GetStatusCode()
 | |
| //
 | |
| // PLATFORMS/ENVIRONMENTS
 | |
| //
 | |
| //  Console  Windows  PM
 | |
| //  C++
 | |
| //
 | |
| // SHORT DESCRIPTION
 | |
| //
 | |
| //  Read the status integer.
 | |
| //
 | |
| // C++ SYNOPSIS
 | |
| //
 | |
| //  #include "arclib.h"
 | |
| //
 | |
| //  int ALStatus::GetStatusCode()
 | |
| //
 | |
| // C SYNOPSIS
 | |
| //
 | |
| //  None.
 | |
| //
 | |
| // VB SYNOPSIS
 | |
| //
 | |
| //  None.
 | |
| //
 | |
| // DELPHI SYNOPSIS
 | |
| //
 | |
| //  None.
 | |
| //
 | |
| // ARGUMENTS
 | |
| //
 | |
| //  None.
 | |
| //
 | |
| // DESCRIPTION
 | |
| //
 | |
| //  Lots of objects in ArchiveLib carry around a status member.  The
 | |
| //  status member has two parts.  First, it has a numeric value that
 | |
| //  is 0 when things are cool and < 0 when things aren't.  This function
 | |
| //  takes care of returning that value.  The second part is the text
 | |
| //  of the error message, and we don't worry about that here.
 | |
| //
 | |
| //  So why no C/VB/Delphi translation for this function?  To simplify things,
 | |
| //  C and other programs have individual customized routines that know how
 | |
| //  to get the status from ALArchive, ALCompressors, etc.  That way
 | |
| //  they don't have to go through a two step process of getting the
 | |
| //  status member of an object first, then getting the integer value
 | |
| //  out of that status object.
 | |
| //
 | |
| // RETURNS
 | |
| //
 | |
| //  The integer value contained in the status member.
 | |
| //
 | |
| // EXAMPLE
 | |
| //
 | |
| // SEE ALSO
 | |
| //
 | |
| // REVISION HISTORY
 | |
| //
 | |
| //   February 14, 1996  2.0A : New release
 | |
| //
 | |
| 
 | |
| inline int AL_INLINE_PROTO
 | |
| ALStatus::GetStatusCode()  /* Tag public function */
 | |
| {
 | |
|     return miStatus;
 | |
| }
 | |
| 
 | |
| //
 | |
| // NAME
 | |
| //
 | |
| //  ALStatus::operator int()
 | |
| //
 | |
| // PLATFORMS/ENVIRONMENTS
 | |
| //
 | |
| //  Console  Windows  PM
 | |
| //  C++
 | |
| //
 | |
| // SHORT DESCRIPTION
 | |
| //
 | |
| //  Get the status integer.
 | |
| //
 | |
| // C++ SYNOPSIS
 | |
| //
 | |
| //  #include "arclib.h"
 | |
| //
 | |
| //  inline ALStatus::operator int()
 | |
| //
 | |
| // C SYNOPSIS
 | |
| //
 | |
| //  None.
 | |
| //
 | |
| // VB SYNOPSIS
 | |
| //
 | |
| //  None.
 | |
| //
 | |
| // DELPHI SYNOPSIS
 | |
| //
 | |
| //  None.
 | |
| //
 | |
| // ARGUMENTS
 | |
| //
 | |
| //  None.
 | |
| //
 | |
| // DESCRIPTION
 | |
| //
 | |
| //  Lots of objects in ArchiveLib carry around a status member.  The
 | |
| //  status member has two parts.  First, it has a numeric value that
 | |
| //  is 0 when things are cool and < 0 when things aren't.  This function
 | |
| //  takes care of returning that value.  The second part is the text
 | |
| //  of the error message, and we don't worry about that here.
 | |
| //
 | |
| //  This overloaded operator int is just the ticket for converting an
 | |
| //  ALStatus member to its integer whenever needed.
 | |
| //
 | |
| // RETURNS
 | |
| //
 | |
| //  The integer value contained in the status member.
 | |
| //
 | |
| // EXAMPLE
 | |
| //
 | |
| // SEE ALSO
 | |
| //
 | |
| // REVISION HISTORY
 | |
| //
 | |
| //   February 14, 1996  2.0A : New release
 | |
| //
 | |
| 
 | |
| inline AL_INLINE_PROTO
 | |
| ALStatus::operator int()  /* Tag public function */
 | |
| {
 | |
|     return miStatus;
 | |
| }
 | |
| 
 | |
| //
 | |
| // NAME
 | |
| //
 | |
| //  ostream& operator<<( ostream& , const ALStatus &)
 | |
| //
 | |
| // PLATFORMS/ENVIRONMENTS
 | |
| //
 | |
| //  Console  Windows  PM
 | |
| //  C++
 | |
| //
 | |
| // SHORT DESCRIPTION
 | |
| //
 | |
| //  Send the text description of an ALStatus out a stream.
 | |
| //
 | |
| // C++ SYNOPSIS
 | |
| //
 | |
| //  #include "arclib.h"
 | |
| //
 | |
| //  inline ostream& operator<<( ostream& stream, const ALStatus &status )
 | |
| //
 | |
| // C SYNOPSIS
 | |
| //
 | |
| //  None.
 | |
| //
 | |
| // VB SYNOPSIS
 | |
| //
 | |
| //  None.
 | |
| //
 | |
| // DELPHI SYNOPSIS
 | |
| //
 | |
| //  None.
 | |
| //
 | |
| // ARGUMENTS
 | |
| //
 | |
| //  None.
 | |
| //
 | |
| // DESCRIPTION
 | |
| //
 | |
| //  Lots of objects in ArchiveLib carry around a status member.  The
 | |
| //  status member has two parts.  First, it has a numeric value that
 | |
| //  is 0 when things are cool and < 0 when things aren't.  Whoever
 | |
| //  set the message to a value less than zero is also responsible for
 | |
| //  adding a text description of the message to the status member.  That
 | |
| //  text description is what gets output to the stream in this function.
 | |
| //
 | |
| // RETURNS
 | |
| //
 | |
| //  A reference to the output stream, so you can cascade the output.
 | |
| //
 | |
| // EXAMPLE
 | |
| //
 | |
| // SEE ALSO
 | |
| //
 | |
| // REVISION HISTORY
 | |
| //
 | |
| //   February 14, 1996  2.0A : New release
 | |
| //
 | |
| 
 | |
| inline ostream&
 | |
| operator<<( ostream& stream, const ALStatus AL_DLL_FAR &status )  /* Tag public function */
 | |
| {
 | |
| #if defined( AL_USING_DLL ) && !defined( AL_LARGE_MODEL ) && !defined( AL_FLAT_MODEL )
 | |
|     const char _far *p = status.GetStatusDetail();
 | |
|     char *near_string = new char[ _fstrlen( p ) + 1 ];
 | |
|     if ( near_string ) {
 | |
|         _fstrcpy( near_string, p );
 | |
|         stream << near_string;
 | |
|         delete near_string;
 | |
|     } else
 | |
|          stream << "Memory allocation failure!";
 | |
|     return stream;
 | |
| #else
 | |
|     return stream << status.GetStatusDetail();
 | |
| #endif
 | |
| }
 | |
| 
 |