LssExceptions.h

// LssExceptions.h
//
// Author David Barrett-Lennard
// (C)opyright Cedanet Pty Ltd 2006

#ifndef Ceda_cxLss_LssExceptions_H
#define Ceda_cxLss_LssExceptions_H

#include "cxLss.h"
#include "Ceda/cxUtils/IException.h"
#include "Ceda/cxUtils/ExceptionBase.h"

namespace ceda
{

///////////////////////////////////////////////////////////////////////////////////////////////////
// ProgrammingErrorException

class ProgrammingErrorException : public ExceptionBase
{
public:
    ProgrammingErrorException(ConstStringZ description) : ExceptionBase(description) {}    
};

#define CEDA_RELEASE_ASSERT(expr,desc)  do { if (!(expr)) { cxAssert(0); throw ProgrammingErrorException(desc); } } while (0)


///////////////////////////////////////////////////////////////////////////////////////////////////
// CorruptLSSException

class CorruptLSSException : public ExceptionBase
{
public:
    CorruptLSSException(ConstStringZ description) : ExceptionBase(description) {}
};


///////////////////////////////////////////////////////////////////////////////////////////////////

class ApplyDeltaException : public ExceptionBase
{
public:
    explicit ApplyDeltaException(ConstStringZ description) : ExceptionBase(description) {}
};



} // namespace ceda

#endif // include guard