|
package com.ai.server.push.route.impl;
import com.ai.ipu.basic.log.ILogger;
import com.ai.ipu.basic.log.IpuLoggerFactory;
import com.ai.ipu.server.cache.intf.ICache;
import com.ai.server.push.cache.BizDataCacheManager;
import com.ai.server.push.cache.PushRouteCacheManager;
import com.ai.server.push.route.IRouteManager;
import com.ai.server.push.route.Route;
public class DefaultRouteManager implements IRouteManager {
transient protected static final ILogger log = IpuLoggerFactory.createLogger(DefaultRouteManager.class);
@Override
public void addRoute(String account, Route route) throws Exception {
PushRouteCacheManager.putRoute(account, route);
BizDataCacheManager.addAccountToPushServerAccountsId(account, route.getServerId());
}
@Override
public Route getRoute(String account) throws Exception {
return PushRouteCacheManager.getRoute(account);
}
@Override
public ICache getRoutes() throws Exception {
return PushRouteCacheManager.getPushRouteCache();
}
@Override
public void removeRoute(Route route) throws Exception {
removeRoute(route.getAccount());
}
@Override
public void removeRoute(String account) throws Exception {
Route route = PushRouteCacheManager.getRoute(account);
if (null == route) {
log.debug("Not found this designated account of the Route.");
return;
}
BizDataCacheManager.decreasePushServerAccountsSize(route.getServerId());
PushRouteCacheManager.removeRoute(account);
}
@Override
public boolean containsRoute(Route route) throws Exception {
if (null != PushRouteCacheManager.getPushRouteCache().get(route.getAccount())) {
return true;
}
return false;
}
}
|