<link rel="stylesheet" href="../style.css" />

[TOC]
# test.protocolrequest



## **PROTOCOLS**

## Child {#Child}
*Defined in [test.protocolrequest/protocol_request.test.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:tools/fidl/fidlc/testdata/protocol_request.test.fidl;l=3)*


## Parent {#Parent}
*Defined in [test.protocolrequest/protocol_request.test.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:tools/fidl/fidlc/testdata/protocol_request.test.fidl;l=5)*


### GetChild {#Parent.GetChild}




#### Request {#Parent.GetChild_Request}

&lt;EMPTY&gt;


#### Response {#Parent.GetChild_Response}

<table>
    <tr><th>Name</th><th>Type</th></tr>
        <tr>
            <td><code>c</code></td>
            <td>
                <code>client_end:<a class='link' href='#Child'>Child</a></code>
            </td>
        </tr>
</table>

### GetChildRequest {#Parent.GetChildRequest}




#### Request {#Parent.GetChildRequest_Request}

&lt;EMPTY&gt;


#### Response {#Parent.GetChildRequest_Response}

<table>
    <tr><th>Name</th><th>Type</th></tr>
        <tr>
            <td><code>r</code></td>
            <td>
                <code>server_end:<a class='link' href='#Child'>Child</a></code>
            </td>
        </tr>
</table>

### TakeChild {#Parent.TakeChild}




#### Request {#Parent.TakeChild_Request}

<table>
    <tr><th>Name</th><th>Type</th></tr>
        <tr>
            <td><code>c</code></td>
            <td>
                <code>client_end:<a class='link' href='#Child'>Child</a></code>
            </td>
        </tr>
</table>


### TakeChildRequest {#Parent.TakeChildRequest}




#### Request {#Parent.TakeChildRequest_Request}

<table>
    <tr><th>Name</th><th>Type</th></tr>
        <tr>
            <td><code>r</code></td>
            <td>
                <code>server_end:<a class='link' href='#Child'>Child</a></code>
            </td>
        </tr>
</table>








