org.omg.FT
Class FTGatewayServerRequestInterceptor

java.lang.Object
  |
  +--org.omg.CORBA.LocalObject
        |
        +--org.omg.FT.FTGatewayServerRequestInterceptor
All Implemented Interfaces:
org.omg.CORBA.portable.IDLEntity, org.omg.PortableInterceptor.Interceptor, org.omg.PortableInterceptor.InterceptorOperations, org.omg.CORBA.Object, java.io.Serializable, org.omg.PortableInterceptor.ServerRequestInterceptor, org.omg.PortableInterceptor.ServerRequestInterceptorOperations

public class FTGatewayServerRequestInterceptor
extends org.omg.CORBA.LocalObject
implements org.omg.PortableInterceptor.ServerRequestInterceptor

Class instantiated when active replication is used and a gateway is needed; this class has the role to intercept incoming requests from clients to be broadcast to active replica group members; also, it intercepts requests received from actively replicated server group members, and for these it has the role to eliminate the duplicates, and to send the answer to all calling replicas

See Also:
Serialized Form

Inner Class Summary
private  class FTGatewayServerRequestInterceptor.DynCallStr
           
private  class FTGatewayServerRequestInterceptor.GetStateThread
          Class instantiated when the state has to be read from one of the replicas of the active group in order to be transfered to a new joining replica
private  class FTGatewayServerRequestInterceptor.GroupLStr
           
private  class FTGatewayServerRequestInterceptor.RIRTargetStr
           
private  class FTGatewayServerRequestInterceptor.RITargetStr
           
private  class FTGatewayServerRequestInterceptor.SendRequestThread
          Class instantiated when a request has to be broadcast to all members of the active group that the gateway intermediates for
private  class FTGatewayServerRequestInterceptor.SynchObj
           
 
Field Summary
(package private)  FTGatewayServerRequestInterceptor.SynchObj ann_come
           
(package private)  java.util.Vector call_log
           
(package private)  FTGatewayServerRequestInterceptor.SynchObj change_wait
           
(package private)  org.omg.IOP.Codec codec
           
(package private)  org.omg.IOP.CodecFactory factory
           
(package private)  java.lang.String ft_dom_name
           
(package private)  int ft_slot
           
(package private)  java.util.Vector group_length_evid
           
(package private)  boolean in_change_membership
           
(package private)  org.omg.PortableInterceptor.ORBInitInfo info
           
(package private)  GatewayForActiveRepl_impl its_gateway
           
(package private)  java.lang.String location
           
(package private)  java.util.Vector m_ch_list
           
(package private)  boolean memb_failed
           
(package private)  java.lang.Object membership_changed
           
(package private)  MethSignStr[] method_table
           
(package private)  FTGatewayServerRequestInterceptor.SynchObj method_wait
           
(package private)  org.omg.CORBA.ORB orb
           
(package private)  java.util.Vector request_evid
           
(package private)  java.util.Vector result_evid
           
(package private)  FTGatewayServerRequestInterceptor.SynchObj send_th_synch
           
(package private)  FTGatewayServerRequestInterceptor.SynchObj stop_new_calls
           
(package private)  java.lang.Object tot_ord_r_i_guard
           
(package private)  int tot_ord_req_id
           
(package private)  FTGatewayServerRequestInterceptor.SynchObj waiting_to_send
           
 
Constructor Summary
FTGatewayServerRequestInterceptor(org.omg.PortableInterceptor.ORBInitInfo inf, int ft_s)
           
 
Method Summary
private  void all_arrived(int retention_id, org.omg.CORBA.Object target)
           
private  boolean all_true(boolean[] table)
           
private  void block_knows_failed()
           
private  void block_until_change_membership()
           
private  void block_until_first_ready(FTGatewayServerRequestInterceptor.SynchObj s_obj)
           
private  org.omg.CORBA.Object[] give_dest(int retention_id, java.lang.String client_id, java.lang.String oper)
           
private  void insert_result_str(int ret_id, org.omg.CORBA.Object target, org.omg.CORBA.Any result, org.omg.Dynamic.Parameter[] call_args, int nr_after_to_del)
           
private  boolean is_first_ready(FTGatewayServerRequestInterceptor.SynchObj s_obj)
           
private  void knows_failed()
           
private  int meth_pos(java.lang.String m_name, MethSignStr[] methods)
           
 java.lang.String name()
           
private  int next_tot_ord_id()
           
private  void notify_end(FTGatewayServerRequestInterceptor.SynchObj s_obj, int n_index)
           
private  void notify_membership_changed()
           
 void receive_request_service_contexts(org.omg.PortableInterceptor.ServerRequestInfo ri)
          Method called from a specific interception point; it has the role to stop the method call "set_method_table" to reach the server object (the gateway)
 void receive_request(org.omg.PortableInterceptor.ServerRequestInfo ri)
          Method called from a specific interception point; it has the role to stop calls from clients to active group memebers to reach the gateway object; instead these are either broadcast to active server group replicas - if they come from the "true" clients, or after duplicate supression they are sent to the sercer for which the active group is a client
private  FTGatewayServerRequestInterceptor.RIRTargetStr result_str_here(int ret_id, org.omg.CORBA.Object target)
           
 void send_exception(org.omg.PortableInterceptor.ServerRequestInfo ri)
          send exception operation
 void send_other(org.omg.PortableInterceptor.ServerRequestInfo ri)
          send other operation
 void send_reply(org.omg.PortableInterceptor.ServerRequestInfo ri)
          Method called from a specific interception point and has the role to perform different actions after some of the method calls performed on the gateway CORBA object (such as push_structured_event, change_membership) return
private  FTGatewayServerRequestInterceptor.SynchObj sent_one(int retention_id, org.omg.CORBA.Object target)
           
private  void set_all_false(boolean[] table)
           
private  void set_not_first_ready(FTGatewayServerRequestInterceptor.SynchObj s_obj)
           
private  void simulate_stub(org.omg.CORBA.portable.ObjectImpl target, int ret_id, java.lang.String client_id, long expiration_time, java.lang.String oper, org.omg.Dynamic.Parameter[] arguments, org.omg.CORBA.TypeCode[] exceptions, boolean resp_exp, org.omg.CORBA.Any result)
           
 
Methods inherited from class org.omg.CORBA.LocalObject
_create_request, _create_request, _duplicate, _get_domain_managers, _get_interface_def, _get_interface, _get_policy, _hash, _invoke, _is_a, _is_equivalent, _is_local, _non_existent, _orb, _release, _releaseReply, _request, _request, _servant_postinvoke, _servant_preinvoke, _set_policy_override, validate_connection
 
Methods inherited from class java.lang.Object
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, toString, wait, wait, wait
 
Methods inherited from interface org.omg.CORBA.Object
_create_request, _create_request, _duplicate, _get_domain_managers, _get_interface_def, _get_policy, _hash, _is_a, _is_equivalent, _non_existent, _release, _request, _set_policy_override
 

Field Detail

info

org.omg.PortableInterceptor.ORBInitInfo info

ft_slot

int ft_slot

location

java.lang.String location

orb

org.omg.CORBA.ORB orb

ft_dom_name

java.lang.String ft_dom_name

send_th_synch

FTGatewayServerRequestInterceptor.SynchObj send_th_synch

stop_new_calls

FTGatewayServerRequestInterceptor.SynchObj stop_new_calls

ann_come

FTGatewayServerRequestInterceptor.SynchObj ann_come

waiting_to_send

FTGatewayServerRequestInterceptor.SynchObj waiting_to_send

method_wait

FTGatewayServerRequestInterceptor.SynchObj method_wait

change_wait

FTGatewayServerRequestInterceptor.SynchObj change_wait

memb_failed

boolean memb_failed

in_change_membership

boolean in_change_membership

request_evid

java.util.Vector request_evid

result_evid

java.util.Vector result_evid

call_log

java.util.Vector call_log

group_length_evid

java.util.Vector group_length_evid

m_ch_list

java.util.Vector m_ch_list

its_gateway

GatewayForActiveRepl_impl its_gateway

membership_changed

java.lang.Object membership_changed

tot_ord_r_i_guard

java.lang.Object tot_ord_r_i_guard

tot_ord_req_id

int tot_ord_req_id

method_table

MethSignStr[] method_table

factory

org.omg.IOP.CodecFactory factory

codec

org.omg.IOP.Codec codec
Constructor Detail

FTGatewayServerRequestInterceptor

public FTGatewayServerRequestInterceptor(org.omg.PortableInterceptor.ORBInitInfo inf,
                                         int ft_s)
Method Detail

next_tot_ord_id

private int next_tot_ord_id()

all_true

private boolean all_true(boolean[] table)

set_all_false

private void set_all_false(boolean[] table)

notify_end

private void notify_end(FTGatewayServerRequestInterceptor.SynchObj s_obj,
                        int n_index)

block_until_first_ready

private void block_until_first_ready(FTGatewayServerRequestInterceptor.SynchObj s_obj)

is_first_ready

private boolean is_first_ready(FTGatewayServerRequestInterceptor.SynchObj s_obj)

set_not_first_ready

private void set_not_first_ready(FTGatewayServerRequestInterceptor.SynchObj s_obj)

block_knows_failed

private void block_knows_failed()

knows_failed

private void knows_failed()

block_until_change_membership

private void block_until_change_membership()

notify_membership_changed

private void notify_membership_changed()

give_dest

private org.omg.CORBA.Object[] give_dest(int retention_id,
                                         java.lang.String client_id,
                                         java.lang.String oper)

meth_pos

private int meth_pos(java.lang.String m_name,
                     MethSignStr[] methods)

sent_one

private FTGatewayServerRequestInterceptor.SynchObj sent_one(int retention_id,
                                                            org.omg.CORBA.Object target)

all_arrived

private void all_arrived(int retention_id,
                         org.omg.CORBA.Object target)

result_str_here

private FTGatewayServerRequestInterceptor.RIRTargetStr result_str_here(int ret_id,
                                                                       org.omg.CORBA.Object target)

insert_result_str

private void insert_result_str(int ret_id,
                               org.omg.CORBA.Object target,
                               org.omg.CORBA.Any result,
                               org.omg.Dynamic.Parameter[] call_args,
                               int nr_after_to_del)

simulate_stub

private void simulate_stub(org.omg.CORBA.portable.ObjectImpl target,
                           int ret_id,
                           java.lang.String client_id,
                           long expiration_time,
                           java.lang.String oper,
                           org.omg.Dynamic.Parameter[] arguments,
                           org.omg.CORBA.TypeCode[] exceptions,
                           boolean resp_exp,
                           org.omg.CORBA.Any result)
                    throws org.omg.CORBA.portable.ApplicationException

receive_request_service_contexts

public void receive_request_service_contexts(org.omg.PortableInterceptor.ServerRequestInfo ri)
                                      throws org.omg.PortableInterceptor.ForwardRequest
Method called from a specific interception point; it has the role to stop the method call "set_method_table" to reach the server object (the gateway)
Specified by:
receive_request_service_contexts in interface org.omg.PortableInterceptor.ServerRequestInterceptorOperations
Parameters:
ri - server request information

receive_request

public void receive_request(org.omg.PortableInterceptor.ServerRequestInfo ri)
                     throws org.omg.PortableInterceptor.ForwardRequest
Method called from a specific interception point; it has the role to stop calls from clients to active group memebers to reach the gateway object; instead these are either broadcast to active server group replicas - if they come from the "true" clients, or after duplicate supression they are sent to the sercer for which the active group is a client
Specified by:
receive_request in interface org.omg.PortableInterceptor.ServerRequestInterceptorOperations
Parameters:
ri - the server request information

send_reply

public void send_reply(org.omg.PortableInterceptor.ServerRequestInfo ri)
Method called from a specific interception point and has the role to perform different actions after some of the method calls performed on the gateway CORBA object (such as push_structured_event, change_membership) return
Specified by:
send_reply in interface org.omg.PortableInterceptor.ServerRequestInterceptorOperations
Parameters:
ri - the server request information

send_exception

public void send_exception(org.omg.PortableInterceptor.ServerRequestInfo ri)
                    throws org.omg.PortableInterceptor.ForwardRequest
send exception operation
Specified by:
send_exception in interface org.omg.PortableInterceptor.ServerRequestInterceptorOperations

send_other

public void send_other(org.omg.PortableInterceptor.ServerRequestInfo ri)
                throws org.omg.PortableInterceptor.ForwardRequest
send other operation
Specified by:
send_other in interface org.omg.PortableInterceptor.ServerRequestInterceptorOperations

name

public java.lang.String name()
Specified by:
name in interface org.omg.PortableInterceptor.InterceptorOperations