Drizzled Public API Documentation

drizzled::Time Class Reference

#include <temporal.h>

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

List of all members.

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
class TemporalFormat

Detailed Description

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

Definition at line 456 of file temporal.h.


Member Function Documentation

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.

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.

Parameters:
Integerto 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.

Parameters:
Stringto convert from
Lengthof 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.

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

uint32_t drizzled::Temporal::hours ( ) const [inline, inherited]
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]
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().

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 276 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 296 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 263 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 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.

Parameters:
Timeto 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]
void drizzled::Temporal::set_days ( const uint32_t  day) [inline, inherited]
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]
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]
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 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.

Parameters:
Integerto 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.

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 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

Parameters:
Integerto fill.

Definition at line 1132 of file temporal.cc.

uint32_t drizzled::Temporal::useconds ( ) const [inline, inherited]

Friends And Related Function Documentation

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.


Member Data Documentation

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.


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