503 lines
		
	
	
		
			22 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			503 lines
		
	
	
		
			22 KiB
		
	
	
	
		
			C++
		
	
	
		
			Executable File
		
	
	
	
	
| /*
 | |
|  * STOR.H
 | |
|  *
 | |
|  *  Header file for ArchiveLib 2.0
 | |
|  *
 | |
|  *  Copyright (c) 1994-1996 Greenleaf Software, Inc.
 | |
|  *  All Rights Reserved
 | |
|  *
 | |
|  * DESCRIPTION
 | |
|  *
 | |
|  *  This file contains the class declaration for the very important
 | |
|  *  base class ALStorage.
 | |
|  *
 | |
|  * CLASS DEFINITIONS:
 | |
|  *
 | |
|  *  ALStorage
 | |
|  *
 | |
|  * REVISION HISTORY
 | |
|  *
 | |
|  *  May 26, 1994  1.0A   : First release
 | |
|  *
 | |
|  *  August 10, 1994 1.0B : Added some copyright info.
 | |
|  *
 | |
|  *  January 1, 1995 1.01A : Renamed this file to prevent a clash with
 | |
|  *                          STORAGE.H used by compiler vendors for
 | |
|  *                          OLE implementation. :(
 | |
|  *
 | |
|  *  February 14, 1996  2.0A : New release
 | |
|  */
 | |
| 
 | |
| #ifndef _STOR_H
 | |
| #define _STOR_H
 | |
| 
 | |
| 
 | |
| #include <stddef.h>   /* need for size_t */
 | |
| 
 | |
| #include "timedate.h"
 | |
| #include "fileattr.h"
 | |
| 
 | |
| #if defined( __cplusplus )
 | |
| 
 | |
| /*
 | |
|  * class ALStorage
 | |
|  *
 | |
|  * DESCRIPTION
 | |
|  *
 | |
|  * ALStorage is a base class that defines the different types
 | |
|  * of storage objects used by Archive Library.  The two most
 | |
|  * commonly used storage object types are file objects and memory
 | |
|  * objects, defined by the derived classes ALFile and
 | |
|  * ALMemory.
 | |
|  *
 | |
|  * ALStorage objects are used to store and retrieve objects from archives.
 | |
|  * They are also used to store and retrieve the archives themselves,
 | |
|  * allowing archives to be stored in files or directly in memory.
 | |
|  *
 | |
|  * The ALStorage adds buffering to the storage object, allowing for
 | |
|  * fast access to data presently cached in memory.  This is very similar to
 | |
|  * the buffering provided for FILE types in stdio.h.  Note that this
 | |
|  * buffering is generally only efficient/useful if lots of sequential
 | |
|  * reads or writes are being done, as opposed to random accessess.
 | |
|  *
 | |
|  * ALStorage objects give up a lot of flexibility in order to provide
 | |
|  * quick and efficient access to data.  The primary way this affects
 | |
|  * use of the class is that the I/O buffer can only be used for reading
 | |
|  * or writing, but not both simultaneously.  The class doesn't check
 | |
|  * for this at run time, so programmers need to enforce it themselves.
 | |
|  *
 | |
|  * When a read is initiated for the first time, the buffer is loaded up,
 | |
|  * and subsequent reads are performed out of the I/O buffer.  To switch
 | |
|  * to writing mode, a call to FlushBuffer needs to be performed, which
 | |
|  * will reset the input and output indices.  Likewise, when, done writing,
 | |
|  * a call to FlushBuffer() can be performed to clear the indices.  A
 | |
|  * read can be done subsequently.
 | |
|  *
 | |
|  * DATA MEMBERS
 | |
|  *
 | |
|  *  mpcBuffer            : This is the I/O buffer.  I read big blocks of
 | |
|  *                         data into this buffer, then I can perform
 | |
|  *                         character reads from an inline function that
 | |
|  *                         doesn't have to access any virtual fns.  Speeds
 | |
|  *                         things up tremendously.  Likewise, I write
 | |
|  *                         to this buffer using inline functions until it
 | |
|  *                         it is full.  Only then do I call a virtual
 | |
|  *                         to flush it to disk, memory, or whatever.
 | |
|  *
 | |
|  *  muBufferValidData    : This keeps track of the end of valid data,
 | |
|  *                         both when reading and writing.  When you
 | |
|  *                         read in a block of data, this index is set
 | |
|  *                         to the end of the data.  When writing, this
 | |
|  *                         index is continually updated to reflect the
 | |
|  *                         end of the user written data.
 | |
|  *
 | |
|  *  muWriteIndex         : The index in the I/O buffer where the next byte
 | |
|  *                         is going to be written.
 | |
|  *
 | |
|  *  muReadIndex          : The index in the I/O buffer where the next read
 | |
|  *                         will come from.
 | |
|  *
 | |
|  *  mlFilePointer        : The current location of the read/write pointer
 | |
|  *                         in the underlying object, e.g. a file.  This
 | |
|  *                         is the location where the data will be written
 | |
|  *                         out of the I/O buffer when a FlushBuffer() call
 | |
|  *                         is made.  Or, if reading, it is where the next
 | |
|  *                         LoadBuffer() will read data from.
 | |
|  *
 | |
|  *  mlSize               : The size of the file/object.  This will ordinarily
 | |
|  *                         be set to -1 when we create an object, because
 | |
|  *                         we don't know the size yet.  When you call Open()
 | |
|  *                         for an existing object, the value will usually
 | |
|  *                         be loaded using some sort of system call.  We
 | |
|  *                         also can figure out what the size is when we do
 | |
|  *                         a ReadDirectory call on an archive.
 | |
|  *
 | |
|  *  mlCrc32              : The CRC-32 for the object.  This value normally
 | |
|  *                         won't be known until an object has been placed
 | |
|  *                         in an archive, or when the information has
 | |
|  *                         been read out using in ReadDirectory().
 | |
|  *
 | |
|  *  miUpdateCrcFlag      : This flag is set to indicate that we are in the
 | |
|  *                         process of calculating the CRC while the file
 | |
|  *                         is being compressed.
 | |
|  *
 | |
|  *  miCreated            : This flag will be set if the file was opened
 | |
|  *                         using Create(), clear if it was opened using
 | |
|  *                         Open().  When miCreated is set, we will try
 | |
|  *                         to set the file time, date and attributes when
 | |
|  *                         we close the file.  This is so we can set these
 | |
|  *                         attributes when we are recreating a file that
 | |
|  *                         was stored in an archive.
 | |
|  *
 | |
|  *  miStorageObjectType  : An integer that is assigned when the object was
 | |
|  *                         constructed.  Usually one of the enumerated
 | |
|  *                         constants found in ALDEFS.H.  This is the number
 | |
|  *                         that gets stored in the Archive directory with
 | |
|  *                         the object, so we can figure out what type of
 | |
|  *                         object to create when extracting.
 | |
|  *
 | |
|  *  muBufferSize         : The size of the I/O buffer.
 | |
|  *
 | |
|  *  mpMonitor            : A pointer to the monitor attached to this object.
 | |
|  *                         During the archiving process, this pointer gets
 | |
|  *                         set by the archive routine for each storage object
 | |
|  *                         as it is being processes.  A value of 0 just
 | |
|  *                         means no monitor is watching this object at the
 | |
|  *                         moment.
 | |
|  *
 | |
|  *  mTimeDate            : The time and date stamp for the file, this usually
 | |
|  *                         gets set when the object is opened using Open(),
 | |
|  *                         it is also set when we read in a storage object's
 | |
|  *                         information using ReadDirectory().
 | |
|  *
 | |
|  *  mAttributes          : The attributes associated with the file. R/H/S/A/D.
 | |
|  *
 | |
|  *  mName                : The name of the storage object.
 | |
|  *
 | |
|  *  mStatus              : The current status of the object.
 | |
|  *
 | |
|  * MEMBER FUNCTIONS
 | |
|  *
 | |
|  *  ALStorage()          : The constructor, creates the object, but doesn't
 | |
|  *                         necessarily create the file/whatever.
 | |
|  *  operator=()          : Assignment operator.
 | |
|  *  operator new()       : The memory allocation operator.  This is only
 | |
|  *                         used if the library is in a DLL.
 | |
|  *  ~ALStorage()         : Virtual destructor.
 | |
|  *  UpdateCrc()          : Protected function used internally when the
 | |
|  *                         crc is being calculated
 | |
|  *  WriteStorageObjectData() : Protected function to write custom data needed
 | |
|  *                             for a particular derived classe.
 | |
|  *  ReadStorageObjectData()  : Protected function read that data back in.
 | |
|  *  ReadChar()           : Superfast inline function to read a bytee
 | |
|  *  WriteChar()          : Fast inline function to write a byte.
 | |
|  *  ReadBuffer()         : Function to read blocks of data.
 | |
|  *  WriteBuffer()        : Function to write blocks of data.
 | |
|  *  Open()               : Open() used to prepare an existing object for I/O.
 | |
|  *  Create()             : Create a new underlying object for I/O.
 | |
|  *  Close()              : Called when I/O is complete.
 | |
|  *  LoadBuffer()         : Called to reload the I/O buffer, used internally
 | |
|  *                         when ReadChar() runs out of stuff to read.
 | |
|  *  FlushBuffer()        : Called to flush the I/O buffer to the underlying
 | |
|  *                         object.  Called when WriteChar() has gone too far.
 | |
|  *  Seek()               : Called to reposition the I/O pointer of the
 | |
|  *                         underlying object.
 | |
|  *  YieldTime()          : Called whenever a FlushBuffer() or LoadBuffer()
 | |
|  *                         takes place.  Used to update the Monitor attached
 | |
|  *                         to the file, and to yield time to the O/S.
 | |
|  *  Compare()            : Compare two storage objects.
 | |
|  *  InitCrc32()          : Called to start calculating the CRC for an object.
 | |
|  *  WriteGlShort()       : Write 16 bit integer in little endian format.
 | |
|  *  WritePkShort()       : Write 16 bit integer in big endian format.
 | |
|  *  WriteGlLong()        : Write 32 bit integer in little endian format.
 | |
|  *  WritePkLong()        : Write 32 bit integer in big endian format.
 | |
|  *  ReadGlShort()        : Read 16 bit integer in little endian format.
 | |
|  *  ReadPkShort()        : Read 16 bit integer in big endian format.
 | |
|  *  ReadGlLong()         : Read 32 bit integer in little endian format.
 | |
|  *  ReadPkLong()         : Read 32 bit integer in big endian format.
 | |
|  *  ReadString()         : Read a string in ArchiveLib's proprietary format.
 | |
|  *  WriteString()        : Write string in ArchiveLib format.
 | |
|  *  Rename()             : Rename the underlying object.
 | |
|  *  UnRename()           : Undo a rename operation.
 | |
|  *  RenameToBackup()     : Rename to a special backup name.
 | |
|  *  Delete()             : Delete an underlying storage object.
 | |
|  *  GetCrc32()           : Return value of the CRC member.
 | |
|  *  GetSize()            : Reeturn value of the size member.
 | |
|  *  IsOpen()             : Indicate if the file is open.
 | |
|  *  Tell()               : Indicate where the next read or write will
 | |
|  *                         take place.
 | |
|  *  ReadCopyright()      : A function to get at the Greenleaf Copyright.
 | |
|  *  Clone()              : A function used to make a copy of an ALStorage
 | |
|  *                         object.
 | |
|  *  ClearError()         : A helper function that clears the error from
 | |
|  *                         the mStatus member.
 | |
|  *
 | |
|  * REVISION HISTORY
 | |
|  *
 | |
|  *  May 26, 1994  1.0A  : First release
 | |
|  *
 | |
|  *  February 14, 1996  2.0A : New release
 | |
|  */
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * Forward declaration
 | |
|  */
 | |
| 
 | |
| class AL_CLASS_TYPE ALEntry;
 | |
| class AL_CLASS_TYPE ALMonitor;
 | |
| struct AL_CLASS_TYPE ALZipDir;
 | |
| 
 | |
| class AL_CLASS_TYPE ALStorage {  /* Tag public class */
 | |
|     public :
 | |
| /*
 | |
|  * Classes I trust
 | |
|  */
 | |
|     friend class AL_CLASS_TYPE ALArchive;
 | |
|     friend class AL_CLASS_TYPE ALPkArchive;
 | |
|     friend class AL_CLASS_TYPE ALGlArchive;
 | |
|     friend class AL_CLASS_TYPE ALCompressedObject;
 | |
|     friend class AL_CLASS_TYPE ALPkCompressor;
 | |
|     friend class AL_CLASS_TYPE ALPkDecompressor;
 | |
|     friend void AL_FUNCTION _UpdateEntry( ALEntry AL_DLL_FAR * entry,
 | |
|                                           ALZipDir AL_DLL_FAR * z );
 | |
| /*
 | |
|  * Constructors, destructors, assignment operator
 | |
|  */
 | |
|     protected :
 | |
|         AL_PROTO ALStorage( const char AL_DLL_FAR *file_name,
 | |
|                             size_t buffer_size,
 | |
|                             const ALStorageType storage_type,
 | |
|                             ALCase name_case = AL_MIXED );
 | |
|         ALStorage AL_DLL_FAR & AL_PROTO operator=( const ALStorage AL_DLL_FAR & );
 | |
| #if defined( AL_USING_DLL ) || defined( AL_BUILDING_DLL )
 | |
|         void AL_DLL_FAR * AL_PROTO operator new( size_t size );
 | |
| #endif
 | |
|     public :
 | |
|         virtual AL_PROTO ~ALStorage();
 | |
| /*
 | |
|  * I don't want to allow the copy constructor to exist.
 | |
|  */
 | |
|     protected :
 | |
|         AL_PROTO ALStorage( const ALStorage AL_DLL_FAR & );
 | |
| 
 | |
| /*
 | |
|  * Member functions, grouped somewhat
 | |
|  *
 | |
|  *
 | |
|  * Private member manipulation
 | |
|  */
 | |
|     protected :
 | |
|         void AL_PROTO UpdateCrc( size_t count );
 | |
| /*
 | |
|  * This is private, because it allocates memory in the DLL, so it
 | |
|  * must be deleted in the DLL as well.
 | |
|  */
 | |
|     protected :
 | |
|         virtual int AL_PROTO
 | |
|         WriteStorageObjectData( ALStorage AL_DLL_FAR * archive );
 | |
|         virtual int AL_PROTO
 | |
|         ReadStorageObjectData( ALStorage AL_DLL_FAR * archive );
 | |
| /*
 | |
|  * The file I/O access public interface
 | |
|  */
 | |
|     public :
 | |
|         int AL_PROTO ReadChar();
 | |
|         int AL_PROTO WriteChar( int c );
 | |
|         size_t AL_PROTO ReadBuffer( unsigned char AL_DLL_FAR *buffer,
 | |
|                                     size_t length );
 | |
|         /* Please keep this arg const, breaks WriteString o/w */
 | |
|         size_t AL_PROTO WriteBuffer( const unsigned char AL_DLL_FAR *buffer,
 | |
|                                      size_t length );
 | |
|         virtual int AL_PROTO Open();
 | |
|         virtual int AL_PROTO Create( long desired_size = -1L );
 | |
|         virtual int AL_PROTO Close();
 | |
|         virtual int AL_PROTO LoadBuffer( long address ) = 0;
 | |
|         virtual int AL_PROTO FlushBuffer() = 0;
 | |
|         virtual int AL_PROTO Seek( long address ) = 0;
 | |
|         virtual void AL_PROTO YieldTime();
 | |
|         int AL_PROTO Compare( ALStorage AL_DLL_FAR &test_object );
 | |
|         void AL_PROTO InitCrc32( unsigned long seed = 0xffffffffl );
 | |
|         int AL_PROTO WriteGlShort( short int short_data );
 | |
|         int AL_PROTO WritePkShort( short int short_data );
 | |
|         int AL_PROTO WriteGlLong( long long_data );
 | |
|         int AL_PROTO WritePkLong( long long_data );
 | |
|         int AL_PROTO ReadGlShort( short int AL_DLL_FAR &short_data );
 | |
|         int AL_PROTO ReadPkShort( short int AL_DLL_FAR &short_data );
 | |
|         int AL_PROTO ReadGlLong( long AL_DLL_FAR &long_data );
 | |
|         int AL_PROTO ReadPkLong( long AL_DLL_FAR &long_data );
 | |
|         int AL_PROTO ReadString( ALName AL_DLL_FAR &name, short int length = -1 );
 | |
|         int AL_PROTO WriteString( const char AL_DLL_FAR *string_data );
 | |
| /*
 | |
|  * File manipulation public interface
 | |
|  */
 | |
|     public :
 | |
|         virtual int AL_PROTO Rename( const char AL_DLL_FAR *new_name = 0,
 | |
|                                      int delete_on_clash = 1 ) = 0;
 | |
|         virtual int AL_PROTO UnRename( int delete_on_clash = 1 ) = 0;
 | |
|         virtual int AL_PROTO RenameToBackup( int delete_on_clash = 1 ) = 0;
 | |
|         virtual int AL_PROTO Delete() = 0;
 | |
| /*
 | |
|  * Access functions
 | |
|  */
 | |
|     public :
 | |
|         long AL_PROTO GetCrc32();
 | |
|         long AL_PROTO GetSize() const;
 | |
|         int AL_PROTO IsOpen();
 | |
|         long AL_PROTO Tell();
 | |
|         static char AL_DLL_FAR * AL_PROTO ReadCopyright();
 | |
|         virtual ALStorage AL_DLL_FAR * AL_PROTO Clone( const char AL_DLL_FAR *name,
 | |
|                                                        int object_type ) const = 0;
 | |
|         void AL_PROTO ClearError();
 | |
| /*
 | |
|  * Data members
 | |
|  */
 | |
|     protected :
 | |
|         unsigned char AL_DLL_FAR *mpcBuffer;
 | |
|         size_t muBufferValidData;
 | |
|         size_t muWriteIndex;
 | |
|         size_t muReadIndex;
 | |
|         long mlFilePointer;
 | |
|         long mlSize;
 | |
|         long mlCrc32;
 | |
|         short int miUpdateCrcFlag;
 | |
|         short int miCreated;
 | |
| /*
 | |
|  * Public members
 | |
|  */
 | |
|     public :
 | |
|         const ALStorageType miStorageObjectType;
 | |
|         const size_t muBufferSize;
 | |
|         ALMonitor AL_DLL_FAR *mpMonitor;
 | |
|         ALTimeDate mTimeDate;
 | |
|         ALFileAttributes mAttributes;
 | |
|         ALName mName;
 | |
|         ALStatus mStatus;
 | |
|         AL_CLASS_TAG( _ALStorageTag );
 | |
| };
 | |
| 
 | |
| #include "stor.inl"
 | |
| 
 | |
| #else  /* #if defined( __cplusplus ) ... */
 | |
| 
 | |
| AL_LINKAGE long AL_FUNCTION ALStorageGetSize( hALStorage this_object );
 | |
| AL_LINKAGE int AL_FUNCTION ALStorageIsOpen( hALStorage this_object );
 | |
| AL_LINKAGE void AL_FUNCTION ALStorageClearError( hALStorage this_object );
 | |
| AL_LINKAGE int AL_FUNCTION ALStorageReadChar( hALStorage this_object );
 | |
| AL_LINKAGE int AL_FUNCTION ALStorageWriteChar( hALStorage this_object, int c );
 | |
| AL_LINKAGE void AL_FUNCTION deleteALStorage( hALStorage this_object );
 | |
| AL_LINKAGE int AL_FUNCTION ALStorageOpen( hALStorage this_object );
 | |
| AL_LINKAGE int AL_FUNCTION
 | |
| ALStorageCreate( hALStorage this_object, long desired_size );
 | |
| AL_LINKAGE int AL_FUNCTION ALStorageClose( hALStorage this_object );
 | |
| AL_LINKAGE size_t AL_FUNCTION
 | |
| ALStorageReadBuffer( hALStorage this_object,
 | |
|                      unsigned char AL_DLL_FAR *buffer,
 | |
|                      size_t length );
 | |
|  AL_LINKAGE size_t AL_FUNCTION
 | |
| ALStorageWriteBuffer( hALStorage this_object,
 | |
|                       unsigned char AL_DLL_FAR *buffer,
 | |
|                       size_t length );
 | |
| AL_LINKAGE int AL_FUNCTION
 | |
| ALStorageWriteString( hALStorage this_object,
 | |
|                       char AL_DLL_FAR *string );
 | |
| AL_LINKAGE long AL_FUNCTION ALStorageTell( hALStorage this_object );
 | |
| AL_LINKAGE char AL_DLL_FAR * AL_FUNCTION ALReadCopyright( void );
 | |
| AL_LINKAGE int AL_FUNCTION
 | |
| ALStorageCompare( hALStorage this_object, hALStorage test_object );
 | |
| AL_LINKAGE long AL_FUNCTION ALStorageGetCrc32( hALStorage this_object );
 | |
| AL_LINKAGE void AL_FUNCTION
 | |
| ALStorageInitCrc32( hALStorage this_object, long seed );
 | |
| AL_LINKAGE int AL_FUNCTION
 | |
| ALStorageReadPkLong( hALStorage this_object, long AL_DLL_FAR *long_data );
 | |
| AL_LINKAGE int AL_FUNCTION
 | |
| ALStorageReadPkShort( hALStorage this_object, short AL_DLL_FAR *short_data );
 | |
| AL_LINKAGE int AL_FUNCTION
 | |
| ALStorageWritePkLong( hALStorage this_object, long long_data );
 | |
| AL_LINKAGE int AL_FUNCTION
 | |
| ALStorageWritePkShort( hALStorage this_object, short short_data );
 | |
| AL_LINKAGE int AL_FUNCTION
 | |
| ALStorageReadGlShort( hALStorage this_object, short int AL_DLL_FAR *short_data );
 | |
| AL_LINKAGE int AL_FUNCTION
 | |
| ALStorageReadGlLong( hALStorage this_object, long int AL_DLL_FAR *long_data );
 | |
| AL_LINKAGE int AL_FUNCTION
 | |
| ALStorageWriteGlLong( hALStorage this_object, long long_data );
 | |
| AL_LINKAGE int AL_FUNCTION
 | |
| ALStorageWriteGlShort( hALStorage this_object, short short_data );
 | |
| AL_LINKAGE void AL_FUNCTION ALStorageSetMonitor( hALStorage this_object,
 | |
|                                                  hALMonitor monitor );
 | |
| AL_LINKAGE int AL_FUNCTION ALStorageDelete( hALStorage this_object );
 | |
| AL_LINKAGE void AL_FUNCTION ALStorageSetName( hALStorage this_object,
 | |
|                                               char AL_DLL_FAR *object_name );
 | |
| AL_LINKAGE int AL_FUNCTION
 | |
| ALStorageWildCardMatch( hALStorage this_object,
 | |
|                         char AL_DLL_FAR *pattern );
 | |
| AL_LINKAGE char AL_DLL_FAR * AL_FUNCTION
 | |
| ALStorageChangeExtension( hALStorage this_object,
 | |
|                           char AL_DLL_FAR *new_extension );
 | |
| AL_LINKAGE char AL_DLL_FAR * AL_FUNCTION
 | |
| ALStorageChangeTrailingChar( hALStorage this_object, char new_char );
 | |
| AL_LINKAGE char AL_DLL_FAR * AL_FUNCTION
 | |
| ALStorageGetName( hALStorage this_object );
 | |
| AL_LINKAGE char AL_DLL_FAR * AL_FUNCTION
 | |
| ALStorageGetOldName( hALStorage this_object );
 | |
| AL_LINKAGE int AL_FUNCTION
 | |
| ALStorageGetStatusCode( hALStorage this_object );
 | |
| AL_LINKAGE int AL_FUNCTION ALStorageSetError( hALStorage this_object,
 | |
|                                               int error,
 | |
|                                               char AL_DLL_FAR *text );
 | |
| AL_LINKAGE char AL_DLL_FAR * AL_FUNCTION
 | |
| ALStorageGetStatusString( hALStorage this_object );
 | |
| AL_LINKAGE char AL_DLL_FAR * AL_FUNCTION
 | |
| ALStorageGetStatusDetail( hALStorage this_object );
 | |
| AL_LINKAGE long AL_FUNCTION ALStorageGetUnixTime( hALStorage this_object );
 | |
| AL_LINKAGE long AL_FUNCTION ALStorageToJulian( hALStorage this_object );
 | |
| 
 | |
| AL_LINKAGE void AL_FUNCTION
 | |
| ALStorageFromJulian( hALStorage this_object, long jdn );
 | |
| AL_LINKAGE void AL_FUNCTION
 | |
| ALStorageSetTimeDateFromStruc( hALStorage this_object,
 | |
|                                struct tm AL_DLL_FAR * time_struct );
 | |
| AL_LINKAGE void AL_FUNCTION
 | |
| ALStorageGetStrucFromTimeDate( hALStorage this_object,
 | |
|                                struct tm AL_DLL_FAR *time_struct );
 | |
| AL_LINKAGE void AL_FUNCTION
 | |
| ALStorageSetTimeDateFromUnix( hALStorage this_object,long unix_time );
 | |
| /*
 | |
|  * Last minute additions, sorry, these 4 aren't in the manual!
 | |
|  */
 | |
| AL_LINKAGE void AL_FUNCTION
 | |
| ALStorageGetTime( hALStorage this_object,
 | |
|                   short int AL_DLL_FAR *hour,
 | |
|                   short int AL_DLL_FAR *minute,
 | |
|                   short int AL_DLL_FAR *second );
 | |
| AL_LINKAGE void AL_FUNCTION
 | |
| ALStorageSetTime( hALStorage this_object,
 | |
|                   short int hour,
 | |
|                   short int minute,
 | |
|                   short int second );
 | |
| AL_LINKAGE void AL_FUNCTION
 | |
| ALStorageGetDate( hALStorage this_object,
 | |
|                   short int AL_DLL_FAR *month,
 | |
|                   short int AL_DLL_FAR *date,
 | |
|                   short int AL_DLL_FAR *year );
 | |
| AL_LINKAGE void AL_FUNCTION
 | |
| ALStorageSetDate( hALStorage this_object,
 | |
|                   short int month,
 | |
|                   short int date,
 | |
|                   short int year );
 | |
| 
 | |
| AL_LINKAGE int AL_FUNCTION ALStorageFlushBuffer( hALStorage this_object );
 | |
| AL_LINKAGE int AL_FUNCTION
 | |
| ALStorageLoadBuffer( hALStorage this_object, long address );
 | |
| AL_LINKAGE int AL_FUNCTION
 | |
| ALStorageRename( hALStorage this_object,
 | |
|                  char AL_DLL_FAR *new_name,
 | |
|                  int delete_on_clash );
 | |
| AL_LINKAGE int AL_FUNCTION
 | |
| ALStorageRenameToBackup( hALStorage this_object, int delete_on_clash );
 | |
| AL_LINKAGE int AL_FUNCTION ALStorageSeek( hALStorage this_object,
 | |
|                                           long address );
 | |
| AL_LINKAGE int AL_FUNCTION ALStorageUnRename( hALStorage this_object,
 | |
|                                               int delete_on_clash );
 | |
| AL_LINKAGE int AL_FUNCTION ALStorageGetType( hALStorage this_object );
 | |
| AL_LINKAGE unsigned short int AL_FUNCTION
 | |
| ALStorageGetDosTime( hALStorage this_object );
 | |
| AL_LINKAGE unsigned short int AL_FUNCTION
 | |
| ALStorageGetDosDate( hALStorage this_object );
 | |
| AL_LINKAGE int AL_FUNCTION ALStorageValidTimeDate( hALStorage this_object );
 | |
| AL_LINKAGE int AL_FUNCTION ALStorageReadOnly( hALStorage this_object );
 | |
| AL_LINKAGE int AL_FUNCTION ALStorageSystem( hALStorage this_object );
 | |
| AL_LINKAGE int AL_FUNCTION ALStorageHidden( hALStorage this_object );
 | |
| AL_LINKAGE int AL_FUNCTION ALStorageArchive( hALStorage this_object );
 | |
| AL_LINKAGE int AL_FUNCTION ALStorageDirectory( hALStorage this_object );
 | |
| AL_LINKAGE long AL_FUNCTION ALStorageGetSize( hALStorage this_object );
 | |
| AL_LINKAGE int AL_FUNCTION ALStorageIsOpen( hALStorage this_object );
 | |
| AL_LINKAGE void AL_FUNCTION ALStorageClearError( hALStorage this_object );
 | |
| AL_LINKAGE int AL_FUNCTION ALStorageReadChar( hALStorage this_object );
 | |
| AL_LINKAGE int AL_FUNCTION ALStorageWriteChar( hALStorage this_object, int c );
 | |
| 
 | |
| #endif /* #if defined( __cplusplus ) ... #else ...*/
 | |
| 
 | |
| #endif /* #ifndef _STOR_H         */
 |