12d3a163433c435ff053402ae8965f8602c7ac6daErik Kline/*
22d3a163433c435ff053402ae8965f8602c7ac6daErik Kline * Copyright (C) 2016 The Android Open Source Project
32d3a163433c435ff053402ae8965f8602c7ac6daErik Kline *
42d3a163433c435ff053402ae8965f8602c7ac6daErik Kline * Licensed under the Apache License, Version 2.0 (the "License");
52d3a163433c435ff053402ae8965f8602c7ac6daErik Kline * you may not use this file except in compliance with the License.
62d3a163433c435ff053402ae8965f8602c7ac6daErik Kline * You may obtain a copy of the License at
72d3a163433c435ff053402ae8965f8602c7ac6daErik Kline *
82d3a163433c435ff053402ae8965f8602c7ac6daErik Kline *      http://www.apache.org/licenses/LICENSE-2.0
92d3a163433c435ff053402ae8965f8602c7ac6daErik Kline *
102d3a163433c435ff053402ae8965f8602c7ac6daErik Kline * Unless required by applicable law or agreed to in writing, software
112d3a163433c435ff053402ae8965f8602c7ac6daErik Kline * distributed under the License is distributed on an "AS IS" BASIS,
122d3a163433c435ff053402ae8965f8602c7ac6daErik Kline * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
132d3a163433c435ff053402ae8965f8602c7ac6daErik Kline * See the License for the specific language governing permissions and
142d3a163433c435ff053402ae8965f8602c7ac6daErik Kline * limitations under the License.
152d3a163433c435ff053402ae8965f8602c7ac6daErik Kline */
162d3a163433c435ff053402ae8965f8602c7ac6daErik Kline
172d3a163433c435ff053402ae8965f8602c7ac6daErik Kline#ifndef NETD_SERVER_DUMPWRITER_H_
182d3a163433c435ff053402ae8965f8602c7ac6daErik Kline#define NETD_SERVER_DUMPWRITER_H_
192d3a163433c435ff053402ae8965f8602c7ac6daErik Kline
202d3a163433c435ff053402ae8965f8602c7ac6daErik Kline#include <string>
212d3a163433c435ff053402ae8965f8602c7ac6daErik Kline#include <utils/String16.h>
222d3a163433c435ff053402ae8965f8602c7ac6daErik Kline#include <utils/Vector.h>
232d3a163433c435ff053402ae8965f8602c7ac6daErik Kline
247035f228d17e925116b1b64a7c917b3196ab8818Lorenzo Colittinamespace android {
257035f228d17e925116b1b64a7c917b3196ab8818Lorenzo Colittinamespace net {
262d3a163433c435ff053402ae8965f8602c7ac6daErik Kline
272d3a163433c435ff053402ae8965f8602c7ac6daErik Klineclass DumpWriter {
282d3a163433c435ff053402ae8965f8602c7ac6daErik Klinepublic:
292d3a163433c435ff053402ae8965f8602c7ac6daErik Kline    DumpWriter(int fd);
302d3a163433c435ff053402ae8965f8602c7ac6daErik Kline
312d3a163433c435ff053402ae8965f8602c7ac6daErik Kline    void incIndent();
322d3a163433c435ff053402ae8965f8602c7ac6daErik Kline    void decIndent();
332d3a163433c435ff053402ae8965f8602c7ac6daErik Kline
342d3a163433c435ff053402ae8965f8602c7ac6daErik Kline    void println(const std::string& line);
352d3a163433c435ff053402ae8965f8602c7ac6daErik Kline    void println(const char* fmt, ...);
362d3a163433c435ff053402ae8965f8602c7ac6daErik Kline    void blankline() { println(""); }
372d3a163433c435ff053402ae8965f8602c7ac6daErik Kline
382d3a163433c435ff053402ae8965f8602c7ac6daErik Klineprivate:
392d3a163433c435ff053402ae8965f8602c7ac6daErik Kline    uint8_t mIndentLevel;
402d3a163433c435ff053402ae8965f8602c7ac6daErik Kline    int mFd;
412d3a163433c435ff053402ae8965f8602c7ac6daErik Kline};
422d3a163433c435ff053402ae8965f8602c7ac6daErik Kline
437035f228d17e925116b1b64a7c917b3196ab8818Lorenzo Colitti}  // namespace net
447035f228d17e925116b1b64a7c917b3196ab8818Lorenzo Colitti}  // namespace android
457035f228d17e925116b1b64a7c917b3196ab8818Lorenzo Colitti
462d3a163433c435ff053402ae8965f8602c7ac6daErik Kline#endif  // NETD_SERVER_DUMPWRITER_H_
47