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