Adaptive Framework  0.9.0
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
afw_function_dateTime.c
Go to the documentation of this file.
1 // See the 'COPYING' file in the project root for licensing information.
2 /*
3  * afw_function_execute_* functions for dateTime
4  *
5  * Copyright (c) 2010-2023 Clemson University
6  *
7  */
8 
14 #include "afw_internal.h"
15 
16 
17 
18 /*
19  * Adaptive function: add_dayTimeDuration<dateTime>
20  *
21  * afw_function_execute_add_dayTimeDuration_dateTime
22  *
23  * See afw_function_bindings.h for more information.
24  *
25  * Add dateTime arg1 to dayTimeDuration arg2 and return the dateTime result.
26  *
27  * This function is pure, so it will always return the same result
28  * given exactly the same parameters and has no side effects.
29  *
30  * Declaration:
31  *
32  * ```
33  * function add_dayTimeDuration<dateTime>(
34  * arg1: dateTime,
35  * arg2: dayTimeDuration
36  * ): dateTime;
37  * ```
38  *
39  * Parameters:
40  *
41  * arg1 - (dateTime)
42  *
43  * arg2 - (dayTimeDuration)
44  *
45  * Returns:
46  *
47  * (dateTime)
48  */
49 const afw_value_t *
52 {
53  const afw_value_dateTime_t *arg1;
54  const afw_value_dayTimeDuration_t *arg2;
55  afw_value_dateTime_t *result;
56 
59  2, dayTimeDuration);
60 
61  result = afw_value_allocate_dateTime(x->p, x->xctx);
62  result->internal = arg1->internal;
63  afw_dateTime_add_dayTimeDuration(&result->internal, &arg2->internal,
64  x->xctx);
65 
66  return (const afw_value_t *)result;
67 }
68 
69 
70 
71 /*
72  * Adaptive function: add_yearMonthDuration<dateTime>
73  *
74  * afw_function_execute_add_yearMonthDuration_dateTime
75  *
76  * See afw_function_bindings.h for more information.
77  *
78  * Add dateTime arg1 to yearMonthDuration arg2 and return the dateTime result.
79  *
80  * This function is pure, so it will always return the same result
81  * given exactly the same parameters and has no side effects.
82  *
83  * Declaration:
84  *
85  * ```
86  * function add_yearMonthDuration<dateTime>(
87  * arg1: dateTime,
88  * arg2: yearMonthDuration
89  * ): dateTime;
90  * ```
91  *
92  * Parameters:
93  *
94  * arg1 - (dateTime)
95  *
96  * arg2 - (yearMonthDuration)
97  *
98  * Returns:
99  *
100  * (dateTime)
101  */
102 const afw_value_t *
105 {
106  const afw_value_dateTime_t *arg1;
107  const afw_value_yearMonthDuration_t *arg2;
108  afw_value_dateTime_t *result;
109 
112  2, yearMonthDuration);
113 
114  result = afw_value_allocate_dateTime(x->p, x->xctx);
115  result->internal = arg1->internal;
116  afw_dateTime_add_yearMonthDuration(&result->internal, &arg2->internal,
117  x->xctx);
118 
119  return (const afw_value_t *)result;
120 }
121 
122 
123 
124 /*
125  * Adaptive function: subtract_dayTimeDuration<dateTime>
126  *
127  * afw_function_execute_subtract_dayTimeDuration_dateTime
128  *
129  * See afw_function_bindings.h for more information.
130  *
131  * Subtract dayTimeDuration arg2 from dateTime arg1 and return the dateTime
132  * result.
133  *
134  * This function is pure, so it will always return the same result
135  * given exactly the same parameters and has no side effects.
136  *
137  * Declaration:
138  *
139  * ```
140  * function subtract_dayTimeDuration<dateTime>(
141  * arg1: dateTime,
142  * arg2: dayTimeDuration
143  * ): dateTime;
144  * ```
145  *
146  * Parameters:
147  *
148  * arg1 - (dateTime)
149  *
150  * arg2 - (dayTimeDuration)
151  *
152  * Returns:
153  *
154  * (dateTime)
155  */
156 const afw_value_t *
159 {
160  const afw_value_dateTime_t *arg1;
161  const afw_value_dayTimeDuration_t *arg2;
162  afw_value_dateTime_t *result;
163 
166  2, dayTimeDuration);
167 
168  result = afw_value_allocate_dateTime(x->p, x->xctx);
169  result->internal = arg1->internal;
170  afw_dateTime_subtract_dayTimeDuration(&result->internal, &arg2->internal,
171  x->xctx);
172 
173  return (const afw_value_t *)result;
174 }
175 
176 
177 
178 /*
179  * Adaptive function: subtract_yearMonthDuration<dateTime>
180  *
181  * afw_function_execute_subtract_yearMonthDuration_dateTime
182  *
183  * See afw_function_bindings.h for more information.
184  *
185  * Subtract yearMonthDuration arg2 from dateTime arg1 and return the dateTime
186  * result.
187  *
188  * This function is pure, so it will always return the same result
189  * given exactly the same parameters and has no side effects.
190  *
191  * Declaration:
192  *
193  * ```
194  * function subtract_yearMonthDuration<dateTime>(
195  * arg1: dateTime,
196  * arg2: yearMonthDuration
197  * ): dateTime;
198  * ```
199  *
200  * Parameters:
201  *
202  * arg1 - (dateTime)
203  *
204  * arg2 - (yearMonthDuration)
205  *
206  * Returns:
207  *
208  * (dateTime)
209  */
210 const afw_value_t *
213 {
214  const afw_value_dateTime_t *arg1;
215  const afw_value_yearMonthDuration_t *arg2;
216  afw_value_dateTime_t *result;
217 
220  2, yearMonthDuration);
221 
222  result = afw_value_allocate_dateTime(x->p, x->xctx);
223  result->internal = arg1->internal;
224  afw_dateTime_subtract_yearMonthDuration(&result->internal, &arg2->internal,
225  x->xctx);
226 
227  return (const afw_value_t *)result;
228 }
Adaptive Framework Core Internal.
afw_value_allocate_dateTime(const afw_pool_t *p, afw_xctx_t *xctx)
Allocate function for unmanaged data type dateTime value.
#define AFW_FUNCTION_EVALUATE_REQUIRED_DATA_TYPE_PARAMETER(A_RESULT, A_N, A_TYPE)
Evaluate an arg for a particular data type.
Definition: afw_function.h:328
const afw_value_t * afw_function_execute_add_dayTimeDuration_dateTime(afw_function_execute_t *x)
Adaptive Function add_dayTimeDuration<dateTime>
const afw_value_t * afw_function_execute_subtract_yearMonthDuration_dateTime(afw_function_execute_t *x)
Adaptive Function subtract_yearMonthDuration<dateTime>
const afw_value_t * afw_function_execute_add_yearMonthDuration_dateTime(afw_function_execute_t *x)
Adaptive Function add_yearMonthDuration<dateTime>
const afw_value_t * afw_function_execute_subtract_dayTimeDuration_dateTime(afw_function_execute_t *x)
Adaptive Function subtract_dayTimeDuration<dateTime>
afw_dateTime_subtract_yearMonthDuration(afw_dateTime_t *dateTime, const afw_yearMonthDuration_t *yearMonthDuration, afw_xctx_t *xctx)
Subtract yearMonthDuration from dateTime.
Definition: afw_time.c:2009
afw_dateTime_subtract_dayTimeDuration(afw_dateTime_t *dateTime, const afw_dayTimeDuration_t *dayTimeDuration, afw_xctx_t *xctx)
Subtract dayTimeDuration from dateTime.
Definition: afw_time.c:1915
afw_dateTime_add_yearMonthDuration(afw_dateTime_t *dateTime, const afw_yearMonthDuration_t *yearMonthDuration, afw_xctx_t *xctx)
Add yearMonthDuration to dateTime.
Definition: afw_time.c:1979
afw_dateTime_add_dayTimeDuration(afw_dateTime_t *dateTime, const afw_dayTimeDuration_t *dayTimeDuration, afw_xctx_t *xctx)
Add dayTimeDuration to dateTime.
Definition: afw_time.c:1851
Function execute parameter.
Definition: afw_function.h:53
afw_xctx_t * xctx
The execution context (xctx) of caller.
Definition: afw_function.h:62
const afw_pool_t * p
Pool for result.
Definition: afw_function.h:59
struct for data type dateTime values.
struct for data type dayTimeDuration values.
Interface afw_value public struct.
struct for data type yearMonthDuration values.