WvShmZone Class Reference

#include <wvshmzone.h>

Inheritance diagram for WvShmZone:
[legend]

List of all members.


Detailed Description

Represents a shared-memory zone via mmap().

If you create one of these, its buf element will be shared across fork() and you can use it for various things such as a circular queue, semaphore, etc.

Definition at line 20 of file wvshmzone.h.


Public Member Functions

 WvShmZone (size_t size)
 Creates a shared memory zone.
 ~WvShmZone ()
virtual bool isok () const
 By default, returns true if geterr() == 0.
virtual int geterr () const
 If isok() is false, return the system error number corresponding to the error, -1 for a special error string (which you can obtain with errstr()) or 0 on end of file.
virtual WvString errstr () const
virtual void seterr (int _errnum)
 Set the errnum variable -- we have an error.
void seterr (WvStringParm specialerr)
void seterr (WVSTRING_FORMAT_DECL)
void seterr (const WvErrorBase &err)
void seterr_both (int _errnum, WvStringParm specialerr)
void noerr ()
 Reset our error state - there's no error condition anymore.

Static Public Member Functions

static WvString strerror (int errnum)
 A replacement for the operating system strerror() function that can map more kinds of error strings (especially in win32).

Public Attributes

int size
union {
   void *   buf
   char *   cbuf
   unsigned char *   ucbuf
}; 

Protected Attributes

int errnum
WvString errstring

Constructor & Destructor Documentation

WvShmZone::WvShmZone ( size_t  size  ) 

Creates a shared memory zone.

"size" is the size of the zone in bytes

Definition at line 16 of file wvshmzone.cc.

References buf, WvErrorBase::seterr(), and size.


Member Function Documentation

virtual bool WvErrorBase::isok (  )  const [inline, virtual, inherited]

By default, returns true if geterr() == 0.

Might be overridden so that isok() == false even though no error code has been specified.

Reimplemented in IWvStream, WvBufStream, WvDSAKey, WvDsp, WvEncoderStream, WvFdStream, WvHTTPStream, WvIStreamList, WvLog, WvRSAKey, WvSSLStream, WvStream, WvStreamClone, WvTCPConn, WvTimeoutStream, WvTimeStream, WvFileWatcher, WvX509Mgr, WvReadLineStream, and _WvConStream.

Definition at line 39 of file wverror.h.

References WvErrorBase::errnum.

Referenced by WvX509Mgr::isok(), WvStream::isok(), WvCRLMgr::isok(), WvGlob::set(), and WvGlobDirIter::WvGlobDirIter().

virtual int WvErrorBase::geterr (  )  const [inline, virtual, inherited]

If isok() is false, return the system error number corresponding to the error, -1 for a special error string (which you can obtain with errstr()) or 0 on end of file.

If isok() is true, returns an undefined number.

Reimplemented in WvHTTPStream, WvStreamClone, and WvX509Mgr.

Definition at line 48 of file wverror.h.

References WvErrorBase::errnum.

Referenced by UniIniGen::commit(), WvX509Mgr::errstr(), WvStreamClone::errstr(), WvErrorBase::errstr(), WvError::get(), UniFileSystemGen::get(), WvX509Mgr::geterr(), WvStreamClone::geterr(), WvEncoderStream::isok(), WvConf::load_file(), WvLockDev::lock(), WvHTTPStream::pre_select(), UniIniGen::refresh(), WvConf::save(), WvStream::seterr(), WvErrorBase::seterr(), WvMagicCircle::WvMagicCircle(), and WvHttpPool::~WvHttpPool().

void WvErrorBase::seterr ( int  _errnum  )  [virtual, inherited]

Set the errnum variable -- we have an error.

If called more than once, seterr() doesn't change the error code away from the previous one. That way, we remember the _original_ cause of our problems.

Subclasses may want to override seterr(int) to shut themselves down (eg. WvStream::close()) when an error condition is set.

Note that seterr(WvString) will call seterr(-1).

Reimplemented in WvStream.

Definition at line 144 of file wverror.cc.

References WvErrorBase::errstring.

Referenced by WvX509Mgr::certreq(), WvX509Mgr::create_selfsigned(), WvX509Mgr::decode(), WvCRLMgr::decode(), WvX509Mgr::encode(), WvCRLMgr::encode(), WvRSAKey::getpem(), WvDSAKey::getpem(), WvX509Mgr::read_p12(), WvGlob::set(), WvError::set(), WvX509Mgr::set_pubkey(), WvStream::seterr(), WvErrorBase::seterr(), WvErrorBase::seterr_both(), WvX509Mgr::sign(), WvX509Mgr::signedbyCAinfile(), WvX509Mgr::test(), WvX509Mgr::unhexify(), WvX509Mgr::validate(), WvX509Mgr::verify(), WvX509Mgr::write_p12(), WvCRLMgr::WvCRLMgr(), WvDSAKey::WvDSAKey(), WvMagicCircle::WvMagicCircle(), WvPam::WvPam(), WvRSAKey::WvRSAKey(), WvShmZone(), and WvX509Mgr::WvX509Mgr().

void WvErrorBase::noerr (  )  [inline, inherited]

Reset our error state - there's no error condition anymore.

Definition at line 76 of file wverror.h.

References WvErrorBase::errnum, WvErrorBase::errstring, and WvFastString::null.

Referenced by WvFile::open(), WvError::reset(), WvCRLMgr::WvCRLMgr(), and WvErrorBase::WvErrorBase().


The documentation for this class was generated from the following files:
Generated on Fri Oct 5 18:20:42 2007 for WvStreams by  doxygen 1.5.3