| PTLib
    Version 2.18.8
    | 
A class representing a a structured file that is portable accross CPU architectures. More...
#include <textfile.h>


| Public Member Functions | |
| Construction | |
| PTextFile () | |
| Create a text file object but do not open it.  More... | |
| PTextFile (OpenMode mode, OpenOptions opts=ModeDefault) | |
| Create a unique temporary file name, and open the file in the specified mode and using the specified options.  More... | |
| PTextFile (const PFilePath &name, OpenMode mode=ReadWrite, OpenOptions opts=ModeDefault) | |
| Create a text file object with the specified name and open it in the specified mode and with the specified options.  More... | |
| Line I/O functions | |
| PBoolean | ReadLine (PString &str) | 
| Read a line from the text file.  More... | |
| PBoolean | WriteLine (const PString &str) | 
| Read a line from the text file.  More... | |
|  Public Member Functions inherited from PFile | |
| Comparison | Compare (const PObject &obj) const | 
| Determine the relative rank of the two objects.  More... | |
| virtual PString | GetName () const | 
| Get the platform and I/O channel type name of the channel.  More... | |
| virtual PBoolean | Read (void *buf, PINDEX len) | 
| Low level read from the file channel.  More... | |
| virtual PBoolean | Write (const void *buf, PINDEX len) | 
| Low level write to the file channel.  More... | |
| virtual PBoolean | Close () | 
| Close the file channel.  More... | |
| PFile () | |
| Create a file object but do not open it.  More... | |
| P_DECLARE_BITWISE_ENUM_EX (OpenOptions, 7,(NoOptions, MustExist, Create, Truncate, Exclusive, Temporary, DenySharedRead, DenySharedWrite), ModeDefault=-1) | |
| When a file is opened, a number of options may be associated with the open file.  More... | |
| PFile (OpenMode mode, OpenOptions opts=ModeDefault) | |
| Create a unique temporary file name, and open the file in the specified mode and using the specified options.  More... | |
| PFile (const PFilePath &name, OpenMode mode=ReadWrite, OpenOptions opts=ModeDefault) | |
| Create a file object with the specified name and open it in the specified mode and with the specified options.  More... | |
| ~PFile () | |
| Close the file on destruction.  More... | |
| bool | Exists () const | 
| Check for file existance.  More... | |
| bool | Access (OpenMode mode) | 
| Check for file access modes.  More... | |
| bool | Touch (const PTime &accessTime=0) | 
| Set access & modification times for file.  More... | |
| bool | Touch (const PTime &accessTime, const PTime &modTime) | 
| bool | Remove (bool force=false) | 
| Delete the current file.  More... | |
| bool | Rename (const PString &newname, bool force=false) | 
| Change the current files name.  More... | |
| bool | Copy (const PFilePath &newname, bool force=false, bool recurse=false) | 
| Make a copy of the current file.  More... | |
| bool | Move (const PFilePath &newname, bool force=false, bool recurse=false) | 
| Move the current file.  More... | |
| const PFilePath & | GetFilePath () const | 
| Get the full path name of the file.  More... | |
| void | SetFilePath (const PString &path) | 
| Set the full path name of the file.  More... | |
| bool | Open (OpenMode mode=ReadWrite, OpenOptions opts=ModeDefault) | 
| Open the current file in the specified mode and with the specified options.  More... | |
| bool | Open (OpenMode mode, OpenOptions opts, PFileInfo::Permissions permissions) | 
| Open the specified file name in the specified mode and with the specified options and permissions.  More... | |
| bool | Open (const PFilePath &name, OpenMode mode=ReadWrite, OpenOptions opts=ModeDefault) | 
| Open the specified file name in the specified mode and with the specified options.  More... | |
| bool | Open (const PFilePath &name, OpenMode mode, OpenOptions opts, PFileInfo::Permissions permissions) | 
| Open the specified file name in the specified mode and with the specified options and permissions.  More... | |
| virtual off_t | GetLength () const | 
| Get the current size of the file.  More... | |
| virtual PBoolean | SetLength (off_t len) | 
| Set the size of the file, padding with 0 bytes if it would require expanding the file, or truncating it if being made shorter.  More... | |
| virtual PBoolean | SetPosition (off_t pos, FilePositionOrigin origin=Start) | 
| Set the current active position in the file for the next read or write operation.  More... | |
| virtual off_t | GetPosition () const | 
| Get the current active position in the file for the next read or write operation.  More... | |
| bool | IsEndOfFile () const | 
| Determine if the current file position is at the end of the file.  More... | |
| bool | GetInfo (PFileInfo &info) | 
| Get information (eg protection, timestamps) on the current file.  More... | |
| bool | SetPermissions (PFileInfo::Permissions permissions) | 
| Set permissions on the current file.  More... | |
|  Public Member Functions inherited from PChannel | |
| PBoolean | SetErrorValues (Errors errorCode, int osError, ErrorGroup group=LastGeneralError) | 
| Set error values to those specified.  More... | |
| virtual PINDEX | HashFunction () const | 
| Calculate a hash value for use in sets and dictionaries.  More... | |
| virtual PBoolean | IsOpen () const | 
| Determine if the channel is currently open.  More... | |
| virtual P_INT_PTR | GetHandle () const | 
| Get the integer operating system handle for the channel.  More... | |
| FILE * | FDOpen (const char *mode) | 
| Re-open the device using the stdio library.  More... | |
| virtual PChannel * | GetBaseReadChannel () const | 
| Get the base channel of channel indirection using PIndirectChannel.  More... | |
| virtual PChannel * | GetBaseWriteChannel () const | 
| Get the base channel of channel indirection using PIndirectChannel.  More... | |
| virtual bool | CloseBaseReadChannel () | 
| Close the base channel of channel indirection using PIndirectChannel.  More... | |
| virtual bool | CloseBaseWriteChannel () | 
| Close the base channel of channel indirection using PIndirectChannel.  More... | |
| void | SetReadTimeout (const PTimeInterval &time) | 
| Set the timeout for read operations.  More... | |
| PTimeInterval | GetReadTimeout () const | 
| Get the timeout for read operations.  More... | |
| virtual PINDEX | GetLastReadCount () const | 
| Get the number of bytes read by the last Read() call.  More... | |
| virtual PINDEX | SetLastReadCount (PINDEX count) | 
| virtual int | ReadChar () | 
| Read a single character from the channel.  More... | |
| PBoolean | ReadBlock (void *buf, PINDEX len) | 
| Read len bytes into the buffer from the channel.  More... | |
| PString | ReadString (PINDEX len) | 
| Read lencharacter into a string from the channel.  More... | |
| void | SetWriteTimeout (const PTimeInterval &time) | 
| Set the timeout for write operations to complete.  More... | |
| PTimeInterval | GetWriteTimeout () const | 
| Get the timeout for write operations to complete.  More... | |
| virtual PBoolean | Write (const void *buf, PINDEX len, const void *) | 
| Low level write to the channel with marker.  More... | |
| virtual PINDEX | GetLastWriteCount () const | 
| Get the number of bytes written by the last Write() call.  More... | |
| virtual PINDEX | SetLastWriteCount (PINDEX count) | 
| PBoolean | WriteChar (int c) | 
| Write a single character to the channel.  More... | |
| PBoolean | WriteString (const PString &str) | 
| Write a string to the channel.  More... | |
| ~PChannel () | |
| Close down the channel.  More... | |
| Errors | GetErrorCode (ErrorGroup group=NumErrorGroups) const | 
| Get normalised error code.  More... | |
| int | GetErrorNumber (ErrorGroup group=NumErrorGroups) const | 
| Get OS errro code.  More... | |
| virtual PString | GetErrorText (ErrorGroup group=NumErrorGroups) const | 
| Get error message description.  More... | |
| virtual bool | ReadAsync (AsyncContext &context) | 
| Begin an asynchronous read from channel.  More... | |
| virtual void | OnReadComplete (AsyncContext &context) | 
| User callback function for when a ReadAsync()call has completed or timed out.  More... | |
| virtual bool | WriteAsync (AsyncContext &context) | 
| Begin an asynchronous write from channel.  More... | |
| virtual void | OnWriteComplete (AsyncContext &context) | 
| User callback function for when a WriteAsync() call has completed or timed out.  More... | |
| virtual PBoolean | Shutdown (ShutdownValue option) | 
| Close one or both of the data streams associated with a channel.  More... | |
| virtual bool | SetLocalEcho (bool localEcho) | 
| Set local echo mode.  More... | |
| virtual bool | FlowControl (const void *flowData) | 
| Flow Control information Pass data to the channel for flowControl determination.  More... | |
| PBoolean | SetBufferSize (PINDEX newSize) | 
| Set the iostream buffer size for reads and writes.  More... | |
| PBoolean | SendCommandString (const PString &command) | 
| Send a command meta-string.  More... | |
| void | AbortCommandString () | 
| Abort a command string that is in progress.  More... | |
|  Public Member Functions inherited from PObject | |
| __inline unsigned | GetTraceContextIdentifier () const | 
| Get PTRACE context identifier.  More... | |
| __inline void | SetTraceContextIdentifier (unsigned id) | 
| __inline void | SetTraceContextIdentifier (const PObject &obj) | 
| __inline void | SetTraceContextIdentifier (const PObject *obj) | 
| __inline void | CopyTraceContextIdentifier (PObject &obj) const | 
| __inline void | CopyTraceContextIdentifier (PObject *obj) const | 
| virtual | ~PObject () | 
| __inline const char * | GetClass () const | 
| __inline bool | IsClass (const char *name) const | 
| __inline const PObject * | PTraceObjectInstance () const | 
| virtual PObject * | Clone () const | 
| Create a copy of the class on the heap.  More... | |
| template<class CLS > | |
| CLS * | CloneAs () const | 
| As for Clone() but converts to specified type.  More... | |
| virtual Comparison | CompareObjectMemoryDirect (const PObject &obj) const | 
| Determine the byte wise comparison of two objects.  More... | |
| bool | operator== (const PObject &obj) const | 
| Compare the two objects.  More... | |
| bool | operator!= (const PObject &obj) const | 
| Compare the two objects.  More... | |
| bool | operator< (const PObject &obj) const | 
| Compare the two objects.  More... | |
| bool | operator> (const PObject &obj) const | 
| Compare the two objects.  More... | |
| bool | operator<= (const PObject &obj) const | 
| Compare the two objects.  More... | |
| bool | operator>= (const PObject &obj) const | 
| Compare the two objects.  More... | |
| virtual void | PrintOn (ostream &strm) const | 
| Output the contents of the object to the stream.  More... | |
| virtual void | ReadFrom (istream &strm) | 
| Input the contents of the object from the stream.  More... | |
| Additional Inherited Members | |
|  Public Types inherited from PFile | |
| enum | OpenMode { ReadOnly, WriteOnly, ReadWrite } | 
| When a file is opened, it may restrict the access available to operations on the object instance.  More... | |
| enum | FilePositionOrigin { Start = SEEK_SET, Current = SEEK_CUR, End = SEEK_END } | 
| Options for the origin in setting the file position.  More... | |
|  Public Types inherited from PChannel | |
| enum | PXBlockType { PXReadBlock, PXWriteBlock, PXAcceptBlock, PXConnectBlock } | 
| enum | Errors { NoError, NotFound, FileExists, DiskFull, AccessDenied, DeviceInUse, BadParameter, NoMemory, NotOpen, Timeout, Interrupted, BufferTooSmall, Miscellaneous, ProtocolFailure, Unavailable, NumNormalisedErrors } | 
| Normalised error codes.  More... | |
| enum | ErrorGroup { LastReadError, LastWriteError, LastGeneralError, NumErrorGroups } | 
| Error groups.  More... | |
| typedef PNotifierTemplate < PChannel::AsyncContext & > | AsyncNotifier | 
| enum | ShutdownValue { ShutdownRead = 0, ShutdownWrite = 1, ShutdownReadAndWrite = 2 } | 
|  Public Types inherited from PObject | |
| enum | Comparison { LessThan = -1, EqualTo = 0, GreaterThan = 1 } | 
| Result of the comparison operation performed by the Compare()function.  More... | |
|  Static Public Member Functions inherited from PFile | |
| static bool | Exists (const PFilePath &name) | 
| Check for file existance.  More... | |
| static bool | Access (const PFilePath &name, OpenMode mode) | 
| Check for file access modes.  More... | |
| static bool | Touch (const PFilePath &name, const PTime &accessTime=0) | 
| Set access & modification times for file.  More... | |
| static bool | Touch (const PFilePath &name, const PTime &accessTime, const PTime &modTime) | 
| static bool | Remove (const PFilePath &name, bool force=false) | 
| Delete the specified file.  More... | |
| static bool | Remove (const PString &name, bool force=false) | 
| static bool | Rename (const PFilePath &oldname, const PString &newname, bool force=false) | 
| Change the specified files name.  More... | |
| static bool | Copy (const PFilePath &oldname, const PFilePath &newname, bool force=false, bool recurse=false) | 
| Make a copy of the specified file.  More... | |
| static bool | Move (const PFilePath &oldname, const PFilePath &newname, bool force=false, bool recurse=false) | 
| Move the specified file.  More... | |
| static bool | GetInfo (const PFilePath &name, PFileInfo &info) | 
| Get information (eg protection, timestamps) on the specified file.  More... | |
| static bool | SetPermissions (const PFilePath &name, PFileInfo::Permissions permissions) | 
| Set permissions on the specified file.  More... | |
|  Static Public Member Functions inherited from PChannel | |
| static PString | GetErrorText (Errors lastError, int osError=0) | 
| Get error message description.  More... | |
|  Static Public Member Functions inherited from PObject | |
| static __inline void | CopyTraceContextIdentifier (PObject &to, const PObject &from) | 
| static __inline void | CopyTraceContextIdentifier (PObject &to, const PObject *from) | 
| static __inline void | CopyTraceContextIdentifier (PObject *to, const PObject &from) | 
| static __inline void | CopyTraceContextIdentifier (PObject *to, const PObject *from) | 
| static __inline const char * | Class () | 
| static __inline const PObject * | PTraceObjectInstance (const char *) | 
| static __inline const PObject * | PTraceObjectInstance (const PObject *obj) | 
| template<typename T > | |
| static Comparison | Compare2 (T v1, T v2) | 
| Compare two types, returning Comparison type.  More... | |
| static Comparison | InternalCompareObjectMemoryDirect (const PObject *obj1, const PObject *obj2, PINDEX size) | 
| Internal function caled from CompareObjectMemoryDirect()  More... | |
|  Protected Member Functions inherited from PFile | |
| virtual bool | InternalOpen (OpenMode mode, OpenOptions opts, PFileInfo::Permissions permissions) | 
|  Protected Member Functions inherited from PChannel | |
| PChannel (const PChannel &) | |
| PChannel & | operator= (const PChannel &) | 
| virtual PBoolean | ConvertOSError (P_INT_PTR libcReturnValue, ErrorGroup group=LastGeneralError) | 
| Convert an operating system error into platform independent error.  More... | |
| int | ReadCharWithTimeout (PTimeInterval &timeout) | 
| Read a character with specified timeout.  More... | |
| PBoolean | ReceiveCommandString (int nextChar, const PString &reply, PINDEX &pos, PINDEX start) | 
| bool | CheckNotOpen () | 
| virtual int | os_errno () const | 
| PBoolean | PXSetIOBlock (PXBlockType type, const PTimeInterval &timeout) | 
| P_INT_PTR | GetOSHandleAsInt () const | 
| int | PXClose () | 
| PDECLARE_MUTEX (px_threadMutex) | |
| PDECLARE_MUTEX (px_writeMutex) | |
| PChannel () | |
| Create the channel.  More... | |
|  Protected Member Functions inherited from PObject | |
| PObject () | |
| Constructor for PObject, made protected so cannot ever create one on its own.  More... | |
|  Protected Attributes inherited from PFile | |
| PFilePath | m_path | 
| The fully qualified path name for the file.  More... | |
| bool | m_removeOnClose | 
| File is to be removed when closed.  More... | |
|  Protected Attributes inherited from PChannel | |
| PTimeInterval | readTimeout | 
| Timeout for read operations.  More... | |
| PTimeInterval | writeTimeout | 
| Timeout for write operations.  More... | |
| atomic< P_INT_PTR > | os_handle | 
| The operating system file handle return by standard open() function.  More... | |
| PThreadLocalStorage< Status > | m_status [NumErrorGroups+1] | 
| PXBlockType | px_lastBlockType | 
| PThread * | px_readThread | 
| PThread * | px_writeThread | 
| PThread * | px_selectThread [3] | 
| PCriticalSection | px_selectMutex [3] | 
|  Protected Attributes inherited from PObject | |
| unsigned | m_traceContextIdentifier | 
A class representing a a structured file that is portable accross CPU architectures.
Essentially this will normalise the end of line character which differs fromplatform to platform.
| PTextFile::PTextFile | ( | ) | 
Create a text file object but do not open it.
It does not initially have a valid file name. However, an attempt to open the file using the PFile::Open() function will generate a unique temporary file. 
| PTextFile::PTextFile | ( | OpenMode | mode, | 
| OpenOptions | opts = ModeDefault | ||
| ) | 
Create a unique temporary file name, and open the file in the specified mode and using the specified options.
Note that opening a new, unique, temporary file name in ReadOnly mode will always fail. This would only be usefull in a mode and options that will create the file.
The PChannel::IsOpen() function may be used after object construction to determine if the file was successfully opened. 
| mode | Mode in which to open the file. | 
| opts | OpenOptionsenum# for open operation. | 
| PTextFile::PTextFile | ( | const PFilePath & | name, | 
| OpenMode | mode = ReadWrite, | ||
| OpenOptions | opts = ModeDefault | ||
| ) | 
Create a text file object with the specified name and open it in the specified mode and with the specified options.
The PChannel::IsOpen() function may be used after object construction to determine if the file was successfully opened. 
| name | Name of file to open. | 
| mode | Mode in which to open the file. | 
| opts | OpenOptionsenum# for open operation. | 
Read a line from the text file.
What constitutes an end of line in the file is platform dependent.
Use the PChannel::GetLastError() function to determine if there was some error other than end of file.
| str | String into which line of text is read. | 
Read a line from the text file.
What constitutes an end of line in the file is platform dependent.
Use the PChannel::GetLastError() function to determine the failure mode.
| str | String to write with end of line terminator. |