Files

638 lines
28 KiB
C
Raw Permalink Normal View History

// CkStream.h: interface for the CkStream class.
//
//////////////////////////////////////////////////////////////////////
// This header is generated for Chilkat 11.3.0
#define _CkVersion 11.3.0
#ifndef _CkStream_H
#define _CkStream_H
#include "chilkatDefs.h"
#include "CkString.h"
#include "CkClassWithCallbacks.h"
class CkTask;
class CkBinData;
class CkByteData;
class CkStringBuilder;
class CkBaseProgress;
#if !defined(__sun__) && !defined(__sun)
#pragma pack (push, 8)
#endif
#undef Copy
// CLASS: CkStream
class CK_VISIBLE_PUBLIC CkStream : public CkClassWithCallbacks
{
private:
// Don't allow assignment or copying these objects.
CkStream(const CkStream &);
CkStream &operator=(const CkStream &);
public:
CkStream(void);
virtual ~CkStream(void);
static CkStream *createNew(void);
static CkStream *createNew2(int progLang);
void CK_VISIBLE_PRIVATE inject(void *impl);
// May be called when finished with the object to free/dispose of any
// internal resources held by the object.
void dispose(void);
CkBaseProgress *get_EventCallbackObject(void) const;
void put_EventCallbackObject(CkBaseProgress *progress);
// BEGIN PUBLIC INTERFACE
// ----------------------
// Properties
// ----------------------
// When set to true, causes the currently running method to abort. Methods that
// always finish quickly (i.e.have no length file operations or network
// communications) are not affected. If no method is running, then this property is
// automatically reset to false when the next method is called. When the abort
// occurs, this property is reset to false. Both synchronous and asynchronous
// method calls can be aborted. (A synchronous method call could be aborted by
// setting this property from a separate thread.)
bool get_AbortCurrent(void);
// When set to true, causes the currently running method to abort. Methods that
// always finish quickly (i.e.have no length file operations or network
// communications) are not affected. If no method is running, then this property is
// automatically reset to false when the next method is called. When the abort
// occurs, this property is reset to false. Both synchronous and asynchronous
// method calls can be aborted. (A synchronous method call could be aborted by
// setting this property from a separate thread.)
void put_AbortCurrent(bool newVal);
// true if the stream supports reading. Otherwise false.
//
// Note: A stream that supports reading, which has already reached the
// end-of-stream, will still have a CanRead value of true. This property
// indicates the stream's inherent ability, and not whether or not the stream can
// be read at a particular moment in time.
//
bool get_CanRead(void);
// true if the stream supports writing. Otherwise false.
//
// Note: A stream that supports writing, which has already been closed for write,
// will still have a CanWrite value of true. This property indicates the stream's
// inherent ability, and not whether or not the stream can be written at a
// particular moment in time.
//
bool get_CanWrite(void);
// true if it is known for sure that data is ready and waiting to be read.
// false if it is not known for sure (it may be that data is immediately
// available, but reading the stream with a ReadTimeoutMs of 0, which is to poll
// the stream, is the way to find out).
bool get_DataAvailable(void);
// The default internal chunk size for reading or writing. The default value is
// 65536. If this property is set to 0, it will cause the default chunk size
// (65536) to be used. Note: The chunk size can have significant performance
// impact. If performance is an issue, be sure to experiment with different chunk
// sizes.
int get_DefaultChunkSize(void);
// The default internal chunk size for reading or writing. The default value is
// 65536. If this property is set to 0, it will cause the default chunk size
// (65536) to be used. Note: The chunk size can have significant performance
// impact. If performance is an issue, be sure to experiment with different chunk
// sizes.
void put_DefaultChunkSize(int newVal);
// true if the end-of-stream has already been reached. When the stream has
// already ended, all calls to Read* methods will return false with the
// ReadFailReason set to 3 (already at end-of-stream).
bool get_EndOfStream(void);
// The interval in milliseconds between each AbortCheck event callback, which
// enables an application to abort certain method calls before they complete. By
// default, HeartbeatMs is set to 0 , meaning no AbortCheck event callbacks will
// trigger.
//
// References:
// 1: #AbortCheck
int get_HeartbeatMs(void);
// The interval in milliseconds between each AbortCheck event callback, which
// enables an application to abort certain method calls before they complete. By
// default, HeartbeatMs is set to 0 , meaning no AbortCheck event callbacks will
// trigger.
//
// References:
// 1: #AbortCheck
void put_HeartbeatMs(int newVal);
// true if the stream is closed for writing. Once closed, no more data may be
// written to the stream.
bool get_IsWriteClosed(void);
// The length (in bytes) of the stream's source. If unknown, then this property
// will have a value of -1. This property may be set by the application if it knows
// in advance the length of the stream.
__int64 get_Length(void);
// The length (in bytes) of the stream's source. If unknown, then this property
// will have a value of -1. This property may be set by the application if it knows
// in advance the length of the stream.
void put_Length(__int64 newVal);
// The length (in bytes) of the stream's source. If unknown, then this property
// will have a value of -1. This property may be set by the application if it knows
// in advance the length of the stream.
//
// Setting this property also sets the Length property (which is a 64-bit integer).
//
int get_Length32(void);
// The length (in bytes) of the stream's source. If unknown, then this property
// will have a value of -1. This property may be set by the application if it knows
// in advance the length of the stream.
//
// Setting this property also sets the Length property (which is a 64-bit integer).
//
void put_Length32(int newVal);
// The number of bytes received by the stream.
__int64 get_NumReceived(void);
// The number of bytes sent by the stream.
__int64 get_NumSent(void);
// This property is automatically set when a Read* method is called. It indicates
// the reason for failure. Possible values are:
// 1. 0>
// 2. No failure (success)
// 3. Timeout, or no data is immediately available for a polling read.
// 4. Aborted by an application callback.
// 5. Already at end-of-stream.
// 6. Fatal stream error.
// 7. Out-of-memory error (this is very unlikely).
int get_ReadFailReason(void);
// The maximum number of seconds to wait while reading. The default value is 30
// seconds (i.e. 30000ms). A value of 0 indicates a poll. (A polling read is to
// return with a timeout if no data is immediately available.)
//
// Important: For most Chilkat timeout related properties, a value of 0 indicates
// an infinite timeout. For this property, a value of 0 indicates a poll. If
// setting a timeout related property (or method argument) to zero, be sure to
// understand if 0 means wait forever or poll .
//
// The timeout value is not a total timeout. It is the maximum time to wait while
// no additional data is forthcoming.
//
int get_ReadTimeoutMs(void);
// The maximum number of seconds to wait while reading. The default value is 30
// seconds (i.e. 30000ms). A value of 0 indicates a poll. (A polling read is to
// return with a timeout if no data is immediately available.)
//
// Important: For most Chilkat timeout related properties, a value of 0 indicates
// an infinite timeout. For this property, a value of 0 indicates a poll. If
// setting a timeout related property (or method argument) to zero, be sure to
// understand if 0 means wait forever or poll .
//
// The timeout value is not a total timeout. It is the maximum time to wait while
// no additional data is forthcoming.
//
void put_ReadTimeoutMs(int newVal);
// Sets the sink to the path of a file. The file does not need to exist at the time
// of setting this property. The sink file will be automatically opened on demand,
// when the stream is first written.
//
// Note: This property takes priority over other potential sinks. Make sure this
// property is set to an empty string if the stream's sink is to be something else.
//
void get_SinkFile(CkString &str);
// Sets the sink to the path of a file. The file does not need to exist at the time
// of setting this property. The sink file will be automatically opened on demand,
// when the stream is first written.
//
// Note: This property takes priority over other potential sinks. Make sure this
// property is set to an empty string if the stream's sink is to be something else.
//
const char *sinkFile(void);
// Sets the sink to the path of a file. The file does not need to exist at the time
// of setting this property. The sink file will be automatically opened on demand,
// when the stream is first written.
//
// Note: This property takes priority over other potential sinks. Make sure this
// property is set to an empty string if the stream's sink is to be something else.
//
void put_SinkFile(const char *newVal);
// If true, the stream appends to the SinkFile rather than truncating and
// re-writing the sink file. The default value is false.
bool get_SinkFileAppend(void);
// If true, the stream appends to the SinkFile rather than truncating and
// re-writing the sink file. The default value is false.
void put_SinkFileAppend(bool newVal);
// Sets the source to the path of a file. The file does not need to exist at the
// time of setting this property. The source file will be automatically opened on
// demand, when the stream is first read.
//
// Note: This property takes priority over other potential sources. Make sure this
// property is set to an empty string if the stream's source is to be something
// else.
//
void get_SourceFile(CkString &str);
// Sets the source to the path of a file. The file does not need to exist at the
// time of setting this property. The source file will be automatically opened on
// demand, when the stream is first read.
//
// Note: This property takes priority over other potential sources. Make sure this
// property is set to an empty string if the stream's source is to be something
// else.
//
const char *sourceFile(void);
// Sets the source to the path of a file. The file does not need to exist at the
// time of setting this property. The source file will be automatically opened on
// demand, when the stream is first read.
//
// Note: This property takes priority over other potential sources. Make sure this
// property is set to an empty string if the stream's source is to be something
// else.
//
void put_SourceFile(const char *newVal);
// If the source is a file, then this property can be used to stream one part of
// the file. The SourceFilePartSize property defines the size (in bytes) of each
// part. The SourceFilePart and SourceFilePartSize have default values of 0, which
// means the entire SourceFile is streamed.
//
// This property is a 0-based index. For example, if the SourceFilePartSize is
// 1000, then part 0 is for bytes 0 to 999, part 1 is for bytes 1000 to 1999, etc.
//
int get_SourceFilePart(void);
// If the source is a file, then this property can be used to stream one part of
// the file. The SourceFilePartSize property defines the size (in bytes) of each
// part. The SourceFilePart and SourceFilePartSize have default values of 0, which
// means the entire SourceFile is streamed.
//
// This property is a 0-based index. For example, if the SourceFilePartSize is
// 1000, then part 0 is for bytes 0 to 999, part 1 is for bytes 1000 to 1999, etc.
//
void put_SourceFilePart(int newVal);
// If the source is a file, then this property, in conjunction with the
// SourceFilePart property, can be used to stream a single part of the file. This
// property defines the size (in bytes) of each part. The SourceFilePart and
// SourceFilePartSize have default values of 0, which means that by default, the
// entire SourceFile is streamed.
int get_SourceFilePartSize(void);
// If the source is a file, then this property, in conjunction with the
// SourceFilePart property, can be used to stream a single part of the file. This
// property defines the size (in bytes) of each part. The SourceFilePart and
// SourceFilePartSize have default values of 0, which means that by default, the
// entire SourceFile is streamed.
void put_SourceFilePartSize(int newVal);
// If true, then include the BOM when creating a string source via
// SetSourceString where the charset is utf-8, utf-16, etc. (The term BOM stands
// for Byte Order Mark, also known as the preamble.) Also, if true, then include
// the BOM when writing a string via the WriteString method. The default value of
// this property is false.
bool get_StringBom(void);
// If true, then include the BOM when creating a string source via
// SetSourceString where the charset is utf-8, utf-16, etc. (The term BOM stands
// for Byte Order Mark, also known as the preamble.) Also, if true, then include
// the BOM when writing a string via the WriteString method. The default value of
// this property is false.
void put_StringBom(bool newVal);
// Indicates the expected character encoding, such as utf-8, windows-1256, utf-16,
// etc. for methods that read text such as: ReadString, ReadToCRLF, ReadUntilMatch.
// Also controls the character encoding when writing strings with the WriteString
// method. The supported charsets are indicated at the link below.
//
// The default value is utf-8 .
//
void get_StringCharset(CkString &str);
// Indicates the expected character encoding, such as utf-8, windows-1256, utf-16,
// etc. for methods that read text such as: ReadString, ReadToCRLF, ReadUntilMatch.
// Also controls the character encoding when writing strings with the WriteString
// method. The supported charsets are indicated at the link below.
//
// The default value is utf-8 .
//
const char *stringCharset(void);
// Indicates the expected character encoding, such as utf-8, windows-1256, utf-16,
// etc. for methods that read text such as: ReadString, ReadToCRLF, ReadUntilMatch.
// Also controls the character encoding when writing strings with the WriteString
// method. The supported charsets are indicated at the link below.
//
// The default value is utf-8 .
//
void put_StringCharset(const char *newVal);
// This property is automatically set when a Write* method is called. It indicates
// the reason for failure. Possible values are:
// 1. 0>
// 2. No failure (success)
// 3. Timeout, or unable to immediately write when the WriteTimeoutMs is 0.
// 4. Aborted by an application callback.
// 5. The stream has already ended.
// 6. Fatal stream error.
// 7. Out-of-memory error (this is very unlikely).
int get_WriteFailReason(void);
// The maximum number of seconds to wait while writing. The default value is 30
// seconds (i.e. 30000ms). A value of 0 indicates to return immediately if it is
// not possible to write to the sink immediately.
int get_WriteTimeoutMs(void);
// The maximum number of seconds to wait while writing. The default value is 30
// seconds (i.e. 30000ms). A value of 0 indicates to return immediately if it is
// not possible to write to the sink immediately.
void put_WriteTimeoutMs(int newVal);
// ----------------------
// Methods
// ----------------------
// Loads the caller of the task's async method.
bool LoadTaskCaller(CkTask &task);
// Read as much data as is immediately available on the stream. If no data is
// immediately available, it waits up to ReadTimeoutMs milliseconds for data to
// arrive. The incoming data is appended to binData.
bool ReadBd(CkBinData &binData);
// Read as much data as is immediately available on the stream. If no data is
// immediately available, it waits up to ReadTimeoutMs milliseconds for data to
// arrive. The incoming data is appended to binData.
CkTask *ReadBdAsync(CkBinData &binData);
// Read as much data as is immediately available on the stream. If no data is
// immediately available, it waits up to ReadTimeoutMs milliseconds for data to
// arrive.
bool ReadBytes(CkByteData &outBytes);
// Read as much data as is immediately available on the stream. If no data is
// immediately available, it waits up to ReadTimeoutMs milliseconds for data to
// arrive.
CkTask *ReadBytesAsync(void);
// The same as ReadBytes, except returns the received bytes in encoded string form.
// The encoding argument indicates the encoding, which can be base64 , hex , or any of
// the multitude of encodings indicated in the link below.
bool ReadBytesENC(const char *encoding, CkString &outStr);
// The same as ReadBytes, except returns the received bytes in encoded string form.
// The encoding argument indicates the encoding, which can be base64 , hex , or any of
// the multitude of encodings indicated in the link below.
const char *readBytesENC(const char *encoding);
// The same as ReadBytes, except returns the received bytes in encoded string form.
// The encoding argument indicates the encoding, which can be base64 , hex , or any of
// the multitude of encodings indicated in the link below.
CkTask *ReadBytesENCAsync(const char *encoding);
// Reads exactly numBytes bytes from the stream. If no data is immediately available,
// it waits up to ReadTimeoutMs milliseconds for data to arrive.
bool ReadNBytes(int numBytes, CkByteData &outBytes);
// Reads exactly numBytes bytes from the stream. If no data is immediately available,
// it waits up to ReadTimeoutMs milliseconds for data to arrive.
CkTask *ReadNBytesAsync(int numBytes);
// The same as ReadNBytes, except returns the received bytes in encoded string
// form. The encoding argument indicates the encoding, which can be base64 , hex , or
// any of the multitude of encodings indicated in the link below.
bool ReadNBytesENC(int numBytes, const char *encoding, CkString &outStr);
// The same as ReadNBytes, except returns the received bytes in encoded string
// form. The encoding argument indicates the encoding, which can be base64 , hex , or
// any of the multitude of encodings indicated in the link below.
const char *readNBytesENC(int numBytes, const char *encoding);
// The same as ReadNBytes, except returns the received bytes in encoded string
// form. The encoding argument indicates the encoding, which can be base64 , hex , or
// any of the multitude of encodings indicated in the link below.
CkTask *ReadNBytesENCAsync(int numBytes, const char *encoding);
// Read as much data as is immediately available on the stream. If no data is
// immediately available, it waits up to ReadTimeoutMs milliseconds for data to
// arrive. The data is appended to sb. The incoming bytes are interpreted
// according to the StringCharset property. For example, if utf-8 bytes are
// expected, then StringCharset should be set to utf-8 prior to calling ReadSb.
bool ReadSb(CkStringBuilder &sb);
// Read as much data as is immediately available on the stream. If no data is
// immediately available, it waits up to ReadTimeoutMs milliseconds for data to
// arrive. The data is appended to sb. The incoming bytes are interpreted
// according to the StringCharset property. For example, if utf-8 bytes are
// expected, then StringCharset should be set to utf-8 prior to calling ReadSb.
CkTask *ReadSbAsync(CkStringBuilder &sb);
// Read as much data as is immediately available on the stream. If no data is
// immediately available, it waits up to ReadTimeoutMs milliseconds for data to
// arrive. The data is returned as a string. The incoming bytes are interpreted
// according to the StringCharset property. For example, if utf-8 bytes are
// expected, then StringCharset should be set to utf-8 prior to calling ReadString.
bool ReadString(CkString &outStr);
// Read as much data as is immediately available on the stream. If no data is
// immediately available, it waits up to ReadTimeoutMs milliseconds for data to
// arrive. The data is returned as a string. The incoming bytes are interpreted
// according to the StringCharset property. For example, if utf-8 bytes are
// expected, then StringCharset should be set to utf-8 prior to calling ReadString.
const char *readString(void);
// Read as much data as is immediately available on the stream. If no data is
// immediately available, it waits up to ReadTimeoutMs milliseconds for data to
// arrive. The data is returned as a string. The incoming bytes are interpreted
// according to the StringCharset property. For example, if utf-8 bytes are
// expected, then StringCharset should be set to utf-8 prior to calling ReadString.
CkTask *ReadStringAsync(void);
// Reads the stream until a CRLF is received. If no data is immediately available,
// it waits up to ReadTimeoutMs milliseconds for data to arrive. The data is
// returned as a string. The incoming bytes are interpreted according to the
// StringCharset property. For example, if utf-8 bytes are expected, then
// StringCharset should be set to utf-8 prior to calling ReadString.
//
// Note: If the end-of-stream is reached prior to receiving the CRLF, then the
// remaining data is returned, and the ReadFailReason property will be set to 3 (to
// indicate end-of-file). This is the only case where as string would be returned
// that does not end with CRLF.
//
bool ReadToCRLF(CkString &outStr);
// Reads the stream until a CRLF is received. If no data is immediately available,
// it waits up to ReadTimeoutMs milliseconds for data to arrive. The data is
// returned as a string. The incoming bytes are interpreted according to the
// StringCharset property. For example, if utf-8 bytes are expected, then
// StringCharset should be set to utf-8 prior to calling ReadString.
//
// Note: If the end-of-stream is reached prior to receiving the CRLF, then the
// remaining data is returned, and the ReadFailReason property will be set to 3 (to
// indicate end-of-file). This is the only case where as string would be returned
// that does not end with CRLF.
//
const char *readToCRLF(void);
// Reads the stream until a CRLF is received. If no data is immediately available,
// it waits up to ReadTimeoutMs milliseconds for data to arrive. The data is
// returned as a string. The incoming bytes are interpreted according to the
// StringCharset property. For example, if utf-8 bytes are expected, then
// StringCharset should be set to utf-8 prior to calling ReadString.
//
// Note: If the end-of-stream is reached prior to receiving the CRLF, then the
// remaining data is returned, and the ReadFailReason property will be set to 3 (to
// indicate end-of-file). This is the only case where as string would be returned
// that does not end with CRLF.
//
CkTask *ReadToCRLFAsync(void);
// Reads the stream until the string indicated by matchStr is received. If no data is
// immediately available, it waits up to ReadTimeoutMs milliseconds for data to
// arrive. The data is returned as a string. The incoming bytes are interpreted
// according to the StringCharset property. For example, if utf-8 bytes are
// expected, then StringCharset should be set to utf-8 prior to calling ReadString.
//
// Note: If the end-of-stream is reached prior to receiving the match string, then
// the remaining data is returned, and the ReadFailReason property will be set to 3
// (to indicate end-of-file). This is the only case where as string would be
// returned that does not end with the desired match string.
//
bool ReadUntilMatch(const char *matchStr, CkString &outStr);
// Reads the stream until the string indicated by matchStr is received. If no data is
// immediately available, it waits up to ReadTimeoutMs milliseconds for data to
// arrive. The data is returned as a string. The incoming bytes are interpreted
// according to the StringCharset property. For example, if utf-8 bytes are
// expected, then StringCharset should be set to utf-8 prior to calling ReadString.
//
// Note: If the end-of-stream is reached prior to receiving the match string, then
// the remaining data is returned, and the ReadFailReason property will be set to 3
// (to indicate end-of-file). This is the only case where as string would be
// returned that does not end with the desired match string.
//
const char *readUntilMatch(const char *matchStr);
// Reads the stream until the string indicated by matchStr is received. If no data is
// immediately available, it waits up to ReadTimeoutMs milliseconds for data to
// arrive. The data is returned as a string. The incoming bytes are interpreted
// according to the StringCharset property. For example, if utf-8 bytes are
// expected, then StringCharset should be set to utf-8 prior to calling ReadString.
//
// Note: If the end-of-stream is reached prior to receiving the match string, then
// the remaining data is returned, and the ReadFailReason property will be set to 3
// (to indicate end-of-file). This is the only case where as string would be
// returned that does not end with the desired match string.
//
CkTask *ReadUntilMatchAsync(const char *matchStr);
// Resets the stream. If a source or sink is open, then it is closed. Properties
// such as EndOfStream and IsWriteClose are reset to default values.
void Reset(void);
// Sets the stream's source to the contents of sourceData.
bool SetSourceBytes(CkByteData &sourceData);
// Sets the stream's source to the contents of srcStr. The charset indicates the
// character encoding to be used for the byte representation of the srcStr.
bool SetSourceString(const char *srcStr, const char *charset);
// Writes the contents of binData to the stream.
bool WriteBd(CkBinData &binData);
// Writes the contents of binData to the stream.
CkTask *WriteBdAsync(CkBinData &binData);
// Writes a single byte to the stream. The byteVal must have a value from 0 to 255.
bool WriteByte(int byteVal);
// Writes a single byte to the stream. The byteVal must have a value from 0 to 255.
CkTask *WriteByteAsync(int byteVal);
// Writes binary bytes to a stream.
bool WriteBytes(CkByteData &byteData);
// Writes binary bytes to a stream.
CkTask *WriteBytesAsync(CkByteData &byteData);
// Writes binary bytes to a stream.
bool WriteBytes2(const void *pByteData, unsigned long szByteData);
// Writes binary bytes to a stream. The byte data is passed in encoded string form,
// where the encoding can be base64 , hex , or any of the supported binary encodings
// listed at the link below.
bool WriteBytesENC(const char *byteData, const char *encoding);
// Writes binary bytes to a stream. The byte data is passed in encoded string form,
// where the encoding can be base64 , hex , or any of the supported binary encodings
// listed at the link below.
CkTask *WriteBytesENCAsync(const char *byteData, const char *encoding);
// Indicates that no more data will be written to the stream.
bool WriteClose(void);
// Writes the contents of sb to the stream. The actual bytes written are the byte
// representation of the string as indicated by the StringCharset property. For
// example, to write utf-8 bytes, first set StringCharset equal to utf-8 and then
// call WriteSb.
bool WriteSb(CkStringBuilder &sb);
// Writes the contents of sb to the stream. The actual bytes written are the byte
// representation of the string as indicated by the StringCharset property. For
// example, to write utf-8 bytes, first set StringCharset equal to utf-8 and then
// call WriteSb.
CkTask *WriteSbAsync(CkStringBuilder &sb);
// Writes a string to a stream. The actual bytes written are the byte
// representation of the string as indicated by the StringCharset property. For
// example, to write utf-8 bytes, first set StringCharset equal to utf-8 and then
// call WriteString.
bool WriteString(const char *str);
// Writes a string to a stream. The actual bytes written are the byte
// representation of the string as indicated by the StringCharset property. For
// example, to write utf-8 bytes, first set StringCharset equal to utf-8 and then
// call WriteString.
CkTask *WriteStringAsync(const char *str);
// END PUBLIC INTERFACE
};
#if !defined(__sun__) && !defined(__sun)
#pragma pack (pop)
#endif
#endif