Package org.snova.framework.proxy.c4

Source Code of org.snova.framework.proxy.c4.C4$C4RemoteProxyManager

/**
*
*/
package org.snova.framework.proxy.c4;

import java.util.Map;

import org.arch.util.ListSelector;
import org.arch.util.NetworkHelper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.snova.framework.event.UserLoginEvent;
import org.snova.framework.proxy.RemoteProxyHandler;
import org.snova.framework.proxy.RemoteProxyManager;
import org.snova.framework.proxy.RemoteProxyManagerHolder;
import org.snova.framework.proxy.gae.GAERemoteHandler;

/**
* @author qiyingwang
*
*/
public class C4
{
  protected static Logger            logger  = LoggerFactory
                                                      .getLogger(C4.class);
  public static boolean            enable;
  static ListSelector<C4ServerAuth>  servers  = new ListSelector<C4ServerAuth>();
 
  public static class C4RemoteProxyManager implements RemoteProxyManager
  {
    @Override
    public String getName()
    {
      return "C4";
    }
   
    @Override
    public RemoteProxyHandler createProxyHandler(Map<String, String> attr)
    {
      if (attr.containsKey("App"))
      {
        String appid = attr.get("App");
        for (int i = 0; i < servers.size(); i++)
        {
          if (servers.get(i).url.getHost().contains(appid))
          {
            return new C4RemoteHandler(servers.get(i));
          }
        }
      }
      C4RemoteHandler handler= new C4RemoteHandler(servers.select());
      handler.injectRange = attr.containsKey("Range");
      return handler;
    }
  }
 
  public static boolean init()
  {
    if (!C4Config.init())
    {
      return false;
    }
    if (C4Config.appids.isEmpty())
    {
      return false;
    }
    logger.info("C4 init.");
    for (C4ServerAuth server : C4Config.appids)
    {
      UserLoginEvent ev = new UserLoginEvent();
      ev.user = NetworkHelper.getMacAddress();
      new C4RemoteHandler(server).requestEvent(ev);
      servers.add(server);
    }
   
    RemoteProxyManagerHolder
            .registerRemoteProxyManager(new C4RemoteProxyManager());
    enable = true;
    return true;
  }
}
TOP

Related Classes of org.snova.framework.proxy.c4.C4$C4RemoteProxyManager

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.