81 lines
2.1 KiB
Ucode
81 lines
2.1 KiB
Ucode
|
/**
|
||
|
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
|
||
|
*
|
||
|
* This is a simple class that allows for secure writing of output files from within Script. The directory to which it writes
|
||
|
* files is determined by the file type member variable.
|
||
|
*/
|
||
|
|
||
|
class FileWriter extends Info
|
||
|
native;
|
||
|
|
||
|
/** Internal FArchive pointer */
|
||
|
var const native pointer ArchivePtr{FArchive};
|
||
|
|
||
|
/** File name, created via OpenFile() */
|
||
|
var const string Filename;
|
||
|
|
||
|
/** Type of file */
|
||
|
enum FWFileType
|
||
|
{
|
||
|
FWFT_Log, // Created in %GameDir%/Logs
|
||
|
FWFT_Stats, // Created in %GameDir%/Stats
|
||
|
FWFT_HTML, // Created in %GameDir%/Web/DynamicHTML
|
||
|
FWFT_User, // Created in %GameDir%/User
|
||
|
FWFT_Debug, // Created in %GameDir%/Debug
|
||
|
};
|
||
|
|
||
|
/** Holds the file type for this file. */
|
||
|
var const FWFileType FileType;
|
||
|
|
||
|
/**
|
||
|
* Whether we should flush to disk every time something is written.
|
||
|
* if false, only flush when the memory buffer is full or when the file is closed
|
||
|
*/
|
||
|
var bool bFlushEachWrite;
|
||
|
|
||
|
/** Whether to use async writes (if available) or not. Overrides bFlushEachWrite */
|
||
|
var bool bWantsAsyncWrites;
|
||
|
|
||
|
cpptext
|
||
|
{
|
||
|
virtual void BeginDestroy();
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Opens the actual file using the specified name.
|
||
|
*
|
||
|
* @param InFilename name of file to open
|
||
|
* @param InFileType the type of file being written
|
||
|
* @param InExtension optional file extension to use, defaults to .txt if none is specified
|
||
|
* @param bUnique whether to make unique or not
|
||
|
* @param bIncludeTimeStamp whether to include timestamps or not
|
||
|
*/
|
||
|
native final function bool OpenFile(coerce string InFilename, optional FWFileType InFileType,
|
||
|
optional string InExtension, optional bool bUnique, optional bool bIncludeTimeStamp);
|
||
|
|
||
|
/**
|
||
|
* Closes the log file.
|
||
|
*/
|
||
|
native final function CloseFile();
|
||
|
|
||
|
/**
|
||
|
* Logs the given string to the log file.
|
||
|
*
|
||
|
* @param logString - string to dump
|
||
|
*/
|
||
|
native final function Logf(coerce string logString);
|
||
|
|
||
|
/**
|
||
|
* Overridden to automatically close the logfile on destruction.
|
||
|
*/
|
||
|
event Destroyed()
|
||
|
{
|
||
|
CloseFile();
|
||
|
}
|
||
|
|
||
|
defaultproperties
|
||
|
{
|
||
|
bFlushEachWrite=true
|
||
|
bTickIsDisabled=true
|
||
|
}
|