1330edcdf1316ed599fe0eb16a64330821fd92f18Adam Lesinski/*
2330edcdf1316ed599fe0eb16a64330821fd92f18Adam Lesinski * Copyright (C) 2015 The Android Open Source Project
3330edcdf1316ed599fe0eb16a64330821fd92f18Adam Lesinski *
4330edcdf1316ed599fe0eb16a64330821fd92f18Adam Lesinski * Licensed under the Apache License, Version 2.0 (the "License");
5330edcdf1316ed599fe0eb16a64330821fd92f18Adam Lesinski * you may not use this file except in compliance with the License.
6330edcdf1316ed599fe0eb16a64330821fd92f18Adam Lesinski * You may obtain a copy of the License at
7330edcdf1316ed599fe0eb16a64330821fd92f18Adam Lesinski *
8330edcdf1316ed599fe0eb16a64330821fd92f18Adam Lesinski *      http://www.apache.org/licenses/LICENSE-2.0
9330edcdf1316ed599fe0eb16a64330821fd92f18Adam Lesinski *
10330edcdf1316ed599fe0eb16a64330821fd92f18Adam Lesinski * Unless required by applicable law or agreed to in writing, software
11330edcdf1316ed599fe0eb16a64330821fd92f18Adam Lesinski * distributed under the License is distributed on an "AS IS" BASIS,
12330edcdf1316ed599fe0eb16a64330821fd92f18Adam Lesinski * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13330edcdf1316ed599fe0eb16a64330821fd92f18Adam Lesinski * See the License for the specific language governing permissions and
14330edcdf1316ed599fe0eb16a64330821fd92f18Adam Lesinski * limitations under the License.
15330edcdf1316ed599fe0eb16a64330821fd92f18Adam Lesinski */
16330edcdf1316ed599fe0eb16a64330821fd92f18Adam Lesinski
17330edcdf1316ed599fe0eb16a64330821fd92f18Adam Lesinski#ifndef AAPT_DEBUG_H
18330edcdf1316ed599fe0eb16a64330821fd92f18Adam Lesinski#define AAPT_DEBUG_H
19330edcdf1316ed599fe0eb16a64330821fd92f18Adam Lesinski
20d13fb249865703901b77f48c5fed1864f06e1c63Adam Lesinski#include "Resource.h"
21330edcdf1316ed599fe0eb16a64330821fd92f18Adam Lesinski#include "ResourceTable.h"
22330edcdf1316ed599fe0eb16a64330821fd92f18Adam Lesinski
2352364f7ae31716d7827ea8f8566f4a28bd30a921Adam Lesinski// Include for printf-like debugging.
2452364f7ae31716d7827ea8f8566f4a28bd30a921Adam Lesinski#include <iostream>
2552364f7ae31716d7827ea8f8566f4a28bd30a921Adam Lesinski
26330edcdf1316ed599fe0eb16a64330821fd92f18Adam Lesinskinamespace aapt {
27330edcdf1316ed599fe0eb16a64330821fd92f18Adam Lesinski
28355f285ffd000f6cfe76680eb22d010546d124bbAdam Lesinskistruct DebugPrintTableOptions {
29355f285ffd000f6cfe76680eb22d010546d124bbAdam Lesinski    bool showSources = false;
30355f285ffd000f6cfe76680eb22d010546d124bbAdam Lesinski};
31355f285ffd000f6cfe76680eb22d010546d124bbAdam Lesinski
32330edcdf1316ed599fe0eb16a64330821fd92f18Adam Lesinskistruct Debug {
33355f285ffd000f6cfe76680eb22d010546d124bbAdam Lesinski    static void printTable(ResourceTable* table, const DebugPrintTableOptions& options = {});
341ab598f46c3ff520a67f9d80194847741f3467abAdam Lesinski    static void printStyleGraph(ResourceTable* table,
35d13fb249865703901b77f48c5fed1864f06e1c63Adam Lesinski                                const ResourceName& targetStyle);
3652364f7ae31716d7827ea8f8566f4a28bd30a921Adam Lesinski    static void dumpHex(const void* data, size_t len);
37330edcdf1316ed599fe0eb16a64330821fd92f18Adam Lesinski};
38330edcdf1316ed599fe0eb16a64330821fd92f18Adam Lesinski
39330edcdf1316ed599fe0eb16a64330821fd92f18Adam Lesinski} // namespace aapt
40330edcdf1316ed599fe0eb16a64330821fd92f18Adam Lesinski
41330edcdf1316ed599fe0eb16a64330821fd92f18Adam Lesinski#endif // AAPT_DEBUG_H
42