Files
xahaud/src/cpp/ripple/ripple_SHAMapAddNode.h
2013-06-15 18:20:59 -07:00

89 lines
1.5 KiB
C++

//------------------------------------------------------------------------------
/*
Copyright (c) 2011-2013, OpenCoin, Inc.
*/
//==============================================================================
#ifndef RIPPLE_SHAMAPADDNODE_H
#define RIPPLE_SHAMAPADDNODE_H
// results of adding nodes
class SHAMapAddNode
{
public:
SHAMapAddNode ()
: mInvalid (false)
, mUseful (false)
{
}
void setInvalid ()
{
mInvalid = true;
}
void setUseful ()
{
mUseful = true;
}
void reset ()
{
mInvalid = false;
mUseful = false;
}
bool isInvalid () const
{
return mInvalid;
}
bool isUseful () const
{
return mUseful;
}
bool combine (SHAMapAddNode const& n)
{
// VFALCO NOTE What is the meaning of these lines?
if (n.mInvalid)
{
mInvalid = true;
return false;
}
if (n.mUseful)
mUseful = true;
return true;
}
operator bool () const
{
return !mInvalid;
}
static SHAMapAddNode okay ()
{
return SHAMapAddNode (false, false);
}
static SHAMapAddNode useful ()
{
return SHAMapAddNode (false, true);
}
static SHAMapAddNode invalid ()
{
return SHAMapAddNode (true, false);
}
private:
SHAMapAddNode (bool i, bool u)
: mInvalid (i)
, mUseful (u)
{
}
bool mInvalid;
bool mUseful;
};
#endif