#include <temporal.h>
Public Member Functions | |
bool | operator== (const Time &rhs) |
bool | operator!= (const Time &rhs) |
bool | operator> (const Time &rhs) |
bool | operator>= (const Time &rhs) |
bool | operator< (const Time &rhs) |
bool | operator<= (const Time &rhs) |
const Time | operator- (const Time &rhs) |
const Time | operator+ (const Time &rhs) |
Time & | operator-= (const Time &rhs) |
Time & | operator+= (const Time &rhs) |
bool | is_valid_date () const |
bool | is_valid_datetime () const |
bool | is_valid_time () const |
bool | is_valid_timestamp () const |
bool | is_valid () const |
bool | is_fuzzy_valid () const |
int | to_string (char *to, size_t to_len) const |
bool | from_string (const char *from, size_t from_len) |
void | to_int32_t (int32_t *to) const |
void | to_uint64_t (uint64_t &to) const |
bool | from_int32_t (const int32_t from) |
bool | from_time_t (const time_t from) |
void | to_decimal (type::Decimal *to) const |
enum calendar | calendar () const |
void | set_nseconds (const uint32_t nsecond) |
uint32_t | nseconds () const |
void | set_useconds (const uint32_t usecond) |
uint32_t | useconds () const |
void | set_epoch_seconds () |
void | set_epoch_seconds (const uint32_t epoch_second) |
time_t | epoch_seconds () const |
void | set_seconds (const uint32_t second) |
uint32_t | seconds () const |
void | set_minutes (const uint32_t minute) |
uint32_t | minutes () const |
void | set_hours (const uint32_t hour) |
uint32_t | hours () const |
void | set_days (const uint32_t day) |
uint32_t | days () const |
void | set_months (const uint32_t month) |
uint32_t | months () const |
void | set_years (const uint32_t year) |
uint32_t | years () const |
bool | overflow () const |
Static Public Attributes | |
static const uint32_t | MAX_CUMULATIVE_SECONDS = 86400L |
static const int | MAX_STRING_LENGTH = 9 |
Protected Member Functions | |
uint64_t | _cumulative_seconds_in_time () const |
void | _reset () |
Protected Attributes | |
enum calendar | _calendar |
uint32_t | _years |
uint32_t | _months |
uint32_t | _days |
uint32_t | _hours |
uint32_t | _minutes |
uint32_t | _seconds |
time_t | _epoch_seconds |
uint32_t | _useconds |
uint32_t | _nseconds |
bool | _overflow |
Friends | |
class | Date |
class | DateTime |
class | TemporalFormat |
Class representing temporal components having only a time component, with no date structure
Definition at line 456 of file temporal.h.
uint64_t drizzled::Temporal::_cumulative_seconds_in_time | ( | ) | const [protected, inherited] |
Returns number of seconds in time components (hour + minute + second)
Definition at line 79 of file temporal.cc.
Referenced by drizzled::Date::operator+(), operator+(), drizzled::Date::operator+=(), operator+=(), drizzled::Date::operator-(), operator-(), drizzled::Date::operator-=(), and operator-=().
void drizzled::Temporal::_reset | ( | ) | [inline, protected, inherited] |
Resets all temporal components to zero
Definition at line 110 of file temporal.h.
enum calendar drizzled::Temporal::calendar | ( | ) | const [inline, inherited] |
Returns the calendar component.
Definition at line 121 of file temporal.h.
uint32_t drizzled::Temporal::days | ( | ) | const [inline, inherited] |
Returns the days component.
Definition at line 155 of file temporal.h.
Referenced by drizzled::Item_func_curdate_utc::store_now_in_TIME(), drizzled::Item_func_curdate_local::store_now_in_TIME(), drizzled::Item_func_weekday::val_int(), drizzled::Item_extract::val_int(), drizzled::Item_func_dayofyear::val_int(), drizzled::Item_func_dayofmonth::val_int(), and drizzled::Item_func_year::val_int_endpoint().
time_t drizzled::Temporal::epoch_seconds | ( | ) | const [inline, inherited] |
Returns the UNIX epoch seconds component.
Definition at line 139 of file temporal.h.
bool drizzled::Time::from_int32_t | ( | const int32_t | from | ) |
Attempts to populate the Time instance based on the contents of a supplied 4-byte integer.
Returns whether the conversion was successful.
Integer | to convert from |
Attempt to interpret the supplied 4-byte integer as a TIME value in the format HHmmSS
Definition at line 1196 of file temporal.cc.
References is_valid().
bool drizzled::Time::from_string | ( | const char * | from, |
size_t | from_len | ||
) |
Attempts to populate the Time instance based on the contents of a supplied string.
Returns whether the conversion was successful.
String | to convert from |
Length | of supplied string |
Definition at line 1010 of file temporal.cc.
References drizzled::TemporalFormat::matches().
Referenced by drizzled::Item_func_second::val_int(), drizzled::Item_func_minute::val_int(), drizzled::Item_func_microsecond::val_int(), drizzled::Item_func_hour::val_int(), and drizzled::Item_extract::val_int().
bool drizzled::Time::from_time_t | ( | const time_t | from | ) |
Attempts to populate the Time instance based on the contents of a supplied time_t
Returns whether the conversion was successful.
We can only convert *from* a time_t, not back to a time_t since it would be a lossy conversion.
time_t | to convert from |
Definition at line 1290 of file temporal.cc.
uint32_t drizzled::Temporal::hours | ( | ) | const [inline, inherited] |
Returns the hours component.
Definition at line 151 of file temporal.h.
Referenced by drizzled::Item_func_hour::val_int(), drizzled::Item_extract::val_int(), drizzled::Item_func_year::val_int_endpoint(), and drizzled::Item_func_to_days::val_int_endpoint().
bool drizzled::Time::is_valid | ( | ) | const [virtual] |
Returns whether the temporal value is valid date.
Implements drizzled::Temporal.
Definition at line 1426 of file temporal.cc.
Referenced by from_int32_t(), and is_valid_time().
bool drizzled::Time::is_valid_date | ( | ) | const [inline, virtual] |
Returns whether the temporal value is valid as a date.
Implements drizzled::Temporal.
Definition at line 486 of file temporal.h.
bool drizzled::Time::is_valid_datetime | ( | ) | const [inline, virtual] |
Returns whether the temporal value is valid as a datetime.
Implements drizzled::Temporal.
Definition at line 487 of file temporal.h.
bool drizzled::Time::is_valid_time | ( | ) | const [inline, virtual] |
Returns whether the temporal value is valid as a time.
Implements drizzled::Temporal.
Definition at line 488 of file temporal.h.
References is_valid().
bool drizzled::Time::is_valid_timestamp | ( | ) | const [inline, virtual] |
Returns whether the temporal value is valid as a UNIX timestamp.
Implements drizzled::Temporal.
Definition at line 489 of file temporal.h.
uint32_t drizzled::Temporal::minutes | ( | ) | const [inline, inherited] |
Returns the minutes component.
Definition at line 147 of file temporal.h.
Referenced by drizzled::Item_func_minute::val_int(), drizzled::Item_extract::val_int(), drizzled::Item_func_year::val_int_endpoint(), and drizzled::Item_func_to_days::val_int_endpoint().
uint32_t drizzled::Temporal::months | ( | ) | const [inline, inherited] |
Returns the months component.
Definition at line 159 of file temporal.h.
Referenced by drizzled::Item_func_last_day::get_temporal(), drizzled::Item_func_curdate_utc::store_now_in_TIME(), drizzled::Item_func_curdate_local::store_now_in_TIME(), drizzled::Item_func_weekday::val_int(), drizzled::Item_func_quarter::val_int(), drizzled::Item_func_month::val_int(), drizzled::Item_extract::val_int(), drizzled::Item_func_dayofyear::val_int(), and drizzled::Item_func_year::val_int_endpoint().
uint32_t drizzled::Temporal::nseconds | ( | ) | const [inline, inherited] |
Returns the nanoseconds component.
Definition at line 125 of file temporal.h.
Referenced by drizzled::Item_func_to_days::val_int_endpoint().
Once exceptions are supported, we should raise an error here if the result Time is not valid?
Definition at line 276 of file temporal.cc.
References drizzled::Temporal::_cumulative_seconds_in_time().
Once exceptions are supported, we should raise an error here if the result Time is not valid?
Definition at line 296 of file temporal.cc.
References drizzled::Temporal::_cumulative_seconds_in_time().
Operator to add/subtract a Time from a Time. We can return a Time new temporal instance.
Temporal | instance to add/subtract to/from |
Subtracting one Time value from another can yield a new Time instance.
This operator is called in the following situation:
Time lhs; lhs.from_string("20:00:00"); Time rhs; rhs.from_string("19:00:00"); Time result= lhs - rhs;
Subtracting a larger time value from a smaller one should throw an exception at some point. The result of such an operator should be a TemporalInterval, not a Time instance, since a negative time is not possible.
Definition at line 263 of file temporal.cc.
References drizzled::Temporal::_cumulative_seconds_in_time().
Once exceptions are supported, we should raise an error here if the result Time is not valid?
Definition at line 310 of file temporal.cc.
References drizzled::Temporal::_cumulative_seconds_in_time().
bool drizzled::Time::operator== | ( | const Time & | rhs | ) |
Comparison operator overloads to compare a Time against another Time value.
Time | to compare against. |
Definition at line 210 of file temporal.cc.
bool drizzled::Temporal::overflow | ( | ) | const [inline, inherited] |
Returns whether the overflow flag was set (which can occur during an overloaded operator's execution)
Definition at line 166 of file temporal.h.
References drizzled::Temporal::_overflow.
uint32_t drizzled::Temporal::seconds | ( | ) | const [inline, inherited] |
Returns the seconds component.
Definition at line 143 of file temporal.h.
Referenced by drizzled::Item_func_second::val_int(), drizzled::Item_extract::val_int(), drizzled::Item_func_year::val_int_endpoint(), and drizzled::Item_func_to_days::val_int_endpoint().
void drizzled::Temporal::set_days | ( | const uint32_t | day | ) | [inline, inherited] |
Sets the days component.
Definition at line 153 of file temporal.h.
Referenced by drizzled::Item_func_curdate::fix_length_and_dec(), drizzled::Item_func_last_day::get_temporal(), drizzled::Field_datetime::store_time(), and drizzled::Item_func_unix_timestamp::val_int().
void drizzled::Temporal::set_epoch_seconds | ( | const uint32_t | epoch_second | ) | [inline, inherited] |
Sets the epch_seconds component manually.
Definition at line 136 of file temporal.h.
void drizzled::Temporal::set_epoch_seconds | ( | ) | [inherited] |
Sets the epoch_seconds component automatically, based on the temporal's components.
Definition at line 124 of file temporal.cc.
References drizzled::in_unix_epoch_range().
Referenced by drizzled::DateTime::from_int64_t(), drizzled::DateTime::from_string(), drizzled::Date::from_string(), drizzled::Date::from_tm(), and drizzled::Item_func_unix_timestamp::val_int().
void drizzled::Temporal::set_hours | ( | const uint32_t | hour | ) | [inline, inherited] |
Sets the hours component.
Definition at line 149 of file temporal.h.
Referenced by drizzled::Field_datetime::store_time(), and drizzled::Item_func_unix_timestamp::val_int().
void drizzled::Temporal::set_minutes | ( | const uint32_t | minute | ) | [inline, inherited] |
Sets the days component.
Definition at line 145 of file temporal.h.
Referenced by drizzled::Field_datetime::store_time(), and drizzled::Item_func_unix_timestamp::val_int().
void drizzled::Temporal::set_months | ( | const uint32_t | month | ) | [inline, inherited] |
Sets the months component.
Definition at line 157 of file temporal.h.
Referenced by drizzled::Item_func_curdate::fix_length_and_dec(), drizzled::Field_datetime::store_time(), and drizzled::Item_func_unix_timestamp::val_int().
void drizzled::Temporal::set_nseconds | ( | const uint32_t | nsecond | ) | [inline, inherited] |
Sets the nseconds component.
Definition at line 123 of file temporal.h.
void drizzled::Temporal::set_seconds | ( | const uint32_t | second | ) | [inline, inherited] |
Sets the seconds component.
Definition at line 141 of file temporal.h.
Referenced by drizzled::Field_datetime::store_time(), and drizzled::Item_func_unix_timestamp::val_int().
void drizzled::Temporal::set_useconds | ( | const uint32_t | usecond | ) | [inline, inherited] |
Sets the useconds component.
Definition at line 127 of file temporal.h.
void drizzled::Temporal::set_years | ( | const uint32_t | year | ) | [inline, inherited] |
Sets the years component.
Definition at line 161 of file temporal.h.
Referenced by drizzled::Item_func_curdate::fix_length_and_dec(), drizzled::Field_datetime::store_time(), and drizzled::Item_func_unix_timestamp::val_int().
void drizzled::Time::to_decimal | ( | type::Decimal * | to | ) | const |
Fills a supplied type::Decimal with a representation of the Time value.
Pointer | to the type::Decimal to fill |
Definition at line 1081 of file temporal.cc.
void drizzled::Time::to_int32_t | ( | int32_t * | to | ) | const |
Fills a supplied 4-byte integer pointer with an integer representation of the Time value.
Integer | to fill. |
Definition at line 1124 of file temporal.cc.
int drizzled::Time::to_string | ( | char * | to, |
size_t | to_len | ||
) | const |
Fills a supplied char string with a string representation of the Time value.
C-String | to fill |
Length | of to C-String |
Definition at line 1037 of file temporal.cc.
void drizzled::Time::to_uint64_t | ( | uint64_t & | to | ) | const |
Fills a supplied 8-byte integer pointer with an integer representation of the Time value. It is assume seconds past unix epoch
Integer | to fill. |
Definition at line 1132 of file temporal.cc.
uint32_t drizzled::Temporal::useconds | ( | ) | const [inline, inherited] |
Returns the microsseconds component.
Definition at line 129 of file temporal.h.
Referenced by drizzled::Item_func_microsecond::val_int(), drizzled::Item_extract::val_int(), drizzled::Item_func_year::val_int_endpoint(), and drizzled::Item_func_to_days::val_int_endpoint().
uint32_t drizzled::Temporal::years | ( | ) | const [inline, inherited] |
Returns the years component.
Definition at line 163 of file temporal.h.
Referenced by drizzled::Item_func_last_day::get_temporal(), drizzled::Item_func_curdate_utc::store_now_in_TIME(), drizzled::Item_func_curdate_local::store_now_in_TIME(), drizzled::Item_func_year::val_int(), drizzled::Item_func_weekday::val_int(), drizzled::Item_extract::val_int(), drizzled::Item_func_dayofyear::val_int(), and drizzled::Item_func_year::val_int_endpoint().
friend class TemporalFormat [friend, inherited] |
All Temporal derived classes must implement conversion routines for converting to and from a string. Subclasses implement other conversion routines, but should always follow these notes:
1) Ensure that ALL from_xxx methods call is_valid() 2) Ensure that ALL to_xxx methods are void returns and do not call is_valid()
This minimizes the repeated bounds-checking to just the conversion from_xxx routines.
Definition at line 197 of file temporal.h.
bool drizzled::Temporal::_overflow [protected, inherited] |
Set on some operator overloads. Indicates that an overflow occurred.
Definition at line 106 of file temporal.h.
Referenced by drizzled::Temporal::overflow().
const int drizzled::Time::MAX_STRING_LENGTH = 9 [static] |
Maximum length of C-String needed to represent type (including '\0').
Definition at line 512 of file temporal.h.