From 5bea0487a244ce0fb8ac5125e29273fcab004fab Mon Sep 17 00:00:00 2001 From: Michal Sojka Date: Sun, 20 Jun 2010 16:47:40 +0200 Subject: [PATCH] Add convenient functions to get contract budget and period --- fres/contract/contract_func.c | 38 +++++++++++++++++++++++++++++++++++ fres/contract/fres_contract.h | 6 ++++++ 2 files changed, 44 insertions(+) diff --git a/fres/contract/contract_func.c b/fres/contract/contract_func.c index 2e00326..f1de5a6 100644 --- a/fres/contract/contract_func.c +++ b/fres/contract/contract_func.c @@ -95,6 +95,44 @@ error: return has_deadline; } +/** + * Convenience function to retrieve budget from a contract. + * + * @param[in] contract + * @param[out] budget Where to store the deadline. + * + * @return True if the contract specifies the budget, false if not. + */ +bool +fres_contract_get_budget(const frsh_contract_t *contract, + frsh_rel_time_t *budget) +{ + fres_block_basic *basic; + basic = fres_contract_get_basic(*contract); + if (basic) + *budget = basic->budget; + return basic != NULL; +} + +/** + * Convenience function to retrieve period from a contract. + * + * @param[in] contract + * @param[out] period Where to store the deadline. + * + * @return True if the contract specifies the period, false if not. + */ +bool +fres_contract_get_period(const frsh_contract_t *contract, + frsh_rel_time_t *period) +{ + fres_block_basic *basic; + basic = fres_contract_get_basic(*contract); + if (basic) + *period = basic->period; + return basic != NULL; +} + frsh_contract_type_t fres_contract_get_type(const frsh_contract_t *contract) { diff --git a/fres/contract/fres_contract.h b/fres/contract/fres_contract.h index 3ed4cac..1508707 100644 --- a/fres/contract/fres_contract.h +++ b/fres/contract/fres_contract.h @@ -179,6 +179,12 @@ fres_contract_to_string2(char *dest, size_t size, const struct fres_contract *c, bool fres_contract_get_deadline(const frsh_contract_t *contract, frsh_rel_time_t *deadline); +bool +fres_contract_get_budget(const frsh_contract_t *contract, + frsh_rel_time_t *budget); +bool +fres_contract_get_period(const frsh_contract_t *contract, + frsh_rel_time_t *period); frsh_contract_type_t fres_contract_get_type(const frsh_contract_t *contract); -- 2.39.2