#include <wvmagiccircle.h>
Inheritance diagram for WvMagicCircle:
Definition at line 14 of file wvmagiccircle.h.
Public Member Functions | |
WvMagicCircle (size_t size) | |
Creates a shared memory circular queue. | |
~WvMagicCircle () | |
size_t | used () |
size_t | left () |
size_t | put (const void *data, size_t len) |
size_t | get (void *data, size_t len) |
size_t | skip (size_t len) |
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). | |
Protected Attributes | |
WvShmZone | shm |
volatile int & | head |
volatile int & | tail |
int | size |
char * | circle |
int | errnum |
WvString | errstring |
WvMagicCircle::WvMagicCircle | ( | size_t | size | ) |
Creates a shared memory circular queue.
"size" is the number of elements to store
Definition at line 11 of file wvmagiccircle.cc.
References WvShmZone::cbuf, circle, WvErrorBase::geterr(), head, WvErrorBase::seterr(), shm, size, and tail.
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, 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(), 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(), WvPam::WvPam(), WvRSAKey::WvRSAKey(), WvShmZone::WvShmZone(), and WvX509Mgr::WvX509Mgr().