亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? crfpserver.java

?? openmap java寫的開源數字地圖程序. 用applet實現,可以像google map 那樣放大縮小地圖.
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
    }    /**     * Retrieve the subframe data from the frame cache, decompress it,     * and convert it to a JPEG image.     *      * @param tocNumber the number of the RpfTocHandler for the     *        currentCache to use.     * @param entryNumber the coverage box index that contains the     *        subframe.     * @param x the horizontal location of the subframe. The     *        RpfCacheHandler figures this out.     * @param y the vertical location of the subframe. The     *        RpfCacheHandler figures this out.     * @param jpegQuality the compression parameter for the image.     * @param uniqueID a client-unique identifier.     * @return byte[] of jpeg image     */    public byte[] getSubframeData(short tocNumber, short entryNumber, short x,                                  short y, float jpegQuality, String uniqueID) {        Debug.message("crfpdetail",                "CRFPServer: handling subframe request for client");        try {            currentCache = getCurrentCache(uniqueID);            int[] pixels = currentCache.getSubframeData((int) tocNumber,                    (int) entryNumber,                    (int) x,                    (int) y);            if (pixels != null) {                byte[] compressed = null;                try {                    compressed = JPEGHelper.encodeJPEG(RpfSubframe.PIXEL_EDGE_SIZE,                            RpfSubframe.PIXEL_EDGE_SIZE,                            pixels,                            jpegQuality);                } catch (Exception e) {                    Debug.error("CRFPServer: JPEG Compression error: " + e);                    compressed = new byte[0];                }                if (Debug.debugging("crfpdetail")) {                    Debug.output("CRFPServer: subframe is " + compressed.length                            + " bytes");                }                return compressed;            }        } catch (OutOfMemoryError oome) {            handleMemoryShortage();        }        return new byte[0];    }    public RawImage getRawSubframeData(short tocNumber, short entryNumber,                                       short x, short y, String uniqueID) {        Debug.message("crfpdetail",                "CRFPServer: handling raw subframe request for client");        RawImage ri = new RawImage();        RpfIndexedImageData riid = null;        try {            currentCache = getCurrentCache(uniqueID);            riid = currentCache.getRawSubframeData((int) tocNumber,                    (int) entryNumber,                    (int) x,                    (int) y);        } catch (OutOfMemoryError oome) {            handleMemoryShortage();            riid = null;        }        if (riid == null || riid.imageData == null) {            Debug.message("crfpdetail", "CRFPServer: null image data");            ri.imagedata = new byte[0];            ri.colortable = new int[0];        } else {            ri.imagedata = riid.imageData;            RpfColortable colortable = currentCache.getColortable();            ri.colortable = new int[colortable.colors.length];            for (int i = 0; i < colortable.colors.length; i++) {                ri.colortable[i] = colortable.colors[i].getRGB();            }            Debug.message("crfpdetail", "CRFPServer: GOOD image data");        }        return ri;    }    /**     * Get the subframe attributes for the identified subframe.     * Provided as a single string, with newline characters separating     * features.     *      * @param tocNumber the number of the RpfTocHandler for the     *        currentCache to use.     * @param entryNumber the coverage box index that contains the     *        subframe.     * @param x the horizontal location of the subframe. The     *        RpfCacheHandler figures this out.     * @param y the vertical location of the subframe. The     *        RpfCacheHandler figures this out.     * @param uniqueID a client-unique identifier.     * @return String with the subframe attributes.     */    public String getSubframeAttributes(short tocNumber, short entryNumber,                                        short x, short y, String uniqueID) {        Debug.message("crfpdetail",                "CRFPServer: handling subframe attribute request for client");        try {            currentCache = getCurrentCache(uniqueID);            return currentCache.getSubframeAttributes((int) tocNumber,                    (int) entryNumber,                    (int) x,                    (int) y);        } catch (OutOfMemoryError oome) {            handleMemoryShortage();        }        return new String();    }    /**     * The signoff function lets the server know that a client is     * checking out.     *      * @param uniqueID a client-unique identifier.     */    public void signoff(String uniqueID) {        Debug.message("crfp", "CRFPServer: Client" + uniqueID + " signing off!");        caches.remove(uniqueID);        viewAttributeLists.remove(uniqueID);        timestamps.remove(uniqueID);    }    protected void handleMemoryShortage() {        Debug.error("CRFPServer out of memory! Dumping all caches!");        caches.clear();        viewAttributeLists.clear();        timestamps.clear();    }    /**     * Start the server.     *      * @param args command line arguments.     */    public void start(String[] args) {        CORBASupport cs = new CORBASupport();        if (args != null) {            parseArgs(args);        }        cs.start(this, args, iorfile, naming);    }    /**     * Set the maximum number of caches to given number, represented     * in a string. If the string isn't a good number,     * DEFAULT_MAX_USERS will be used.     */    public void setMaxUsers(String number) {        try {            setMaxUsers(Integer.parseInt(number));        } catch (NumberFormatException nfe) {            setMaxUsers(DEFAULT_MAX_USERS);        }    }    /**     * Set the maximum number of caches to given number. If the number     * isn't a good, DEFAULT_MAX_USERS will be used.     */    public void setMaxUsers(int number) {        if (number >= 1) {            maxUsers = number;        } else {            Debug.output("Max users of " + number + " not supported, set to "                    + DEFAULT_MAX_USERS);            maxUsers = DEFAULT_MAX_USERS;        }    }    /**     * Get the maximum number of caches allowed in the server. One per     * user. Get it?     */    public int getMaxUsers() {        return maxUsers;    }    /**     * Set how long a user's cache will be kept around.     */    public void setTimeWindow(String number) {        try {            setTimeWindow(Long.parseLong(number));        } catch (NumberFormatException nfe) {            setTimeWindow(DEFAULT_TIME_WINDOW);        }    }    /**     * Set how long a user's cache will be kept around.     */    public void setTimeWindow(long number) {        if (timer == null) {            timer = new javax.swing.Timer((int) number, (ActionListener) this);        }        if (number >= 1) {            timeWindow = number;            Debug.output("Timer enabled,  set to " + (number / 1000)                    + " seconds");        } else if (number == 0) {            // stop timer            timer.stop();            return;        } else {            timeWindow = DEFAULT_TIME_WINDOW;            Debug.output("Timer enabled,  set to "                    + (DEFAULT_TIME_WINDOW / 1000) + " seconds");        }        timer.start();    }    /**     * The the time window for how long users caches are kept around.     */    public long getTimeWindow() {        return timeWindow;    }    /**     * Handle an ActionEvent from the Timer.     *      * @param ae action event from the timer.     */    public void actionPerformed(java.awt.event.ActionEvent ae) {        if (Debug.debugging("crfp")) {            Debug.output("Ping! checking cache...");        }        cleanCache(getTimeWindow());    }    /**     */    public void parseArgs(String[] args) {        rpfpaths = null;        try {            for (int i = 0; i < args.length; i++) {                if (args[i].equalsIgnoreCase("-ior")) {                    iorfile = args[++i];                } else if (args[i].equalsIgnoreCase("-name")) {                    naming = args[++i];                } else if (args[i].equalsIgnoreCase("-help")) {                    printHelp();                } else if (args[i].equalsIgnoreCase("-rpfpaths")) {                    rpfpaths = getPaths(args[++i]);                } else if (args[i].equalsIgnoreCase("-maxusers")) {                    setMaxUsers(args[++i]);                } else if (args[i].equalsIgnoreCase("-timewindow")) {                    setTimeWindow(args[++i]);                } else if (args[i].equalsIgnoreCase("-verbose")) {                    Debug.put("crfp");                } else if (args[i].equalsIgnoreCase("-h")) {                    printHelp();                }            }        } catch (ArrayIndexOutOfBoundsException aioobe) {            printHelp();        }        // if you didn't specify an iorfile        if (iorfile == null && naming == null) {            Debug.error("CRFPServer: IOR file and name service name are null!  Use `-ior' or '-name' flag!");            System.exit(-1);        }        if (rpfpaths == null) {            Debug.error("CRFPServer: No RPF directory paths specified!  Use `-rpfpaths' flag!");            System.exit(-1);        } else {            tocs = RpfFrameCacheHandler.createTocHandlers(rpfpaths);            Debug.output("CRFPServer: CRFPServer!  Running with paths => ");            for (int j = 0; j < rpfpaths.length; j++) {                Debug.output("     " + rpfpaths[j]);            }        }    }    private String[] getPaths(String str) {        StringTokenizer tok = new StringTokenizer(str, ";");        int len = tok.countTokens();        String[] paths = new String[len];        for (int j = 0; j < len; j++) {            paths[j] = tok.nextToken();        }        return paths;    }    /**     * <b>printHelp </b> should print a usage statement which reflects     * the command line needs of your specialist.     */    public void printHelp() {        Debug.output("usage: java CRFPServer [-ior <file> || -name <NAME>] -rpfpaths \"<path to rpf dir>;<path to rpf dir>;<...>\" -maxusers <max number of users to cache> -timewindow <milliseconds for idle cache removal>");        System.exit(1);    }    public static void main(String[] args) {        Debug.init(System.getProperties());        // Create the specialist server        CRFPServer srv = new CRFPServer("CRFPServer");        srv.start(args);    }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲二区视频在线| 亚洲精品国产精品乱码不99 | 久久亚洲一区二区三区四区| 欧美日韩一区二区三区视频| 欧美影院一区二区| 欧美性色黄大片| 91麻豆精品国产自产在线观看一区| 欧美高清精品3d| 日韩一级高清毛片| 精品久久免费看| 久久久高清一区二区三区| 中日韩av电影| 亚洲成人av免费| 精品在线免费视频| 懂色av一区二区三区免费看| av在线一区二区| 欧美日韩亚洲综合一区| 欧美mv日韩mv亚洲| 1000精品久久久久久久久| 亚洲成av人影院| 国产一区二区三区国产| 91免费精品国自产拍在线不卡| 欧美体内she精高潮| 精品日韩99亚洲| 中文字幕色av一区二区三区| 亚洲va欧美va人人爽午夜| 六月丁香综合在线视频| av动漫一区二区| 91精品国产综合久久蜜臀| 久久亚洲二区三区| 午夜一区二区三区在线观看| 国产精品69毛片高清亚洲| 色综合久久综合网| 日韩欧美一二三四区| 国产日韩欧美综合一区| 午夜视频一区二区| 波多野结衣精品在线| 欧美精品三级在线观看| 国产欧美一区二区精品久导航 | 精品福利av导航| 中文字幕不卡的av| 蜜桃av噜噜一区| 91丨porny丨中文| 精品剧情v国产在线观看在线| 亚洲欧美日韩系列| 国内精品嫩模私拍在线| 欧美日韩高清在线播放| 中文字幕亚洲在| 国产精品一区免费在线观看| 欧美体内she精高潮| 中文字幕一区二区三中文字幕| 日韩影院精彩在线| 欧洲精品中文字幕| 国产精品乱子久久久久| 国产在线看一区| 欧美一区二区三区日韩| 亚洲在线观看免费| 一本在线高清不卡dvd| 国产网站一区二区| 精品一区二区三区av| 91精品欧美久久久久久动漫| 亚洲成av人片在www色猫咪| 一本一道波多野结衣一区二区| 欧美国产一区二区在线观看| 国产在线精品免费| 久久午夜电影网| 韩国女主播一区二区三区| 日韩一区二区精品在线观看| 日韩专区一卡二卡| 欧美精品国产精品| 日日摸夜夜添夜夜添精品视频| 91行情网站电视在线观看高清版| 伊人一区二区三区| 91视频xxxx| 亚洲大片一区二区三区| 欧美日本免费一区二区三区| 日一区二区三区| 91精品国产高清一区二区三区蜜臀| 亚洲国产精品麻豆| 日韩欧美在线综合网| 久久精品国产精品青草| 欧美成人video| 国产精品1024| 亚洲精品视频在线观看网站| 欧美视频在线一区二区三区| 无码av免费一区二区三区试看 | 韩国成人福利片在线播放| 久久久午夜精品| 成人福利视频在线| 亚洲综合色在线| 日韩三级精品电影久久久 | 亚洲va中文字幕| 欧美一区二区视频网站| 韩国午夜理伦三级不卡影院| 国产女人18毛片水真多成人如厕 | 精品国产麻豆免费人成网站| 狠狠久久亚洲欧美| 中文字幕在线播放不卡一区| 欧美三级蜜桃2在线观看| 久久99精品国产.久久久久久| 久久精品视频免费| 欧美在线免费观看视频| 麻豆91在线播放免费| 久久久精品国产99久久精品芒果| 99v久久综合狠狠综合久久| 亚洲综合激情小说| 久久综合网色—综合色88| 91亚洲大成网污www| 蜜臀国产一区二区三区在线播放 | 欧美成人伊人久久综合网| 风间由美中文字幕在线看视频国产欧美| 亚洲日韩欧美一区二区在线| 日韩视频永久免费| 色美美综合视频| 国产精品 欧美精品| 日韩国产精品大片| 国产精品蜜臀av| 日韩欧美在线不卡| 色综合天天综合狠狠| 久久99精品网久久| 亚洲成在人线免费| 亚洲天堂网中文字| 久久精品视频网| 9191成人精品久久| 色哟哟精品一区| 国产专区欧美精品| 日本在线不卡视频| 亚洲精品国产第一综合99久久 | 天堂影院一区二区| 中文字幕一区二区三区不卡| 精品国产3级a| 日韩视频免费观看高清完整版| 91久久精品日日躁夜夜躁欧美| 高清在线成人网| 激情偷乱视频一区二区三区| 婷婷国产v国产偷v亚洲高清| 一区二区三区四区精品在线视频| 欧美国产在线观看| 欧美高清在线一区二区| 亚洲精品一区二区三区99| 欧美一级黄色大片| 欧美久久一二区| 欧美精品vⅰdeose4hd| 欧美日韩国产影片| 欧美午夜电影在线播放| 欧美亚洲高清一区二区三区不卡| 99精品久久免费看蜜臀剧情介绍| www.在线欧美| 91亚洲永久精品| 91亚洲永久精品| 欧美专区日韩专区| 欧美日韩午夜影院| 欧美一区二区三区视频免费播放 | 91欧美激情一区二区三区成人| 91片黄在线观看| 欧美专区亚洲专区| 欧美日韩三级在线| 欧美一区欧美二区| 精品国产精品网麻豆系列| 久久先锋资源网| 中文成人综合网| 亚洲男同性视频| 亚洲18色成人| 丝袜亚洲精品中文字幕一区| 午夜精品免费在线| 久久精品久久99精品久久| 国产精品一卡二| 99精品欧美一区二区三区小说| 色成年激情久久综合| 欧美三级中文字幕| 日韩欧美不卡一区| 日本一区二区三区在线不卡| 国产精品久久久久精k8| 一区二区日韩av| 久久精品国产亚洲一区二区三区| 国产精品性做久久久久久| 色哟哟国产精品| 欧美一区二区大片| 国产精品毛片大码女人| 亚洲成人资源网| 国产一区二区精品久久99 | 日韩av在线发布| 国内精品视频一区二区三区八戒| 不卡的av电影在线观看| 色视频成人在线观看免| 精品三级在线看| 中文字幕日韩一区二区| 日本不卡中文字幕| 成人污视频在线观看| 欧美三级电影在线看| 国产午夜精品一区二区三区视频| 亚洲免费看黄网站| 精品一区二区日韩| 欧美午夜精品久久久久久超碰 | 一区av在线播放| 国产精品99久久久| 欧美日本一区二区| 1000部国产精品成人观看| 色婷婷综合久久久久中文| 免费xxxx性欧美18vr|