#------------------------------------------------------------------------------- # Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file # distributed with this work for additional information # regarding copyright ownership. The ASF licenses this file # to you 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. #------------------------------------------------------------------------------- utils = require '../utils' channelManager = require '../channelManager' serviceManager = require '../serviceManager' WeinreClientEvents = serviceManager.get 'WeinreClientEvents' WeinreTargetEvents = serviceManager.get 'WeinreTargetEvents' #------------------------------------------------------------------------------- module.exports = utils.registerClass class WeinreTargetCommands #--------------------------------------------------------------------------- registerTarget: (channel, url, callbackId) -> channel.description.url = url clients = channelManager.getClientChannels(channel.id) WeinreClientEvents.targetRegistered(clients, channel.description) if callbackId WeinreTargetEvents.sendCallback(channel, callbackId, channel.description) #--------------------------------------------------------------------------- sendClientCallback: (channel, clientCallbackId, args, callbackId) -> # the channel to send the callback to is embedded in the callbackId callbackChannel = getCallbackChannel(clientCallbackId) if !callbackChannel return main.warn "#{@constructor.name}.sendClientCallback() sent with invalid callbackId: #{clientCallbackId}" callbackChannel = channelManager.getChannel(callbackChannel) if !callbackChannel # indication that channel was closed; this message may generate a lot of noise return main.warn "#{@constructor.name}.sendClientCallback() unable to find channel : #{clientCallbackId}" WeinreClientEvents.sendCallback(callbackChannel, clientCallbackId, args) if callbackId WeinreTargetEvents.sendCallback(channel, callbackId, description) #--------------------------------------------------------------------------- logDebug: (channel, message, callbackId) -> utils.logVerbose "target #{channel.name}: #{message}" if callbackId WeinreTargetEvents.sendCallback(channel, callbackId, description) #--------------------------------------------------------------------------- logInfo: (channel, message, callbackId) -> utils.log "target #{channel.name}: #{message}" if callbackId WeinreTargetEvents.sendCallback(channel, callbackId, description) #--------------------------------------------------------------------------- logWarning: (channel, message, callbackId) -> utils.log "target #{channel.name}: #{message}" if callbackId WeinreTargetEvents.sendCallback(channel, callbackId, description) #--------------------------------------------------------------------------- logError: (channel, message, callbackId) -> utils.log "target #{channel.name}: #{message}" if callbackId WeinreTargetEvents.sendCallback(channel, callbackId, description) #--------------------------------------------------------------------------- getCallbackChannel = (callbackId) -> callbackId = callbackId.toString() callbackId.split('::')[0]