session.h

来自「Oracle调用接口」· C头文件 代码 · 共 66 行

H
66
字号
#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 + =
减小字号Ctrl + -
显示快捷键?