diff options
Diffstat (limited to 'lib/ic/c_src/ic_tmo.c')
| -rw-r--r-- | lib/ic/c_src/ic_tmo.c | 136 | 
1 files changed, 0 insertions, 136 deletions
| diff --git a/lib/ic/c_src/ic_tmo.c b/lib/ic/c_src/ic_tmo.c deleted file mode 100644 index ef66f67d55..0000000000 --- a/lib/ic/c_src/ic_tmo.c +++ /dev/null @@ -1,136 +0,0 @@ -/* - * %CopyrightBegin% - *  - * Copyright Ericsson AB 2004-2016. All Rights Reserved. - *  - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - *     http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - *  - * %CopyrightEnd% - * - */ -#include <ic.h> - -static int oe_send_tmo(CORBA_Environment *env, unsigned int ms); - -/* Client send message (Erlang distribution protocol) */ -static int oe_send_tmo(CORBA_Environment *env, unsigned int ms) -{ -    if (strlen(env->_regname) == 0) {  -	if (ei_send_encoded_tmo(env->_fd, env->_to_pid, env->_outbuf, -			    env->_iout, ms) < 0) {  -	    /* XXX Cannot send to peer? */ -	    CORBA_exc_set(env, CORBA_SYSTEM_EXCEPTION, NO_RESPONSE,  -			  "Cannot connect to server");  -	    return -1;  -	} -    } else { -	if (ei_send_reg_encoded_tmo(env->_fd, env->_from_pid,  -				env->_regname, env->_outbuf,  -				env->_iout, ms) < 0) { -	    /* XXX Cannot send to peer? */ -	    CORBA_exc_set(env, CORBA_SYSTEM_EXCEPTION, NO_RESPONSE,  -			  "Cannot connect to server");  -	    return -1;  -	} -    } -    return 0; -} - -/* Send notification (gen_server client) */ -int oe_send_notification_tmo(CORBA_Environment *env, unsigned int send_ms) -{ -    return oe_send_tmo(env, send_ms); -} - -/* Send request and receive reply (gen_server client) */ -int oe_send_request_and_receive_reply_tmo(CORBA_Environment *env,  -					  unsigned int send_ms, -					  unsigned int recv_ms) -{ -    int msgType = 0; -    erlang_msg msg; - -    if (oe_send_tmo(env, send_ms) < 0) -	return -1; - -    do {  -	if ((msgType = ei_receive_encoded_tmo(env->_fd, -					      &env->_inbuf,  -					      &env->_inbufsz,  -					      &msg, &env->_iin, -					      recv_ms)) < 0) {  -	    CORBA_exc_set(env, CORBA_SYSTEM_EXCEPTION, MARSHAL, -			  "Cannot decode message");  -	    return -1;  -	} -    } while (msgType != ERL_SEND && msgType != ERL_REG_SEND);  - -    /* Extracting return message header */  -    if (oe_prepare_reply_decoding(env) < 0) { -	CORBA_exc_set(env, CORBA_SYSTEM_EXCEPTION, MARSHAL, "Bad message");  -	return -1; -    } -    return 0; -} - -/* Server receive (possibly) send reply (gen_server server) */ - -int oe_server_receive_tmo(CORBA_Environment *env, oe_map_t *map,  -			  unsigned int send_ms,  -			  unsigned int recv_ms) -{ -    int res = 0, loop = 1; -    erlang_msg msg; - -    while (res >= 0 && loop > 0) { -        res = ei_receive_encoded_tmo(env->_fd, &env->_inbuf, &env->_inbufsz,  -				 &msg, &env->_iin, recv_ms);  -	switch(res) { -	case ERL_SEND: -	case ERL_REG_SEND: -	    oe_exec_switch(NULL, env, map); -	    switch(env->_major) { -	    case CORBA_NO_EXCEPTION: -		break; -	    case CORBA_SYSTEM_EXCEPTION: -		/* XXX stderr */ -		fprintf(stderr, "Request failure, reason : %s\n",  -			(char *) CORBA_exception_value(env)); -		CORBA_exception_free(env); -		break; -	    default: /* Should not happen */ -		CORBA_exception_free(env); -		break; -	    } -	    /* send reply */ -	    /* XXX We are required to set env->_iout = 0 if oneway?? */ -	    if (env->_iout > 0)  -		ei_send_encoded_tmo(env->_fd, &env->_caller, env->_outbuf,  -				env->_iout, send_ms); -	    loop = 0; -	    break; -	case ERL_TICK: -	    break; -	default:  -	    /* XXX */ -	    if (res < 0) { -		fprintf(stderr, "Result negative: %d\n", res); -		loop = 0; -	    } -	    break; -	} -    }	 - -    return 0; -} - | 
