Mako 8.2.0 API
MakoCore SDK API Documentation
Loading...
Searching...
No Matches
edlstream.h File Reference
#include <fstream>
#include <edl/edltypes.h>
#include <edl/edlstream.h>
#include <edl/iedlobject.h>
#include <edl/idomhashable.h>
#include <edl/edlvector.h>
#include <edl/edlerrors.h>
#include <edl/edlfwd.h>
Include dependency graph for edlstream.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  IEDLStream
 Generic stream. Abstract base class for EDL stream subsystem. More...
class  IInputStream
 Generic input stream. Abstract base class for all input streams. More...
class  IRAStream
 Abstract base class for "Random-Access" streams i.e. streams that can be arbitrarily re-positioned. More...
class  IPushbackStream
 Abstract base class (for input streams only) that provides a "push back" mechanism. When used with random access streams, the pushback buffer is invalidated by setPos(). More...
class  IRAInputStream
 Random Access Input Stream. More...
class  IInputPushbackStream
 Input Stream with pushback support. More...
class  IRAInputPushbackStream
 Random-access Input Stream with pushback support. More...
class  CFileStreamParams
class  CFileStreamWithCallbackParams
class  CUserStreamWriteParams
class  CUserStreamReadParams
class  CRAUserStreamReadParams
class  CInputMemoryParams
class  IOutputStream
 Generic output stream. Abstract base class for output streams. More...
class  IRAOutputStream
 Random Access Output Stream. More...
class  IRAInputOutputStream
class  EDLIFStream
 An ifstream that can deal with UTF8 file names on all platforms. More...
class  EDLOFStream
 An ofstream that can deal with UTF8 file names on all platforms. More...

Macros

#define edlobj2IEDLStream(src)
#define edlobj2IInputStream(src)
#define edlobj2IRAInputStream(src)
#define edlobj2IInputPushbackStream(src)
#define edlobj2IRAInputPushbackStream(src)
#define FILE_STREAM_GUID   0x89ad895, 0x48f1685b, 0x8dab9c1a, 0xe8e3b18b
#define SHARED_STREAM_GUID   0xe88a727d, 0xe53140da, 0x9bbff26d, 0x79a42d81
#define OUTPUTFILE_STREAM_GUID   0x50a914fc, 0xe81446b9, 0x8e420d48, 0x09454eff
#define OUTPUTUSER_STREAM_GUID   0x789AEE52, 0xD0384136, 0x8B4584B0, 0x942E55CA
#define INPUTUSER_STREAM_GUID   0xd55cc022, 0xa6844749, 0x9414d265, 0xeeab7cea
#define INPUTRAUSER_STREAM_GUID   0x9895EBEB, 0xe2654b86, 0xa527a102, 0x3c3d36cd
#define INPUT_MEMORY_STREAM_GUID   0x26CAC8F2, 0x726A432c, 0xB8399237, 0xEA12D95F
#define FILE_STREAM_WITH_CALLBACK_GUID   0X7FB63540, 0XC0684D87, 0XB513F53A, 0X4925CF1C
#define USERINPUT_RASTREAM_GUID   0x776b2562, 0x87e141b0, 0xa3d4c121, 0xdf3588ba
#define USEROUTPUT_STREAM_GUID   0x1d0a1b45, 0xb2694fd2, 0xa1b28077, 0xee815f6a
#define edlobj2IOutputStream(src)
#define edlobj2IRAOutputStream(src)
#define edlobj2IRAInputOutputStream(src)

Typedefs

typedef CEDLVector< IInputStreamPtr > CIInputStreamVect
typedef CEDLVector< IRAInputStreamPtr > CIRAInputStreamVect
typedef int(* UserStreamWriteFunc) (void *pPriv, void *pBuff, unsigned int len)
 Type definition of a callback function to receive streamed output.
typedef int(* UserStreamReadFunc) (void *pPriv, void *pBuff, unsigned int len, unsigned int *pLenRead, int *pEof)
 Callback typedef for streaming input.
typedef int(* UserRAReadFunc) (void *pPriv, void *pBuff, int64 offset, int32 length)
 Callback typedef for user defined random access input.
typedef void(* FileStreamReadFunc) (void *pPriv, int64 pos, int32 len)
 Callback typedef for CFileStreamWithCallback that is used to notify a client of reads from stream.

Functions

 DECL_SMART_PTR (IEDLStream)
 DECL_SMART_PTR (IInputStream)
 DECL_SMART_PTR (IRAInputStream)
 DECL_SMART_PTR (IRAOutputStream)
 DECL_SMART_PTR (IInputPushbackStream)
 DECL_SMART_PTR (IRAInputPushbackStream)
 DECL_SMART_PTR (IOutputStream)
 DECL_SMART_PTR (IRAInputOutputStream)

Macro Definition Documentation

◆ edlobj2IEDLStream

#define edlobj2IEDLStream ( src)
Value:
edl_cast((IEDLStream *)NULL, src)
Generic stream. Abstract base class for EDL stream subsystem.
Definition edlstream.h:38
CSmartPtr< Type > edl_cast(Type *dst, IEDLObjectPtr src)
Definition iedlobject.h:91

◆ edlobj2IInputPushbackStream

#define edlobj2IInputPushbackStream ( src)
Value:
Input Stream with pushback support.
Definition edlstream.h:672

◆ edlobj2IInputStream

#define edlobj2IInputStream ( src)
Value:
edl_cast((IInputStream *)NULL, src)
Generic input stream. Abstract base class for all input streams.
Definition edlstream.h:149

◆ edlobj2IOutputStream

#define edlobj2IOutputStream ( src)
Value:
edl_cast((IOutputStream *)NULL, src)
Generic output stream. Abstract base class for output streams.
Definition edlstream.h:811

◆ edlobj2IRAInputOutputStream

#define edlobj2IRAInputOutputStream ( src)
Value:
Definition edlstream.h:1027

◆ edlobj2IRAInputPushbackStream

#define edlobj2IRAInputPushbackStream ( src)
Value:
Random-access Input Stream with pushback support.
Definition edlstream.h:684

◆ edlobj2IRAInputStream

#define edlobj2IRAInputStream ( src)
Value:
edl_cast((IRAInputStream *)NULL, src)
Random Access Input Stream.
Definition edlstream.h:659

◆ edlobj2IRAOutputStream

#define edlobj2IRAOutputStream ( src)
Value:
Random Access Output Stream.
Definition edlstream.h:1021

◆ FILE_STREAM_GUID

#define FILE_STREAM_GUID   0x89ad895, 0x48f1685b, 0x8dab9c1a, 0xe8e3b18b

◆ FILE_STREAM_WITH_CALLBACK_GUID

#define FILE_STREAM_WITH_CALLBACK_GUID   0X7FB63540, 0XC0684D87, 0XB513F53A, 0X4925CF1C

◆ INPUT_MEMORY_STREAM_GUID

#define INPUT_MEMORY_STREAM_GUID   0x26CAC8F2, 0x726A432c, 0xB8399237, 0xEA12D95F

◆ INPUTRAUSER_STREAM_GUID

#define INPUTRAUSER_STREAM_GUID   0x9895EBEB, 0xe2654b86, 0xa527a102, 0x3c3d36cd

◆ INPUTUSER_STREAM_GUID

#define INPUTUSER_STREAM_GUID   0xd55cc022, 0xa6844749, 0x9414d265, 0xeeab7cea

◆ OUTPUTFILE_STREAM_GUID

#define OUTPUTFILE_STREAM_GUID   0x50a914fc, 0xe81446b9, 0x8e420d48, 0x09454eff

◆ OUTPUTUSER_STREAM_GUID

#define OUTPUTUSER_STREAM_GUID   0x789AEE52, 0xD0384136, 0x8B4584B0, 0x942E55CA

◆ SHARED_STREAM_GUID

#define SHARED_STREAM_GUID   0xe88a727d, 0xe53140da, 0x9bbff26d, 0x79a42d81

◆ USERINPUT_RASTREAM_GUID

#define USERINPUT_RASTREAM_GUID   0x776b2562, 0x87e141b0, 0xa3d4c121, 0xdf3588ba

◆ USEROUTPUT_STREAM_GUID

#define USEROUTPUT_STREAM_GUID   0x1d0a1b45, 0xb2694fd2, 0xa1b28077, 0xee815f6a

Typedef Documentation

◆ CIInputStreamVect

typedef CEDLVector<IInputStreamPtr> CIInputStreamVect

◆ CIRAInputStreamVect

typedef CEDLVector<IRAInputStreamPtr> CIRAInputStreamVect

◆ FileStreamReadFunc

typedef void(* FileStreamReadFunc) (void *pPriv, int64 pos, int32 len)

Callback typedef for CFileStreamWithCallback that is used to notify a client of reads from stream.

Parameters
pPrivA private pointer that is passed with each invocation.
posStarting position for this read.
lenThe number of bytes that were read.

◆ UserRAReadFunc

typedef int(* UserRAReadFunc) (void *pPriv, void *pBuff, int64 offset, int32 length)

Callback typedef for user defined random access input.

For correct operation, this callback function must be thread safe as it is possible that multiple threads may call this function simultaneously.

Parameters
pPrivA private pointer that is passed with each invocation.
pBuffThe buffer to read data into.
offsetThe position within the input from which the data will be read.
lengthThe number of bytes that are requested for the read.
Returns
int Zero on success, non-zero on failure.

◆ UserStreamReadFunc

typedef int(* UserStreamReadFunc) (void *pPriv, void *pBuff, unsigned int len, unsigned int *pLenRead, int *pEof)

Callback typedef for streaming input.

Parameters
pPrivA private pointer that is passed with each invocation.
pBuffThe buffer to read data into.
lenThe number of bytes that are requested for the read.
pLenReadA pointer to the number of bytes actually read.
pEofA pointer to a int value that indicates whether the end of file (EOF) was read. *pEof = 1 if end of file, *pEof = 0 otherwise.
Returns
int Zero on success, non-zero on failure.

◆ UserStreamWriteFunc

typedef int(* UserStreamWriteFunc) (void *pPriv, void *pBuff, unsigned int len)

Type definition of a callback function to receive streamed output.

Pointers to functions of this type can be passed to EDL via the outputcallback parameter. Any implementations of this type are expected to return zero on success, and a non-zero error code if the call fails. They should also be able to handle the special case where pBuff is set to NULL and len is set to 0. The stream writer passes these values to signal an aborted output stream. That is, no more data will be written to and incomplete stream, due to an error upstream in the process.

Parameters
pPrivA private pointer that is passed with each invocation.
pBuffThe buffer containing the data to be written.
lenThe length of the data in the buffer. 0 indicates that the stream is ending.
Returns
int Zero on success, non-zero on failure.

Function Documentation

◆ DECL_SMART_PTR() [1/8]

DECL_SMART_PTR ( IEDLStream )

◆ DECL_SMART_PTR() [2/8]

DECL_SMART_PTR ( IInputPushbackStream )

◆ DECL_SMART_PTR() [3/8]

DECL_SMART_PTR ( IInputStream )

◆ DECL_SMART_PTR() [4/8]

DECL_SMART_PTR ( IOutputStream )

◆ DECL_SMART_PTR() [5/8]

DECL_SMART_PTR ( IRAInputOutputStream )

◆ DECL_SMART_PTR() [6/8]

DECL_SMART_PTR ( IRAInputPushbackStream )

◆ DECL_SMART_PTR() [7/8]

DECL_SMART_PTR ( IRAInputStream )

◆ DECL_SMART_PTR() [8/8]

DECL_SMART_PTR ( IRAOutputStream )