#ifndef __MRPLIB_H #define __MRPLIB_H #ifndef __AUTOMASK_H #include #endif class TMRP_calendar : public TObject { static TString16 _days; static TToken_string _holidays; TAssoc_array _exc_imp, _exc_lin; TString16 _codimp, _codlin; protected: void init_default(); void read_cal(const TString& key, char tipo); int write_cal(char tipo) const; int remove_cal(const TString& code, char tipo) const; public: int turni(const TDate& date, int& mini, int& maxi, bool as_is = FALSE); int turni_min(const TDate& date) { int mini, maxi; turni(date, mini, maxi); return mini; } int turni_max(const TDate& date) { int mini, maxi; turni(date, mini, maxi); return maxi; } int set_turni(const TDate& date, int mini, int maxi); int write() const; int rewrite() const { return write(); } int remove() const; void declare_holiday(int g, int m); void suppress_holiday(int g, int m); bool is_holiday(int g, int m) const; bool is_holiday(const TDate& date) const; bool is_red(const TDate& date) const; void set(const char* linea = NULL, const char* impianto = NULL); const TString& linea() const { return _codlin; } const TString& impianto() const { return _codimp; } char tipo() const; TMRP_calendar(const char* linea = NULL, const char* impianto = NULL); virtual ~TMRP_calendar() { } }; class TCalendar_field : public TWindowed_field { protected: // TWindowed_field virtual TField_window* create_window(int x, int y, int dx, int dy, WINDOW parent); public: void set_calendar(TMRP_calendar* cal, int year = 0); TCalendar_field(TMask* m) : TWindowed_field(m) { } virtual ~TCalendar_field() { } }; class TCalendar_mask : public TAutomask { protected: virtual TMask_field* parse_field(TScanner& scanner); public: TCalendar_mask(const char* name, int num = 0); virtual ~TCalendar_mask() {}; }; #endif