001package gu.dtalk.redis;
002
003import java.net.URI;
004import java.net.UnknownHostException;
005import net.gdface.utils.JcifsUtil;
006
007/**
008 * 局域网配置
009 * @author guyadong
010 *
011 */
012public class DefaultLocalRedisConfigProvider implements RedisConfigProvider {
013        private static String landtalkhost = "landtalkhost";
014        
015        private volatile String host;
016        /**
017         * 返回局域网redis主机名
018         * @return landtalkhost
019         */
020        public static String getLandtalkhost() {
021                return landtalkhost;
022        }
023
024        /**
025         * 初始化局域网redis主机名,默认值为'landtalkhost'
026         * @param landtalkhost 要设置的 landtalkhost
027         */
028        public static void initLandtalkhost(String landtalkhost) {
029                DefaultLocalRedisConfigProvider.landtalkhost = landtalkhost;
030        }
031
032        @Override
033        public String getHost() {
034                if(host == null){
035                        synchronized (DefaultLocalRedisConfigProvider.class) {
036                                if(host == null){
037                                                // 如果是主机名则解析为IP地址 
038                                                try {
039                                                        host = JcifsUtil.hostAddressOf(landtalkhost);
040                                                } catch (UnknownHostException e) {
041                                                        host = landtalkhost;
042                                                }               
043                                }
044                        }
045                }
046                return host;
047        }
048
049        @Override
050        public void setHost(String host) {
051        }
052
053        @Override
054        public int getPort() {
055                return 0;
056        }
057
058        @Override
059        public void setPort(int port) {
060
061        }
062
063        @Override
064        public String getPassword() {
065                return null;
066        }
067
068        @Override
069        public void setPassword(String password) {
070
071        }
072
073        @Override
074        public int getDatabase() {
075                return 0;
076        }
077
078        @Override
079        public void setDatabase(int database) {
080
081        }
082
083        @Override
084        public int getTimeout() {
085                return 0;
086        }
087
088        @Override
089        public void setTimeout(int timeout) {
090
091        }
092
093        public URI getURI() {
094                return null;
095        }
096
097        public void setURI(URI uri) {
098        }
099
100        @Override
101        public final RedisConfigType type() {
102                return RedisConfigType.LAN;
103        }
104
105}