/* Copyright (C) 2016 -2017 Jerry Jin */ #ifndef abcd_h #define abcd_h #include #include #include #include #include "../quantlibnode.hpp" #include using namespace node; using namespace v8; using namespace std; class AbcdFunctionWorker : public Nan::AsyncWorker { public: string mObjectID; double mA; double mB; double mC; double mD; string mReturnValue; string mError; AbcdFunctionWorker( Nan::Callback *callback ,string ObjectID ,double A ,double B ,double C ,double D ): Nan::AsyncWorker(callback) ,mObjectID(ObjectID) ,mA(A) ,mB(B) ,mC(C) ,mD(D) { }; //~AbcdFunctionWorker(); //void Destroy(); void Execute(); void HandleOKCallback(); }; class AbcdCalibrationWorker : public Nan::AsyncWorker { public: string mObjectID; std::vector mTimes; std::vector mBlackVols; double mA; double mB; double mC; double mD; bool mAIsFixed; bool mBIsFixed; bool mCIsFixed; bool mDIsFixed; bool mVegaWeighted; string mEndCriteria; string mMethod; string mReturnValue; string mError; AbcdCalibrationWorker( Nan::Callback *callback ,string ObjectID ,std::vector Times ,std::vector BlackVols ,double A ,double B ,double C ,double D ,bool AIsFixed ,bool BIsFixed ,bool CIsFixed ,bool DIsFixed ,bool VegaWeighted ,string EndCriteria ,string Method ): Nan::AsyncWorker(callback) ,mObjectID(ObjectID) ,mTimes(Times) ,mBlackVols(BlackVols) ,mA(A) ,mB(B) ,mC(C) ,mD(D) ,mAIsFixed(AIsFixed) ,mBIsFixed(BIsFixed) ,mCIsFixed(CIsFixed) ,mDIsFixed(DIsFixed) ,mVegaWeighted(VegaWeighted) ,mEndCriteria(EndCriteria) ,mMethod(Method) { }; //~AbcdCalibrationWorker(); //void Destroy(); void Execute(); void HandleOKCallback(); }; class AbcdFunctionInstantaneousValueWorker : public Nan::AsyncWorker { public: string mObjectID; std::vector mU; std::vector mReturnValue; string mError; AbcdFunctionInstantaneousValueWorker( Nan::Callback *callback ,string ObjectID ,std::vector U ): Nan::AsyncWorker(callback) ,mObjectID(ObjectID) ,mU(U) { }; //~AbcdFunctionInstantaneousValueWorker(); //void Destroy(); void Execute(); void HandleOKCallback(); }; class AbcdFunctionInstantaneousCovarianceWorker : public Nan::AsyncWorker { public: string mObjectID; std::vector mU; double mT; double mS; std::vector mReturnValue; string mError; AbcdFunctionInstantaneousCovarianceWorker( Nan::Callback *callback ,string ObjectID ,std::vector U ,double T ,double S ): Nan::AsyncWorker(callback) ,mObjectID(ObjectID) ,mU(U) ,mT(T) ,mS(S) { }; //~AbcdFunctionInstantaneousCovarianceWorker(); //void Destroy(); void Execute(); void HandleOKCallback(); }; class AbcdFunctionInstantaneousVarianceWorker : public Nan::AsyncWorker { public: string mObjectID; std::vector mU; double mT; std::vector mReturnValue; string mError; AbcdFunctionInstantaneousVarianceWorker( Nan::Callback *callback ,string ObjectID ,std::vector U ,double T ): Nan::AsyncWorker(callback) ,mObjectID(ObjectID) ,mU(U) ,mT(T) { }; //~AbcdFunctionInstantaneousVarianceWorker(); //void Destroy(); void Execute(); void HandleOKCallback(); }; class AbcdFunctionInstantaneousVolatilityWorker : public Nan::AsyncWorker { public: string mObjectID; std::vector mU; double mT; std::vector mReturnValue; string mError; AbcdFunctionInstantaneousVolatilityWorker( Nan::Callback *callback ,string ObjectID ,std::vector U ,double T ): Nan::AsyncWorker(callback) ,mObjectID(ObjectID) ,mU(U) ,mT(T) { }; //~AbcdFunctionInstantaneousVolatilityWorker(); //void Destroy(); void Execute(); void HandleOKCallback(); }; class AbcdFunctionCovarianceWorker : public Nan::AsyncWorker { public: string mObjectID; double mTMin; std::vector mTMax; double mT; double mS; std::vector mReturnValue; string mError; AbcdFunctionCovarianceWorker( Nan::Callback *callback ,string ObjectID ,double TMin ,std::vector TMax ,double T ,double S ): Nan::AsyncWorker(callback) ,mObjectID(ObjectID) ,mTMin(TMin) ,mTMax(TMax) ,mT(T) ,mS(S) { }; //~AbcdFunctionCovarianceWorker(); //void Destroy(); void Execute(); void HandleOKCallback(); }; class AbcdFunctionVarianceWorker : public Nan::AsyncWorker { public: string mObjectID; double mTMin; std::vector mTMax; double mT; std::vector mReturnValue; string mError; AbcdFunctionVarianceWorker( Nan::Callback *callback ,string ObjectID ,double TMin ,std::vector TMax ,double T ): Nan::AsyncWorker(callback) ,mObjectID(ObjectID) ,mTMin(TMin) ,mTMax(TMax) ,mT(T) { }; //~AbcdFunctionVarianceWorker(); //void Destroy(); void Execute(); void HandleOKCallback(); }; class AbcdFunctionVolatilityWorker : public Nan::AsyncWorker { public: string mObjectID; double mTMin; std::vector mTMax; double mT; std::vector mReturnValue; string mError; AbcdFunctionVolatilityWorker( Nan::Callback *callback ,string ObjectID ,double TMin ,std::vector TMax ,double T ): Nan::AsyncWorker(callback) ,mObjectID(ObjectID) ,mTMin(TMin) ,mTMax(TMax) ,mT(T) { }; //~AbcdFunctionVolatilityWorker(); //void Destroy(); void Execute(); void HandleOKCallback(); }; class AbcdFunctionShortTermVolatilityWorker : public Nan::AsyncWorker { public: string mObjectID; double mReturnValue; string mError; AbcdFunctionShortTermVolatilityWorker( Nan::Callback *callback ,string ObjectID ): Nan::AsyncWorker(callback) ,mObjectID(ObjectID) { }; //~AbcdFunctionShortTermVolatilityWorker(); //void Destroy(); void Execute(); void HandleOKCallback(); }; class AbcdFunctionLongTermVolatilityWorker : public Nan::AsyncWorker { public: string mObjectID; double mReturnValue; string mError; AbcdFunctionLongTermVolatilityWorker( Nan::Callback *callback ,string ObjectID ): Nan::AsyncWorker(callback) ,mObjectID(ObjectID) { }; //~AbcdFunctionLongTermVolatilityWorker(); //void Destroy(); void Execute(); void HandleOKCallback(); }; class AbcdFunctionMaximumLocationWorker : public Nan::AsyncWorker { public: string mObjectID; double mReturnValue; string mError; AbcdFunctionMaximumLocationWorker( Nan::Callback *callback ,string ObjectID ): Nan::AsyncWorker(callback) ,mObjectID(ObjectID) { }; //~AbcdFunctionMaximumLocationWorker(); //void Destroy(); void Execute(); void HandleOKCallback(); }; class AbcdFunctionMaximumVolatilityWorker : public Nan::AsyncWorker { public: string mObjectID; double mReturnValue; string mError; AbcdFunctionMaximumVolatilityWorker( Nan::Callback *callback ,string ObjectID ): Nan::AsyncWorker(callback) ,mObjectID(ObjectID) { }; //~AbcdFunctionMaximumVolatilityWorker(); //void Destroy(); void Execute(); void HandleOKCallback(); }; class AbcdFunctionAWorker : public Nan::AsyncWorker { public: string mObjectID; double mReturnValue; string mError; AbcdFunctionAWorker( Nan::Callback *callback ,string ObjectID ): Nan::AsyncWorker(callback) ,mObjectID(ObjectID) { }; //~AbcdFunctionAWorker(); //void Destroy(); void Execute(); void HandleOKCallback(); }; class AbcdFunctionBWorker : public Nan::AsyncWorker { public: string mObjectID; double mReturnValue; string mError; AbcdFunctionBWorker( Nan::Callback *callback ,string ObjectID ): Nan::AsyncWorker(callback) ,mObjectID(ObjectID) { }; //~AbcdFunctionBWorker(); //void Destroy(); void Execute(); void HandleOKCallback(); }; class AbcdFunctionCWorker : public Nan::AsyncWorker { public: string mObjectID; double mReturnValue; string mError; AbcdFunctionCWorker( Nan::Callback *callback ,string ObjectID ): Nan::AsyncWorker(callback) ,mObjectID(ObjectID) { }; //~AbcdFunctionCWorker(); //void Destroy(); void Execute(); void HandleOKCallback(); }; class AbcdFunctionDWorker : public Nan::AsyncWorker { public: string mObjectID; double mReturnValue; string mError; AbcdFunctionDWorker( Nan::Callback *callback ,string ObjectID ): Nan::AsyncWorker(callback) ,mObjectID(ObjectID) { }; //~AbcdFunctionDWorker(); //void Destroy(); void Execute(); void HandleOKCallback(); }; class AbcdDFunctionWorker : public Nan::AsyncWorker { public: string mObjectID; double mReturnValue; string mError; AbcdDFunctionWorker( Nan::Callback *callback ,string ObjectID ): Nan::AsyncWorker(callback) ,mObjectID(ObjectID) { }; //~AbcdDFunctionWorker(); //void Destroy(); void Execute(); void HandleOKCallback(); }; class AbcdCalibrationComputeWorker : public Nan::AsyncWorker { public: string mObjectID; string mError; AbcdCalibrationComputeWorker( Nan::Callback *callback ,string ObjectID ): Nan::AsyncWorker(callback) ,mObjectID(ObjectID) { }; //~AbcdCalibrationComputeWorker(); //void Destroy(); void Execute(); void HandleOKCallback(); }; class AbcdCalibrationKWorker : public Nan::AsyncWorker { public: string mObjectID; std::vector mTimes; std::vector mBlackVols; std::vector mReturnValue; string mError; AbcdCalibrationKWorker( Nan::Callback *callback ,string ObjectID ,std::vector Times ,std::vector BlackVols ): Nan::AsyncWorker(callback) ,mObjectID(ObjectID) ,mTimes(Times) ,mBlackVols(BlackVols) { }; //~AbcdCalibrationKWorker(); //void Destroy(); void Execute(); void HandleOKCallback(); }; class AbcdCalibrationErrorWorker : public Nan::AsyncWorker { public: string mObjectID; double mReturnValue; string mError; AbcdCalibrationErrorWorker( Nan::Callback *callback ,string ObjectID ): Nan::AsyncWorker(callback) ,mObjectID(ObjectID) { }; //~AbcdCalibrationErrorWorker(); //void Destroy(); void Execute(); void HandleOKCallback(); }; class AbcdCalibrationMaxErrorWorker : public Nan::AsyncWorker { public: string mObjectID; double mReturnValue; string mError; AbcdCalibrationMaxErrorWorker( Nan::Callback *callback ,string ObjectID ): Nan::AsyncWorker(callback) ,mObjectID(ObjectID) { }; //~AbcdCalibrationMaxErrorWorker(); //void Destroy(); void Execute(); void HandleOKCallback(); }; class AbcdCalibrationEndCriteriaWorker : public Nan::AsyncWorker { public: string mObjectID; string mReturnValue; string mError; AbcdCalibrationEndCriteriaWorker( Nan::Callback *callback ,string ObjectID ): Nan::AsyncWorker(callback) ,mObjectID(ObjectID) { }; //~AbcdCalibrationEndCriteriaWorker(); //void Destroy(); void Execute(); void HandleOKCallback(); }; class AbcdCalibrationAWorker : public Nan::AsyncWorker { public: string mObjectID; double mReturnValue; string mError; AbcdCalibrationAWorker( Nan::Callback *callback ,string ObjectID ): Nan::AsyncWorker(callback) ,mObjectID(ObjectID) { }; //~AbcdCalibrationAWorker(); //void Destroy(); void Execute(); void HandleOKCallback(); }; class AbcdCalibrationBWorker : public Nan::AsyncWorker { public: string mObjectID; double mReturnValue; string mError; AbcdCalibrationBWorker( Nan::Callback *callback ,string ObjectID ): Nan::AsyncWorker(callback) ,mObjectID(ObjectID) { }; //~AbcdCalibrationBWorker(); //void Destroy(); void Execute(); void HandleOKCallback(); }; class AbcdCalibrationCWorker : public Nan::AsyncWorker { public: string mObjectID; double mReturnValue; string mError; AbcdCalibrationCWorker( Nan::Callback *callback ,string ObjectID ): Nan::AsyncWorker(callback) ,mObjectID(ObjectID) { }; //~AbcdCalibrationCWorker(); //void Destroy(); void Execute(); void HandleOKCallback(); }; class AbcdCalibrationDWorker : public Nan::AsyncWorker { public: string mObjectID; double mReturnValue; string mError; AbcdCalibrationDWorker( Nan::Callback *callback ,string ObjectID ): Nan::AsyncWorker(callback) ,mObjectID(ObjectID) { }; //~AbcdCalibrationDWorker(); //void Destroy(); void Execute(); void HandleOKCallback(); }; #endif