⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 database.h

📁 MPICH是MPI的重要研究,提供了一系列的接口函数,为并行计算的实现提供了编程环境.
💻 H
字号:
// Database.h: interface for the Database class.////////////////////////////////////////////////////////////////////////#if !defined(AFX_Database_H__39ADCE33_DB1E_11D3_9604_009027106653__INCLUDED_)#define AFX_Database_H__39ADCE33_DB1E_11D3_9604_009027106653__INCLUDED_#if _MSC_VER > 1000#pragma once#endif // _MSC_VER > 1000#include <winsock2.h>#include <windows.h>#include "sockets.h"extern HANDLE g_hStopDBSLoopEvent;#define MPI_DBS_SUCCESS		 		0#define MPI_DBS_FAIL				1#define MPI_DBS_CMD_EXISTS			0#define MPI_DBS_CMD_PUT_PERSISTENT	1#define MPI_DBS_CMD_PUT_CONSUMABLE	2#define MPI_DBS_CMD_GET				3#define MPI_DBS_CMD_DELETE			4#define MPI_DBS_CMD_GETSTATE		5#define DBSIDLEN					100#define DATABASE_TIMEOUT			10000class Database  {public:	Database();	virtual ~Database();	bool Init();	void SetID(char *pszID);	bool GetID(char *pszID, int *length);	int Get(char *pszKey, void *pValue, int *length);	int Put(char *pszKey, void *pValue, int length, bool bPersistent = true);	int Delete();	int Print(char *pBuffer, int *length);	Database& operator=(Database &db);private:	char m_pszServerHost[100];	long m_nServerPort;	char m_pszID[DBSIDLEN];};class DatabaseServer{public:	struct ValueNode	{		void *pData;		int length;		ValueNode *pNext;	};	struct KeyNode	{		char *pszKey;		bool bPersistent;		ValueNode *pValueList;		KeyNode *pNext;	};	struct IDNode	{		char pszID[DBSIDLEN];		KeyNode *pKeyList;		IDNode *pNext;	};	DatabaseServer();	virtual ~DatabaseServer();	bool SetPort(int nPort);	bool Start();	bool GetHost(char *pszHost, int length);	int GetPort();	bool Stop();	int Get(char *pszID, char *pszKey, void *&pValueData, int *length);	int Put(char *pszID, char *pszKey, void *pValueData, int length, bool bPersistent = true);	int Delete(char *pszID);	int Delete(char *pszID, char *pszKey);	void PrintState();	void PrintStateToBuffer(char *pszBuffer, int *pnLength);	int GetState(char *pszOutput, int *length);	friend void DatabaseServerThread(DatabaseServer *pServer);private:	HANDLE m_hMutex;	HANDLE m_hServerThread;	int m_nPort;	char m_pszHost[100];	IDNode *m_pList;};struct DBSClientArg{	SOCKET sock;	WSAEVENT sock_event;	DatabaseServer *pServer;};int DatabaseClientThread(DBSClientArg *arg);int dbs_error(char *string, int value, bool bExit=false);int dbs_error(char *string, int value, SOCKET sock, WSAEVENT sock_event, bool bExit=false);#endif // !defined(AFX_Database_H__39ADCE33_DB1E_11D3_9604_009027106653__INCLUDED_)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -