@ObjectiveCName("request:utilSingleNotifierCallback:") public void request(String name,UtilSingleNotifierCallback utilSingleNotifierCallback){
  ArrayList<UtilSingleNotifierCallback> callbacks=requests.get(name);
  if (callbacks == null) {
synchronized (this) {
      callbacks=new ArrayList<>();
      requests.put(name,callbacks);
      send(name);
    }
  }
  callbacks.add(utilSingleNotifierCallback);
  ackTimeoutRegistry.add(topic,action,name,Event.RESPONSE_TIMEOUT,this,timeoutDuration);
}

@ ObjectiveCName ( "request:utilSingleNotifierCallback:" ) public void request ( String name , UtilSingleNotifierCallback utilSingleNotifierCallback ) { ArrayList < UtilSingleNotifierCallback > callbacks = requests . get ( name ) ; if ( callbacks == null ) { synchronized ( this ) { callbacks = new ArrayList < > ( ) ; requests . put ( name , callbacks ) ; send ( name ) ; } } callbacks . add ( utilSingleNotifierCallback ) ; ackTimeoutRegistry . add ( topic , action , name , Event . RESPONSE_TIMEOUT , this , timeoutDuration ) ; }
add a request . if one has already been made it will skip the server request and multiplex the response
