/*
* Copyright 2015 Kevin Herron
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.digitalpetri.opcua.stack.core.types.structured;
import com.digitalpetri.opcua.stack.core.Identifiers;
import com.digitalpetri.opcua.stack.core.serialization.DelegateRegistry;
import com.digitalpetri.opcua.stack.core.serialization.UaDecoder;
import com.digitalpetri.opcua.stack.core.serialization.UaEncoder;
import com.digitalpetri.opcua.stack.core.serialization.UaRequestMessage;
import com.digitalpetri.opcua.stack.core.types.UaDataType;
import com.digitalpetri.opcua.stack.core.types.builtin.ByteString;
import com.digitalpetri.opcua.stack.core.types.builtin.NodeId;
import com.digitalpetri.opcua.stack.core.types.builtin.unsigned.UInteger;
@UaDataType("CreateSessionRequest")
public class CreateSessionRequest implements UaRequestMessage {
public static final NodeId TypeId = Identifiers.CreateSessionRequest;
public static final NodeId BinaryEncodingId = Identifiers.CreateSessionRequest_Encoding_DefaultBinary;
public static final NodeId XmlEncodingId = Identifiers.CreateSessionRequest_Encoding_DefaultXml;
protected final RequestHeader _requestHeader;
protected final ApplicationDescription _clientDescription;
protected final String _serverUri;
protected final String _endpointUrl;
protected final String _sessionName;
protected final ByteString _clientNonce;
protected final ByteString _clientCertificate;
protected final Double _requestedSessionTimeout;
protected final UInteger _maxResponseMessageSize;
public CreateSessionRequest() {
this._requestHeader = null;
this._clientDescription = null;
this._serverUri = null;
this._endpointUrl = null;
this._sessionName = null;
this._clientNonce = null;
this._clientCertificate = null;
this._requestedSessionTimeout = null;
this._maxResponseMessageSize = null;
}
public CreateSessionRequest(RequestHeader _requestHeader, ApplicationDescription _clientDescription, String _serverUri, String _endpointUrl, String _sessionName, ByteString _clientNonce, ByteString _clientCertificate, Double _requestedSessionTimeout, UInteger _maxResponseMessageSize) {
this._requestHeader = _requestHeader;
this._clientDescription = _clientDescription;
this._serverUri = _serverUri;
this._endpointUrl = _endpointUrl;
this._sessionName = _sessionName;
this._clientNonce = _clientNonce;
this._clientCertificate = _clientCertificate;
this._requestedSessionTimeout = _requestedSessionTimeout;
this._maxResponseMessageSize = _maxResponseMessageSize;
}
public RequestHeader getRequestHeader() { return _requestHeader; }
public ApplicationDescription getClientDescription() { return _clientDescription; }
public String getServerUri() { return _serverUri; }
public String getEndpointUrl() { return _endpointUrl; }
public String getSessionName() { return _sessionName; }
public ByteString getClientNonce() { return _clientNonce; }
public ByteString getClientCertificate() { return _clientCertificate; }
public Double getRequestedSessionTimeout() { return _requestedSessionTimeout; }
public UInteger getMaxResponseMessageSize() { return _maxResponseMessageSize; }
@Override
public NodeId getTypeId() { return TypeId; }
@Override
public NodeId getBinaryEncodingId() { return BinaryEncodingId; }
@Override
public NodeId getXmlEncodingId() { return XmlEncodingId; }
public static void encode(CreateSessionRequest createSessionRequest, UaEncoder encoder) {
encoder.encodeSerializable("RequestHeader", createSessionRequest._requestHeader != null ? createSessionRequest._requestHeader : new RequestHeader());
encoder.encodeSerializable("ClientDescription", createSessionRequest._clientDescription != null ? createSessionRequest._clientDescription : new ApplicationDescription());
encoder.encodeString("ServerUri", createSessionRequest._serverUri);
encoder.encodeString("EndpointUrl", createSessionRequest._endpointUrl);
encoder.encodeString("SessionName", createSessionRequest._sessionName);
encoder.encodeByteString("ClientNonce", createSessionRequest._clientNonce);
encoder.encodeByteString("ClientCertificate", createSessionRequest._clientCertificate);
encoder.encodeDouble("RequestedSessionTimeout", createSessionRequest._requestedSessionTimeout);
encoder.encodeUInt32("MaxResponseMessageSize", createSessionRequest._maxResponseMessageSize);
}
public static CreateSessionRequest decode(UaDecoder decoder) {
RequestHeader _requestHeader = decoder.decodeSerializable("RequestHeader", RequestHeader.class);
ApplicationDescription _clientDescription = decoder.decodeSerializable("ClientDescription", ApplicationDescription.class);
String _serverUri = decoder.decodeString("ServerUri");
String _endpointUrl = decoder.decodeString("EndpointUrl");
String _sessionName = decoder.decodeString("SessionName");
ByteString _clientNonce = decoder.decodeByteString("ClientNonce");
ByteString _clientCertificate = decoder.decodeByteString("ClientCertificate");
Double _requestedSessionTimeout = decoder.decodeDouble("RequestedSessionTimeout");
UInteger _maxResponseMessageSize = decoder.decodeUInt32("MaxResponseMessageSize");
return new CreateSessionRequest(_requestHeader, _clientDescription, _serverUri, _endpointUrl, _sessionName, _clientNonce, _clientCertificate, _requestedSessionTimeout, _maxResponseMessageSize);
}
static {
DelegateRegistry.registerEncoder(CreateSessionRequest::encode, CreateSessionRequest.class, BinaryEncodingId, XmlEncodingId);
DelegateRegistry.registerDecoder(CreateSessionRequest::decode, CreateSessionRequest.class, BinaryEncodingId, XmlEncodingId);
}
}