OpenMAMA
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
datetime.h
Go to the documentation of this file.
1 /* $Id$
2  *
3  * OpenMAMA: The open middleware agnostic messaging API
4  * Copyright (C) 2011 NYSE Technologies, Inc.
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public
8  * License as published by the Free Software Foundation; either
9  * version 2.1 of the License, or (at your option) any later version.
10  *
11  * This library is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14  * Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public
17  * License along with this library; if not, write to the Free Software
18  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
19  * 02110-1301 USA
20  */
21 
22 #ifndef MamaDateTimeH__
23 #define MamaDateTimeH__
24 
25 #include <mama/config.h>
26 #include <mama/status.h>
27 #include <mama/types.h>
28 #include <mama/timezone.h>
29 #include "wombat/port.h"
30 
31 #include <time.h>
32 
33 
34 #if defined(__cplusplus)
35 extern "C" {
36 #endif
37 
38 
40 {
50 
51 typedef enum mamaDayOfWeek_
52 {
55 
56 
58 #define MAMA_DATE_TIME_HAS_DATE ((mamaDateTimeHints) 0x01)
59 #define MAMA_DATE_TIME_HAS_TIME ((mamaDateTimeHints) 0x02)
60 #define MAMA_DATE_TIME_NO_TIMEZONE ((mamaDateTimeHints) 0x04)
61 
62 
68 MAMAExpDLL
69 extern mama_status
71 
77 MAMAExpDLL
78 extern mama_status
80 
86 MAMAExpDLL
87 extern mama_status
89 
95 MAMAExpDLL
96 extern mama_status
98 
104 MAMAExpDLL
105 extern mama_status
107 
108 /*
109  * Copy a date/time object. The destination object must have already
110  * been allocated using mamaDateTime_create().
111  */
112 MAMAExpDLL
113 extern mama_status
115  const mamaDateTime src);
116 
117 /*
118  * Check whether the date/time object has been set to anything
119  */
120 MAMAExpDLL
121 extern int
122 mamaDateTime_empty (const mamaDateTime dateTime);
123 
124 /*
125  * Check for equality between two date/time objects.
126  */
127 MAMAExpDLL
128 extern int
130  const mamaDateTime rhs);
131 
132 /*
133  * Compare two date/time objects. The return value is negative if lhs
134  * is earlier than rhs, positive if lhs is greater than rhs and zero
135  * if the two are equal.
136  */
137 MAMAExpDLL
138 extern int
140  const mamaDateTime rhs);
141 
152 MAMAExpDLL
153 extern mama_status
155  mama_u32_t seconds,
156  mama_u32_t microseconds,
157  mamaDateTimePrecision precision);
158 
167 MAMAExpDLL
168 extern mama_status
170  mama_f64_t seconds);
171 
178 MAMAExpDLL
179 extern mama_status
181  mama_u64_t milliseconds);
182 
189 MAMAExpDLL
190 extern mama_status
192  mama_u64_t milliseconds);
193 
206 MAMAExpDLL
207 extern mama_status
209  mama_u32_t seconds,
210  mama_u32_t microseconds,
211  mamaDateTimePrecision precision,
212  mamaDateTimeHints hints);
213 
220 MAMAExpDLL
221 extern mama_status
223  mamaDateTimePrecision precision);
224 
231 MAMAExpDLL
232 extern mama_status
234 
242 MAMAExpDLL
243 extern mama_status
245  const mamaTimeZone tz);
246 
263 MAMAExpDLL
264 extern mama_status
266  mama_u32_t year,
267  mama_u32_t month,
268  mama_u32_t day,
269  mama_u32_t hour,
270  mama_u32_t minute,
271  mama_u32_t second,
272  mama_u32_t microsecond,
273  mamaDateTimePrecision precision,
274  const mamaTimeZone tz);
275 
286 MAMAExpDLL
287 extern mama_status
289  mama_u32_t hour,
290  mama_u32_t minute,
291  mama_u32_t second,
292  mama_u32_t microsecond);
293 
306 MAMAExpDLL
307 extern mama_status
309  mama_u32_t hour,
310  mama_u32_t minute,
311  mama_u32_t second,
312  mama_u32_t microsecond,
313  mamaDateTimePrecision precision,
314  const mamaTimeZone tz);
315 
325 MAMAExpDLL
326 extern mama_status
328  mama_u32_t year,
329  mama_u32_t month,
330  mama_u32_t day);
331 
339 MAMAExpDLL
340 extern mama_status
342  const mamaDateTime src);
343 
351 MAMAExpDLL
352 extern mama_status
354  const mamaDateTime src);
355 
362 MAMAExpDLL
363 extern mama_status
364 mamaDateTime_hasTime(const mamaDateTime dateTime,
365  mama_bool_t* result);
366 
373 MAMAExpDLL
374 extern mama_status
375 mamaDateTime_hasDate(const mamaDateTime dateTime,
376  mama_bool_t* result);
377 
384 MAMAExpDLL
385 extern mama_status
387  mama_f64_t seconds);
388 
395 MAMAExpDLL
396 extern mama_status
398  mama_i32_t seconds);
399 
410 MAMAExpDLL
411 extern mama_status
413  mama_i64_t microseconds);
414 
424 MAMAExpDLL
425 extern mama_status
427  const char* str);
428 
441 MAMAExpDLL
442 extern mama_status
444  const char* str,
445  const mamaTimeZone tz);
446 
457 MAMAExpDLL
458 extern mama_status
460  const char* str,
461  mama_size_t strLen);
462 
476 MAMAExpDLL
477 extern mama_status
479  const char* str,
480  mama_size_t strLen,
481  const mamaTimeZone tz);
482 
492 MAMAExpDLL
493 extern mama_status
495  mama_u32_t* seconds,
496  mama_u32_t* microseconds,
497  mamaDateTimePrecision* precision);
498 
509 MAMAExpDLL
510 extern mama_status
512  mama_u32_t* seconds,
513  mama_u32_t* microseconds,
514  mamaDateTimePrecision* precision,
515  const mamaTimeZone tz);
516 
526 MAMAExpDLL
527 extern mama_status
529  mama_u64_t* microseconds);
530 
542 MAMAExpDLL
543 extern mama_status
545  mama_u64_t* microseconds,
546  const mamaTimeZone tz);
547 
555 MAMAExpDLL
556 extern mama_status
558  mama_u64_t* milliseconds);
559 
568 MAMAExpDLL
569 extern mama_status
571  mama_u64_t* milliseconds,
572  const mamaTimeZone tz);
573 
581 MAMAExpDLL
582 extern mama_status
584  mama_f64_t* seconds);
585 
599 MAMAExpDLL
600 extern mama_status
602  mama_f64_t* seconds);
603 
613 MAMAExpDLL
614 extern mama_status
616  mama_f64_t* seconds,
617  const mamaTimeZone tz);
618 
631 MAMAExpDLL
632 extern mama_status
634  mama_u32_t* seconds,
635  mama_u32_t* microseconds,
636  mamaDateTimePrecision* precision,
637  mama_u8_t* hints);
638 
645 MAMAExpDLL
646 extern mama_status
648  struct timeval* result);
649 
657 MAMAExpDLL
658 extern mama_status
660  struct timeval* result,
661  const mamaTimeZone tz);
662 
669 MAMAExpDLL
670 extern mama_status
672  struct tm* result);
673 
682 MAMAExpDLL
683 extern mama_status
685  struct tm* result,
686  const mamaTimeZone tz);
687 
700 MAMAExpDLL
701 extern mama_status
703  char* str,
704  mama_size_t maxLen);
705 
716 MAMAExpDLL
717 extern mama_status
719  char* str,
720  mama_size_t maxLen);
721 
731 MAMAExpDLL
732 extern mama_status
734  char* str,
735  mama_size_t maxLen);
736 
755 MAMAExpDLL
756 extern mama_status
758  char* str,
759  mama_size_t maxLen,
760  const char* format);
761 
780 MAMAExpDLL
781 extern mama_status
783  char* str,
784  mama_size_t maxLen,
785  const char* format,
786  const mamaTimeZone tz);
787 
794 MAMAExpDLL
795 extern mama_status
796 mamaDateTime_getYear(const mamaDateTime dateTime,
797  mama_u32_t* result);
798 
805 MAMAExpDLL
806 extern mama_status
807 mamaDateTime_getMonth(const mamaDateTime dateTime,
808  mama_u32_t* result);
809 
816 MAMAExpDLL
817 extern mama_status
818 mamaDateTime_getDay(const mamaDateTime dateTime,
819  mama_u32_t* result);
820 
827 MAMAExpDLL
828 extern mama_status
829 mamaDateTime_getHour(const mamaDateTime dateTime,
830  mama_u32_t* result);
831 
838 MAMAExpDLL
839 extern mama_status
840 mamaDateTime_getMinute(const mamaDateTime dateTime,
841  mama_u32_t* result);
842 
849 MAMAExpDLL
850 extern mama_status
851 mamaDateTime_getSecond(const mamaDateTime dateTime,
852  mama_u32_t* result);
853 
860 MAMAExpDLL
861 extern mama_status
863  mama_u32_t* result);
864 
871 MAMAExpDLL
872 extern mama_status
874  mamaDayOfWeek* result);
875 
880 MAMAExpDLL
881 extern mama_status
883  const mamaDateTime t0,
884  mama_f64_t* result);
885 
890 MAMAExpDLL
891 extern mama_status
893  const mamaDateTime t0,
894  mama_f64_t* result);
895 
899 MAMAExpDLL
900 extern mama_status
902  const mamaDateTime t0,
903  mama_i64_t* result);
904 
905 
906 #if defined(__cplusplus)
907 }
908 #endif
909 
910 #endif


© 2012 Linux Foundation