Quick Links:

bal | bbl | bdl | bsl

Public Member Functions

bbldc::PeriodDateRangeDayCountAdapter< CONVENTION > Class Template Reference

#include <bbldc_perioddaterangedaycountadapter.h>

Inheritance diagram for bbldc::PeriodDateRangeDayCountAdapter< CONVENTION >:
bbldc::DateRangeDayCount

List of all members.

Public Member Functions

 PeriodDateRangeDayCountAdapter (const bsl::vector< bdlt::Date > &periodDate, double periodYearDiff, bslma::Allocator *basicAllocator=0)
 PeriodDateRangeDayCountAdapter (const std::vector< bdlt::Date > &periodDate, double periodYearDiff, bslma::Allocator *basicAllocator=0)
virtual ~PeriodDateRangeDayCountAdapter ()
int daysDiff (const bdlt::Date &beginDate, const bdlt::Date &endDate) const
const bdlt::DatefirstDate () const
const bdlt::DatelastDate () const
double yearsDiff (const bdlt::Date &beginDate, const bdlt::Date &endDate) const
bslma::Allocatorallocator () const

Detailed Description

template<class CONVENTION>
class bbldc::PeriodDateRangeDayCountAdapter< CONVENTION >

This class provides an "adapter" from the specified CONVENTION, that requires a set of periods to compute the year fraction, to the bbldc::DateRangeDayCount protocol that can be used for determining values based on dates according to the day-count CONVENTION.

See Component bbldc_perioddaterangedaycountadapter


Constructor & Destructor Documentation

template<class CONVENTION>
bbldc::PeriodDateRangeDayCountAdapter< CONVENTION >::PeriodDateRangeDayCountAdapter ( const bsl::vector< bdlt::Date > &  periodDate,
double  periodYearDiff,
bslma::Allocator basicAllocator = 0 
)
template<class CONVENTION>
bbldc::PeriodDateRangeDayCountAdapter< CONVENTION >::PeriodDateRangeDayCountAdapter ( const std::vector< bdlt::Date > &  periodDate,
double  periodYearDiff,
bslma::Allocator basicAllocator = 0 
)

Create a day-count adapter that uses the specified periodDate and periodYearDiff during invocations of yearsDiff. periodDate provides the period starting dates and periodYearDiff defines the duration of each period (e.g., 0.25 for quarterly periods). Optionally specify a basicAllocator used to supply memory. If basicAllocator is 0, the currently installed default allocator is used. The behavior is undefined unless periodDate.size() >= 2 and the values contained in periodDate are unique and sorted from minimum to maximum.

template<class CONVENTION>
virtual bbldc::PeriodDateRangeDayCountAdapter< CONVENTION >::~PeriodDateRangeDayCountAdapter (  )  [virtual]

Destroy this object.


Member Function Documentation

template<class CONVENTION>
int bbldc::PeriodDateRangeDayCountAdapter< CONVENTION >::daysDiff ( const bdlt::Date beginDate,
const bdlt::Date endDate 
) const [virtual]

Return the (signed) number of days between the specified beginDate and endDate as per the CONVENTION template policy. If beginDate <= endDate, then the result is non-negative. Note that reversing the order of beginDate and endDate negates the result.

Implements bbldc::DateRangeDayCount.

template<class CONVENTION>
const bdlt::Date& bbldc::PeriodDateRangeDayCountAdapter< CONVENTION >::firstDate (  )  const [virtual]

Return a reference providing non-modifiable access to periodDate.front() for the periodDate provided at construction. Note that this value is the earliest date in the valid range of this day-count convention adaptation.

Implements bbldc::DateRangeDayCount.

template<class CONVENTION>
const bdlt::Date& bbldc::PeriodDateRangeDayCountAdapter< CONVENTION >::lastDate (  )  const [virtual]

Return a reference providing non-modifiable access to periodDate.back() for the periodDate provided at construction. Note that this value is the latest date in the valid range of this day-count convention adaptation.

Implements bbldc::DateRangeDayCount.

template<class CONVENTION>
double bbldc::PeriodDateRangeDayCountAdapter< CONVENTION >::yearsDiff ( const bdlt::Date beginDate,
const bdlt::Date endDate 
) const [virtual]

Return the (signed fractional) number of years between the specified beginDate and endDate as per the CONVENTION template policy. If beginDate <= endDate, then the result is non-negative. The behavior is undefined unless, for the periodDate provided at construction, periodDate.front() <= beginDate <= periodDate.back() and periodDate.front() <= endDate <= periodDate.back(). Note that reversing the order of beginDate and endDate negates the result; specifically, |yearsDiff(b, e) + yearsDiff(e, b)| <= 1.0e-15 for all dates b and e.

Implements bbldc::DateRangeDayCount.

template<class CONVENTION>
bslma::Allocator* bbldc::PeriodDateRangeDayCountAdapter< CONVENTION >::allocator (  )  const

Return the allocator used by this adapter to supply memory.


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