Mercurial > hg > Members > kono > Cerium
view Renderer/Engine/lindaapi.h @ 577:e3f3cfa8794f
merge
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 23 Oct 2009 17:18:41 +0900 |
parents | cc989924f469 |
children | 1733f3cbfa28 |
line wrap: on
line source
#ifndef _LINDAAPI_H #define _LINDAAPI_H 1 #ifdef __cplusplus extern "C" { #endif /* $Id$ */ /*---------------------------------------------------------------------- マクロ定義 ----------------------------------------------------------------------*/ #define FAIL (-1) #define PS_DEB 0xf8 #define MAX_QUEUE 1024 #define INT_SIZE 4 // Byte = sizeof(int) #define LDSERV_PORT 11511 /*---------------------------------------------------------------------- パケットフォーマット char short int int Mode + ID + Seq + Data_len + Padding + Data 0 1 3 7 11 12 ----------------------------------------------------------------------*/ #define LINDA_MODE_OFFSET 0 #define LINDA_ID_OFFSET 1 #define LINDA_SEQ_OFFSET 3 #define LINDA_DATA_LENGTH_OFFSET 7 #define LINDA_HEADER_SIZE 12 /*---------------------------------------------------------------------- 構造体定義 ----------------------------------------------------------------------*/ typedef struct psx_reply{ unsigned char *answer; unsigned int seq; struct psx_reply *next; char mode; void(*callback)(unsigned char * tuple, void * obj); void * obj; } REPLY; typedef struct command_queue{ struct command_queue *next; unsigned int tspace_id; /* ID of destination Tuple Space */ unsigned int size; unsigned char *command; } COMMAND; /*---------------------------------------------------------------------- Linda API ----------------------------------------------------------------------*/ extern void init_linda(void); extern int open_linda(char *hostname, int port); extern int open_linda_java(char *hostname, int port); extern int close_linda(int tspace_id); extern void psx_free(void*); extern unsigned char *psx_reply(unsigned int seq); extern void psx_sync_n(void); extern unsigned int psx_get_datalength(unsigned char *); extern unsigned char *psx_get_data(unsigned char *); extern unsigned int psx_get_seq(unsigned char *); extern unsigned short psx_get_id(unsigned char *); extern unsigned char psx_get_mode(unsigned char *); extern unsigned char * psx_get_data(unsigned char *); extern int psx_out(unsigned int tspace_id, unsigned int id, unsigned char *data, unsigned int size); extern int psx_ld(unsigned int tspace_id, unsigned int id, char mode, void(*callback)(unsigned char *,void *),void * obj); #define psx_in(tid, id) psx_ld(tid, id, 'i', NULL, NULL) #define psx_rd(tid, id) psx_ld(tid, id, 'r', NULL, NULL) #define psx_ck(tid, id) psx_ld(tid, id, 'c', NULL, NULL) #define psx_wait_rd(tid, id) psx_ld(tid, id, 'w', NULL, NULL) #define psx_callback_in(tid, id,callback,obj) psx_ld(tid, id, 'i', callback, obj) #define psx_callback_rd(tid, id,callback,obj) psx_ld(tid, id, 'r', callback, obj) #define psx_callback_ck(tid, id,callback,obj) psx_ld(tid, id, 'c', callback, obj) #define psx_callback_wait_rd(tid, id,callback,obj) psx_ld(tid, id, 'w', callback, obj) #ifdef __cplusplus }; // for extern "C" #endif #endif // _LINDAAPI_H