19 #ifndef SBUILD_TYPES_H 20 #define SBUILD_TYPES_H 53 typedef std::tm *(*break_time_func)(
const time_t *timep, std:: tm *result);
64 break_time(break_time)
78 template <
class charT,
class traits>
80 std::basic_ostream<charT,traits>&
81 operator << (std::basic_ostream<charT,traits>& stream,
84 std::ios_base::iostate err = std::ios_base::goodbit;
87 if ((dt.break_time(&dt.unix_time, &dtm)) == 0)
89 err = std::ios_base::badbit;
95 typename std::basic_ostream<charT, traits>::sentry sentry(stream);
98 const std::basic_string<char>
99 nfmt(dt.get_date_format());
100 std::basic_string<charT> wfmt(nfmt.size(), 0);
101 assert(nfmt.size() == wfmt.size());
102 const char *nptr = nfmt.c_str();
103 charT *wptr =
const_cast<charT *
>(wfmt.c_str());
105 std::use_facet<std::ctype<charT> >(stream.getloc())
106 .widen(nptr, nptr + nfmt.size(), wptr);
108 typedef std::time_put<charT,std::ostreambuf_iterator<charT,traits> >
110 if (std::use_facet<time_type>(stream.getloc())
111 .put(stream, stream, stream.fill(),
113 wptr, wptr + wfmt.size())
116 err = std::ios_base::badbit;
126 stream.setstate(std::ios::failbit);
128 catch (std::ios_base::failure
const& discard)
138 stream.setstate(err);
isodate(time_t unix_time)
The constructor.
Definition: sbuild-types.h:210
Debian source builder components.
Definition: sbuild-auth-null.h:24
time_t unix_time
The time.
Definition: sbuild-types.h:154
virtual ~date_base()
The destructor.
Definition: sbuild-types.h:68
std::map< std::string, std::string > string_map
A string map.
Definition: sbuild-types.h:44
std::set< std::string > string_set
A string set.
Definition: sbuild-types.h:41
virtual const char * get_date_format() const
Get the date formatting string.
Definition: sbuild-types.cc:27
virtual ~date()
The destructor.
Definition: sbuild-types.h:195
A date representation.
Definition: sbuild-types.h:49
A date representation in UTC.
Definition: sbuild-types.h:162
std::vector< std::string > string_list
A string vector.
Definition: sbuild-types.h:38
virtual ~gmdate()
The destructor.
Definition: sbuild-types.h:175
virtual ~isodate()
The destructor.
Definition: sbuild-types.h:215
break_time_func break_time
The function to split up the time.
Definition: sbuild-types.h:156
date(time_t unix_time)
The constructor.
Definition: sbuild-types.h:190
date_base(time_t unix_time, break_time_func break_time)
The constructor.
Definition: sbuild-types.h:61
A date representation in ISO-8601 format.
Definition: sbuild-types.h:202
std::tm *(* break_time_func)(const time_t *timep, std::tm *result)
Function pointer to split time into a std::tm.
Definition: sbuild-types.h:53
gmdate(time_t unix_time)
The constructor.
Definition: sbuild-types.h:170
A date representation in local time.
Definition: sbuild-types.h:182