Sha256: 5c1391e6cf34a278d1401a067d7adac61649bcef9e3aac30276008b83ee2b922

Contents?: true

Size: 1.68 KB

Versions: 9

Compression:

Stored size: 1.68 KB

Contents

const { Handler } = require('../handler/Handler')
const CommandSerializer = require('../protocol/CommandSerializer')
const CommandDeserializer = require('../protocol/CommandDeserializer')
const Runtime = require("../../utils/RuntimeName");
const ConnectionType = require('../../utils/ConnectionType');

let Transmitter
let Receiver

class Interpreter {
    handler = new Handler()

    execute(command, connectionType, tcpAddress) {
        let commandSerializer = new CommandSerializer()
        let byteMessage = commandSerializer.serialize(command,connectionType, tcpAddress)
        let responseByteArray

        if (command.runtimeName === Runtime.Nodejs && connectionType === ConnectionType.IN_MEMORY)
        {
            // lazy receiver loading
            if (!Receiver) {
                Receiver = require('../receiver/Receiver')
            }
            responseByteArray = Receiver.sendCommand(byteMessage)

        }
        else {
            // lazy transmitter loading
            if (!Transmitter) {
                Transmitter = require('../transmitter/Transmitter')
            }
            responseByteArray = Transmitter.sendCommand(byteMessage)
        }
        return new CommandDeserializer(responseByteArray).deserialize()
    }

    process(byteArray) {
        let commandDeserializer = new CommandDeserializer(byteArray)
        let receivedCommand = commandDeserializer.deserialize()
        let responseCommand = this.handler.handleCommand(receivedCommand)
        let commandSerializer = new CommandSerializer()
        return commandSerializer.serialize(responseCommand, ConnectionType.IN_MEMORY)
    }
}

module.exports = Interpreter

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
javonet-ruby-sdk-2.4.10 lib/javonet-ruby-sdk/Binaries/Nodejs/Windows/X64/core/interpreter/Interpreter.js
javonet-ruby-sdk-2.4.9 lib/javonet-ruby-sdk/Binaries/Nodejs/Windows/X64/core/interpreter/Interpreter.js
javonet-ruby-sdk-2.4.8 lib/javonet-ruby-sdk/Binaries/Nodejs/Windows/X64/core/interpreter/Interpreter.js
javonet-ruby-sdk-2.4.7 lib/javonet-ruby-sdk/Binaries/Nodejs/Windows/X64/core/interpreter/Interpreter.js
javonet-ruby-sdk-2.4.6 lib/javonet-ruby-sdk/Binaries/Nodejs/Windows/X64/core/interpreter/Interpreter.js
javonet-ruby-sdk-2.4.5 lib/javonet-ruby-sdk/Binaries/Nodejs/Windows/X64/core/interpreter/Interpreter.js
javonet-ruby-sdk-2.4.4 lib/javonet-ruby-sdk/Binaries/Nodejs/Windows/X64/core/interpreter/Interpreter.js
javonet-ruby-sdk-2.4.3 lib/javonet-ruby-sdk/Binaries/Nodejs/Windows/X64/core/interpreter/Interpreter.js
javonet-ruby-sdk-2.4.2 lib/javonet-ruby-sdk/Binaries/Nodejs/Windows/X64/core/interpreter/Interpreter.js