Fabcoin Core  0.16.2
P2P Digital Currency
Public Member Functions | Static Public Member Functions | Static Public Attributes | Static Private Member Functions | Private Attributes | List of all members
CScriptNum Class Reference

#include <script.h>

Public Member Functions

 CScriptNum (const int64_t &n)
 Numeric opcodes (OP_1ADD, etc) are restricted to operating on 4-byte integers. More...
 
 CScriptNum (const std::vector< unsigned char > &vch, bool fRequireMinimal, const size_t nMaxNumSize=nDefaultMaxNumSize)
 
bool operator== (const int64_t &rhs) const
 
bool operator!= (const int64_t &rhs) const
 
bool operator<= (const int64_t &rhs) const
 
bool operator< (const int64_t &rhs) const
 
bool operator>= (const int64_t &rhs) const
 
bool operator> (const int64_t &rhs) const
 
bool operator== (const CScriptNum &rhs) const
 
bool operator!= (const CScriptNum &rhs) const
 
bool operator<= (const CScriptNum &rhs) const
 
bool operator< (const CScriptNum &rhs) const
 
bool operator>= (const CScriptNum &rhs) const
 
bool operator> (const CScriptNum &rhs) const
 
CScriptNum operator+ (const int64_t &rhs) const
 
CScriptNum operator- (const int64_t &rhs) const
 
CScriptNum operator+ (const CScriptNum &rhs) const
 
CScriptNum operator- (const CScriptNum &rhs) const
 
CScriptNumoperator+= (const CScriptNum &rhs)
 
CScriptNumoperator-= (const CScriptNum &rhs)
 
CScriptNum operator& (const int64_t &rhs) const
 
CScriptNum operator& (const CScriptNum &rhs) const
 
CScriptNumoperator&= (const CScriptNum &rhs)
 
CScriptNum operator- () const
 
CScriptNumoperator= (const int64_t &rhs)
 
CScriptNumoperator+= (const int64_t &rhs)
 
CScriptNumoperator-= (const int64_t &rhs)
 
CScriptNumoperator&= (const int64_t &rhs)
 
int getint () const
 
std::vector< unsigned char > getvch () const
 

Static Public Member Functions

static uint64_t vch_to_uint64 (const std::vector< unsigned char > &vch)
 
static std::vector< unsigned char > serialize (const int64_t &value)
 

Static Public Attributes

static const size_t nDefaultMaxNumSize = 4
 

Static Private Member Functions

static int64_t set_vch (const std::vector< unsigned char > &vch)
 

Private Attributes

int64_t m_value
 

Detailed Description

Definition at line 215 of file script.h.

Constructor & Destructor Documentation

CScriptNum::CScriptNum ( const int64_t &  n)
inlineexplicit

Numeric opcodes (OP_1ADD, etc) are restricted to operating on 4-byte integers.

The semantics are subtle, though: operands must be in the range [-2^31 +1...2^31 -1], but results may overflow (and are valid as long as they are not used in a subsequent numeric operation). CScriptNum enforces those semantics by storing results as an int64 and allowing out-of-range values to be returned as a vector of bytes but throwing an exception if arithmetic is done or the result is interpreted as an integer.

Definition at line 227 of file script.h.

CScriptNum::CScriptNum ( const std::vector< unsigned char > &  vch,
bool  fRequireMinimal,
const size_t  nMaxNumSize = nDefaultMaxNumSize 
)
inlineexplicit

Definition at line 234 of file script.h.

Here is the call graph for this function:

Member Function Documentation

int CScriptNum::getint ( ) const
inline

Definition at line 322 of file script.h.

Here is the caller graph for this function:

std::vector<unsigned char> CScriptNum::getvch ( ) const
inline

Definition at line 331 of file script.h.

Here is the caller graph for this function:

bool CScriptNum::operator!= ( const int64_t &  rhs) const
inline

Definition at line 262 of file script.h.

bool CScriptNum::operator!= ( const CScriptNum rhs) const
inline

Definition at line 269 of file script.h.

Here is the call graph for this function:

Here is the caller graph for this function:

CScriptNum CScriptNum::operator& ( const int64_t &  rhs) const
inline

Definition at line 283 of file script.h.

CScriptNum CScriptNum::operator& ( const CScriptNum rhs) const
inline

Definition at line 284 of file script.h.

Here is the call graph for this function:

Here is the caller graph for this function:

CScriptNum& CScriptNum::operator&= ( const CScriptNum rhs)
inline

Definition at line 286 of file script.h.

Here is the call graph for this function:

Here is the caller graph for this function:

CScriptNum& CScriptNum::operator&= ( const int64_t &  rhs)
inline

Definition at line 316 of file script.h.

CScriptNum CScriptNum::operator+ ( const int64_t &  rhs) const
inline

Definition at line 275 of file script.h.

CScriptNum CScriptNum::operator+ ( const CScriptNum rhs) const
inline

Definition at line 277 of file script.h.

Here is the call graph for this function:

Here is the caller graph for this function:

CScriptNum& CScriptNum::operator+= ( const CScriptNum rhs)
inline

Definition at line 280 of file script.h.

Here is the call graph for this function:

Here is the caller graph for this function:

CScriptNum& CScriptNum::operator+= ( const int64_t &  rhs)
inline

Definition at line 300 of file script.h.

Here is the call graph for this function:

CScriptNum CScriptNum::operator- ( const int64_t &  rhs) const
inline

Definition at line 276 of file script.h.

CScriptNum CScriptNum::operator- ( const CScriptNum rhs) const
inline

Definition at line 278 of file script.h.

Here is the call graph for this function:

Here is the caller graph for this function:

CScriptNum CScriptNum::operator- ( ) const
inline

Definition at line 288 of file script.h.

Here is the call graph for this function:

CScriptNum& CScriptNum::operator-= ( const CScriptNum rhs)
inline

Definition at line 281 of file script.h.

Here is the call graph for this function:

Here is the caller graph for this function:

CScriptNum& CScriptNum::operator-= ( const int64_t &  rhs)
inline

Definition at line 308 of file script.h.

Here is the call graph for this function:

bool CScriptNum::operator< ( const int64_t &  rhs) const
inline

Definition at line 264 of file script.h.

bool CScriptNum::operator< ( const CScriptNum rhs) const
inline

Definition at line 271 of file script.h.

Here is the call graph for this function:

bool CScriptNum::operator<= ( const int64_t &  rhs) const
inline

Definition at line 263 of file script.h.

bool CScriptNum::operator<= ( const CScriptNum rhs) const
inline

Definition at line 270 of file script.h.

Here is the call graph for this function:

Here is the caller graph for this function:

CScriptNum& CScriptNum::operator= ( const int64_t &  rhs)
inline

Definition at line 294 of file script.h.

bool CScriptNum::operator== ( const int64_t &  rhs) const
inline

Definition at line 261 of file script.h.

bool CScriptNum::operator== ( const CScriptNum rhs) const
inline

Definition at line 268 of file script.h.

Here is the call graph for this function:

Here is the caller graph for this function:

bool CScriptNum::operator> ( const int64_t &  rhs) const
inline

Definition at line 266 of file script.h.

bool CScriptNum::operator> ( const CScriptNum rhs) const
inline

Definition at line 273 of file script.h.

Here is the call graph for this function:

bool CScriptNum::operator>= ( const int64_t &  rhs) const
inline

Definition at line 265 of file script.h.

bool CScriptNum::operator>= ( const CScriptNum rhs) const
inline

Definition at line 272 of file script.h.

Here is the call graph for this function:

Here is the caller graph for this function:

static std::vector<unsigned char> CScriptNum::serialize ( const int64_t &  value)
inlinestatic

Definition at line 360 of file script.h.

Here is the caller graph for this function:

static int64_t CScriptNum::set_vch ( const std::vector< unsigned char > &  vch)
inlinestaticprivate

Definition at line 394 of file script.h.

static uint64_t CScriptNum::vch_to_uint64 ( const std::vector< unsigned char > &  vch)
inlinestatic

Definition at line 337 of file script.h.

Here is the call graph for this function:

Here is the caller graph for this function:

Member Data Documentation

int64_t CScriptNum::m_value
private

Definition at line 411 of file script.h.

const size_t CScriptNum::nDefaultMaxNumSize = 4
static

Definition at line 232 of file script.h.


The documentation for this class was generated from the following file: