IResourceTableConsumer.h revision 355f285ffd000f6cfe76680eb22d010546d124bb
122add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao/* 25460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao * Copyright (C) 2015 The Android Open Source Project 35460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao * 45460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao * Licensed under the Apache License, Version 2.0 (the "License"); 55460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao * you may not use this file except in compliance with the License. 65460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao * You may obtain a copy of the License at 75460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao * 85460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao * http://www.apache.org/licenses/LICENSE-2.0 937b74a387bb3993387029859c2d9d051c41c724eStephen Hines * 1037b74a387bb3993387029859c2d9d051c41c724eStephen Hines * Unless required by applicable law or agreed to in writing, software 1137b74a387bb3993387029859c2d9d051c41c724eStephen Hines * distributed under the License is distributed on an "AS IS" BASIS, 120dea6bc96bb52346737966839ac68644f7939f58Stephen Hines * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 135460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao * See the License for the specific language governing permissions and 1437b74a387bb3993387029859c2d9d051c41c724eStephen Hines * limitations under the License. 155460a1f25d9ddecb5c70667267d66d51af177a99Shih-wei Liao */ 16affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 17affc150dc44fab1911775a49636d0ce85333b634Zonr Chang#ifndef AAPT_PROCESS_IRESOURCETABLECONSUMER_H 1822add6ff3426df1a85089fe6a6e1597ee3b6f300Shih-wei Liao#define AAPT_PROCESS_IRESOURCETABLECONSUMER_H 19affc150dc44fab1911775a49636d0ce85333b634Zonr Chang 2037b74a387bb3993387029859c2d9d051c41c724eStephen Hines#include "Diagnostics.h" 2137b74a387bb3993387029859c2d9d051c41c724eStephen Hines#include "NameMangler.h" 2237b74a387bb3993387029859c2d9d051c41c724eStephen Hines#include "Resource.h" 232bf3f881f79c4d883f379e63725e788c310739a3Pirama Arumuga Nainar#include "ResourceValues.h" 2437b74a387bb3993387029859c2d9d051c41c724eStephen Hines#include "Source.h" 2537b74a387bb3993387029859c2d9d051c41c724eStephen Hines 2637b74a387bb3993387029859c2d9d051c41c724eStephen Hines#include <iostream> 2737b74a387bb3993387029859c2d9d051c41c724eStephen Hines#include <list> 2837b74a387bb3993387029859c2d9d051c41c724eStephen Hines#include <sstream> 2937b74a387bb3993387029859c2d9d051c41c724eStephen Hines 3037b74a387bb3993387029859c2d9d051c41c724eStephen Hinesnamespace aapt { 3137b74a387bb3993387029859c2d9d051c41c724eStephen Hines 3237b74a387bb3993387029859c2d9d051c41c724eStephen Hinesclass ResourceTable; 3337b74a387bb3993387029859c2d9d051c41c724eStephen Hinesstruct ISymbolTable; 3437b74a387bb3993387029859c2d9d051c41c724eStephen Hines 3537b74a387bb3993387029859c2d9d051c41c724eStephen Hinesstruct IAaptContext { 3637b74a387bb3993387029859c2d9d051c41c724eStephen Hines virtual ~IAaptContext() = default; 3737b74a387bb3993387029859c2d9d051c41c724eStephen Hines 3837b74a387bb3993387029859c2d9d051c41c724eStephen Hines virtual ISymbolTable* getExternalSymbols() = 0; 3937b74a387bb3993387029859c2d9d051c41c724eStephen Hines virtual IDiagnostics* getDiagnostics() = 0; 4037b74a387bb3993387029859c2d9d051c41c724eStephen Hines virtual StringPiece16 getCompilationPackage() = 0; 4137b74a387bb3993387029859c2d9d051c41c724eStephen Hines virtual uint8_t getPackageId() = 0; 4237b74a387bb3993387029859c2d9d051c41c724eStephen Hines virtual NameMangler* getNameMangler() = 0; 4337b74a387bb3993387029859c2d9d051c41c724eStephen Hines virtual bool verbose() = 0; 4437b74a387bb3993387029859c2d9d051c41c724eStephen Hines}; 4537b74a387bb3993387029859c2d9d051c41c724eStephen Hines 4637b74a387bb3993387029859c2d9d051c41c724eStephen Hinesstruct IResourceTableConsumer { 4737b74a387bb3993387029859c2d9d051c41c724eStephen Hines virtual ~IResourceTableConsumer() = default; 4837b74a387bb3993387029859c2d9d051c41c724eStephen Hines 4937b74a387bb3993387029859c2d9d051c41c724eStephen Hines virtual bool consume(IAaptContext* context, ResourceTable* table) = 0; 5037b74a387bb3993387029859c2d9d051c41c724eStephen Hines}; 5137b74a387bb3993387029859c2d9d051c41c724eStephen Hines 5237b74a387bb3993387029859c2d9d051c41c724eStephen Hinesnamespace xml { 5337b74a387bb3993387029859c2d9d051c41c724eStephen Hinesstruct XmlResource; 5437b74a387bb3993387029859c2d9d051c41c724eStephen Hines} 5537b74a387bb3993387029859c2d9d051c41c724eStephen Hines 5637b74a387bb3993387029859c2d9d051c41c724eStephen Hinesstruct IXmlResourceConsumer { 5737b74a387bb3993387029859c2d9d051c41c724eStephen Hines virtual ~IXmlResourceConsumer() = default; 5837b74a387bb3993387029859c2d9d051c41c724eStephen Hines 5937b74a387bb3993387029859c2d9d051c41c724eStephen Hines virtual bool consume(IAaptContext* context, xml::XmlResource* resource) = 0; 6037b74a387bb3993387029859c2d9d051c41c724eStephen Hines}; 6137b74a387bb3993387029859c2d9d051c41c724eStephen Hines 622bf3f881f79c4d883f379e63725e788c310739a3Pirama Arumuga Nainar} // namespace aapt 632bf3f881f79c4d883f379e63725e788c310739a3Pirama Arumuga Nainar 642bf3f881f79c4d883f379e63725e788c310739a3Pirama Arumuga Nainar#endif /* AAPT_PROCESS_IRESOURCETABLECONSUMER_H */ 652bf3f881f79c4d883f379e63725e788c310739a3Pirama Arumuga Nainar