📄 session.h
字号:
#ifndef __SESSION_H_#define __SESSION_H_#include <errno.h>#include <sys/ipc.h>#include <sys/sem.h>#include <sys/shm.h>#include <sys/types.h>#include <unistd.h>#include <string.h>#include <stdio.h>#include <stdlib.h>// C++ includes #include <map>#include <vector>#include <string>#define FKEY "/tmp/session"#define PROJ 57#define MAXSESSIONS 512#define MAXSESSIZE 2048#define SIDSIZE 9 /* nineth byte is for 0 */#define EXPIRE 600 /* seconds */#define ALLSIZE (sizeof(int)+sizeof(session)*MAXSESSIONS)typedef struct _session { time_t touched; char sid[SIDSIZE]; char data[MAXSESSIZE];} session;typedef struct _sessionslist { int nsessions; int seed; // for srand to generate unique id session s[MAXSESSIONS];} sessionslist;class Session {private: map<string,string> data; time_t touched;public: Session(); Session(char *data,time_t touched); ~Session(); void init(char *data,time_t touched); string &get(const string &key); time_t getTouched() const { return touched; } void set(const string &key,const string &val); char *to_string();};bool getSession(const char *sid,Session &s);bool addSession(const char *sid,Session &s);bool destroy();bool getInfo(int &,int &,vector<string> &,vector<string> &,vector<time_t> &);char *getUniqueId();void cleanUp(sessionslist *slist);int getSemID(key_t key);int getShmID(key_t key);int lockSession(int semid);int unlockSession(int semid);bool removeSessions();#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -