#ifndef __TANGO_CACHE_TOOLS_H__
#define __TANGO_CACHE_TOOLS_H__

#include <MESA/MESA_handle_logger.h>

#define MESA_HANDLE_RUNTIME_LOGV2(handle, lv, fmt, args...)   \
    MESA_handle_runtime_log((handle), (lv), "TANGO_CACHE", "%s:%d, " fmt, __FILE__, __LINE__, ##args)

#ifdef CACHE_DEBUG_SWITCH
#define DBG_CACHE(fmt, args...) do{printf("%s():%d, " fmt, __FUNCTION__, __LINE__, ##args);}while(0)
#else
#define DBG_CACHE(msg...)
#endif

int Base64_EncodeBlock(const unsigned char *in, int inl, unsigned char *out);
int Base64_DecodeBlock(const unsigned char *in, int inl, unsigned char *out, int outsize);

int strcmp_one_word_mesa_equal_len(const char *s1_lowercase, const char *s1_uppercase, const char *s2, size_t len);
int mkdir_according_path(const char * path);

time_t get_gmtime_timestamp(time_t seconds);
time_t expires_hdr2timestamp(const char *expires_val, int len);
size_t expires_timestamp2hdr_str(time_t seconds, char *buffer, size_t size);

#endif

