예제 #1
0
def GetCppWrapperType(kind):
    if isinstance(kind, (mojom.Struct, mojom.Enum)):
        return GetNameForKind(kind)
    if isinstance(kind, mojom.Array):
        return "mojo::Array<%s >" % GetCppArrayArgWrapperType(kind.kind)
    if isinstance(kind, mojom.Interface):
        return "mojo::Passable<%sHandle>" % kind.name
    if kind.spec == 's':
        return "mojo::String"
    if mojom_generator.IsHandleKind(kind):
        return "mojo::Passable<%s>" % _kind_to_cpp_type[kind]
    return _kind_to_cpp_type[kind]
예제 #2
0
def GetCppWrapperType(kind):
    if isinstance(kind, mojom.Struct):
        return kind.GetFullName("::")
    if isinstance(kind, mojom.Array):
        return "mojo::Array<%s >" % GetCppArrayArgWrapperType(kind.kind)
    if isinstance(kind, mojom.Interface):
        return "mojo::Passable<typename mojo::Interface<%s>::Handle>" % kind.name
    if kind.spec == 's':
        return "mojo::String"
    if mojom_generator.IsHandleKind(kind):
        return "mojo::Passable<%s>" % _kind_to_cpp_type[kind]
    return _kind_to_cpp_type[kind]
예제 #3
0
def IsStructWithHandles(struct):
    for pf in struct.packed.packed_fields:
        if mojom_generator.IsHandleKind(pf.field.kind):
            return True
    return False