DeathRecipientType.h revision 115d428f9c38c078d679a98942c47ce4a17bd599
1115d428f9c38c078d679a98942c47ce4a17bd599Martijn Coenen/* 2115d428f9c38c078d679a98942c47ce4a17bd599Martijn Coenen * Copyright (C) 2016 The Android Open Source Project 3115d428f9c38c078d679a98942c47ce4a17bd599Martijn Coenen * 4115d428f9c38c078d679a98942c47ce4a17bd599Martijn Coenen * Licensed under the Apache License, Version 2.0 (the "License"); 5115d428f9c38c078d679a98942c47ce4a17bd599Martijn Coenen * you may not use this file except in compliance with the License. 6115d428f9c38c078d679a98942c47ce4a17bd599Martijn Coenen * You may obtain a copy of the License at 7115d428f9c38c078d679a98942c47ce4a17bd599Martijn Coenen * 8115d428f9c38c078d679a98942c47ce4a17bd599Martijn Coenen * http://www.apache.org/licenses/LICENSE-2.0 9115d428f9c38c078d679a98942c47ce4a17bd599Martijn Coenen * 10115d428f9c38c078d679a98942c47ce4a17bd599Martijn Coenen * Unless required by applicable law or agreed to in writing, software 11115d428f9c38c078d679a98942c47ce4a17bd599Martijn Coenen * distributed under the License is distributed on an "AS IS" BASIS, 12115d428f9c38c078d679a98942c47ce4a17bd599Martijn Coenen * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13115d428f9c38c078d679a98942c47ce4a17bd599Martijn Coenen * See the License for the specific language governing permissions and 14115d428f9c38c078d679a98942c47ce4a17bd599Martijn Coenen * limitations under the License. 15115d428f9c38c078d679a98942c47ce4a17bd599Martijn Coenen */ 16115d428f9c38c078d679a98942c47ce4a17bd599Martijn Coenen 17115d428f9c38c078d679a98942c47ce4a17bd599Martijn Coenen#ifndef DEATH_RECIPIENT_TYPE_H_ 18115d428f9c38c078d679a98942c47ce4a17bd599Martijn Coenen 19115d428f9c38c078d679a98942c47ce4a17bd599Martijn Coenen#define DEATH_RECIPIENT_TYPE_H_ 20115d428f9c38c078d679a98942c47ce4a17bd599Martijn Coenen 21115d428f9c38c078d679a98942c47ce4a17bd599Martijn Coenen#include "Type.h" 22115d428f9c38c078d679a98942c47ce4a17bd599Martijn Coenen 23115d428f9c38c078d679a98942c47ce4a17bd599Martijn Coenennamespace android { 24115d428f9c38c078d679a98942c47ce4a17bd599Martijn Coenen 25115d428f9c38c078d679a98942c47ce4a17bd599Martijn Coenenstruct DeathRecipientType : public Type { 26115d428f9c38c078d679a98942c47ce4a17bd599Martijn Coenen DeathRecipientType(); 27115d428f9c38c078d679a98942c47ce4a17bd599Martijn Coenen 28115d428f9c38c078d679a98942c47ce4a17bd599Martijn Coenen void addNamedTypesToSet(std::set<const FQName> &set) const override; 29115d428f9c38c078d679a98942c47ce4a17bd599Martijn Coenen 30115d428f9c38c078d679a98942c47ce4a17bd599Martijn Coenen std::string getCppType( 31115d428f9c38c078d679a98942c47ce4a17bd599Martijn Coenen StorageMode mode, 32115d428f9c38c078d679a98942c47ce4a17bd599Martijn Coenen bool specifyNamespaces) const override; 33115d428f9c38c078d679a98942c47ce4a17bd599Martijn Coenen 34115d428f9c38c078d679a98942c47ce4a17bd599Martijn Coenen std::string getJavaType(bool forInitializer) const override; 35115d428f9c38c078d679a98942c47ce4a17bd599Martijn Coenen 36115d428f9c38c078d679a98942c47ce4a17bd599Martijn Coenen std::string getVtsType() const override; 37115d428f9c38c078d679a98942c47ce4a17bd599Martijn Coenen 38115d428f9c38c078d679a98942c47ce4a17bd599Martijn Coenen void emitReaderWriter( 39115d428f9c38c078d679a98942c47ce4a17bd599Martijn Coenen Formatter &out, 40115d428f9c38c078d679a98942c47ce4a17bd599Martijn Coenen const std::string &name, 41115d428f9c38c078d679a98942c47ce4a17bd599Martijn Coenen const std::string &parcelObj, 42115d428f9c38c078d679a98942c47ce4a17bd599Martijn Coenen bool parcelObjIsPointer, 43115d428f9c38c078d679a98942c47ce4a17bd599Martijn Coenen bool isReader, 44115d428f9c38c078d679a98942c47ce4a17bd599Martijn Coenen ErrorMode mode) const override; 45115d428f9c38c078d679a98942c47ce4a17bd599Martijn Coenen 46115d428f9c38c078d679a98942c47ce4a17bd599Martijn Coenen bool needsEmbeddedReadWrite() const override; 47115d428f9c38c078d679a98942c47ce4a17bd599Martijn Coenen bool resultNeedsDeref() const override; 48115d428f9c38c078d679a98942c47ce4a17bd599Martijn Coenen 49115d428f9c38c078d679a98942c47ce4a17bd599Martijn Coenen bool isJavaCompatible() const override; 50115d428f9c38c078d679a98942c47ce4a17bd599Martijn Coenen 51115d428f9c38c078d679a98942c47ce4a17bd599Martijn Coenen void getAlignmentAndSize(size_t *align, size_t *size) const override; 52115d428f9c38c078d679a98942c47ce4a17bd599Martijn Coenen 53115d428f9c38c078d679a98942c47ce4a17bd599Martijn Coenen status_t emitVtsTypeDeclarations(Formatter &out) const override; 54115d428f9c38c078d679a98942c47ce4a17bd599Martijn Coenen}; 55115d428f9c38c078d679a98942c47ce4a17bd599Martijn Coenen 56115d428f9c38c078d679a98942c47ce4a17bd599Martijn Coenen} // namespace android 57115d428f9c38c078d679a98942c47ce4a17bd599Martijn Coenen 58115d428f9c38c078d679a98942c47ce4a17bd599Martijn Coenen#endif // DEATH_RECIPIENT_TYPE_H_ 59115d428f9c38c078d679a98942c47ce4a17bd599Martijn Coenen 60