Class JsonSocketService<H extends JsonHttpService>

    • Method Detail

      • onMessage

        public abstract void onMessage​(@Nonnull
                                       java.lang.String type,
                                       @Nonnull
                                       com.fasterxml.jackson.databind.JsonNode data,
                                       @Nonnull
                                       JsonRequest request)
                                throws java.io.IOException,
                                       JmriException,
                                       JsonException
        Handle an inbound message.
        Parameters:
        type - The service type; if the implementing service responds to multiple types, it will need to use this to handle data correctly
        data - JSON data; the contents of this will depend on the implementing service
        request - The JSON request
        Throws:
        java.io.IOException - Thrown if the service cannot send a response; this will cause the JSON Server to close its connection to the client if open
        JmriException - Thrown if the request cannot be handled; throwing this will cause the JSON Server to pass a 500 UnsupportedOperation message to the client
        JsonException - Thrown if the service needs to pass an error message back to the client
      • onList

        public abstract void onList​(@Nonnull
                                    java.lang.String type,
                                    @Nonnull
                                    com.fasterxml.jackson.databind.JsonNode data,
                                    @Nonnull
                                    JsonRequest request)
                             throws java.io.IOException,
                                    JmriException,
                                    JsonException
        Handle a request for a list of objects. Note that this should not create listeners for items in the list, but should only create listeners for the object providing the list, if applicable.
        Parameters:
        type - The service type; if the implementing service responds to multiple types, it will need to use this to handle data correctly
        data - JSON data; the contents of this will depend on the implementing service
        request - The JSON request
        Throws:
        java.io.IOException - Thrown if the service cannot send a response; this will cause the JSON Server to close its connection to the client if open
        JmriException - Thrown if the request cannot be handled; throwing this will cause the JSON Server to pass a 500 UnsupportedOperation message to the client
        JsonException - If the service needs to pass an error message back to the client; implementing services may throw a JsonException with code 400 and the localized message "UnlistableService" to indicate that type should not be listed
      • onClose

        public abstract void onClose()
        Perform any teardown required when closing a connection.
      • getLocale

        @Nonnull
        protected final java.util.Locale getLocale()
        Get the in-use locale
        Returns:
        the locale
      • getVersion

        protected final java.lang.String getVersion()
        Get the JSON protocol version
        Returns:
        the version