Main Page | Namespace List | Class Hierarchy | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

AxPipe Namespace Reference

The main namespace where all identifiers should be. More...


Classes

class  Auto_Seg
 std::auto_ptr like functionality with CSeg pointers. More...

class  CCoContext
 Encapsulate a co-routine context. More...

class  CError
 Base class to all segments, handles backwards error propagation etc. More...

class  CFilter
 A buffering filter enabling a pull programming-model. More...

class  CFilterBlock
 A buffering filter class returning chunks of requested size. More...

class  CFilterByte
 A byte-wise filter class, enabling the caller to retrieve one byte at a time. More...

class  CGlobalInit
 Global initialization for the AxPipe framework. More...

class  CJoin
 A Y join, taking any number of streams and joining them. More...

class  CJoin::CTSinkJoin
 A helper class for the merge, each in stream gets a CSinkJoin like this. More...

class  CNoThread
 Dummy non-threaded base-class for all CSource, CSink and CPipe derived classes. More...

class  CPipe
 The generic pipe-segment as an abstract class. More...

class  CPipeBlock
 Accept pushed segments n blocks of m bytes at a time (except last). More...

class  CSeg
 Reference counted memory buffer objects. More...

class  CSegMap
 A special purpose version of CSeg, to work with Memory Mapped segments. More...

class  CSink
 The base class of all CSink and CPipe derived pipe sections. More...

class  CSinkMemFile
 A CSink implemented with a memory mapped file as the destination. More...

class  CSinkNull
 /dev/null or NUL: in Windows parlance More...

class  CSource
 A generic source, as an abstract class. More...

class  CSourceMem
 A memory buffer based source. More...

class  CSourceMemFile
 A CSource providing data from a file system file, using memory mapping. More...

class  CSourceNull
 /dev/null or NUL: in Windows More...

class  CSplit
 A forward Y-split, divides a stream into two. More...

class  CSync
 Thread synchronization. More...

class  CThread
 Thread wrapper for AxPipe CSource, CPipe and CSink derived classes. More...

class  CThreadMain
 a Template class that will create a thread for a method virtual int Main() More...

class  CThreadNoRun
 Only used as a ThreadProc to get back into the class. Template to implement a pipe-section in a separate thread. More...

class  CThreadSource
 Start a CSource in a separate thread. A CSource derived class will be setup to Drain() in it's own thread. More...

class  CThreadSync
 A small collection of objects and methods for thread sync. More...


Typedefs

typedef __int64 longlong
 Substitute for long long which is not always supported.

typedef unsigned __int64 ulonglong
 Substitute for unsigned long long which is not always supported.

typedef CThread< CSourceMemFileCTSourceMemFile
 A Threaded version of CSourceMemFile for convenience.

typedef CThread< CSinkMemFileCTSinkMemFile
 A threaded version of CSinkMemFile for convenience.

typedef Auto_Seg< CSegCAutoSeg
 Use pretty much as you would auto_ptr<CSeg> if you could have done that, which you can't.


Enumerations

enum  ERROR_CODE {
  ERROR_CODE_SUCCESS = 0, ERROR_CODE_GENERIC, ERROR_CODE_INTERNAL, ERROR_CODE_NOTOPEN,
  ERROR_CODE_STOCK, ERROR_CODE_DERIVED = 100
}
 AxPipe pre-defined error codes, gettable with GetErrorCode(). More...

enum  eSegType {
  eSegTypeOpen = 1, eSegTypeFlush, eSegTypeClose, eSegTypePlug,
  eSegTypeDerived = 100
}
 Special segment value types that have meaning in the data pump. More...


Functions

void * MapUserView (HANDLE hMapping, longlong llOffset, size_t cbLen, void **ppvUserView, DWORD dwAccess)
 Map a view of a file to a given offset.


Variables

DWORD dwTlsIndex
 Used to keep track of thread fiber-status for the pull-filter mode classes.

volatile long nGlobalInit
 Keep track of how global initialization count.

const _TCHAR * ERROR_MSG_GENERIC = _T("AxPipe:: %s")
 ERROR_CODE_GENERIC - for most errors, one string argument.

const _TCHAR * ERROR_MSG_INTERNAL = _T("AxPipe:: Internal error %s")
 ERROR_CODE_INTERNAL - for fatal internal errors, one string argument.

const _TCHAR * ERROR_MSG_NOTOPEN = _T("AxPipe:: Pipe not Open")
 ERROR_CODE_NOTOPEN - Sequence error in operations - need open first.


Detailed Description

The main namespace where all identifiers should be.

Use using AxPipe; or AxPipe:: prefix for all references to identifiers except macros in the framework.


Enumeration Type Documentation

enum AxPipe::ERROR_CODE
 

AxPipe pre-defined error codes, gettable with GetErrorCode().

Enumeration values:
ERROR_CODE_SUCCESS  No error.
ERROR_CODE_GENERIC  Use for most error, details in the string argument.
ERROR_CODE_INTERNAL  Used for internal framework errors (bugs).
ERROR_CODE_NOTOPEN  Attempt to do something on a pipe that's not open.
ERROR_CODE_STOCK  An error from a stock transformation.
ERROR_CODE_DERIVED  Start here for user-derived classes error codes.

Definition at line 138 of file AxPipe.h.

enum AxPipe::eSegType
 

Special segment value types that have meaning in the data pump.

CSeg's keep track of an opaque segment type meta-data value, which is an int. User-defined must be non-zero, because the default value is zero. These are used to mark the special in-band signals for Open, Close and Plug. When we send CSeg's down the line with a type from this list, the code does special things, such as calling OutOpen(), OutClose() and Plug() respectively.

Enumeration values:
eSegTypeOpen  Send signal to open in band.
eSegTypeFlush  Send signal to flush in band.
eSegTypeClose  Send signal to close in band.
eSegTypePlug  Send signal to plug in band.
eSegTypeDerived  Start your own definitions here.

Definition at line 157 of file AxPipe.h.


Function Documentation

void* MapUserView HANDLE  hMapping,
longlong  llOffset,
size_t  cbLen,
void **  ppvUserView,
DWORD  dwAccess
[static]
 

Map a view of a file to a given offset.

Ensure that the view is correctly aligned, but give the caller a convenient pointer to the right place in the view.

Parameters:
hMapping An active file mapping
llOffset The offset in the file you want the view to start at
cbLen The length of the asked for view
ppvUserView A user-friendly pointer into the view, correctly offset.
dwAccess Access requested, FILE_MAP_READ or FILE_MAP_WRITE typeically
Returns:
The actual view, NULL if error.

Definition at line 48 of file CFileMap.cpp.

References ASSAPI, and longlong.

Referenced by AxPipe::CSinkMemFile::Out(), and AxPipe::CSinkMemFile::OutGetSeg().


Generated on Mon Feb 2 13:19:21 2004 for AxPipe by doxygen 1.3.5