Esempio n. 1
0
 protected bool precall(string service_md5sum)
 {
     if (service_md5sum != md5sum)
     {
         EDB.WriteLine("Call to service [{0} with md5sum [{1} does not match md5sum when the handle was created([{2}])", service, service_md5sum, md5sum);
         return(false);
     }
     if (server_link != null && server_link.connection.dropped)
     {
         if (persistent)
         {
             EDB.WriteLine("WARNING: persistent service client's server link has been dropped. trying to reconnect to proceed with this call");
         }
         server_link = null;
     }
     if (is_shutdown && persistent)
     {
         EDB.WriteLine("WARNING: persistent service client is self-resurrecting");
     }
     is_shutdown = false;
     if (persistent && server_link == null || !persistent)
     {
         server_link = linkmaker();
     }
     return(true);
 }
Esempio n. 2
0
 public void shutdown()
 {
     if (!is_shutdown)
     {
         is_shutdown = true;
         if (!persistent && server_link != null)
         {
             ServiceManager.Instance.removeServiceServerLink(server_link);
             server_link = null;
         }
     }
 }
Esempio n. 3
0
 internal void removeServiceServerLink(IServiceServerLink issl)
 {
     if (shutting_down)
     {
         return;
     }
     lock (service_server_links_mutex)
     {
         if (service_server_links.Contains(issl))
         {
             service_server_links.Remove(issl);
         }
     }
 }