23 #ifdef MCLIENTLIB_EXPORTS
24 #define MCLIENTLIB_API __declspec(dllexport)
26 #define MCLIENTLIB_API __declspec(dllimport)
30 #ifndef MCLIENTLIB_EXPORTS
32 #define MCLIENTLIB_API
34 #define MCLIENTLIB_API
37 #define MCLIENTLIB_API
43 #pragma warning(disable: 4251)
62 class MCLIENTLIB_API MTimeRule {
66 long long int startingTime;
67 long long int endingTime;
72 enum kTimeRulesEvaluation {
83 enum kTimeRulesAvailability {
84 kTimeRuleNotAvailable,
89 void setType(
int ruleType);
92 void setAvailability(
int ruleAvailability);
93 int getAvailability();
95 void getRuleTimeSpan(
long long int& _startingTime,
long long int& _endingTime);
96 void setRuleTimeSpan(
long long int _startingTime,
long long int _endingTime);
97 void setRuleDayRange(
int startingDay,
int startingHour,
int startingMinutes,
98 int endingDay,
int endingHours,
int endingMinutes);
99 void getRuleDayRange(
int& startingDay,
int& startingHour,
int& startingMinutes,
100 int& endingDay,
int& endingHours,
int& endingMinutes);
104 static std::vector<MTimeRule> Unmarshall(
const std::string& );
105 static std::string Marshall(
const std::vector<MTimeRule>& list);
109 void encodeTree(
void* _pt, std::string (*encodeFunc)(
const std::string &),
int encoding)
const;
110 void decodeTree(
void* _pt);
111 int Evaluate()
const;
112 static int Evaluate(
const std::vector<MTimeRule>& rules,
int defaultValue = kTimeRuleNotPertinent);
113 static void encodeTreeList(
void* _pt, std::string (*encodeFunc)(
const std::string &),
int encoding,
const std::vector<MTimeRule>& list) ;
114 static std::vector<MTimeRule> decodeTreeList(
void* _pt);