Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e24dbeaf authored by Joe Onorato's avatar Joe Onorato Committed by Mike Lockwood
Browse files

add presenters to aidl.

parent 7dbc4b45
Loading
Loading
Loading
Loading
+3 −24
Original line number Diff line number Diff line
@@ -26,13 +26,9 @@ 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;
Type* EVENT_FAKE_TYPE;

Expression* NULL_VALUE;
Expression* THIS_VALUE;
@@ -124,32 +120,15 @@ register_base_types()
    CONTEXT_TYPE = new Type("android.content", "Context", Type::BUILT_IN, false, false, false);
    NAMES.Add(CONTEXT_TYPE);

    RPC_SERVICE_BASE_TYPE = new Type("com.android.athome.service", "AndroidAtHomeService",
                                    Type::BUILT_IN, false, false, false);
    NAMES.Add(RPC_SERVICE_BASE_TYPE);

    RPC_DATA_TYPE = new RpcDataType();
    NAMES.Add(RPC_DATA_TYPE);

    RPC_BROKER_TYPE = new Type("com.android.athome.utils", "AndroidAtHomeBroker",
                                    Type::BUILT_IN, false, 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, false);
    NAMES.Add(RPC_ERROR_LISTENER_TYPE);
    EVENT_FAKE_TYPE = new Type("event", Type::BUILT_IN, false, false, false);
    NAMES.Add(EVENT_FAKE_TYPE);

    CLASSLOADER_TYPE = new ClassLoaderType();
    NAMES.Add(CLASSLOADER_TYPE);
+1 −5
Original line number Diff line number Diff line
@@ -535,13 +535,9 @@ extern Type* PARCELABLE_INTERFACE_TYPE;

extern Type* CONTEXT_TYPE;

extern Type* RPC_SERVICE_BASE_TYPE;
extern Type* RPC_DATA_TYPE;
extern Type* RPC_BROKER_TYPE;
extern Type* RPC_ENDPOINT_INFO_TYPE;
extern Type* RPC_RESULT_HANDLER_TYPE;
extern Type* RPC_ERROR_TYPE;
extern Type* RPC_ERROR_LISTENER_TYPE;
extern Type* EVENT_FAKE_TYPE;

extern Expression* NULL_VALUE;
extern Expression* THIS_VALUE;
+22 −6
Original line number Diff line number Diff line
@@ -419,12 +419,20 @@ check_method(const char* filename, int kind, method_type* m)
        return err;
    }

    if (returnType == EVENT_FAKE_TYPE) {
        if (kind != INTERFACE_TYPE_RPC) {
            fprintf(stderr, "%s:%d event methods only supported for rpc interfaces\n",
                    filename, m->type.type.lineno);
            err = 1;
        }
    } else {
        if (!(kind == INTERFACE_TYPE_BINDER ? returnType->CanWriteToParcel()
                    : returnType->CanWriteToRpcData())) {
            fprintf(stderr, "%s:%d return type %s can't be marshalled.\n", filename,
                        m->type.type.lineno, m->type.type.data);
            err = 1;
        }
    }

    if (m->type.dimension > 0 && !returnType->CanBeArray()) {
        fprintf(stderr, "%s:%d return type %s%s can't be an array.\n", filename,
@@ -456,6 +464,14 @@ check_method(const char* filename, int kind, method_type* m)
            goto next;
        }

        if (t == EVENT_FAKE_TYPE) {
            fprintf(stderr, "%s:%d parameter %s (%d) event can not be used as a parameter %s\n",
                    filename, m->type.type.lineno, arg->name.data, index,
                    arg->type.type.data);
            err = 1;
            goto next;
        }
        
        if (!(kind == INTERFACE_TYPE_BINDER ? t->CanWriteToParcel() : t->CanWriteToRpcData())) {
            fprintf(stderr, "%s:%d parameter %d: '%s %s' can't be marshalled.\n",
                        filename, m->type.type.lineno, index,
@@ -505,7 +521,7 @@ check_method(const char* filename, int kind, method_type* m)
        // check that the name doesn't match a keyword
        if (matches_keyword(arg->name.data)) {
            fprintf(stderr, "%s:%d parameter %d %s is named the same as a"
                    " Java keyword\n",
                    " Java or aidl keyword\n",
                    filename, m->name.lineno, index, arg->name.data);
            err = 1;
        }
+465 −196

File changed.

Preview size limit exceeded, changes collapsed.