net.npe.gwt.xhr.client.ArrayBufferRequest.java Source code

Java tutorial

Introduction

Here is the source code for net.npe.gwt.xhr.client.ArrayBufferRequest.java

Source

/*
 * ArrayBufferRequest.java
 * 
 * Copyright (c) 2015 Kenji Sasaki
 * Released under the MIT license.
 * https://github.com/npedotnet/NPESDK_GWT/blob/master/LICENSE
 * 
 * English document
 * https://github.com/npedotnet/NPESDK_GWT/blob/master/README.md
 * 
 * Japanese document
 * http://3dtech.jp/wiki/index.php?NPESDK_GWT
 * 
 */

package net.npe.gwt.xhr.client;

import com.google.gwt.typedarrays.shared.ArrayBuffer;
import com.google.gwt.xhr.client.ReadyStateChangeHandler;
import com.google.gwt.xhr.client.XMLHttpRequest;
import com.google.gwt.xhr.client.XMLHttpRequest.ResponseType;

public class ArrayBufferRequest {

    public interface Handler {
        void onSuccess(ArrayBuffer arrayBuffer);

        void onFailure();
    }

    public ArrayBufferRequest(String url, final Handler handler) {
        xhr = XMLHttpRequest.create();
        xhr.setResponseType(ResponseType.ArrayBuffer);
        xhr.setOnReadyStateChange(new ReadyStateChangeHandler() {
            @Override
            public void onReadyStateChange(XMLHttpRequest xhr) {
                if (xhr.getReadyState() == XMLHttpRequest.DONE) {
                    if (xhr.getStatus() >= 400) {
                        if (handler != null)
                            handler.onFailure();
                    } else {
                        if (handler != null)
                            handler.onSuccess(xhr.getResponseArrayBuffer());
                    }
                }
            }
        });
        xhr.open("GET", url);
    }

    public void send() {
        xhr.send();
    }

    private XMLHttpRequest xhr;

}