muduo原始碼解析9 timezone類

2022-08-23 18:03:11 字數 1303 閱讀 3671

class timezone:public

copyable

感覺有點看不懂,detail內部實現檔案類不明白跟時區有什麼關係.

timezone類主要是完成各個時區之間的轉換,感覺自己用不到,乙個時區就夠了.

內部成員變數就乙個,是個data結構體的共享智慧型指標

提供了3個建構函式,

timezone(const char* zonefile)

建構函式,建構函式是explicit的,內建指標不能隱式的轉換,只能使用初始化的形式

timezone(int eastofutc, const char* tzname);

eastofutc表示utc時間。中國內地的時間與utc的時差為+8,也就是utc+8

這裡根據源**,eastofutc 應該是秒數

timezone() = default

預設建構函式

private

: std::shared_ptr

m_data;

這個data是自定義的結構體,裡面主要是一些timezone相關的資訊,我沒怎麼看懂,暫時留個坑,不過感覺也

用不到多個時區。

public

:

explicit timezone(const

char*zonefile);

timezone(

int eastofutc,const

char*tzname);

timezone()=default

;

bool valid() const

//utc時間轉換成當地時間

struct tm tolocaltime(time_t sec) const

;

//當地時間轉換成utc時間

time_t fromlocaltime(const

struct tm&) const

;

//當地時間轉換成utc時間

static

struct tm toutctime(time_t sec,bool yday=false

);

//utc時間轉換成當地時間

static time_t fromutctime(const

struct tm&);

//static time_t fromutctime(int year,int month,int

day,

int hour,int min,int sec);

muduo原始碼解析之EventLoopThread

回到tcpserver,我們記得裡面有乙個eventloopthreadpool,根據名字,這是乙個執行緒池,它主要用於管理所有的eventloop,每個eventloop對應乙個執行緒。當新連線到來時,acceptor事件分發器將連線分發到合適的執行緒中。執行緒裡面核心是執行eventloop類裡...

muduo原始碼解析1 timestamp類

class timestamp public mymuduo copyable,public boost equality comparable,public boost less than comparable 主要是實現了時間戳的相關操作,例如時間戳的格式化,返回當前時間戳等等。private ...

muduo原始碼解析21 Socket類

封裝了乙個套接字sokcet類,內部只儲存乙個套接字檔案描述符m sockfd 提供了常用的套接字相關的操作,例如 繫結套接字,監聽,接受乙個連線,關閉寫操作,獲取tcp資訊,設定套接字為no delay模式,設定位址重用,埠重用,設定keepalive private 套接字檔案描述符,用cons...