17af6646391705a276b814bf8b45f8874554831fbMichael Wright/* 28c09f35fe02c38c18f8f7b9e0a531d6ac158476eMichael Wright * Copyright (C) 2011 The Android Open Source Project 37af6646391705a276b814bf8b45f8874554831fbMichael Wright * 47af6646391705a276b814bf8b45f8874554831fbMichael Wright * Licensed under the Apache License, Version 2.0 (the "License"); 57af6646391705a276b814bf8b45f8874554831fbMichael Wright * you may not use this file except in compliance with the License. 67af6646391705a276b814bf8b45f8874554831fbMichael Wright * You may obtain a copy of the License at 77af6646391705a276b814bf8b45f8874554831fbMichael Wright * 87af6646391705a276b814bf8b45f8874554831fbMichael Wright * http://www.apache.org/licenses/LICENSE-2.0 97af6646391705a276b814bf8b45f8874554831fbMichael Wright * 107af6646391705a276b814bf8b45f8874554831fbMichael Wright * Unless required by applicable law or agreed to in writing, software 117af6646391705a276b814bf8b45f8874554831fbMichael Wright * distributed under the License is distributed on an "AS IS" BASIS, 127af6646391705a276b814bf8b45f8874554831fbMichael Wright * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 137af6646391705a276b814bf8b45f8874554831fbMichael Wright * See the License for the specific language governing permissions and 147af6646391705a276b814bf8b45f8874554831fbMichael Wright * limitations under the License. 157af6646391705a276b814bf8b45f8874554831fbMichael Wright */ 167af6646391705a276b814bf8b45f8874554831fbMichael Wrightpackage com.android.chimpchat.adb; 177af6646391705a276b814bf8b45f8874554831fbMichael Wright 187af6646391705a276b814bf8b45f8874554831fbMichael Wrightimport com.android.ddmlib.IShellOutputReceiver; 197af6646391705a276b814bf8b45f8874554831fbMichael Wright 207af6646391705a276b814bf8b45f8874554831fbMichael Wrightimport java.util.logging.Level; 217af6646391705a276b814bf8b45f8874554831fbMichael Wrightimport java.util.logging.Logger; 227af6646391705a276b814bf8b45f8874554831fbMichael Wright 237af6646391705a276b814bf8b45f8874554831fbMichael Wright/** 247af6646391705a276b814bf8b45f8874554831fbMichael Wright * Shell Output Receiver that sends shell output to a Logger. 257af6646391705a276b814bf8b45f8874554831fbMichael Wright */ 267af6646391705a276b814bf8b45f8874554831fbMichael Wrightpublic class LoggingOutputReceiver implements IShellOutputReceiver { 277af6646391705a276b814bf8b45f8874554831fbMichael Wright private final Logger log; 287af6646391705a276b814bf8b45f8874554831fbMichael Wright private final Level level; 297af6646391705a276b814bf8b45f8874554831fbMichael Wright 307af6646391705a276b814bf8b45f8874554831fbMichael Wright public LoggingOutputReceiver(Logger log, Level level) { 317af6646391705a276b814bf8b45f8874554831fbMichael Wright this.log = log; 327af6646391705a276b814bf8b45f8874554831fbMichael Wright this.level = level; 337af6646391705a276b814bf8b45f8874554831fbMichael Wright } 347af6646391705a276b814bf8b45f8874554831fbMichael Wright 357af6646391705a276b814bf8b45f8874554831fbMichael Wright public void addOutput(byte[] data, int offset, int length) { 367af6646391705a276b814bf8b45f8874554831fbMichael Wright String message = new String(data, offset, length); 377af6646391705a276b814bf8b45f8874554831fbMichael Wright for (String line : message.split("\n")) { 387af6646391705a276b814bf8b45f8874554831fbMichael Wright log.log(level, line); 397af6646391705a276b814bf8b45f8874554831fbMichael Wright } 407af6646391705a276b814bf8b45f8874554831fbMichael Wright } 417af6646391705a276b814bf8b45f8874554831fbMichael Wright 427af6646391705a276b814bf8b45f8874554831fbMichael Wright public void flush() { } 437af6646391705a276b814bf8b45f8874554831fbMichael Wright 447af6646391705a276b814bf8b45f8874554831fbMichael Wright public boolean isCancelled() { 457af6646391705a276b814bf8b45f8874554831fbMichael Wright return false; 467af6646391705a276b814bf8b45f8874554831fbMichael Wright } 477af6646391705a276b814bf8b45f8874554831fbMichael Wright} 48