Files
Work/cashflow/PASSTHRU.HPP
2024-08-07 09:12:07 -04:00

154 lines
2.6 KiB
C++

#ifndef _CASHFLOW_PUREPASSTHRU_HPP_
#define _CASHFLOW_PUREPASSTHRU_HPP_
#include <common/windows.hpp>
class PurePassThru
{
public:
PurePassThru(void);
PurePassThru(double issBal,double wac,double coupon,short wam,short origTerm,double psa);
PurePassThru(const PurePassThru &somePurePassThru);
~PurePassThru();
PurePassThru &operator=(const PurePassThru &somePurePassThru);
WORD size(void)const;
double issBal(void)const;
void issBal(double newIssBal);
double wac(void)const;
void wac(double newWAC);
double coupon(void)const;
void coupon(double newCoupon);
short wam(void)const;
void wam(short newWAM);
short origTerm(void)const;
void origTerm(short newOrigTerm);
double psa(void)const;
void psa(double newPSA);
private:
WORD mSanity;
double mIssBal;
double mWAC;
double mCoupon;
short mWAM;
short mOrigTerm;
double mPSA;
};
#pragma warning(disable:4355)
inline
PurePassThru::PurePassThru(void)
: mSanity(sizeof(*this)), mIssBal(0.00), mWAC(0.00), mCoupon(0.00), mWAM(0), mOrigTerm(0),
mPSA(100.00)
{
}
inline
PurePassThru::PurePassThru(const PurePassThru &somePurePassThru)
: mSanity(sizeof(*this))
{
*this=somePurePassThru;
}
inline
PurePassThru::PurePassThru(double issBal,double wac,double coupon,short wam,short origTerm,double psa)
: mSanity(sizeof(*this)), mIssBal(issBal), mWAC(wac), mCoupon(coupon), mWAM(wam),
mOrigTerm(origTerm), mPSA(psa)
{
}
#pragma warning(default:4355)
inline
PurePassThru::~PurePassThru()
{
}
inline
double PurePassThru::issBal(void)const
{
return mIssBal;
}
inline
void PurePassThru::issBal(double newIssBal)
{
mIssBal=newIssBal;
}
inline
double PurePassThru::wac(void)const
{
return mWAC;
}
inline
void PurePassThru::wac(double newWAC)
{
mWAC=newWAC;
}
inline
double PurePassThru::coupon(void)const
{
return mCoupon;
}
inline
void PurePassThru::coupon(double newCoupon)
{
mCoupon=newCoupon;
}
inline
short PurePassThru::wam(void)const
{
return mWAM;
}
inline
void PurePassThru::wam(short newWAM)
{
mWAM=newWAM;
}
inline
short PurePassThru::origTerm(void)const
{
return mOrigTerm;
}
inline
void PurePassThru::origTerm(short newOrigTerm)
{
mOrigTerm=newOrigTerm;
}
inline
double PurePassThru::psa(void)const
{
return mPSA;
}
inline
void PurePassThru::psa(double newPSA)
{
mPSA=newPSA;
}
inline
WORD PurePassThru::size(void)const
{
return mSanity;
}
inline
PurePassThru &PurePassThru::operator=(const PurePassThru &somePurePassThru)
{
issBal(somePurePassThru.issBal());
wac(somePurePassThru.wac());
coupon(somePurePassThru.coupon());
wam(somePurePassThru.wam());
origTerm(somePurePassThru.origTerm());
psa(somePurePassThru.psa());
return *this;
}
#endif