view JavaSDK/be/uclouvain/orthanc/RestOutput.java @ 34:bb51eb757154 OrthancJava-1.0

OrthancJava-1.0
author Sebastien Jodogne <s.jodogne@gmail.com>
date Fri, 14 Jun 2024 15:01:33 +0200
parents 15dc698243ac
children
line wrap: on
line source

package be.uclouvain.orthanc;

/**
 * SPDX-FileCopyrightText: 2023-2024 Sebastien Jodogne, UCLouvain, Belgium
 * SPDX-License-Identifier: GPL-3.0-or-later
 */

/**
 * Java plugin for Orthanc
 * Copyright (C) 2023-2024 Sebastien Jodogne, UCLouvain, Belgium
 *
 * This program is free software: you can redistribute it and/or
 * modify it under the terms of the GNU General Public License as
 * published by the Free Software Foundation, either version 3 of the
 * License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful, but
 * WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 * General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program. If not, see http://www.gnu.org/licenses/.
 **/


// WARNING: Auto-generated file. Do not modify it by hand.

/**
 * Output for a call to the REST API of Orthanc
 **/
public class RestOutput {
    private long self;

    /**
     * Construct a Java object wrapping a C object that is managed by Orthanc.
     * @param self Pointer to the C object.
     **/
    protected RestOutput(long self) {
        if (self == 0) {
            throw new IllegalArgumentException("Null pointer");
        } else {
            this.self = self;
        }
    }

    /**
     * Return the C object that is associated with this Java wrapper.
     * @return Pointer to the C object.
     **/
    protected long getSelf() {
        return self;
    }



    /**
     * Answer to a REST request.
     * 
     * This function answers to a REST request with the content of a memory buffer.
     * 
     * @param answer Pointer to the memory buffer containing the answer.
     * @param mimeType The MIME type of the answer.
     **/
    public void answerBuffer(
        byte[] answer,
        String mimeType) {
        NativeSDK.OrthancPluginAnswerBuffer(self, answer, mimeType);
    }

    /**
     * Answer to a REST request with a PNG image.
     * 
     * This function answers to a REST request with a PNG image. The parameters of this
     * function describe a memory buffer that contains an uncompressed image. The image
     * will be automatically compressed as a PNG image by the core system of Orthanc.
     * 
     * @param format The memory layout of the uncompressed image.
     * @param width The width of the image.
     * @param height The height of the image.
     * @param pitch The pitch of the image (i.e. the number of bytes between 2
     * successive lines of the image in the memory buffer).
     * @param buffer The memory buffer containing the uncompressed image.
     **/
    public void compressAndAnswerPngImage(
        PixelFormat format,
        int width,
        int height,
        int pitch,
        byte[] buffer) {
        NativeSDK.OrthancPluginCompressAndAnswerPngImage(self, format.getValue(), width, height, pitch, buffer);
    }

    /**
     * Redirect a REST request.
     * 
     * This function answers to a REST request by redirecting the user to another URI
     * using HTTP status 301.
     * 
     * @param redirection Where to redirect.
     **/
    public void redirect(
        String redirection) {
        NativeSDK.OrthancPluginRedirect(self, redirection);
    }

    /**
     * Send a HTTP status code.
     * 
     * This function answers to a REST request by sending a HTTP status code (such as
     * "400 - Bad Request"). Note that: - Successful requests (status 200) must use
     * ::OrthancPluginAnswerBuffer(). - Redirections (status 301) must use
     * ::OrthancPluginRedirect(). - Unauthorized access (status 401) must use
     * ::OrthancPluginSendUnauthorized(). - Methods not allowed (status 405) must use
     * ::OrthancPluginSendMethodNotAllowed().
     * 
     * @param status The HTTP status code to be sent.
     **/
    public void sendHttpStatusCode(
        short status) {
        NativeSDK.OrthancPluginSendHttpStatusCode(self, status);
    }

    /**
     * Signal that a REST request is not authorized.
     * 
     * This function answers to a REST request by signaling that it is not authorized.
     * 
     * @param realm The realm for the authorization process.
     **/
    public void sendUnauthorized(
        String realm) {
        NativeSDK.OrthancPluginSendUnauthorized(self, realm);
    }

    /**
     * Signal that this URI does not support this HTTP method.
     * 
     * This function answers to a REST request by signaling that the queried URI does
     * not support this method.
     * 
     * @param allowedMethods The allowed methods for this URI (e.g. "GET,POST" after a
     * PUT or a POST request).
     **/
    public void sendMethodNotAllowed(
        String allowedMethods) {
        NativeSDK.OrthancPluginSendMethodNotAllowed(self, allowedMethods);
    }

    /**
     * Set a cookie.
     * 
     * This function sets a cookie in the HTTP client.
     * 
     * @param cookie The cookie to be set.
     * @param value The value of the cookie.
     **/
    public void setCookie(
        String cookie,
        String value) {
        NativeSDK.OrthancPluginSetCookie(self, cookie, value);
    }

    /**
     * Set some HTTP header.
     * 
     * This function sets a HTTP header in the HTTP answer.
     * 
     * @param key The HTTP header to be set.
     * @param value The value of the HTTP header.
     **/
    public void setHttpHeader(
        String key,
        String value) {
        NativeSDK.OrthancPluginSetHttpHeader(self, key, value);
    }

    /**
     * Start an HTTP multipart answer.
     * 
     * Initiates a HTTP multipart answer, as the result of a REST request.
     * 
     * @param subType The sub-type of the multipart answer ("mixed" or "related").
     * @param contentType The MIME type of the items in the multipart answer.
     **/
    public void startMultipartAnswer(
        String subType,
        String contentType) {
        NativeSDK.OrthancPluginStartMultipartAnswer(self, subType, contentType);
    }

    /**
     * Send an item as a part of some HTTP multipart answer.
     * 
     * This function sends an item as a part of some HTTP multipart answer that was
     * initiated by OrthancPluginStartMultipartAnswer().
     * 
     * @param answer Pointer to the memory buffer containing the item.
     **/
    public void sendMultipartItem(
        byte[] answer) {
        NativeSDK.OrthancPluginSendMultipartItem(self, answer);
    }

    /**
     * Send a HTTP status, with a custom body.
     * 
     * This function answers to a HTTP request by sending a HTTP status code (such as
     * "400 - Bad Request"), together with a body describing the error. The body will
     * only be returned if the configuration option "HttpDescribeErrors" of Orthanc is
     * set to "true".
     * 
     * Note that: - Successful requests (status 200) must use
     * ::OrthancPluginAnswerBuffer(). - Redirections (status 301) must use
     * ::OrthancPluginRedirect(). - Unauthorized access (status 401) must use
     * ::OrthancPluginSendUnauthorized(). - Methods not allowed (status 405) must use
     * ::OrthancPluginSendMethodNotAllowed().
     * 
     * @param status The HTTP status code to be sent.
     * @param body The body of the answer.
     **/
    public void sendHttpStatus(
        short status,
        byte[] body) {
        NativeSDK.OrthancPluginSendHttpStatus(self, status, body);
    }

    /**
     * Answer to a REST request with a JPEG image.
     * 
     * This function answers to a REST request with a JPEG image. The parameters of
     * this function describe a memory buffer that contains an uncompressed image. The
     * image will be automatically compressed as a JPEG image by the core system of
     * Orthanc.
     * 
     * @param format The memory layout of the uncompressed image.
     * @param width The width of the image.
     * @param height The height of the image.
     * @param pitch The pitch of the image (i.e. the number of bytes between 2
     * successive lines of the image in the memory buffer).
     * @param buffer The memory buffer containing the uncompressed image.
     * @param quality The quality of the JPEG encoding, between 1 (worst quality, best
     * compression) and 100 (best quality, worst compression).
     **/
    public void compressAndAnswerJpegImage(
        PixelFormat format,
        int width,
        int height,
        int pitch,
        byte[] buffer,
        byte quality) {
        NativeSDK.OrthancPluginCompressAndAnswerJpegImage(self, format.getValue(), width, height, pitch, buffer, quality);
    }

    /**
     * Provide a detailed description for an HTTP error.
     * 
     * This function sets the detailed description associated with an HTTP error. This
     * description will be displayed in the "Details" field of the JSON body of the
     * HTTP answer. It is only taken into consideration if the REST callback returns an
     * error code that is different from "OrthancPluginErrorCode_Success", and if the
     * "HttpDescribeErrors" configuration option of Orthanc is set to "true".
     * 
     * @param details The details of the error message.
     * @param log Whether to also write the detailed error to the Orthanc logs.
     **/
    public void setHttpErrorDetails(
        String details,
        byte log) {
        NativeSDK.OrthancPluginSetHttpErrorDetails(self, details, log);
    }

}