/* * JCG Products Ver 1.00.00 * * Copyright (C) 2000,2001 TRON Association * All rights reserved. * Copyright (C) 2000,2001 Information-technology Promotion Agency, Japan * All rights reserved. * * 上記著作権者は,以下の条件を満たす場合に限り,本ソフトウェア(本ソ * フトウェアを改変したものを含む.以下同じ)を使用・複製・改変・頒布・ * 送信・再許諾・貸与・翻案(以下再頒布という)することを無償で許諾す * る. * (1) 本ソフトウェアをソースコードの形で再頒布する場合には,上記の著 * 作権表示,この再頒布条件および下記の無保証規定が,ソースコード * 中に含まれていること. * (2) 本ソフトウェアをオブジェクトコードの形または機器に組み込んだ形 * で再頒布する場合には,次のいずれかの条件を満たすこと. * ・再頒布に伴うドキュメント(利用者マニュアルなど)に,上記の * 著作権表示,この再頒布条件および下記の無保証規定を掲載する * こと. * ・本ソフトウェアを利用したことによって直接的または間接的に生 * じたいかなる損害からも,上記著作権者を免責すること. * * 本ソフトウェアは,無保証で提供されているものである.上記著作権者は, * 本ソフトウェアに関して,その適用可能性も含めて,いかなる保証も行わ * ない.また,本ソフトウェアを利用したことによって直接的または間接的 * に生じたいかなる損害に関しても,その責任を負わない. * * The Copyrights Holder above agrees that this software (including the * Derivative work of this software. This is applicable hereinafter) is * used, copied, modified, distributed, sent, re-granted, lent or adopted * (hereinafter called "redistribution") for free as long as the * following License Conditions are satisfied. * (1) If this software is to be redistributed in the form of source * codes, Copyright Notice above, this redistribution conditions, * and the following NO WARRANTY Provisions must be included in * the source code. * (2) If this software is to be redistributed in the form of object * codes or integrated into a device, either of the following * conditions must be satisfied. * - Copyright Notice above, this redistribution conditions, and * the following NO WARRANTY Provisions appear in the attached * document (such as users manual). * - Copyrights Holder above is exempted from any direct/indirect * damages caused as a result of using this software. * * This software is provided with NO WARRANTY. Copyrights Holder above * provides NO WARRANTY on this software, including its applicability, * and is not liable for any direct/indirect damages caused as a result * of using this software. * * NOTICE: * Sentences above are translation for reference. For legal purposes, * the original Japanese sentences on top of this file are the official * sentences for License Conditions. */ #ifndef __ECBGIOP_H__ #define __ECBGIOP_H__ /* * 通信バッファ管理用構造体 */ typedef struct giop_mem_info { CORBA_unsigned_long mem_bsize; /* buf size */ CORBA_char *mem_btopp; /* malloc buf top pointer */ CORBA_char *mem_bcurp; /* malloc buf cur pointer */ } GIOP_MemInf; struct srv_resource; /* * サーバ側GIOP管理用構造体 */ typedef struct srv_info { GIOP_MemInf srv_memif; /* memory infomation */ #define srv_bsize srv_memif.mem_bsize #define srv_btopp srv_memif.mem_btopp #define srv_bcurp srv_memif.mem_bcurp CORBA_boolean srv_bordr; /* request byte order */ CORBA_char *srv_cntxt; /* service context pointer */ CORBA_unsigned_long srv_reqid; /* request id */ CORBA_boolean srv_akflg; /* reply ack flag */ CORBA_sequence_octet srv_keyhd; /* object_key Header Info */ #define srv_hdmax srv_keyhd._maximum #define srv_hdlen srv_keyhd._length #define srv_hdbfp srv_keyhd._buffer #define srv_hdrls srv_keyhd._release CORBA_sequence_octet srv_obkey; /* object_key Info */ #define srv_kymax srv_obkey._maximum #define srv_kylen srv_obkey._length #define srv_kybfp srv_obkey._buffer #define srv_kyrls srv_obkey._release CORBA_char *srv_opnam; /* opname pointer in request buf */ struct srv_resource *srv_conct; /* connection info */ } GIOP_SrvInf; #define GIOP_srv_bsize(m) (((GIOP_SrvInf *)m)->srv_bsize) #define GIOP_srv_btopp(m) (((GIOP_SrvInf *)m)->srv_btopp) #define GIOP_srv_bcurp(m) (((GIOP_SrvInf *)m)->srv_bcurp) #define GIOP_srv_bordr(m) (((GIOP_SrvInf *)m)->srv_bordr) #define GIOP_srv_reqid(m) (((GIOP_SrvInf *)m)->srv_reqid) #define GIOP_srv_akflg(m) (((GIOP_SrvInf *)m)->srv_akflg) #define GIOP_srv_opnam(m) (((GIOP_SrvInf *)m)->srv_opnam) #define GIOP_srv_hdlen(m) (((GIOP_SrvInf *)m)->srv_hdlen) #define GIOP_srv_hdbfp(m) (((GIOP_SrvInf *)m)->srv_hdbfp) #define GIOP_srv_kylen(m) (((GIOP_SrvInf *)m)->srv_kylen) #define GIOP_srv_kybfp(m) (((GIOP_SrvInf *)m)->srv_kybfp) /* * サーバ側GIOPメッセージ開放用マクロ定義 */ #define GIOP_end_srv(inf) GIOP_free(&(((GIOP_SrvInf *)inf)->srv_memif)) /* * クライアント側GIOP管理用構造体 */ typedef struct cli_info { GIOP_MemInf cli_memif; /* memory infomation */ #define cli_bsize cli_memif.mem_bsize #define cli_btopp cli_memif.mem_btopp #define cli_bcurp cli_memif.mem_bcurp CORBA_boolean cli_bordr; /* request byte order */ CORBA_unsigned_long cli_reqid; /* request id */ CORBA_boolean cli_akflg; /* reply ack flag */ CORBA_boolean cli_fowrd; /* location forward flag */ } GIOP_CliInf; #define GIOP_cli_bsize(m) (((GIOP_CliInf *)m)->cli_bsize) #define GIOP_cli_btopp(m) (((GIOP_CliInf *)m)->cli_btopp) #define GIOP_cli_bcurp(m) (((GIOP_CliInf *)m)->cli_bcurp) #define GIOP_cli_bordr(m) (((GIOP_CliInf *)m)->cli_bordr) #define GIOP_cli_reqid(m) (((GIOP_CliInf *)m)->cli_reqid) #define GIOP_cli_akflg(m) (((GIOP_CliInf *)m)->cli_akflg) #define GIOP_cli_fowrd(m) (((GIOP_CliInf *)m)->cli_fowrd) /* * クライアント側GIOPメッセージ開放用マクロ定義 */ #define GIOP_end_cli(inf) GIOP_free(&(((GIOP_CliInf *)inf)->cli_memif)) /* * GIOP RplyStatusType */ typedef enum { GIOP_NO_EXCEPTION = 0, GIOP_USER_EXCEPTION, GIOP_SYSTEM_EXCEPTION, GIOP_LOCATION_FORWARD } GIOP_RplyStatusType; /* * プロトタイプ宣言 */ void GIOP_free(GIOP_MemInf *); void GIOP_init_cli(GIOP_CliInf *); CORBA_char *GIOP_create_reqbuf(CORBA_Object, GIOP_CliInf *, CORBA_unsigned_long, CORBA_boolean, CORBA_char *, CORBA_Environment *); CORBA_char *GIOP_invoke_req(CORBA_Object, GIOP_CliInf *, CORBA_unsigned_long, CORBA_Environment *); void GIOP_send_repexc(GIOP_SrvInf *, CORBA_char *, CORBA_unsigned_long); CORBA_char *GIOP_create_repbuf(GIOP_SrvInf *, CORBA_unsigned_long); void GIOP_send_rep(GIOP_SrvInf *, CORBA_unsigned_long); #endif /* __ECBGIOP_H__ */