summaryrefslogtreecommitdiffstats
path: root/tools/aidl/Type.cpp
diff options
context:
space:
mode:
authorJoe Onorato <joeo@google.com>2011-08-30 17:24:17 -0700
committerMike Lockwood <lockwood@google.com>2012-02-10 10:51:20 -0800
commitfdfe2ff8c60c367a4eb7cecb4cbe1d62b41a8c20 (patch)
tree33ff6ed8e57f31aebadd5e04c7f97dae01917ea9 /tools/aidl/Type.cpp
parenta8f767a2395c0127b7f5adb9e207fdd994144e17 (diff)
downloadframeworks_base-fdfe2ff8c60c367a4eb7cecb4cbe1d62b41a8c20.zip
frameworks_base-fdfe2ff8c60c367a4eb7cecb4cbe1d62b41a8c20.tar.gz
frameworks_base-fdfe2ff8c60c367a4eb7cecb4cbe1d62b41a8c20.tar.bz2
Checkpoint adding @home RPC support to aidl
Diffstat (limited to 'tools/aidl/Type.cpp')
-rwxr-xr-xtools/aidl/Type.cpp89
1 files changed, 89 insertions, 0 deletions
diff --git a/tools/aidl/Type.cpp b/tools/aidl/Type.cpp
index 6b69864..54690e7 100755
--- a/tools/aidl/Type.cpp
+++ b/tools/aidl/Type.cpp
@@ -11,6 +11,7 @@ Type* LONG_TYPE;
Type* FLOAT_TYPE;
Type* DOUBLE_TYPE;
Type* STRING_TYPE;
+Type* OBJECT_TYPE;
Type* CHAR_SEQUENCE_TYPE;
Type* TEXT_UTILS_TYPE;
Type* REMOTE_EXCEPTION_TYPE;
@@ -21,9 +22,17 @@ Type* BINDER_NATIVE_TYPE;
Type* BINDER_PROXY_TYPE;
Type* PARCEL_TYPE;
Type* PARCELABLE_INTERFACE_TYPE;
+Type* CONTEXT_TYPE;
Type* MAP_TYPE;
Type* LIST_TYPE;
Type* CLASSLOADER_TYPE;
+Type* RPC_SERVICE_BASE_TYPE;
+Type* RPC_DATA_TYPE;
+Type* RPC_BROKER_TYPE;
+Type* RPC_ENDPOINT_INFO_TYPE;
+Type* RPC_RESULT_HANDLER_TYPE;
+Type* RPC_ERROR_TYPE;
+Type* RPC_ERROR_LISTENER_TYPE;
Expression* NULL_VALUE;
Expression* THIS_VALUE;
@@ -66,6 +75,10 @@ register_base_types()
STRING_TYPE = new StringType();
NAMES.Add(STRING_TYPE);
+ OBJECT_TYPE = new Type("java.lang", "Object",
+ Type::BUILT_IN, false, false);
+ NAMES.Add(OBJECT_TYPE);
+
CHAR_SEQUENCE_TYPE = new CharSequenceType();
NAMES.Add(CHAR_SEQUENCE_TYPE);
@@ -103,6 +116,38 @@ register_base_types()
PARCELABLE_INTERFACE_TYPE = new ParcelableInterfaceType();
NAMES.Add(PARCELABLE_INTERFACE_TYPE);
+ CONTEXT_TYPE = new Type("android.content", "Context",
+ Type::BUILT_IN, false, false);
+ NAMES.Add(CONTEXT_TYPE);
+
+ RPC_SERVICE_BASE_TYPE = new Type("com.android.athome.service", "AndroidAtHomeService",
+ Type::BUILT_IN, false, false);
+ NAMES.Add(RPC_SERVICE_BASE_TYPE);
+
+ RPC_DATA_TYPE = new Type("com.android.athome.rpc", "RpcData",
+ Type::BUILT_IN, false, false);
+ NAMES.Add(RPC_DATA_TYPE);
+
+ RPC_BROKER_TYPE = new Type("com.android.athome.utils", "AndroidAtHomeBroker",
+ Type::BUILT_IN, false, false);
+ NAMES.Add(RPC_BROKER_TYPE);
+
+ RPC_ENDPOINT_INFO_TYPE = new ParcelableType("com.android.athome.rpc", "EndpointInfo",
+ true, __FILE__, __LINE__);
+ NAMES.Add(RPC_ENDPOINT_INFO_TYPE);
+
+ RPC_RESULT_HANDLER_TYPE = new ParcelableType("com.android.athome.rpc", "RpcResultHandler",
+ true, __FILE__, __LINE__);
+ NAMES.Add(RPC_RESULT_HANDLER_TYPE);
+
+ RPC_ERROR_TYPE = new ParcelableType("com.android.athome.rpc", "RpcError",
+ true, __FILE__, __LINE__);
+ NAMES.Add(RPC_ERROR_TYPE);
+
+ RPC_ERROR_LISTENER_TYPE = new Type("com.android.athome.rpc", "RpcErrorHandler",
+ Type::BUILT_IN, false, false);
+ NAMES.Add(RPC_ERROR_LISTENER_TYPE);
+
CLASSLOADER_TYPE = new ClassLoaderType();
NAMES.Add(CLASSLOADER_TYPE);
@@ -244,6 +289,36 @@ Type::ReadArrayFromParcel(StatementBlock* addTo, Variable* v, Variable* parcel,
}
void
+Type::WriteToRpcData(StatementBlock* addTo, Expression* k, Variable* v,
+ Variable* data, int flags)
+{
+ fprintf(stderr, "aidl:internal error %s:%d qualifiedName=%sn",
+ __FILE__, __LINE__, m_qualifiedName.c_str());
+ addTo->Add(new LiteralExpression("/* WriteToRpcData error "
+ + m_qualifiedName + " */"));
+}
+
+void
+Type::ReadFromRpcData(StatementBlock* addTo, Expression* k, Variable* v, Variable* data,
+ Variable** cl)
+{
+ fprintf(stderr, "aidl:internal error %s:%d qualifiedName=%sn",
+ __FILE__, __LINE__, m_qualifiedName.c_str());
+ addTo->Add(new LiteralExpression("/* ReadFromRpcData error "
+ + m_qualifiedName + " */"));
+}
+
+void
+Type::CreateFromRpcData(StatementBlock* addTo, Expression* k, Variable* v, Variable* data,
+ Variable** cl)
+{
+ fprintf(stderr, "aidl:internal error %s:%d qualifiedName=%sn",
+ __FILE__, __LINE__, m_qualifiedName.c_str());
+ addTo->Add(new LiteralExpression("/* ReadFromRpcData error "
+ + m_qualifiedName + " */"));
+}
+
+void
Type::SetQualifiedName(const string& qualified)
{
m_qualifiedName = qualified;
@@ -458,6 +533,20 @@ StringType::ReadArrayFromParcel(StatementBlock* addTo, Variable* v, Variable* pa
addTo->Add(new MethodCall(parcel, "readStringArray", 1, v));
}
+void
+StringType::WriteToRpcData(StatementBlock* addTo, Expression* k, Variable* v,
+ Variable* data, int flags)
+{
+ addTo->Add(new MethodCall(data, "putString", 2, k, v));
+}
+
+void
+StringType::CreateFromRpcData(StatementBlock* addTo, Expression* k, Variable* v,
+ Variable* data, Variable**)
+{
+ addTo->Add(new Assignment(v, new MethodCall(data, "getString", 1, k)));
+}
+
// ================================================================
CharSequenceType::CharSequenceType()