syslog-ng source
cache.c File Reference
#include "timeutils/cache.h"
#include "timeutils/zonecache.h"
#include "tls-support.h"
#include <apphook.h>
#include <iv.h>
#include <string.h>
Include dependency graph for cache.c:

Classes

struct  TimeCache
 

Macros

#define current_realtime   __slng_tls_deref(current_realtime)
 
#define invalidate_time_task   __slng_tls_deref(invalidate_time_task)
 
#define local_gencounter   __slng_tls_deref(local_gencounter)
 
#define cache   __slng_tls_deref(cache)
 
#define state   __slng_tls_deref(state)
 
#define USE_IV_FOR_TIME_INVALIDATION   1
 

Functions

long get_local_timezone_ofs (time_t when)
 
void timeutils_cache_deinit (void)
 
void invalidate_timeutils_cache (void)
 
void invalidate_cached_realtime (void)
 
void set_cached_realtime (struct timespec *ts)
 
void get_cached_realtime (struct timespec *ts)
 
time_t get_cached_realtime_sec (void)
 
time_t cached_mktime (struct tm *tm)
 
void cached_localtime (time_t *when, struct tm *tm)
 
void cached_gmtime (time_t *when, struct tm *tm)
 
TimeZoneInfo * cached_get_time_zone_info (const gchar *tz)
 
glong cached_get_system_tzofs (void)
 
const gchar *const * cached_get_system_tznames (void)
 

Variables

 TLS_BLOCK_START
 
struct iv_task invalidate_time_task
 
gint local_gencounter
 
struct {
   struct {
      Cache *   zones
 
   }   tzinfo
 
   struct {
      TimeCache   buckets [64]
 
   }   localtime
 
   struct {
      TimeCache   buckets [64]
 
   }   gmtime
 
   struct {
      struct tm   key
 
      struct tm   mutated_key
 
      time_t   value
 
   }   mktime
 
cache
 
struct {
   glong   timezone
 
   gchar *   tzname [2]
 
state
 
 TLS_BLOCK_END
 

Macro Definition Documentation

◆ cache

#define cache   __slng_tls_deref(cache)

◆ current_realtime

#define current_realtime   __slng_tls_deref(current_realtime)

◆ invalidate_time_task

#define invalidate_time_task   __slng_tls_deref(invalidate_time_task)

◆ local_gencounter

#define local_gencounter   __slng_tls_deref(local_gencounter)

◆ state

#define state   __slng_tls_deref(state)

◆ USE_IV_FOR_TIME_INVALIDATION

#define USE_IV_FOR_TIME_INVALIDATION   1

Function Documentation

◆ cached_get_system_tznames()

const gchar* const* cached_get_system_tznames ( void  )

◆ cached_get_system_tzofs()

glong cached_get_system_tzofs ( void  )

◆ cached_get_time_zone_info()

TimeZoneInfo* cached_get_time_zone_info ( const gchar *  tz)

◆ cached_gmtime()

void cached_gmtime ( time_t *  when,
struct tm *  tm 
)

◆ cached_localtime()

void cached_localtime ( time_t *  when,
struct tm *  tm 
)

◆ cached_mktime()

time_t cached_mktime ( struct tm *  tm)

◆ get_cached_realtime()

void get_cached_realtime ( struct timespec *  ts)

◆ get_cached_realtime_sec()

time_t get_cached_realtime_sec ( void  )

◆ get_local_timezone_ofs()

long get_local_timezone_ofs ( time_t  when)

get_local_timezone_ofs: @when: time in UTC

Return the zone offset (measured in seconds) of @when expressed in local time. The function also takes care about daylight saving.

◆ invalidate_cached_realtime()

void invalidate_cached_realtime ( void  )

◆ invalidate_timeutils_cache()

void invalidate_timeutils_cache ( void  )

◆ set_cached_realtime()

void set_cached_realtime ( struct timespec *  ts)

◆ timeutils_cache_deinit()

void timeutils_cache_deinit ( void  )

Variable Documentation

◆ buckets

TimeCache buckets[64]

◆ 

struct { ... } cache

◆ cache_gencounter

gint cache_gencounter

◆ 

struct { ... } gmtime

◆ invalidate_time_task

struct iv_task invalidate_time_task

◆ key

struct tm key

◆ local_gencounter

gint local_gencounter

◆ 

struct { ... } localtime

◆ 

struct { ... } mktime

◆ mutated_key

struct tm mutated_key

◆ 

struct { ... } state

◆ timezone

glong timezone

◆ TLS_BLOCK_END

TLS_BLOCK_END

◆ TLS_BLOCK_START

TLS_BLOCK_START
Initial value:
{
struct timespec current_realtime
#define current_realtime
Definition: cache.c:79

◆ 

struct { ... } tzinfo

◆ tzname

gchar* tzname[2]

◆ value

time_t value

◆ zones

Cache* zones