/* Copyright (C) 2016 -2017 Jerry Jin */ #ifndef date_h #define date_h #include #include #include #include #include "../quantlibnode.hpp" #include using namespace node; using namespace v8; using namespace std; class PeriodFromFrequencyWorker : public Nan::AsyncWorker { public: string mFrequency; string mReturnValue; string mError; PeriodFromFrequencyWorker( Nan::Callback *callback ,string Frequency ): Nan::AsyncWorker(callback) ,mFrequency(Frequency) { }; //~PeriodFromFrequencyWorker(); //void Destroy(); void Execute(); void HandleOKCallback(); }; class FrequencyFromPeriodWorker : public Nan::AsyncWorker { public: std::vector mPeriod; std::vector mReturnValue; string mError; FrequencyFromPeriodWorker( Nan::Callback *callback ,std::vector Period ): Nan::AsyncWorker(callback) ,mPeriod(Period) { }; //~FrequencyFromPeriodWorker(); //void Destroy(); void Execute(); void HandleOKCallback(); }; class PeriodLessThanWorker : public Nan::AsyncWorker { public: string mPeriod1; string mPeriod2; bool mReturnValue; string mError; PeriodLessThanWorker( Nan::Callback *callback ,string Period1 ,string Period2 ): Nan::AsyncWorker(callback) ,mPeriod1(Period1) ,mPeriod2(Period2) { }; //~PeriodLessThanWorker(); //void Destroy(); void Execute(); void HandleOKCallback(); }; class PeriodEquivalentWorker : public Nan::AsyncWorker { public: string mPeriod; string mReturnValue; string mError; PeriodEquivalentWorker( Nan::Callback *callback ,string Period ): Nan::AsyncWorker(callback) ,mPeriod(Period) { }; //~PeriodEquivalentWorker(); //void Destroy(); void Execute(); void HandleOKCallback(); }; class DateMinDateWorker : public Nan::AsyncWorker { public: long mReturnValue; string mError; DateMinDateWorker( Nan::Callback *callback ): Nan::AsyncWorker(callback) { }; //~DateMinDateWorker(); //void Destroy(); void Execute(); void HandleOKCallback(); }; class DateMaxDateWorker : public Nan::AsyncWorker { public: long mReturnValue; string mError; DateMaxDateWorker( Nan::Callback *callback ): Nan::AsyncWorker(callback) { }; //~DateMaxDateWorker(); //void Destroy(); void Execute(); void HandleOKCallback(); }; class DateIsLeapWorker : public Nan::AsyncWorker { public: std::vector mYear; std::vector mReturnValue; string mError; DateIsLeapWorker( Nan::Callback *callback ,std::vector Year ): Nan::AsyncWorker(callback) ,mYear(Year) { }; //~DateIsLeapWorker(); //void Destroy(); void Execute(); void HandleOKCallback(); }; class DateEndOfMonthWorker : public Nan::AsyncWorker { public: std::vector mDate; std::vector mReturnValue; string mError; DateEndOfMonthWorker( Nan::Callback *callback ,std::vector Date ): Nan::AsyncWorker(callback) ,mDate(Date) { }; //~DateEndOfMonthWorker(); //void Destroy(); void Execute(); void HandleOKCallback(); }; class DateIsEndOfMonthWorker : public Nan::AsyncWorker { public: std::vector mDate; std::vector mReturnValue; string mError; DateIsEndOfMonthWorker( Nan::Callback *callback ,std::vector Date ): Nan::AsyncWorker(callback) ,mDate(Date) { }; //~DateIsEndOfMonthWorker(); //void Destroy(); void Execute(); void HandleOKCallback(); }; class DateNextWeekdayWorker : public Nan::AsyncWorker { public: std::vector mDate; string mWeekday; std::vector mReturnValue; string mError; DateNextWeekdayWorker( Nan::Callback *callback ,std::vector Date ,string Weekday ): Nan::AsyncWorker(callback) ,mDate(Date) ,mWeekday(Weekday) { }; //~DateNextWeekdayWorker(); //void Destroy(); void Execute(); void HandleOKCallback(); }; class DateNthWeekdayWorker : public Nan::AsyncWorker { public: long mNth; string mWeekday; string mMonth; long mYear; long mReturnValue; string mError; DateNthWeekdayWorker( Nan::Callback *callback ,long Nth ,string Weekday ,string Month ,long Year ): Nan::AsyncWorker(callback) ,mNth(Nth) ,mWeekday(Weekday) ,mMonth(Month) ,mYear(Year) { }; //~DateNthWeekdayWorker(); //void Destroy(); void Execute(); void HandleOKCallback(); }; class IMMIsIMMdateWorker : public Nan::AsyncWorker { public: std::vector mDate; bool mMainCycle; std::vector mReturnValue; string mError; IMMIsIMMdateWorker( Nan::Callback *callback ,std::vector Date ,bool MainCycle ): Nan::AsyncWorker(callback) ,mDate(Date) ,mMainCycle(MainCycle) { }; //~IMMIsIMMdateWorker(); //void Destroy(); void Execute(); void HandleOKCallback(); }; class IMMIsIMMcodeWorker : public Nan::AsyncWorker { public: std::vector mCode; bool mMainCycle; std::vector mReturnValue; string mError; IMMIsIMMcodeWorker( Nan::Callback *callback ,std::vector Code ,bool MainCycle ): Nan::AsyncWorker(callback) ,mCode(Code) ,mMainCycle(MainCycle) { }; //~IMMIsIMMcodeWorker(); //void Destroy(); void Execute(); void HandleOKCallback(); }; class IMMcodeWorker : public Nan::AsyncWorker { public: std::vector mIMMdate; std::vector mReturnValue; string mError; IMMcodeWorker( Nan::Callback *callback ,std::vector IMMdate ): Nan::AsyncWorker(callback) ,mIMMdate(IMMdate) { }; //~IMMcodeWorker(); //void Destroy(); void Execute(); void HandleOKCallback(); }; class IMMNextCodeWorker : public Nan::AsyncWorker { public: ObjectHandler::property_t mRefDate; bool mMainCycle; string mReturnValue; string mError; IMMNextCodeWorker( Nan::Callback *callback ,ObjectHandler::property_t RefDate ,bool MainCycle ): Nan::AsyncWorker(callback) ,mRefDate(RefDate) ,mMainCycle(MainCycle) { }; //~IMMNextCodeWorker(); //void Destroy(); void Execute(); void HandleOKCallback(); }; class IMMNextCodesWorker : public Nan::AsyncWorker { public: ObjectHandler::property_t mRefDate; std::vector mMainCycle; std::vector mReturnValue; string mError; IMMNextCodesWorker( Nan::Callback *callback ,ObjectHandler::property_t RefDate ,std::vector MainCycle ): Nan::AsyncWorker(callback) ,mRefDate(RefDate) ,mMainCycle(MainCycle) { }; //~IMMNextCodesWorker(); //void Destroy(); void Execute(); void HandleOKCallback(); }; class IMMdateWorker : public Nan::AsyncWorker { public: std::vector mIMMcode; ObjectHandler::property_t mRefDate; std::vector mReturnValue; string mError; IMMdateWorker( Nan::Callback *callback ,std::vector IMMcode ,ObjectHandler::property_t RefDate ): Nan::AsyncWorker(callback) ,mIMMcode(IMMcode) ,mRefDate(RefDate) { }; //~IMMdateWorker(); //void Destroy(); void Execute(); void HandleOKCallback(); }; class IMMNextDateWorker : public Nan::AsyncWorker { public: ObjectHandler::property_t mRefDate; bool mMainCycle; long mReturnValue; string mError; IMMNextDateWorker( Nan::Callback *callback ,ObjectHandler::property_t RefDate ,bool MainCycle ): Nan::AsyncWorker(callback) ,mRefDate(RefDate) ,mMainCycle(MainCycle) { }; //~IMMNextDateWorker(); //void Destroy(); void Execute(); void HandleOKCallback(); }; class IMMNextDatesWorker : public Nan::AsyncWorker { public: ObjectHandler::property_t mRefDate; std::vector mMainCycle; std::vector mReturnValue; string mError; IMMNextDatesWorker( Nan::Callback *callback ,ObjectHandler::property_t RefDate ,std::vector MainCycle ): Nan::AsyncWorker(callback) ,mRefDate(RefDate) ,mMainCycle(MainCycle) { }; //~IMMNextDatesWorker(); //void Destroy(); void Execute(); void HandleOKCallback(); }; class ASXIsASXdateWorker : public Nan::AsyncWorker { public: std::vector mDate; bool mMainCycle; std::vector mReturnValue; string mError; ASXIsASXdateWorker( Nan::Callback *callback ,std::vector Date ,bool MainCycle ): Nan::AsyncWorker(callback) ,mDate(Date) ,mMainCycle(MainCycle) { }; //~ASXIsASXdateWorker(); //void Destroy(); void Execute(); void HandleOKCallback(); }; class ASXIsASXcodeWorker : public Nan::AsyncWorker { public: std::vector mCode; bool mMainCycle; std::vector mReturnValue; string mError; ASXIsASXcodeWorker( Nan::Callback *callback ,std::vector Code ,bool MainCycle ): Nan::AsyncWorker(callback) ,mCode(Code) ,mMainCycle(MainCycle) { }; //~ASXIsASXcodeWorker(); //void Destroy(); void Execute(); void HandleOKCallback(); }; class ASXcodeWorker : public Nan::AsyncWorker { public: std::vector mASXdate; std::vector mReturnValue; string mError; ASXcodeWorker( Nan::Callback *callback ,std::vector ASXdate ): Nan::AsyncWorker(callback) ,mASXdate(ASXdate) { }; //~ASXcodeWorker(); //void Destroy(); void Execute(); void HandleOKCallback(); }; class ASXNextCodeWorker : public Nan::AsyncWorker { public: ObjectHandler::property_t mRefDate; bool mMainCycle; string mReturnValue; string mError; ASXNextCodeWorker( Nan::Callback *callback ,ObjectHandler::property_t RefDate ,bool MainCycle ): Nan::AsyncWorker(callback) ,mRefDate(RefDate) ,mMainCycle(MainCycle) { }; //~ASXNextCodeWorker(); //void Destroy(); void Execute(); void HandleOKCallback(); }; class ASXNextCodesWorker : public Nan::AsyncWorker { public: ObjectHandler::property_t mRefDate; std::vector mMainCycle; std::vector mReturnValue; string mError; ASXNextCodesWorker( Nan::Callback *callback ,ObjectHandler::property_t RefDate ,std::vector MainCycle ): Nan::AsyncWorker(callback) ,mRefDate(RefDate) ,mMainCycle(MainCycle) { }; //~ASXNextCodesWorker(); //void Destroy(); void Execute(); void HandleOKCallback(); }; class ASXdateWorker : public Nan::AsyncWorker { public: std::vector mASXcode; ObjectHandler::property_t mRefDate; std::vector mReturnValue; string mError; ASXdateWorker( Nan::Callback *callback ,std::vector ASXcode ,ObjectHandler::property_t RefDate ): Nan::AsyncWorker(callback) ,mASXcode(ASXcode) ,mRefDate(RefDate) { }; //~ASXdateWorker(); //void Destroy(); void Execute(); void HandleOKCallback(); }; class ASXNextDateWorker : public Nan::AsyncWorker { public: ObjectHandler::property_t mRefDate; bool mMainCycle; long mReturnValue; string mError; ASXNextDateWorker( Nan::Callback *callback ,ObjectHandler::property_t RefDate ,bool MainCycle ): Nan::AsyncWorker(callback) ,mRefDate(RefDate) ,mMainCycle(MainCycle) { }; //~ASXNextDateWorker(); //void Destroy(); void Execute(); void HandleOKCallback(); }; class ASXNextDatesWorker : public Nan::AsyncWorker { public: ObjectHandler::property_t mRefDate; std::vector mMainCycle; std::vector mReturnValue; string mError; ASXNextDatesWorker( Nan::Callback *callback ,ObjectHandler::property_t RefDate ,std::vector MainCycle ): Nan::AsyncWorker(callback) ,mRefDate(RefDate) ,mMainCycle(MainCycle) { }; //~ASXNextDatesWorker(); //void Destroy(); void Execute(); void HandleOKCallback(); }; class ECBKnownDatesWorker : public Nan::AsyncWorker { public: std::vector mReturnValue; string mError; ECBKnownDatesWorker( Nan::Callback *callback ): Nan::AsyncWorker(callback) { }; //~ECBKnownDatesWorker(); //void Destroy(); void Execute(); void HandleOKCallback(); }; class ECBAddDateWorker : public Nan::AsyncWorker { public: ObjectHandler::property_t mDate; string mError; ECBAddDateWorker( Nan::Callback *callback ,ObjectHandler::property_t Date ): Nan::AsyncWorker(callback) ,mDate(Date) { }; //~ECBAddDateWorker(); //void Destroy(); void Execute(); void HandleOKCallback(); }; class ECBRemoveDateWorker : public Nan::AsyncWorker { public: ObjectHandler::property_t mDate; string mError; ECBRemoveDateWorker( Nan::Callback *callback ,ObjectHandler::property_t Date ): Nan::AsyncWorker(callback) ,mDate(Date) { }; //~ECBRemoveDateWorker(); //void Destroy(); void Execute(); void HandleOKCallback(); }; class ECBdate2Worker : public Nan::AsyncWorker { public: string mMonth; long mYear; long mReturnValue; string mError; ECBdate2Worker( Nan::Callback *callback ,string Month ,long Year ): Nan::AsyncWorker(callback) ,mMonth(Month) ,mYear(Year) { }; //~ECBdate2Worker(); //void Destroy(); void Execute(); void HandleOKCallback(); }; class ECBdateWorker : public Nan::AsyncWorker { public: string mECBcode; ObjectHandler::property_t mRefDate; long mReturnValue; string mError; ECBdateWorker( Nan::Callback *callback ,string ECBcode ,ObjectHandler::property_t RefDate ): Nan::AsyncWorker(callback) ,mECBcode(ECBcode) ,mRefDate(RefDate) { }; //~ECBdateWorker(); //void Destroy(); void Execute(); void HandleOKCallback(); }; class ECBcodeWorker : public Nan::AsyncWorker { public: ObjectHandler::property_t mECBdate; string mReturnValue; string mError; ECBcodeWorker( Nan::Callback *callback ,ObjectHandler::property_t ECBdate ): Nan::AsyncWorker(callback) ,mECBdate(ECBdate) { }; //~ECBcodeWorker(); //void Destroy(); void Execute(); void HandleOKCallback(); }; class ECBNextDateWorker : public Nan::AsyncWorker { public: ObjectHandler::property_t mDate; long mReturnValue; string mError; ECBNextDateWorker( Nan::Callback *callback ,ObjectHandler::property_t Date ): Nan::AsyncWorker(callback) ,mDate(Date) { }; //~ECBNextDateWorker(); //void Destroy(); void Execute(); void HandleOKCallback(); }; class ECBNextDate2Worker : public Nan::AsyncWorker { public: string mCode; long mReturnValue; string mError; ECBNextDate2Worker( Nan::Callback *callback ,string Code ): Nan::AsyncWorker(callback) ,mCode(Code) { }; //~ECBNextDate2Worker(); //void Destroy(); void Execute(); void HandleOKCallback(); }; class ECBNextDatesWorker : public Nan::AsyncWorker { public: ObjectHandler::property_t mDate; std::vector mReturnValue; string mError; ECBNextDatesWorker( Nan::Callback *callback ,ObjectHandler::property_t Date ): Nan::AsyncWorker(callback) ,mDate(Date) { }; //~ECBNextDatesWorker(); //void Destroy(); void Execute(); void HandleOKCallback(); }; class ECBIsECBdateWorker : public Nan::AsyncWorker { public: std::vector mDate; std::vector mReturnValue; string mError; ECBIsECBdateWorker( Nan::Callback *callback ,std::vector Date ): Nan::AsyncWorker(callback) ,mDate(Date) { }; //~ECBIsECBdateWorker(); //void Destroy(); void Execute(); void HandleOKCallback(); }; class ECBIsECBcodeWorker : public Nan::AsyncWorker { public: std::vector mCode; std::vector mReturnValue; string mError; ECBIsECBcodeWorker( Nan::Callback *callback ,std::vector Code ): Nan::AsyncWorker(callback) ,mCode(Code) { }; //~ECBIsECBcodeWorker(); //void Destroy(); void Execute(); void HandleOKCallback(); }; class ECBNextCodeWorker : public Nan::AsyncWorker { public: ObjectHandler::property_t mRefDate; string mReturnValue; string mError; ECBNextCodeWorker( Nan::Callback *callback ,ObjectHandler::property_t RefDate ): Nan::AsyncWorker(callback) ,mRefDate(RefDate) { }; //~ECBNextCodeWorker(); //void Destroy(); void Execute(); void HandleOKCallback(); }; class ECBNextCode2Worker : public Nan::AsyncWorker { public: string mCode; string mReturnValue; string mError; ECBNextCode2Worker( Nan::Callback *callback ,string Code ): Nan::AsyncWorker(callback) ,mCode(Code) { }; //~ECBNextCode2Worker(); //void Destroy(); void Execute(); void HandleOKCallback(); }; #endif