| // Copyright 2024 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| import cpp |
| |
| /* Mojo C++ Interface */ |
| class MojoCppInterface extends Class { |
| MojoCppInterface() { |
| this.getQualifiedName().matches("%::mojom::%") and |
| this.getAMember().hasName("Proxy_") |
| } |
| } |
| |
| /* Mojo Interface Implementation*/ |
| class MojoInterfaceImpl extends Class { |
| MojoInterfaceImpl() { |
| this.getABaseClass+() instanceof MojoCppInterface and |
| not this.isAbstract() and |
| not this.getQualifiedName().matches("%::mojom::%") |
| } |
| |
| MemberFunction getAMethod() { |
| result = this.getAMemberFunction() and |
| result.overrides(this.getABaseClass+().getAMemberFunction()) and |
| not result instanceof Constructor and |
| not result instanceof Destructor |
| } |
| } |