Ruby  3.4.0dev (2024-12-06 revision 892c46283a5ea4179500d951c9d4866c0051f27b)
time.h
Go to the documentation of this file.
1 #ifndef RBIMPL_INTERN_TIME_H /*-*-C++-*-vi:se ft=cpp:*/
2 #define RBIMPL_INTERN_TIME_H
23 #include "ruby/internal/config.h"
24 
25 #ifdef HAVE_TIME_H
26 # include <time.h> /* for time_t */
27 #endif
28 
31 #include "ruby/internal/value.h"
32 
34 
35 struct timespec;
36 struct timeval;
37 
38 /* time.c */
39 
48 void rb_timespec_now(struct timespec *ts);
49 
59 VALUE rb_time_new(time_t sec, long usec);
60 
70 VALUE rb_time_nano_new(time_t sec, long nsec);
71 
84 VALUE rb_time_timespec_new(const struct timespec *ts, int offset);
85 
107 
118 struct timeval rb_time_interval(VALUE num);
119 
129 struct timeval rb_time_timeval(VALUE time);
130 
138 struct timespec rb_time_timespec(VALUE time);
139 
149 
158 
160 
161 #endif /* RBIMPL_INTERN_TIME_H */
Tweaking visibility of C variables/functions.
#define RBIMPL_SYMBOL_EXPORT_END()
Counterpart of RBIMPL_SYMBOL_EXPORT_BEGIN.
Definition: dllexport.h:74
#define RBIMPL_SYMBOL_EXPORT_BEGIN()
Shortcut macro equivalent to RUBY_SYMBOL_EXPORT_BEGIN extern "C" {.
Definition: dllexport.h:65
VALUE rb_time_nano_new(time_t sec, long nsec)
Identical to rb_time_new(), except it accepts the time in nanoseconds resolution.
Definition: time.c:2744
void rb_timespec_now(struct timespec *ts)
Fills the current time into the given struct.
Definition: time.c:1947
VALUE rb_time_timespec_new(const struct timespec *ts, int offset)
Creates an instance of rb_cTime, with given time and offset.
Definition: time.c:2750
struct timespec rb_time_timespec(VALUE time)
Identical to rb_time_timeval(), except for return type.
Definition: time.c:2913
VALUE rb_time_new(time_t sec, long usec)
Creates an instance of rb_cTime with the given time and the local timezone.
Definition: time.c:2736
struct timeval rb_time_timeval(VALUE time)
Converts an instance of rb_cTime to a struct timeval that represents the identical point of time.
Definition: time.c:2896
struct timeval rb_time_interval(VALUE num)
Creates a "time interval".
Definition: time.c:2890
VALUE rb_time_num_new(VALUE timev, VALUE off)
Identical to rb_time_timespec_new(), except it takes Ruby values instead of C structs.
Definition: time.c:2773
VALUE rb_time_utc_offset(VALUE time)
Queries the offset, in seconds between the time zone of the time and the UTC.
Definition: time.c:5007
struct timespec rb_time_timespec_interval(VALUE num)
Identical to rb_time_interval(), except for return type.
Definition: time.c:2927
int off
Offset inside of ptr.
Definition: io.h:5
Defines RBIMPL_ATTR_NONNULL.
#define RBIMPL_ATTR_NONNULL(list)
Wraps (or simulates) __attribute__((nonnull))
Definition: nonnull.h:27
Defines VALUE and ID.
uintptr_t VALUE
Type that represents a Ruby object.
Definition: value.h:40