Drizzled Public API Documentation

drizzled::Time Class Reference

#include <temporal.h>

Inheritance diagram for drizzled::Time:
drizzled::Temporal

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)
Timeoperator-= (const Time &rhs)
Timeoperator+= (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

Detailed Description

Class representing temporal components having only a time component, with no date structure

Definition at line 438 of file temporal.h.

Member Function Documentation

uint64_t drizzled::Temporal::_cumulative_seconds_in_time ( ) const
protectedinherited

Returns number of seconds in time components (hour + minute + second)

Definition at line 78 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 ( )
inlineprotectedinherited

Resets all temporal components to zero

Definition at line 97 of file temporal.h.

enum calendar drizzled::Temporal::calendar ( ) const
inlineinherited

Returns the calendar component.

Definition at line 108 of file temporal.h.

time_t drizzled::Temporal::epoch_seconds ( ) const
inlineinherited

Returns the UNIX epoch seconds component.

Definition at line 126 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.

Parameters
Integerto convert from

Attempt to interpret the supplied 4-byte integer as a TIME value in the format HHmmSS

Definition at line 1130 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.

Parameters
Stringto convert from
Lengthof supplied string

Definition at line 978 of file temporal.cc.

References drizzled::TemporalFormat::matches().

Referenced by drizzled::Item_func_hour::val_int(), drizzled::Item_func_second::val_int(), drizzled::Item_func_minute::val_int(), drizzled::Item_func_microsecond::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.

Note

We can only convert from a time_t, not back to a time_t since it would be a lossy conversion.

Parameters
time_tto convert from

Definition at line 1224 of file temporal.cc.

uint32_t drizzled::Temporal::hours ( ) const
inlineinherited
bool drizzled::Time::is_valid ( ) const
virtual

Returns whether the temporal value is valid date.

Implements drizzled::Temporal.

Definition at line 1360 of file temporal.cc.

Referenced by from_int32_t().

bool drizzled::Time::is_valid_date ( ) const
inlinevirtual

Returns whether the temporal value is valid as a date.

Implements drizzled::Temporal.

Definition at line 468 of file temporal.h.

bool drizzled::Time::is_valid_datetime ( ) const
inlinevirtual

Returns whether the temporal value is valid as a datetime.

Implements drizzled::Temporal.

Definition at line 469 of file temporal.h.

bool drizzled::Time::is_valid_time ( ) const
inlinevirtual

Returns whether the temporal value is valid as a time.

Implements drizzled::Temporal.

Definition at line 470 of file temporal.h.

bool drizzled::Time::is_valid_timestamp ( ) const
inlinevirtual

Returns whether the temporal value is valid as a UNIX timestamp.

Implements drizzled::Temporal.

Definition at line 471 of file temporal.h.

uint32_t drizzled::Temporal::minutes ( ) const
inlineinherited
uint32_t drizzled::Temporal::nseconds ( ) const
inlineinherited

Returns the nanoseconds component.

Definition at line 112 of file temporal.h.

Referenced by drizzled::Item_func_to_days::val_int_endpoint().

const Time drizzled::Time::operator+ ( const Time rhs)

Once exceptions are supported, we should raise an error here if the result Time is not valid?

Definition at line 244 of file temporal.cc.

References drizzled::Temporal::_cumulative_seconds_in_time().

Time & drizzled::Time::operator+= ( const Time rhs)

Once exceptions are supported, we should raise an error here if the result Time is not valid?

Definition at line 264 of file temporal.cc.

References drizzled::Temporal::_cumulative_seconds_in_time().

const Time drizzled::Time::operator- ( const Time rhs)

Operator to add/subtract a Time from a Time. We can return a Time new temporal instance.

Parameters
Temporalinstance 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;
Note

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 231 of file temporal.cc.

References drizzled::Temporal::_cumulative_seconds_in_time().

Time & drizzled::Time::operator-= ( const Time rhs)

Once exceptions are supported, we should raise an error here if the result Time is not valid?

Definition at line 278 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.

Parameters
Timeto compare against.

Definition at line 178 of file temporal.cc.

bool drizzled::Temporal::overflow ( ) const
inlineinherited

Returns whether the overflow flag was set (which can occur during an overloaded operator's execution)

Definition at line 153 of file temporal.h.

uint32_t drizzled::Temporal::seconds ( ) const
inlineinherited
void drizzled::Temporal::set_days ( const uint32_t  day)
inlineinherited
void drizzled::Temporal::set_epoch_seconds ( )
inherited
void drizzled::Temporal::set_epoch_seconds ( const uint32_t  epoch_second)
inlineinherited

Sets the epch_seconds component manually.

Definition at line 123 of file temporal.h.

void drizzled::Temporal::set_hours ( const uint32_t  hour)
inlineinherited
void drizzled::Temporal::set_minutes ( const uint32_t  minute)
inlineinherited
void drizzled::Temporal::set_months ( const uint32_t  month)
inlineinherited
void drizzled::Temporal::set_nseconds ( const uint32_t  nsecond)
inlineinherited

Sets the nseconds component.

Definition at line 110 of file temporal.h.

void drizzled::Temporal::set_seconds ( const uint32_t  second)
inlineinherited
void drizzled::Temporal::set_useconds ( const uint32_t  usecond)
inlineinherited

Sets the useconds component.

Definition at line 114 of file temporal.h.

void drizzled::Temporal::set_years ( const uint32_t  year)
inlineinherited
void drizzled::Time::to_decimal ( type::Decimal to) const

Fills a supplied type::Decimal with a representation of the Time value.

Parameters
Pointerto the type::Decimal to fill

Definition at line 1023 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.

Parameters
Integerto fill.

Definition at line 1062 of file temporal.cc.

Referenced by drizzled::Item_time::val_int().

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.

Parameters
C-Stringto fill
Lengthof to C-String
Returns
length of string written (not including trailing '\0'). If output was truncated, returns length that would have been outputted.

Definition at line 989 of file temporal.cc.

Referenced by drizzled::Item_time::val_str().

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

Parameters
Integerto fill.

Definition at line 1068 of file temporal.cc.

uint32_t drizzled::Temporal::useconds ( ) const
inlineinherited

Member Data Documentation

bool drizzled::Temporal::_overflow
protectedinherited

Set on some operator overloads. Indicates that an overflow occurred.

Definition at line 93 of file temporal.h.

const int drizzled::Time::MAX_STRING_LENGTH = 9
static

Maximum length of C-String needed to represent type (including '\0').

Definition at line 494 of file temporal.h.


The documentation for this class was generated from the following files: