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