QuantLib
: a free/open-source library for quantitative finance
fully annotated source code - version 1.34
Loading...
Searching...
No Matches
ql
time
calendars
bespokecalendar.hpp
Go to the documentation of this file.
1
/* -*- mode: c++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2
3
/*
4
Copyright (C) 2008 StatPro Italia srl
5
6
This file is part of QuantLib, a free-software/open-source library
7
for financial quantitative analysts and developers - http://quantlib.org/
8
9
QuantLib is free software: you can redistribute it and/or modify it
10
under the terms of the QuantLib license. You should have received a
11
copy of the license along with this program; if not, please email
12
<quantlib-dev@lists.sf.net>. The license is also available online at
13
<http://quantlib.org/license.shtml>.
14
15
This program is distributed in the hope that it will be useful, but WITHOUT
16
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
17
FOR A PARTICULAR PURPOSE. See the license for more details.
18
*/
19
20
/*! \file bespokecalendar.hpp
21
\brief Bespoke calendar
22
*/
23
24
#ifndef quantlib_bespoke_calendar_hpp
25
#define quantlib_bespoke_calendar_hpp
26
27
#include <
ql/time/calendar.hpp
>
28
29
namespace
QuantLib
{
30
31
//! Bespoke calendar
32
/*! This calendar has no predefined set of business days. Holidays
33
and weekdays can be defined by means of the provided
34
interface. Instances constructed by copying remain linked to
35
the original one; adding a new holiday or weekday will affect
36
all linked instances.
37
38
\ingroup calendars
39
*/
40
class
BespokeCalendar
:
public
Calendar
{
41
private
:
42
class
Impl
final :
public
Calendar::Impl
{
43
public
:
44
explicit
Impl
(std::string
name
=
""
);
45
std::string
name
()
const override
;
46
bool
isWeekend
(
Weekday
)
const override
;
47
bool
isBusinessDay
(
const
Date
&)
const override
;
48
void
addWeekend
(
Weekday
);
49
private
:
50
std::string
name_
;
51
unsigned
int
weekend_mask_
= 0;
52
};
53
ext::shared_ptr<BespokeCalendar::Impl>
bespokeImpl_
;
54
public
:
55
/*! \warning different bespoke calendars created with the same
56
name (or different bespoke calendars created with
57
no name) will compare as equal.
58
*/
59
BespokeCalendar
(
const
std::string&
name
=
""
);
60
//! marks the passed day as part of the weekend
61
void
addWeekend
(
Weekday
);
62
};
63
64
}
65
66
67
#endif
calendar.hpp
calendar class
QuantLib::BespokeCalendar::Impl
Definition:
bespokecalendar.hpp:42
QuantLib::BespokeCalendar::Impl::isBusinessDay
bool isBusinessDay(const Date &) const override
Definition:
bespokecalendar.cpp:36
QuantLib::BespokeCalendar::Impl::name_
std::string name_
Definition:
bespokecalendar.hpp:50
QuantLib::BespokeCalendar::Impl::addWeekend
void addWeekend(Weekday)
Definition:
bespokecalendar.cpp:40
QuantLib::BespokeCalendar::Impl::weekend_mask_
unsigned int weekend_mask_
Definition:
bespokecalendar.hpp:51
QuantLib::BespokeCalendar::Impl::name
std::string name() const override
Definition:
bespokecalendar.cpp:28
QuantLib::BespokeCalendar::Impl::isWeekend
bool isWeekend(Weekday) const override
Definition:
bespokecalendar.cpp:32
QuantLib::BespokeCalendar
Bespoke calendar.
Definition:
bespokecalendar.hpp:40
QuantLib::BespokeCalendar::bespokeImpl_
ext::shared_ptr< BespokeCalendar::Impl > bespokeImpl_
Definition:
bespokecalendar.hpp:53
QuantLib::BespokeCalendar::addWeekend
void addWeekend(Weekday)
marks the passed day as part of the weekend
Definition:
bespokecalendar.cpp:51
QuantLib::Calendar::Impl
abstract base class for calendar implementations
Definition:
calendar.hpp:64
QuantLib::Calendar
calendar class
Definition:
calendar.hpp:61
QuantLib::Calendar::name
std::string name() const
Returns the name of the calendar.
Definition:
calendar.hpp:206
QuantLib::Date
Concrete date class.
Definition:
date.hpp:125
QuantLib::Weekday
Weekday
Definition:
weekday.hpp:41
QuantLib
Definition:
any.hpp:35
Generated by
Doxygen
1.9.5