Добавил:
Studfiles2
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Эмулятор PARIX для VISUAL STUDIO / OPUEM v.1.0 / OPUEM / inc / sys / root
.h/*************************************************************************
* OPUS MULTICLASTER EMULATOR v.1.0. *
* File: root.h *
* Date: 15.05.04 *
* Author: Sergey Ivochkin (9351) *
* E-mail: sivsivsiv@mail.ru *
* Description: OPUS MULTICLASTER EMULATOR header file *
* include it to use OPUEM.lib *
*************************************************************************/
#ifndef _OPUEM
#define _OPUEM
//RootProc_t type
typedef struct {
int MyProcID;
int MyX;
int MyY;
int MyZ;
int nProcs;
int DimX;
int DimY;
int DimZ;
} RootProc_t;
//ROOT type
typedef struct ROOT {
RootProc_t* ProcRoot;
};
//LinkCB_t type
typedef struct {
int nProcID;
} LinkCB_t;
//error message codes
#define EC_FATAL 1
#define EC_ERROR 2
#define EC_WARNING 3
//use defines below the namespace!
namespace OPUEM_CLIENT {
ROOT* GetRoot();
LinkCB_t* MakeLink(int Proc, int RequestID, int* error);
LinkCB_t* GetLink(int Proc, int RequestID, int* error);
int SendLink(LinkCB_t* link, void* buffer, int size);
int RecvLink(LinkCB_t* link, void* buffer, int size);
void LogError(int nCode, char* lpszFileName, char* message, int nError);
void AbortServer(int nCode);
};
//Retrieving information about the processor
#define GET_ROOT() OPUEM_CLIENT::GetRoot()
//Setting up links
#define MakeLink OPUEM_CLIENT::MakeLink
#define GetLink OPUEM_CLIENT::GetLink
//Using links
#define SendLink OPUEM_CLIENT::SendLink
#define RecvLink OPUEM_CLIENT::RecvLink
//Aborting server
#define AbortServer OPUEM_CLIENT::AbortServer
//Logging errors
#define LogError OPUEM_CLIENT::LogError
#endif