Package jmri.server.json
Class JsonSocketService<H extends JsonHttpService>
java.lang.Object
jmri.server.json.JsonSocketService<H>
- Type Parameters:
H- The supporting JsonHttpService implementing class
- Direct Known Subclasses:
JsonAudioIconSocketService,JsonConsistSocketService,JsonLayoutBlockSocketService,JsonLogixNGIconSocketService,JsonMessageSocketService,JsonNamedBeanSocketService,JsonOperationsSocketService,JsonPowerSocketService,JsonRosterSocketService,JsonSchemaSocketService,JsonSignalHeadSocketService,JsonThrottleSocketService,JsonTimeSocketService,JsonUtilSocketService
Interface for JSON Services provided over TCP Sockets or WebSockets.
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionfinal JsonConnectionGet the connection to the client.final HGet the supportingJsonHttpService.protected final LocaleGet the in-use localeprotected final StringGet the JSON protocol versionabstract voidonClose()Perform any teardown required when closing a connection.abstract voidonList(String type, com.fasterxml.jackson.databind.JsonNode data, JsonRequest request) Handle a request for a list of objects.abstract voidonMessage(String type, com.fasterxml.jackson.databind.JsonNode data, JsonRequest request) Handle an inbound message.
-
Field Details
-
connection
-
service
-
-
Constructor Details
-
JsonSocketService
-
-
Method Details
-
onMessage
public abstract void onMessage(@Nonnull String type, @Nonnull com.fasterxml.jackson.databind.JsonNode data, @Nonnull JsonRequest request) throws 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 correctlydata- JSON data; the contents of this will depend on the implementing servicerequest- The JSON request- Throws:
IOException- Thrown if the service cannot send a response; this will cause the JSON Server to close its connection to the client if openJmriException- Thrown if the request cannot be handled; throwing this will cause the JSON Server to pass a 500 UnsupportedOperation message to the clientJsonException- Thrown if the service needs to pass an error message back to the client
-
onList
public abstract void onList(@Nonnull String type, @Nonnull com.fasterxml.jackson.databind.JsonNode data, @Nonnull JsonRequest request) throws 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 correctlydata- JSON data; the contents of this will depend on the implementing servicerequest- The JSON request- Throws:
IOException- Thrown if the service cannot send a response; this will cause the JSON Server to close its connection to the client if openJmriException- Thrown if the request cannot be handled; throwing this will cause the JSON Server to pass a 500 UnsupportedOperation message to the clientJsonException- 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 thattypeshould not be listed
-
onClose
Perform any teardown required when closing a connection. -
getConnection
Get the connection to the client.- Returns:
- the connection
-
getHttpService
Get the supportingJsonHttpService.- Returns:
- the supporting service
-
getLocale
Get the in-use locale- Returns:
- the locale
-
getVersion
Get the JSON protocol version- Returns:
- the version
-