diff options
author | Joe Onorato <joeo@google.com> | 2011-10-09 22:31:16 -0700 |
---|---|---|
committer | Mike Lockwood <lockwood@google.com> | 2012-02-10 10:51:23 -0800 |
commit | a1c6d909c22e196ef62ddb065fc7821deda8a602 (patch) | |
tree | 1a295d0e6530e1a7023a1e5271e7c21e8e3676b9 /tools/aidl/Type.cpp | |
parent | 95a766ddcd0feda233882012b755947b2588352c (diff) | |
download | frameworks_base-a1c6d909c22e196ef62ddb065fc7821deda8a602.zip frameworks_base-a1c6d909c22e196ef62ddb065fc7821deda8a602.tar.gz frameworks_base-a1c6d909c22e196ef62ddb065fc7821deda8a602.tar.bz2 |
aidl: All flattenable types now must also be parcelable.
This is more a limitation of the grammar than anything else triggering laziness on my part.
Diffstat (limited to 'tools/aidl/Type.cpp')
-rwxr-xr-x | tools/aidl/Type.cpp | 62 |
1 files changed, 17 insertions, 45 deletions
diff --git a/tools/aidl/Type.cpp b/tools/aidl/Type.cpp index 8161ef3..b84b3c4 100755 --- a/tools/aidl/Type.cpp +++ b/tools/aidl/Type.cpp @@ -123,7 +123,7 @@ register_base_types() RPC_DATA_TYPE = new RpcDataType(); NAMES.Add(RPC_DATA_TYPE); - RPC_ERROR_TYPE = new ParcelableType("com.android.athome.rpc", "RpcError", + RPC_ERROR_TYPE = new UserDataType("com.android.athome.rpc", "RpcError", true, __FILE__, __LINE__); NAMES.Add(RPC_ERROR_TYPE); @@ -896,29 +896,22 @@ ListType::CreateFromRpcData(StatementBlock* addTo, Expression* k, Variable* v, V // ================================================================ -ParcelableType::ParcelableType(const string& package, const string& name, - bool builtIn, const string& declFile, int declLine) - :Type(package, name, builtIn ? BUILT_IN : PARCELABLE, true, false, true, - declFile, declLine) -{ -} - -ParcelableType::ParcelableType(const string& package, const string& name, - bool builtIn, bool canWriteToRpcData, - const string& declFile, int declLine) - :Type(package, name, builtIn ? BUILT_IN : PARCELABLE, true, canWriteToRpcData, true, - declFile, declLine) +UserDataType::UserDataType(const string& package, const string& name, + bool builtIn, bool canWriteToParcel, bool canWriteToRpcData, + const string& declFile, int declLine) + :Type(package, name, builtIn ? BUILT_IN : USERDATA, canWriteToParcel, canWriteToRpcData, + true, declFile, declLine) { } string -ParcelableType::CreatorName() const +UserDataType::CreatorName() const { return QualifiedName() + ".CREATOR"; } void -ParcelableType::WriteToParcel(StatementBlock* addTo, Variable* v, Variable* parcel, int flags) +UserDataType::WriteToParcel(StatementBlock* addTo, Variable* v, Variable* parcel, int flags) { // if (v != null) { // parcel.writeInt(1); @@ -941,7 +934,7 @@ ParcelableType::WriteToParcel(StatementBlock* addTo, Variable* v, Variable* parc } void -ParcelableType::CreateFromParcel(StatementBlock* addTo, Variable* v, Variable* parcel, Variable**) +UserDataType::CreateFromParcel(StatementBlock* addTo, Variable* v, Variable* parcel, Variable**) { // if (0 != parcel.readInt()) { // v = CLASS.CREATOR.createFromParcel(parcel) @@ -962,7 +955,7 @@ ParcelableType::CreateFromParcel(StatementBlock* addTo, Variable* v, Variable* p } void -ParcelableType::ReadFromParcel(StatementBlock* addTo, Variable* v, +UserDataType::ReadFromParcel(StatementBlock* addTo, Variable* v, Variable* parcel, Variable**) { // TODO: really, we don't need to have this extra check, but we @@ -978,20 +971,20 @@ ParcelableType::ReadFromParcel(StatementBlock* addTo, Variable* v, } bool -ParcelableType::CanBeArray() const +UserDataType::CanBeArray() const { return true; } void -ParcelableType::WriteArrayToParcel(StatementBlock* addTo, Variable* v, Variable* parcel, int flags) +UserDataType::WriteArrayToParcel(StatementBlock* addTo, Variable* v, Variable* parcel, int flags) { addTo->Add(new MethodCall(parcel, "writeTypedArray", 2, v, BuildWriteToParcelFlags(flags))); } void -ParcelableType::CreateArrayFromParcel(StatementBlock* addTo, Variable* v, +UserDataType::CreateArrayFromParcel(StatementBlock* addTo, Variable* v, Variable* parcel, Variable**) { string creator = v->type->QualifiedName() + ".CREATOR"; @@ -1000,30 +993,15 @@ ParcelableType::CreateArrayFromParcel(StatementBlock* addTo, Variable* v, } void -ParcelableType::ReadArrayFromParcel(StatementBlock* addTo, Variable* v, Variable* parcel, Variable**) +UserDataType::ReadArrayFromParcel(StatementBlock* addTo, Variable* v, Variable* parcel, Variable**) { string creator = v->type->QualifiedName() + ".CREATOR"; addTo->Add(new MethodCall(parcel, "readTypedArray", 2, v, new LiteralExpression(creator))); } -// ================================================================ - -FlattenableType::FlattenableType(const string& package, const string& name, - bool builtIn, const string& declFile, int declLine) - :Type(package, name, builtIn ? BUILT_IN : PARCELABLE, false, true, true, - declFile, declLine) -{ -} - -string -FlattenableType::CreatorName() const -{ - return QualifiedName() + ".CREATOR"; -} - void -FlattenableType::WriteToRpcData(StatementBlock* addTo, Expression* k, Variable* v, +UserDataType::WriteToRpcData(StatementBlock* addTo, Expression* k, Variable* v, Variable* data, int flags) { // if (v != null) { @@ -1042,7 +1020,7 @@ FlattenableType::WriteToRpcData(StatementBlock* addTo, Expression* k, Variable* } void -FlattenableType::CreateFromRpcData(StatementBlock* addTo, Expression* k, Variable* v, +UserDataType::CreateFromRpcData(StatementBlock* addTo, Expression* k, Variable* v, Variable* data, Variable** cl) { // RpcData _obj_XX = data.getRpcData(k); @@ -1070,12 +1048,6 @@ FlattenableType::CreateFromRpcData(StatementBlock* addTo, Expression* k, Variabl block->Add(ifpart); } -bool -FlattenableType::CanBeArray() const -{ - return true; -} - // ================================================================ InterfaceType::InterfaceType(const string& package, const string& name, @@ -1266,7 +1238,7 @@ GenericListType::CreateFromRpcData(StatementBlock* addTo, Expression* k, Variabl // ================================================================ RpcDataType::RpcDataType() - :ParcelableType("com.android.athome.rpc", "RpcData", true, true) + :UserDataType("com.android.athome.rpc", "RpcData", true, true, true) { } |