InDesign SDK  20.5
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
CStreamWrite Class Reference
Inheritance diagram for CStreamWrite:
IPMStreamIPMUnknownPrtMemWriteStream

Public Member Functions

 CStreamWrite (IPMUnknown *boss)
 
virtual uchar XferByte (uchar &chr)
 
virtual int32 XferByte (uchar *buf, int32 num)
 
virtual bool16 XferBool (bool16 &chr)
 
virtual int32 XferBool (bool16 *buf, int32 num)
 
virtual int16 XferInt16 (int16 &i)
 
virtual int32 XferInt16 (int16 *buf, int32 num)
 
virtual int32 XferInt32 (int32 &i)
 
virtual int32 XferInt32 (int32 *buf, int32 num)
 
virtual int64 XferInt64 (int64 &i)
 
virtual uintptr_t XferPointer (uintptr_t &i)
 
virtual ClassID XferID (ClassID &i)
 
virtual int32 XferID (ClassID *buf, int32 num)
 
virtual ImplementationID XferID (ImplementationID &i)
 
virtual int32 XferID (ImplementationID *buf, int32 num)
 
virtual WidgetID XferID (WidgetID &i)
 
virtual int32 XferID (WidgetID *buf, int32 num)
 
virtual PluginID XferID (PluginID &i)
 
virtual int32 XferID (PluginID *buf, int32 num)
 
virtual PMIID XferID (PMIID &i)
 
virtual int32 XferID (PMIID *buf, int32 num)
 
virtual ActionID XferID (ActionID &i)
 
virtual int32 XferID (ActionID *buf, int32 num)
 
virtual ScriptElementID XferID (ScriptElementID &i)
 
virtual int32 XferID (ScriptElementID *buf, int32 num)
 
virtual ScriptID XferID (ScriptID &i)
 
virtual int32 XferID (ScriptID *buf, int32 num)
 
virtual LinkClientID XferID (LinkClientID &i)
 
virtual int32 XferID (LinkClientID *buf, int32 num)
 
virtual UID XferObject (UID &u)
 
virtual int32 XferObject (UID *buf, int32 num)
 
virtual UID XferReference (UID &u)
 
virtual int32 XferReference (UID *buf, int32 num)
 
virtual PMRealXferRealNumber (PMReal &r)
 
virtual int32 XferRealNumber (PMReal *buf, int32 num)
 
virtual void Comment (const char *comment)
 
virtual int64 Seek (int64 numberOfBytes, SeekFromWhere fromHere)
 
virtual void SetEndOfStream ()
 
virtual void Flush ()
 
virtual StreamState GetStreamState ()
 
virtual bool16 IsReading () const
 
virtual bool16 IsWriting () const
 
virtual bool16 IsWritingForDuplication (IDataBase **) const
 
virtual void SetSwapping (bool16 swapping)
 
virtual bool16 GetSwapping () const
 
void SetXferBytes (IXferBytes *xferBytes)
 
- Public Member Functions inherited from IPMStream
template<typename T >
void XferEnum (T &e)
 
template<class T >
IDType< T > XferID (IDType< T > &id)
 
template<class T >
int32 XferID (IDType< T > *buf, int32 count)
 
- Public Member Functions inherited from IPMUnknown
virtual IPMUnknownQueryInterface (PMIID interfaceID) const =0
 
virtual void AddRef () const =0
 
virtual void Release () const =0
 

Protected Member Functions

IXferBytesGetXferBytes ()
 
virtual bool16 Open ()
 
virtual void Close ()
 

Additional Inherited Members

- Public Types inherited from IPMStream
enum  _StreamType { kUnknown, kReader, kWriter }
 
typedef enum IPMStream::_StreamType StreamType
 

Member Function Documentation

virtual void CStreamWrite::Close ()
protectedvirtual

Close the stream. Call this when you are all done with the stream.

Implements IPMStream.

virtual void CStreamWrite::Comment (const char * comment)
virtual

This method is mainly for notation purposes. Streams that write data in a text format write out appropriate syntax for the beginning and ending of structs and arrays.

Implements IPMStream.

virtual void CStreamWrite::Flush ()
virtual

Flushes any pending writes out to the operating system.

Implements IPMStream.

virtual StreamState CStreamWrite::GetStreamState ()
virtual

Return the current stream state. Use this method to tell whether you've read past the end of the stream.

Implements IPMStream.

virtual bool16 CStreamWrite::GetSwapping () const
virtual
Returns
kTrue if the stream is set to swap.

Implements IPMStream.

virtual bool16 CStreamWrite::IsReading () const
virtual

Returns true if the stream is a read (input) stream.

Implements IPMStream.

virtual bool16 CStreamWrite::IsWriting () const
virtual

Returns true if the stream is a write (output) stream.

Implements IPMStream.

virtual bool16 CStreamWrite::IsWritingForDuplication (IDataBase ** optDestDB) const
virtual

Write streams which are created for the purposes of duplicating, such as from IScrapUtils::CopyObject(), may influence how persisting implemenations behave if they have state that is dependent on external state. The value returned here is by definition constant throughout the life of the stream. Most implementors of IPMStreams will always return kFalse and only those which duplicate objects, rathern than simply persisting them, in XferReference() and XferObject() should be returning kTrue.

Parameters
optDestDBPointer to IDataBase pointer. If non-nil, will be filled in with the destination if the method returns kTrue, otherwise unchanged.
Returns
kTrue if IsWriting() return kTrue and the underlying stream is for the purposes of stream duplication.

Implements IPMStream.

virtual bool16 CStreamWrite::Open ()
protectedvirtual

Open the stream for reading or writing. This must be called before any Xfers are called. It gets called for you by the StreamUtils functions. Typically streams may have data interfaces that must be filled out before you can call Open.

Returns
kTrue if stream successfully opened, kFalse otherwise.

Implements IPMStream.

virtual int64 CStreamWrite::Seek (int64 numberOfBytes,
SeekFromWhere fromHere 
)
virtual
Set the location for the next xfer. Analogous to seeking in a file.

Returns
new location in the stream, following the requested Seek. Hence stream->Seek(0,kSeekFromCurrent) returns the current stream position.

Implements IPMStream.

virtual void CStreamWrite::SetEndOfStream ()
virtual

Set the end of the stream at the current location. Truncates the stream!

Implements IPMStream.

virtual void CStreamWrite::SetSwapping (bool16 swapOn)
virtual

Turn byte swapping on/off. When on, the stream will treat the data target as having the oppsite byte order to the current platform. The stream will automatically byte swap if swapping has been turned on, enabling conversion across platforms. Swapping is off by default.

Implements IPMStream.

virtual bool16 CStreamWrite::XferBool (bool16 & chr)
virtual

Read or write a single bool16.

Implements IPMStream.

virtual int32 CStreamWrite::XferBool (bool16 * buf,
int32 num 
)
virtual

Read or write an array of bools.

Implements IPMStream.

virtual uchar CStreamWrite::XferByte (uchar & chr)
virtual

Read or write a single byte.

Implements IPMStream.

virtual int32 CStreamWrite::XferByte (uchar * buf,
int32 num 
)
virtual

Read or write an array of bytes.

Implements IPMStream.

virtual ClassID CStreamWrite::XferID (ClassIDi)
virtual

Read or write a single ClassID.

Implements IPMStream.

virtual int32 CStreamWrite::XferID (ClassIDbuf,
int32 num 
)
virtual

Read or write an array of ClassIDs.

Implements IPMStream.

virtual ImplementationID CStreamWrite::XferID (ImplementationIDi)
virtual

Read or write a single ImplementationID. idSpace is implied to be kImplementationIDSpace

Implements IPMStream.

virtual int32 CStreamWrite::XferID (ImplementationIDbuf,
int32 num 
)
virtual

Read or write an array of ImplementationIDs.

Implements IPMStream.

virtual WidgetID CStreamWrite::XferID (WidgetIDi)
virtual

Read or write a single WidgetID. idSpace is implied to be kWidgetIDSpace

Implements IPMStream.

virtual int32 CStreamWrite::XferID (WidgetIDbuf,
int32 num 
)
virtual

Read or write an array of WidgetIDs.

Implements IPMStream.

virtual PluginID CStreamWrite::XferID (PluginIDi)
virtual

Read or write a single PluginID. idSpace is implied to be kPluginIDSpace

Implements IPMStream.

virtual int32 CStreamWrite::XferID (PluginIDbuf,
int32 num 
)
virtual

Read or write an array of PluginIDs.

Implements IPMStream.

virtual PMIID CStreamWrite::XferID (PMIIDi)
virtual

Read or write a single PMIID. idSpace is implied to be kInterfaceIDSpace

Implements IPMStream.

virtual int32 CStreamWrite::XferID (PMIIDbuf,
int32 num 
)
virtual

Read or write an array of PMIIDs.

Implements IPMStream.

virtual ActionID CStreamWrite::XferID (ActionIDi)
virtual

Read or write a single Action id. idSpace is implied to be kActionIDSpace

Implements IPMStream.

virtual int32 CStreamWrite::XferID (ActionIDbuf,
int32 num 
)
virtual

Read or write an array of ActionIDs.

Implements IPMStream.

virtual ScriptElementID CStreamWrite::XferID (ScriptElementIDi)
virtual

Read or write a single ScriptInfo id. idSpace is implied to be kScriptInfoIDSpace

Implements IPMStream.

virtual int32 CStreamWrite::XferID (ScriptElementIDbuf,
int32 num 
)
virtual

Read or write an array of ScriptElementIDs.

Implements IPMStream.

virtual ScriptID CStreamWrite::XferID (ScriptIDi)
virtual

Read or write a single ScriptID id.

Implements IPMStream.

virtual int32 CStreamWrite::XferID (ScriptIDbuf,
int32 num 
)
virtual

Read or write an array of ScriptIDs.

Implements IPMStream.

virtual LinkClientID CStreamWrite::XferID (LinkClientIDi)
virtual

Read or write a single LinkClientID id. idSpace is implied to be kLinkClientIDSpace.

Implements IPMStream.

virtual int32 CStreamWrite::XferID (LinkClientIDbuf,
int32 num 
)
virtual

Read or write an array of LinkClientIDs.

Implements IPMStream.

virtual int16 CStreamWrite::XferInt16 (int16 & i)
virtual

Read or write a single int16.

Implements IPMStream.

virtual int32 CStreamWrite::XferInt16 (int16 * buf,
int32 num 
)
virtual

Read or write an array of int16.

Implements IPMStream.

virtual int32 CStreamWrite::XferInt32 (int32 & i)
virtual

Read or write a single int32.

Implements IPMStream.

virtual int32 CStreamWrite::XferInt32 (int32 * buf,
int32 num 
)
virtual

Read or write an array of int32.

Implements IPMStream.

virtual int64 CStreamWrite::XferInt64 (int64 & i)
virtual

Read or write a single int64.

Implements IPMStream.

virtual UID CStreamWrite::XferObject (UIDu)
virtual

Read or write a single UID-based object. Call this method when an object is being written out, and the object has a UID to another object that it owns. The stream will decide whether to output just the UID, or to make a copy of the object. For instance, if an object has children, it should call XferObject to write out the children.

Implements IPMStream.

virtual int32 CStreamWrite::XferObject (UIDbuf,
int32 num 
)
virtual

Read or write an array of objects.

Implements IPMStream.

virtual uintptr_t CStreamWrite::XferPointer (uintptr_t & i)
virtual

Read or write a single pointer - this will fail if writing to a user document, and return garbage when reading from a user document; useful only for memory streams. There is no validity checking on the pointer, it is up to the reader/writer to manage the pointers lifetime. On a 32 bit machine, this will xfer 4 bytes, on a 64 bit machine, it will xfer 8 bytes.

Implements IPMStream.

virtual PMReal& CStreamWrite::XferRealNumber (PMRealr)
virtual

Read or write a single real number.

Implements IPMStream.

virtual int32 CStreamWrite::XferRealNumber (PMRealbuf,
int32 num 
)
virtual

Read or write an array of real number.

Implements IPMStream.

virtual UID CStreamWrite::XferReference (UIDu)
virtual

Read or write a single object reference. Call this method when an object is being written out, and the object has a UID to another object but it just refers to the other object, it doesn't own it. For instance, if an object has a reference to some global object that is owned by the document (for instance a style or color), it uses XferReference to tell the stream to map the reference from a reference to a color in the source document, to an equivalent color in the destination document.

Implements IPMStream.

virtual int32 CStreamWrite::XferReference (UIDbuf,
int32 num 
)
virtual

Read or write an array of object references.

Implements IPMStream.