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

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

Add RpcData as a built-in marshallable type.

parent 05ffbe7c
Loading
Loading
Loading
Loading
+24 −2
Original line number Original line Diff line number Diff line
@@ -130,8 +130,7 @@ register_base_types()
                                    Type::BUILT_IN, false, false);
                                    Type::BUILT_IN, false, false);
    NAMES.Add(RPC_SERVICE_BASE_TYPE);
    NAMES.Add(RPC_SERVICE_BASE_TYPE);


    RPC_DATA_TYPE = new Type("com.android.athome.rpc", "RpcData",
    RPC_DATA_TYPE = new RpcDataType();
                                    Type::BUILT_IN, false, false);
    NAMES.Add(RPC_DATA_TYPE);
    NAMES.Add(RPC_DATA_TYPE);


    RPC_BROKER_TYPE = new Type("com.android.athome.utils", "AndroidAtHomeBroker",
    RPC_BROKER_TYPE = new Type("com.android.athome.utils", "AndroidAtHomeBroker",
@@ -1207,6 +1206,29 @@ GenericListType::CreateFromRpcData(StatementBlock* addTo, Expression* k, Variabl
                    new LiteralExpression(classArg))));
                    new LiteralExpression(classArg))));
}
}



// ================================================================

RpcDataType::RpcDataType()
    :Type("com.android.athome.rpc", "RpcData", Type::BUILT_IN, false, false)
{
}

void
RpcDataType::WriteToRpcData(StatementBlock* addTo, Expression* k, Variable* v,
        Variable* data, int flags)
{
    addTo->Add(new MethodCall(data, "putRpcData", 2, k, v));
}

void
RpcDataType::CreateFromRpcData(StatementBlock* addTo, Expression* k, Variable* v, Variable* data,
        Variable** cl)
{
    addTo->Add(new Assignment(v, new MethodCall(data, "getRpcData", 1, k)));
}


// ================================================================
// ================================================================


ClassLoaderType::ClassLoaderType()
ClassLoaderType::ClassLoaderType()
+11 −0
Original line number Original line Diff line number Diff line
@@ -442,6 +442,17 @@ private:
    string m_creator;
    string m_creator;
};
};


class RpcDataType : public Type
{
public:
                    RpcDataType();

    virtual void    WriteToRpcData(StatementBlock* addTo, Expression* k, Variable* v,
                                    Variable* data, int flags);
    virtual void    CreateFromRpcData(StatementBlock* addTo, Expression* k, Variable* v,
                                    Variable* data, Variable** cl);
};

class ClassLoaderType : public Type
class ClassLoaderType : public Type
{
{
public:
public: