You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by gi...@apache.org on 2018/06/28 18:44:54 UTC
[01/50] mesos-site git commit: Updated the website built from mesos
SHA: 7c9c72d.
Repository: mesos-site
Updated Branches:
refs/heads/asf-site 9812c25a1 -> 09fd03018
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/sitemap.xml
----------------------------------------------------------------------
diff --git a/content/sitemap.xml b/content/sitemap.xml
index dbc5ae5..823ca8b 100644
--- a/content/sitemap.xml
+++ b/content/sitemap.xml
@@ -2,18606 +2,18662 @@
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>http://mesos.apache.org/downloads/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/fetcher-cache-internals/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/allocation-module/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/api-client-libraries/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/attributes-resources/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/reconciliation/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/architecture/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/operator-http-api/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/advanced-contribution/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/mesos-containerizer/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/fault-domains/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/versioning/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/framework-rate-limiting/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/containerizers/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/shared-resources/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/oversubscription/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/maintenance/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/developer-guide/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/markdown-style-guide/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/operational-guide/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/fetcher/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/frameworks/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/reporting-an-issue/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/resource-provider/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/configuration/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/cmake/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/upgrades/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/scheduler-http-api/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/task-state-reasons/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/nested-container-and-task-group/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/secrets/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/authentication/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/roles/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/powered-by-mesos/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/tools/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/windows/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/high-availability-framework-guide/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/building/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/cni/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/app-framework-development-guide/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/networking-for-mesos-managed-containers/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/agent-recovery/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/reservation/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/release-guide/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/isolators/namespaces-pid/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/isolators/disk-xfs/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/isolators/linux-devices/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/isolators/filesystems/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/isolators/network-port-mapping/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/isolators/disk-du/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/isolators/windows/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/isolators/cgroups-devices/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/isolators/linux-capabilities/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/isolators/namespaces-ipc/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/isolators/cgroups-cpu/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/isolators/filesystem-shared/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/isolators/posix-rlimits/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/isolators/docker-runtime/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/isolators/cgroups-net-cls/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/isolators/network-ports/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/isolators/cgroups-blkio/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/isolators/docker-volume/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/presentations/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/endpoints/logging/toggle/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/endpoints/profiler/stop/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/endpoints/profiler/start/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/endpoints/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/endpoints/slave/flags/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/endpoints/slave/health/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/endpoints/slave/state.json/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/endpoints/slave/containers/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/endpoints/slave/api/v1/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/endpoints/slave/api/v1/executor/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/endpoints/slave/api/v1/resource_provider/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/endpoints/slave/monitor/statistics/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/endpoints/slave/monitor/statistics.json/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/endpoints/slave/state/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/endpoints/metrics/snapshot/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/endpoints/system/stats.json/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/endpoints/registrar/registry/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/endpoints/version/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/endpoints/master/teardown/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/endpoints/master/flags/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/endpoints/master/health/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/endpoints/master/state.json/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/endpoints/master/frameworks/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/endpoints/master/maintenance/status/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/endpoints/master/maintenance/schedule/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/endpoints/master/create-volumes/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/endpoints/master/unreserve/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/endpoints/master/slaves/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/endpoints/master/roles/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/endpoints/master/redirect/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/endpoints/master/api/v1/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/endpoints/master/api/v1/scheduler/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/endpoints/master/state-summary/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/endpoints/master/weights/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/endpoints/master/machine/down/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/endpoints/master/machine/up/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/endpoints/master/destroy-volumes/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/endpoints/master/roles.json/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/endpoints/master/state/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/endpoints/master/tasks/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/endpoints/master/reserve/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/endpoints/master/tasks.json/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/endpoints/master/quota/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/endpoints/files/browse.json/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/endpoints/files/download/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/endpoints/files/debug.json/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/endpoints/files/read.json/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/endpoints/files/read/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/endpoints/files/debug/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/endpoints/files/browse/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/endpoints/files/download.json/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/replicated-log-internals/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/weights/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/container-image/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/documentation-guide/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/gpu-support/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/clang-format/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/cmake-examples/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/health-checks/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/committers/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/ssl/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/beginner-contribution/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/multiple-disk/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/modules/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/design-docs/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/persistent-volume/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/monitoring/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/deploy-scripts/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/engineering-principles-and-practices/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/reopening-reviews/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/doxygen-style-guide/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/executor-http-api/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/configuration/cmake/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/configuration/master/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/configuration/master-and-agent/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/configuration/agent/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/configuration/autotools/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/configuration/libprocess/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/roadmap/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/recordio/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/docker-containerizer/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/committing/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/testing-patterns/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/logging/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/memory-profiling/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/c++-style-guide/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/committer-candidate-checklist/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/authorization/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/sandbox/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/containerizer-internals/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/container-volume/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/high-availability/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/effective-code-reviewing/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/networking/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/csi/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/cquery/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/documentation/latest/quota/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/blog/dev-community-status/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/blog/mesos-0-18-0-released/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/blog/mesos-1-3-0-released/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/blog/mesos-1-0-0-released/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/blog/mesos-0-19-0-released/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/blog/mesos-1-2-2-released/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/blog/mesos-community-survey-2014-results/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/blog/mesos-0-16-0-released/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/blog/mesos-0-20-1-released/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/blog/mesos-0-21-1-released/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/blog/mesoscon-seattle-preconference-and-social-activities/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/blog/storage-developments-in-apache-mesos/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/blog/mesos-0-17-0-released-featuring-autorecovery/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/blog/announcing-mesoscon-eu-2015-hackathon/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/blog/mesos-0-18-1-and-0-18-2-released/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/blog/mesos-1-1-1-released/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/blog/mesos-1-1-3-released/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/blog/mesos-0-25-0-released/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/blog/mesos-0-14-2-released/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/blog/slave-recovery-in-apache-mesos/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/blog/mesos-0-22-0-released/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/blog/mesoscon-europe-2015-schedule-announced/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/blog/mesos-community-update-1/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/blog/mesos-1-6-0-released/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/blog/mesos-1-0-2-released/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/blog/mesos-0-28-2-released/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/blog/mesos-0-26-0-released/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/blog/mesos-1-4-0-released/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/blog/mesos-0-27-0-released/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/blog/mesos-0-27-2-released/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/blog/mesos-1-1-0-released/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/blog/performance-working-group-progress-report/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/blog/framework-authentication-in-apache-mesos-0-15-0/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/blog/mesos-0-19-1-released/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/blog/niklas-nielsen-becomes-mesos-committer/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/blog/mesoscon-goes-europe/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/blog/mesos-0-27-3-released/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/blog/mesos-0-23-0-released/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/blog/mesos-0-24-0-released/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/blog/mesos-0-21-0-released/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/blog/mesos-0-28-3-released/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/blog/mesoscon-2016-cfp-is-now-open/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/blog/mesos-1-2-0-released/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/blog/mesos-1-0-3-released/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/blog/mesos-1-5-0-released/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/blog/mesos-1-0-1-released/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/blog/mesos-0-28-0-released/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/blog/mesos-1-3-1-released/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/blog/mesoscon-2015-earlybird-registration-now-open/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/blog/mesoscon-seattle-keynote-speakers-announced/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/blog/mesos-0-24-1-and-more-released/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/blog/mesoscon-2014-hackathon-details-announced/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/blog/register-for-mesoscon-seattle-save/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/blog/mesos-1-0-4-released/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/blog/mesos-1-4-1-released/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/blog/mesos-0-20-0-released/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/blog/mesoscon-2014-program-announced/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/blog/mesos-1-2-1-released/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/blog/mesos-0-26-1-and-more-released/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/blog/mesos-0-22-1-released/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/blog/mesos-1-5-1-released/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/blog/mesos-1-2-3-released/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/blog/mesos-0-27-1-released/</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/deferred_8hpp.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/classmesos_1_1internal_1_1slave_1_1PosixRLimitsIsolatorProcess.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/classmesos_1_1internal_1_1slave_1_1MesosContainerizerLaunch.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/classmesos_1_1internal_1_1slave_1_1NvidiaGpuAllocator-members.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/classKernelSemaphore.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/type__utils_8hpp_source.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/structJSON_1_1False-members.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/metadata__manager_8hpp.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/posix_2xattr_8hpp_source.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/namespacemesos_1_1internal_1_1slave_1_1docker_1_1paths.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/assert_8hpp_source.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/windows_2copyfile_8hpp_source.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/port__mapping_8hpp_source.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/structstd_1_1hash_3_01mesos_1_1v1_1_1OfferID_01_4.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/classmesos_1_1internal_1_1slave_1_1NvidiaGpuIsolatorProcess-members.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/windows_2stat_8hpp_source.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/classErrnoError-members.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/structrouting_1_1filter_1_1ip_1_1Classifier-members.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/rpc_8hpp_source.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/dir_ac0d5732b3e7205de08d9f0746079405.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/windows_2which_8hpp.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/include_2mesos_2log_2log_8hpp.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/uri_2fetchers_2docker_8hpp.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/structos_1_1Fork.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/structprocess_1_1http_1_1Server_1_1StopOptions-members.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/classprocess_1_1RunQueue-members.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/once_8hpp.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/structmesos_1_1csi_1_1v0_1_1RPCTraits_3_01GET__CAPACITY_01_4.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/namespacecgroups.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/classprocess_1_1internal_1_1ReaperProcess.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/classDuration-members.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/3rdparty_2stout_2include_2stout_2posix_2fs_8hpp.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/classmesos_1_1internal_1_1storage_1_1UriDiskProfileAdaptorProcess-members.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/structmesos_1_1internal_1_1master_1_1Slave_1_1ResourceProvider-members.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/globals_k.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/structcpp14_1_1integer__sequence-members.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/libprocess_2include_2process_2check_8hpp.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/structmesos_1_1modules_1_1Module_3_01mesos_1_1slave_1_1QoSController_01_4-members.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/structstd_1_1hash_3_01mesos_1_1v1_1_1ExecutorID_01_4-members.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/veth_8hpp_source.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/src_2tests_2utils_8hpp_source.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/structmesos_1_1UnavailableResources.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/slave_2containerizer_2mesos_2isolators_2network_2cni_2paths_8hpp.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/structmesos_1_1csi_1_1paths_1_1ContainerPath-members.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/src_2slave_2containerizer_2mesos_2provisioner_2constants_8hpp.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/structNothing.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/posix_2pipe_8hpp.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/classmesos_1_1internal_1_1tests_1_1MockContainerizer-members.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/classmesos_1_1internal_1_1cram__md5_1_1CRAMMD5Authenticator.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/linux_2capabilities_8hpp_source.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/namespacemembers_m.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/classmesos_1_1internal_1_1log_1_1tool_1_1Read-members.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/blkio_8hpp.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/dir_bb73beb2dd8d32dce3b26aedcb6ae837.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/environment__secret_8hpp_source.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/structprocess_1_1http_1_1Unauthorized.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/classmesos_1_1internal_1_1master_1_1maintenance_1_1UpdateSchedule.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/classmesos_1_1internal_1_1ResourceProviderManager-members.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/libprocess_2include_2process_2check_8hpp_source.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/structmesos_1_1internal_1_1RequestMediaTypes-members.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/module_2secret__generator_8hpp.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/structmesos_1_1csi_1_1v0_1_1ControllerCapabilities.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/classmesos_1_1internal_1_1slave_1_1Launcher-members.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/classmesos_1_1internal_1_1Files-members.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/dir_fbb1f3397356a940a2dbc4baf07ee5bb.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/fork_8hpp.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/memory_8hpp_source.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/classmesos_1_1uri_1_1CurlFetcherPlugin-members.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/posix_2mktemp_8hpp.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/collect_8hpp_source.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/queue_8hpp_source.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/svn_8hpp.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/classmesos_1_1internal_1_1slave_1_1NoopResourceEstimator.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/src_2master_2master_8hpp_source.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/classmesos_1_1internal_1_1tests_1_1TestAllocator.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/dir_251697ed71d3107a084c4be76de6bea7.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/mock__containerizer_8hpp.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/v1_2scheduler_8hpp.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/structmesos_1_1internal_1_1tests_1_1common_1_1DefaultCredential2-members.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/include_2mesos_2zookeeper_2detector_8hpp_source.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/classjava_1_1net_1_1InetSocketAddress.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/namespacemesos_1_1internal_1_1build.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/systemd_8hpp.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/structmesos_1_1csi_1_1v0_1_1RPCTraits_3_01CONTROLLER__PUBLISH__VOLUME_01_4.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/structmesos_1_1csi_1_1v0_1_1RPCTraits_3_01DELETE__VOLUME_01_4.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/structDocker_1_1Device.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/rwlock_8hpp.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/classNanoseconds.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/structstd_1_1hash_3_01process_1_1network_1_1inet4_1_1Address_01_4-members.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/namespacemesos_1_1internal_1_1tests_1_1v1_1_1scheduler.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/structprocess_1_1Deferred.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/classmesos_1_1internal_1_1slave_1_1PosixIsolatorProcess-members.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/structid_1_1UUID.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/structJNI-members.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/include_2mesos_2module_2detector_8hpp_source.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/namespacerouting_1_1filter_1_1icmp.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/structstd_1_1hash_3_01net_1_1IPv4_01_4-members.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/xattr_8hpp.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/structstd_1_1hash_3_01mesos_1_1TaskStatus__Reason_01_4.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/http__connection_8hpp_source.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/duration_8hpp_source.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/structmesos_1_1internal_1_1master_1_1Role-members.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/posix_2dynamiclibrary_8hpp.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/classmesos_1_1internal_1_1log_1_1tool_1_1Replica.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/classmesos_1_1internal_1_1master_1_1weights_1_1UpdateWeights.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/namespacemesos_1_1resource__provider.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/gate_8hpp_source.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/classrecordio_1_1Encoder.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/dir_27832e6c74c2ee170d1dd05a196f816c.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/structmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1Metrics.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/src_2master_2metrics_8hpp.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/basic_8hpp_source.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/duration_8hpp.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/posix_2sendfile_8hpp.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/include_2mesos_2maintenance_2maintenance_8hpp_source.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/classmesos_1_1internal_1_1master_1_1Master-members.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/include_2mesos_2authentication_2http_2authenticatee_8hpp.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/structstd_1_1hash_3_01process_1_1network_1_1inet_1_1Address_01_4.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/structmesos_1_1modules_1_1Module_3_01mesos_1_1DiskProfileAdaptor_01_4.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/functions_r.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/classmesos_1_1state_1_1LevelDBStorage-members.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/classmesos_1_1internal_1_1cram__md5_1_1InMemoryAuxiliaryPropertyPlugin-members.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/src_2logging_2logging_8hpp.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/build_8hpp_source.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/slave_8hpp_source.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/icmp_8hpp_source.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/classmesos_1_1internal_1_1tests_1_1MockScheduler.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/windows_2dynamiclibrary_8hpp.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/posix_2ftruncate_8hpp.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/agent_2agent_8hpp.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/mem_8hpp_source.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/slave_2containerizer_2mesos_2launcher_8hpp.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/structmesos_1_1internal_1_1master_1_1Master_1_1Subscribers_1_1Subscriber.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/slave_2containerizer_2mesos_2provisioner_2appc_2store_8hpp.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/src_2slave_2containerizer_2mesos_2isolators_2xfs_2utils_8hpp.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/structmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess_1_1Framework-members.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/dir_0551c3d4c458bd0ac3ce38817955e8b6.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/structJSON_1_1Boolean-members.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/uri_2schemes_2docker_8hpp_source.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/dir_52f70fc1ae119f1f37c8704e01e68865.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/classprocess_1_1FileEncoder-members.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/dir_9ca69b4b1b6e4d90a2c00acee53f9828.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/classorg_1_1apache_1_1zookeeper_1_1server_1_1ZooKeeperServer.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/classSSLTemporaryDirectoryTest.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/roles_8hpp.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/dir_f00e901499d154ec09950234dd4b6079.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/namespaceorg.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/checks__runtime_8hpp.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/namespacelambda.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/structmesos_1_1internal_1_1slave_1_1Slave_1_1RecoveryInfo-members.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/globals_e.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/timeout_8hpp_source.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/structprocess_1_1Message.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/classnet_1_1IP_1_1Network-members.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/slave_2containerizer_2mesos_2isolators_2posix_2rlimits_8hpp_source.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/classmesos_1_1internal_1_1cram__md5_1_1InMemoryAuxiliaryPropertyPlugin.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/structmesos_1_1internal_1_1ResourceProviderMessage_1_1Disconnect.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/classprocess_1_1ProcessReference-members.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/structmesos_1_1internal_1_1checks_1_1runtime_1_1Nested.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/resolver_8hpp_source.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/classprocess_1_1metrics_1_1Timer.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/structmesos_1_1internal_1_1checks_1_1runtime_1_1Plain.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/posix_2chroot_8hpp.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/pagesize_8hpp.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/structboost_1_1icl_1_1interval__traits_3_01Interval_3_01T_01_4_01_4.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/3rdparty_2stout_2include_2stout_2windows_8hpp.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/classmesos_1_1internal_1_1slave_1_1PortMappingUpdate-members.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/structstd_1_1hash_3_01net_1_1IP_01_4.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/classmesos_1_1slave_1_1ResourceEstimator-members.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/classmesos_1_1internal_1_1slave_1_1VolumeSandboxPathIsolatorProcess-members.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/structlambda_1_1internal_1_1Expand_3_010_01_4.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/classmesos_1_1internal_1_1slave_1_1Fetcher.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/classmesos_1_1internal_1_1slave_1_1MesosContainerizerProcess-members.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/structstd_1_1hash_3_01Option_3_01T_01_4_01_4-members.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/resource__provider_2registry_8hpp_source.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/signals_8hpp.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/authentication_2secret__generator_8hpp_source.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/src_2examples_2flags_8hpp.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/structAtLeastOneIsSameOrConvertible.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/classmesos_1_1Authorizer-members.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/structprocess_1_1http_1_1NotFound-members.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/classprocess_1_1Shared-members.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/namespacerouting_1_1filter_1_1basic.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/classmesos_1_1IDAcceptor-members.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/image_8hpp_source.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/classmesos_1_1internal_1_1StorageLocalResourceProvider.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/namespacemembers_g.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/acls_8hpp_source.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/fcntl_8hpp_source.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/close_8hpp.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/windows_2shell_8hpp_source.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/dir_35c8ff4668e5819502b5d29320c39425.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/namespacesched.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/globals_a.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/structmesos_1_1internal_1_1master_1_1HttpConnection.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/structmesos_1_1modules_1_1Module_3_01TestModule_01_4-members.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/classmesos_1_1internal_1_1slave_1_1WindowsCpuIsolatorProcess-members.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/posix_2fsync_8hpp.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/src_2master_2allocator_2sorter_2random_2utils_8hpp_source.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/provider_8hpp_source.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/include_2mesos_2master_2master_8hpp.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/src_2log_2log_8hpp.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/in__memory_8hpp.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/structstd_1_1hash_3_01process_1_1UPID_01_4-members.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/classmesos_1_1log_1_1Log_1_1Entry.html</loc>
- <lastmod>2018-06-27T00:00:00+00:00</lastmod>
+ <lastmod>2018-06-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://mesos.apache.org/api/latest/c++/structLambdaTraits_3_01Result_07Class_1_1_5_08_07Args_8_8_8_08_01const_01
<TRUNCATED>
[14/50] mesos-site git commit: Updated the website built from mesos
SHA: 7c9c72d.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/src_2posix_2subprocess_8hpp.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/src_2posix_2subprocess_8hpp.html b/content/api/latest/c++/src_2posix_2subprocess_8hpp.html
new file mode 100644
index 0000000..6341ac6
--- /dev/null
+++ b/content/api/latest/c++/src_2posix_2subprocess_8hpp.html
@@ -0,0 +1,108 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.11"/>
+<title>Apache Mesos: 3rdparty/libprocess/src/posix/subprocess.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">Apache Mesos
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="pages.html"><span>Related Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li><a href="examples.html"><span>Examples</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ <li><a href="globals.html"><span>File Members</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_8cab8f464681f7cc51cee77e79a434cd.html">3rdparty</a></li><li class="navelem"><a class="el" href="dir_043a76de98701f9bddf61b5e98f305ff.html">libprocess</a></li><li class="navelem"><a class="el" href="dir_01cbbd8dcbf9de3825992568658f467e.html">src</a></li><li class="navelem"><a class="el" href="dir_0ac73505685689cb4a842e520ca4cca6.html">posix</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#namespaces">Namespaces</a> |
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">subprocess.hpp File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include <sys/types.h></code><br />
+<code>#include <string></code><br />
+<code>#include <glog/logging.h></code><br />
+<code>#include <<a class="el" href="include_2process_2subprocess_8hpp_source.html">process/subprocess.hpp</a>></code><br />
+<code>#include <<a class="el" href="stout_2include_2stout_2check_8hpp_source.html">stout/check.hpp</a>></code><br />
+<code>#include <<a class="el" href="error_8hpp_source.html">stout/error.hpp</a>></code><br />
+<code>#include <<a class="el" href="exit_8hpp_source.html">stout/exit.hpp</a>></code><br />
+<code>#include <<a class="el" href="foreach_8hpp_source.html">stout/foreach.hpp</a>></code><br />
+<code>#include <<a class="el" href="hashset_8hpp_source.html">stout/hashset.hpp</a>></code><br />
+<code>#include <<a class="el" href="nothing_8hpp_source.html">stout/nothing.hpp</a>></code><br />
+<code>#include <<a class="el" href="lambda_8hpp_source.html">stout/lambda.hpp</a>></code><br />
+<code>#include <<a class="el" href="none_8hpp_source.html">stout/none.hpp</a>></code><br />
+<code>#include <<a class="el" href="option_8hpp_source.html">stout/option.hpp</a>></code><br />
+<code>#include <<a class="el" href="os_8hpp_source.html">stout/os.hpp</a>></code><br />
+<code>#include <<a class="el" href="try_8hpp_source.html">stout/try.hpp</a>></code><br />
+<code>#include <<a class="el" href="unreachable_8hpp_source.html">stout/unreachable.hpp</a>></code><br />
+<code>#include <<a class="el" href="close_8hpp_source.html">stout/os/close.hpp</a>></code><br />
+<code>#include <<a class="el" href="3rdparty_2stout_2include_2stout_2os_2environment_8hpp_source.html">stout/os/environment.hpp</a>></code><br />
+<code>#include <<a class="el" href="fcntl_8hpp_source.html">stout/os/fcntl.hpp</a>></code><br />
+<code>#include <<a class="el" href="signals_8hpp_source.html">stout/os/signals.hpp</a>></code><br />
+<code>#include <<a class="el" href="strerror_8hpp_source.html">stout/os/strerror.hpp</a>></code><br />
+</div>
+<p><a href="src_2posix_2subprocess_8hpp_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceprocess"><td class="memItemLeft" align="right" valign="top">  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceprocess.html">process</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:namespaceprocess_1_1internal"><td class="memItemLeft" align="right" valign="top">  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceprocess_1_1internal.html">process::internal</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:af2f19b6f367cddc0c8283560a9cd9215"><td class="memItemLeft" align="right" valign="top"><a class="el" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ab03ced250ed239bc3b50b669493997f9">pid_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceprocess_1_1internal.html#af2f19b6f367cddc0c8283560a9cd9215">process::internal::defaultClone</a> (const lambda::function< int()> &func)</td></tr>
+<tr class="separator:af2f19b6f367cddc0c8283560a9cd9215"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a345a534b82b79bf20333fb6faef43e93"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classTry.html">Try</a>< <a class="el" href="structNothing.html">Nothing</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceprocess_1_1internal.html#a345a534b82b79bf20333fb6faef43e93">process::internal::cloexec</a> (const InputFileDescriptors &stdinfds, const OutputFileDescriptors &stdoutfds, const OutputFileDescriptors &stderrfds)</td></tr>
+<tr class="separator:a345a534b82b79bf20333fb6faef43e93"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a902e2646d88c41ce674a3009cafe0aad"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceprocess_1_1internal.html#a902e2646d88c41ce674a3009cafe0aad">process::internal::childMain</a> (const std::string &path, char **argv, char **envp, const InputFileDescriptors &stdinfds, const OutputFileDescriptors &stdoutfds, const OutputFileDescriptors &stderrfds, bool blocking, int pipes[2], const std::vector< Subprocess::ChildHook > &child_hooks)</td></tr>
+<tr class="separator:a902e2646d88c41ce674a3009cafe0aad"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:afe2c3a3ffdd0ee6fda82e198ece80a37"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classTry.html">Try</a>< <a class="el" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ab03ced250ed239bc3b50b669493997f9">pid_t</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceprocess_1_1internal.html#afe2c3a3ffdd0ee6fda82e198ece80a37">process::internal::cloneChild</a> (const std::string &path, std::vector< std::string > argv, const <a class="el" href="classOption.html">Option</a>< std::map< std::string, std::string >> &environment, const <a class="el" href="classOption.html">Option</a>< lambda::function< <a class="el" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ab03ced250ed239bc3b50b669493997f9">pid_t</a>(const lambda::function< int()> &)>> &_clone, const std::vector< Subprocess::ParentHook > &parent_hooks, const std::vector< Subpr
ocess::ChildHook > &child_hooks, const InputFileDescriptors stdinfds, const OutputFileDescriptors stdoutfds, const OutputFileDescriptors stderrfds)</td></tr>
+<tr class="separator:afe2c3a3ffdd0ee6fda82e198ece80a37"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.11
+</small></address>
+</body>
+</html>
[11/50] mesos-site git commit: Updated the website built from mesos
SHA: 7c9c72d.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/src_2windows_2subprocess_8hpp.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/src_2windows_2subprocess_8hpp.html b/content/api/latest/c++/src_2windows_2subprocess_8hpp.html
new file mode 100644
index 0000000..2b24fa4
--- /dev/null
+++ b/content/api/latest/c++/src_2windows_2subprocess_8hpp.html
@@ -0,0 +1,97 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.11"/>
+<title>Apache Mesos: 3rdparty/libprocess/src/windows/subprocess.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">Apache Mesos
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="pages.html"><span>Related Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li><a href="examples.html"><span>Examples</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ <li><a href="globals.html"><span>File Members</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_8cab8f464681f7cc51cee77e79a434cd.html">3rdparty</a></li><li class="navelem"><a class="el" href="dir_043a76de98701f9bddf61b5e98f305ff.html">libprocess</a></li><li class="navelem"><a class="el" href="dir_01cbbd8dcbf9de3825992568658f467e.html">src</a></li><li class="navelem"><a class="el" href="dir_4f303781ded361ff602a549327c53cc9.html">windows</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#namespaces">Namespaces</a> |
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">subprocess.hpp File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include <signal.h></code><br />
+<code>#include <array></code><br />
+<code>#include <string></code><br />
+<code>#include <glog/logging.h></code><br />
+<code>#include <<a class="el" href="include_2process_2subprocess_8hpp_source.html">process/subprocess.hpp</a>></code><br />
+<code>#include <<a class="el" href="error_8hpp_source.html">stout/error.hpp</a>></code><br />
+<code>#include <<a class="el" href="foreach_8hpp_source.html">stout/foreach.hpp</a>></code><br />
+<code>#include <<a class="el" href="hashset_8hpp_source.html">stout/hashset.hpp</a>></code><br />
+<code>#include <<a class="el" href="option_8hpp_source.html">stout/option.hpp</a>></code><br />
+<code>#include <<a class="el" href="os_8hpp_source.html">stout/os.hpp</a>></code><br />
+<code>#include <<a class="el" href="shell_8hpp_source.html">stout/os/shell.hpp</a>></code><br />
+<code>#include <<a class="el" href="try_8hpp_source.html">stout/try.hpp</a>></code><br />
+<code>#include <<a class="el" href="3rdparty_2stout_2include_2stout_2windows_8hpp_source.html">stout/windows.hpp</a>></code><br />
+<code>#include <<a class="el" href="close_8hpp_source.html">stout/os/close.hpp</a>></code><br />
+<code>#include <<a class="el" href="3rdparty_2stout_2include_2stout_2os_2environment_8hpp_source.html">stout/os/environment.hpp</a>></code><br />
+<code>#include <userEnv.h></code><br />
+</div>
+<p><a href="src_2windows_2subprocess_8hpp_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceprocess"><td class="memItemLeft" align="right" valign="top">  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceprocess.html">process</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:namespaceprocess_1_1internal"><td class="memItemLeft" align="right" valign="top">  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceprocess_1_1internal.html">process::internal</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a32020f2bbbcc116f2e055e209b4b8ce7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classTry.html">Try</a><::<a class="el" href="structinternal_1_1windows_1_1ProcessData.html">internal::windows::ProcessData</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceprocess_1_1internal.html#a32020f2bbbcc116f2e055e209b4b8ce7">process::internal::createChildProcess</a> (const std::string &path, const std::vector< std::string > &argv, const <a class="el" href="classOption.html">Option</a>< std::map< std::string, std::string >> &environment, const std::vector< Subprocess::ParentHook > &parent_hooks, const InputFileDescriptors &stdinfds, const OutputFileDescriptors &stdoutfds, const OutputFileDescriptors &stderrfds, const std::vector< <a class="el" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> > &whitelist_fds={})</td></tr>
+<tr class="separator:a32020f2bbbcc116f2e055e209b4b8ce7"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.11
+</small></address>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/src_2windows_2subprocess_8hpp_source.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/src_2windows_2subprocess_8hpp_source.html b/content/api/latest/c++/src_2windows_2subprocess_8hpp_source.html
new file mode 100644
index 0000000..b1702a1
--- /dev/null
+++ b/content/api/latest/c++/src_2windows_2subprocess_8hpp_source.html
@@ -0,0 +1,100 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.11"/>
+<title>Apache Mesos: 3rdparty/libprocess/src/windows/subprocess.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">Apache Mesos
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="pages.html"><span>Related Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li><a href="examples.html"><span>Examples</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ <li><a href="globals.html"><span>File Members</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_8cab8f464681f7cc51cee77e79a434cd.html">3rdparty</a></li><li class="navelem"><a class="el" href="dir_043a76de98701f9bddf61b5e98f305ff.html">libprocess</a></li><li class="navelem"><a class="el" href="dir_01cbbd8dcbf9de3825992568658f467e.html">src</a></li><li class="navelem"><a class="el" href="dir_4f303781ded361ff602a549327c53cc9.html">windows</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">subprocess.hpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="src_2windows_2subprocess_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// Licensed under the Apache License, Version 2.0 (the "License");</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// you may not use this file except in compliance with the License.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// You may obtain a copy of the License at</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span clas
s="comment">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// Unless required by applicable law or agreed to in writing, software</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">// distributed under the License is distributed on an "AS IS" BASIS,</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">// See the License for the specific language governing permissions and</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// limitations under the License</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> </
div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#ifndef __PROCESS_WINDOWS_SUBPROCESS_HPP__</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#define __PROCESS_WINDOWS_SUBPROCESS_HPP__</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include <signal.h></span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> </div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include <array></span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include <string></span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> </d
iv><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <glog/logging.h></span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <<a class="code" href="include_2process_2subprocess_8hpp.html">process/subprocess.hpp</a>></span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> </div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <<a class="code" href="error_8hpp.html">stout/error.hpp</a>></span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include <<a class="code" href="foreach_8hpp.html">stout/foreach.hpp</a>></span></div><div class="line"><a name="l00027"></a><span class="lineno"> 2
7</span> <span class="preprocessor">#include <<a class="code" href="hashset_8hpp.html">stout/hashset.hpp</a>></span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include <<a class="code" href="option_8hpp.html">stout/option.hpp</a>></span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include <<a class="code" href="os_8hpp.html">stout/os.hpp</a>></span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include <<a class="code" href="shell_8hpp.html">stout/os/shell.hpp</a>></span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include <<a class="code" href="try_8hpp.html">stout/try.hpp</a>></span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="prepro
cessor">#include <<a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html">stout/windows.hpp</a>></span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> </div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#include <<a class="code" href="close_8hpp.html">stout/os/close.hpp</a>></span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include <<a class="code" href="3rdparty_2stout_2include_2stout_2os_2environment_8hpp.html">stout/os/environment.hpp</a>></span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> </div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#include <userEnv.h></span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div><div class="line"><a name="
l00039"></a><span class="lineno"> 39</span> <span class="keyword">namespace </span><a class="code" href="namespaceprocess.html">process</a> {</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="keyword">namespace </span><a class="code" href="namespaceinternal.html">internal</a> {</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> </div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="comment">// NOTE: We are expecting that components of `argv` that need to be quoted</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="comment">// (for example, paths with spaces in them like `C:\"Program Files"\foo.exe`)</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="comment">// to have been already quoted correctly before we generate `command`.</span></div><div c
lass="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="comment">// Incorrectly-quoted command arguments will probably lead the child process</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="comment">// to terminate with an error. See also NOTE on `process::subprocess`.</span></div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="namespaceprocess_1_1internal.html#a32020f2bbbcc116f2e055e209b4b8ce7"> 47</a></span> <span class="keyword">inline</span> <a class="code" href="classTry.html">Try<::internal::windows::ProcessData></a> <a class="code" href="namespaceprocess_1_1internal.html#a32020f2bbbcc116f2e055e209b4b8ce7">createChildProcess</a>(</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <span class="keyword">const</span> std::string& <a class="code" href="namespacepath.html">path</a>,</div><div class="line"><a name=
"l00049"></a><span class="lineno"> 49</span>  <span class="keyword">const</span> std::vector<std::string>& argv,</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option</a><std::map<std::string, std::string>>& <a class="code" href="namespacemesos_1_1internal_1_1tests.html#a1396c5e3b0a179220de2792d74770ec2">environment</a>,</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <span class="keyword">const</span> std::vector<Subprocess::ParentHook>& parent_hooks,</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <span class="keyword">const</span> <a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors.html">InputFileDescriptors</a>& stdinfds,</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span
class="keyword">const</span> <a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html">OutputFileDescriptors</a>& stdoutfds,</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="keyword">const</span> <a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html">OutputFileDescriptors</a>& stderrfds,</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="keyword">const</span> std::vector<int_fd>& whitelist_fds = {})</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span> {</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <span class="keyword">const</span> std::array<int_fd, 3> fds{</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  stdinfds.<a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors.
html#a0a3f315345ef7b7ee6f3f1d4d337854d">read</a>, stdoutfds.<a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html#a5dabb8e3008efd61ce42478f260b54ac">write</a>, stderrfds.<a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html#a5dabb8e3008efd61ce42478f260b54ac">write</a>};</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <a class="code" href="classTry.html">Try<::internal::windows::ProcessData></a> process_data =</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <a class="code" href="namespaceinternal_1_1windows.html#a039d5edd816cadff59dd60549c70aa41">::internal::windows::create_process</a>(</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  path,</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>
  argv,</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <a class="code" href="namespacemesos_1_1internal_1_1tests.html#a1396c5e3b0a179220de2792d74770ec2">environment</a>,</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <span class="keyword">true</span>, <span class="comment">// Create suspended.</span></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  fds,</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  whitelist_fds);</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span> </div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="comment">// Close the child-ends of the file descriptors that are created</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <span class="comment">// by this function.</
span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="keywordflow">foreach</span> (<span class="keyword">const</span> <a class="code" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a>& fd, fds) {</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <span class="keywordflow">if</span> (fd.is_valid()) {</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <a class="code" href="classTry.html">Try<Nothing></a> result = <a class="code" href="namespaceos.html#a8df77ec6d6b8d32d9b287a41bc74cfdc">os::close</a>(fd);</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="keywordflow">if</span> (result.<a class="code" href="classTry.html#a0b98f95163b8a38daafd1651b043a276">isError</a>()) {</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <span class="keywordflo
w">return</span> <a class="code" href="classError.html">Error</a>(result.<a class="code" href="classTry.html#aec4a11ddd3c036e889d90b7eb6258ba7">error</a>());</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  }</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  }</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  }</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span> </div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="keywordflow">if</span> (process_data.<a class="code" href="classTry.html#a0b98f95163b8a38daafd1651b043a276">isError</a>()) {</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <span class="keywordflow">return</span> <a class="code" href="classError.html">Error</a>(process_data.<a class="code" href="classTry.html#aec4a11ddd3c036e889d90b7eb6258ba7">error
</a>());</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  }</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span> </div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <span class="comment">// Run the parent hooks.</span></div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="keyword">const</span> <a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ab03ced250ed239bc3b50b669493997f9">pid_t</a> pid = process_data-><a class="code" href="structinternal_1_1windows_1_1ProcessData.html#a65a4a4aba5450087363bfffdb30eea25">pid</a>;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <span class="keywordflow">foreach</span> (<span class="keyword">const</span> <a class="code" href="structprocess_1_1Subprocess_1_1ParentHook.html">Subprocess::ParentHook</a>& hook, parent_hooks) {</div><div class="li
ne"><a name="l00087"></a><span class="lineno"> 87</span>  <a class="code" href="classTry.html">Try<Nothing></a> parent_setup = hook.<a class="code" href="structprocess_1_1Subprocess_1_1ParentHook.html#aaf9ff141314d619cd65cd8ec9320fb7d">parent_setup</a>(pid);</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span> </div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <span class="comment">// If the hook callback fails, we shouldn't proceed with the</span></div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <span class="comment">// execution and hence the child process should be killed.</span></div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <span class="keywordflow">if</span> (parent_setup.<a class="code" href="classTry.html#a0b98f95163b8a38daafd1651b043a276">isError</a>()) {</div><div class="line"><a name="l00092"></a><span class="
lineno"> 92</span>  <span class="comment">// Attempt to kill the process. Since it is still in suspended state, we</span></div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <span class="comment">// do not need to kill any descendents. We also can't use `os::kill_job`</span></div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <span class="comment">// because this process is not in a Job Object unless one of the parent</span></div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <span class="comment">// hooks added it.</span></div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  ::TerminateProcess(process_data-><a class="code" href="structinternal_1_1windows_1_1ProcessData.html#a96c76121644bd430e9ca67cf57636c0d">process_handle</a>.<a class="code" href="classSharedHandle.html#a800385e17e17cb826147968e748fd8fa">get_handle</a>
(), 1);</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span> </div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <span class="keywordflow">return</span> <a class="code" href="classError.html">Error</a>(</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <span class="stringliteral">"Failed to execute Parent Hook in child '"</span> + <a class="code" href="namespacens.html#a28116b46e6543597a11733424cd1aa20">stringify</a>(pid) +</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <span class="stringliteral">"' with command '"</span> + <a class="code" href="namespacens.html#a28116b46e6543597a11733424cd1aa20">stringify</a>(argv) + <span class="stringliteral">"': "</span> +</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  parent_setup.<a class="code" hr
ef="classTry.html#aec4a11ddd3c036e889d90b7eb6258ba7">error</a>());</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  }</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  }</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span> </div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <span class="comment">// Start child process.</span></div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <span class="keywordflow">if</span> (::ResumeThread(process_data-><a class="code" href="structinternal_1_1windows_1_1ProcessData.html#a7160cf48fc6e70d9390233b246b93bee">thread_handle</a>.<a class="code" href="classSharedHandle.html#a800385e17e17cb826147968e748fd8fa">get_handle</a>()) == -1) {</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <span class="keywordflow">return</span> <a class="code" href="c
lassWindowsError.html">WindowsError</a>(</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <span class="stringliteral">"Failed to resume child process with command '"</span> +</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <a class="code" href="namespacens.html#a28116b46e6543597a11733424cd1aa20">stringify</a>(argv) + <span class="stringliteral">"'"</span>);</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  }</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span> </div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <span class="keywordflow">return</span> process_data;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span> }</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span> </div><div class="line"><a name="l00115"></a><
span class="lineno"> 115</span> } <span class="comment">// namespace internal {</span></div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span> } <span class="comment">// namespace process {</span></div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span> </div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span> <span class="preprocessor">#endif // __PROCESS_WINDOWS_SUBPROCESS_HPP__</span></div><div class="ttc" id="namespacepath_html"><div class="ttname"><a href="namespacepath.html">path</a></div><div class="ttdef"><b>Definition:</b> path.hpp:26</div></div>
+<div class="ttc" id="classError_html"><div class="ttname"><a href="classError.html">Error</a></div><div class="ttdef"><b>Definition:</b> errorbase.hpp:36</div></div>
+<div class="ttc" id="classOption_html"><div class="ttname"><a href="classOption.html">Option</a></div><div class="ttdef"><b>Definition:</b> option.hpp:28</div></div>
+<div class="ttc" id="namespaceinternal_1_1windows_html_a039d5edd816cadff59dd60549c70aa41"><div class="ttname"><a href="namespaceinternal_1_1windows.html#a039d5edd816cadff59dd60549c70aa41">internal::windows::create_process</a></div><div class="ttdeci">Try< ProcessData > create_process(const std::string &command, const std::vector< std::string > &argv, const Option< std::map< std::string, std::string >> &environment, const bool create_suspended=false, const Option< std::array< int_fd, 3 >> &pipes=None(), const std::vector< int_fd > &whitelist_fds={})</div><div class="ttdef"><b>Definition:</b> shell.hpp:240</div></div>
+<div class="ttc" id="classSharedHandle_html_a800385e17e17cb826147968e748fd8fa"><div class="ttname"><a href="classSharedHandle.html#a800385e17e17cb826147968e748fd8fa">SharedHandle::get_handle</a></div><div class="ttdeci">HANDLE get_handle() const </div><div class="ttdef"><b>Definition:</b> windows.hpp:90</div></div>
+<div class="ttc" id="classTry_html"><div class="ttname"><a href="classTry.html">Try</a></div><div class="ttdef"><b>Definition:</b> check.hpp:33</div></div>
+<div class="ttc" id="include_2process_2subprocess_8hpp_html"><div class="ttname"><a href="include_2process_2subprocess_8hpp.html">subprocess.hpp</a></div></div>
+<div class="ttc" id="os_8hpp_html"><div class="ttname"><a href="os_8hpp.html">os.hpp</a></div></div>
+<div class="ttc" id="classWindowsError_html"><div class="ttname"><a href="classWindowsError.html">WindowsError</a></div><div class="ttdef"><b>Definition:</b> error.hpp:108</div></div>
+<div class="ttc" id="3rdparty_2stout_2include_2stout_2os_2environment_8hpp_html"><div class="ttname"><a href="3rdparty_2stout_2include_2stout_2os_2environment_8hpp.html">environment.hpp</a></div></div>
+<div class="ttc" id="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors_html_a0a3f315345ef7b7ee6f3f1d4d337854d"><div class="ttname"><a href="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors.html#a0a3f315345ef7b7ee6f3f1d4d337854d">process::Subprocess::IO::InputFileDescriptors::read</a></div><div class="ttdeci">int_fd read</div><div class="ttdef"><b>Definition:</b> subprocess.hpp:75</div></div>
+<div class="ttc" id="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors_html"><div class="ttname"><a href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html">process::Subprocess::IO::OutputFileDescriptors</a></div><div class="ttdoc">For output file descriptors a child writes to the write file descriptor and a parent may read from th...</div><div class="ttdef"><b>Definition:</b> subprocess.hpp:88</div></div>
+<div class="ttc" id="3rdparty_2stout_2include_2stout_2windows_8hpp_html"><div class="ttname"><a href="3rdparty_2stout_2include_2stout_2windows_8hpp.html">windows.hpp</a></div></div>
+<div class="ttc" id="namespaceprocess_1_1internal_html_a32020f2bbbcc116f2e055e209b4b8ce7"><div class="ttname"><a href="namespaceprocess_1_1internal.html#a32020f2bbbcc116f2e055e209b4b8ce7">process::internal::createChildProcess</a></div><div class="ttdeci">Try<::internal::windows::ProcessData > createChildProcess(const std::string &path, const std::vector< std::string > &argv, const Option< std::map< std::string, std::string >> &environment, const std::vector< Subprocess::ParentHook > &parent_hooks, const InputFileDescriptors &stdinfds, const OutputFileDescriptors &stdoutfds, const OutputFileDescriptors &stderrfds, const std::vector< int_fd > &whitelist_fds={})</div><div class="ttdef"><b>Definition:</b> subprocess.hpp:47</div></div>
+<div class="ttc" id="close_8hpp_html"><div class="ttname"><a href="close_8hpp.html">close.hpp</a></div></div>
+<div class="ttc" id="namespacemesos_1_1internal_1_1tests_html_a1396c5e3b0a179220de2792d74770ec2"><div class="ttname"><a href="namespacemesos_1_1internal_1_1tests.html#a1396c5e3b0a179220de2792d74770ec2">mesos::internal::tests::environment</a></div><div class="ttdeci">Environment * environment</div></div>
+<div class="ttc" id="3rdparty_2stout_2include_2stout_2windows_8hpp_html_ab03ced250ed239bc3b50b669493997f9"><div class="ttname"><a href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ab03ced250ed239bc3b50b669493997f9">pid_t</a></div><div class="ttdeci">DWORD pid_t</div><div class="ttdef"><b>Definition:</b> windows.hpp:181</div></div>
+<div class="ttc" id="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors_html_a5dabb8e3008efd61ce42478f260b54ac"><div class="ttname"><a href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html#a5dabb8e3008efd61ce42478f260b54ac">process::Subprocess::IO::OutputFileDescriptors::write</a></div><div class="ttdeci">int_fd write</div><div class="ttdef"><b>Definition:</b> subprocess.hpp:91</div></div>
+<div class="ttc" id="namespaceos_html_a8df77ec6d6b8d32d9b287a41bc74cfdc"><div class="ttname"><a href="namespaceos.html#a8df77ec6d6b8d32d9b287a41bc74cfdc">os::close</a></div><div class="ttdeci">Try< Nothing > close(int fd)</div><div class="ttdef"><b>Definition:</b> close.hpp:24</div></div>
+<div class="ttc" id="structinternal_1_1windows_1_1ProcessData_html_a96c76121644bd430e9ca67cf57636c0d"><div class="ttname"><a href="structinternal_1_1windows_1_1ProcessData.html#a96c76121644bd430e9ca67cf57636c0d">internal::windows::ProcessData::process_handle</a></div><div class="ttdeci">SharedHandle process_handle</div><div class="ttdef"><b>Definition:</b> shell.hpp:214</div></div>
+<div class="ttc" id="structinternal_1_1windows_1_1ProcessData_html_a7160cf48fc6e70d9390233b246b93bee"><div class="ttname"><a href="structinternal_1_1windows_1_1ProcessData.html#a7160cf48fc6e70d9390233b246b93bee">internal::windows::ProcessData::thread_handle</a></div><div class="ttdeci">SharedHandle thread_handle</div><div class="ttdef"><b>Definition:</b> shell.hpp:215</div></div>
+<div class="ttc" id="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors_html"><div class="ttname"><a href="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors.html">process::Subprocess::IO::InputFileDescriptors</a></div><div class="ttdoc">For input file descriptors a child reads from the read file descriptor and a parent may write to the ...</div><div class="ttdef"><b>Definition:</b> subprocess.hpp:73</div></div>
+<div class="ttc" id="option_8hpp_html"><div class="ttname"><a href="option_8hpp.html">option.hpp</a></div></div>
+<div class="ttc" id="classTry_html_aec4a11ddd3c036e889d90b7eb6258ba7"><div class="ttname"><a href="classTry.html#aec4a11ddd3c036e889d90b7eb6258ba7">Try::error</a></div><div class="ttdeci">static Try error(const E &e)</div><div class="ttdef"><b>Definition:</b> try.hpp:42</div></div>
+<div class="ttc" id="structprocess_1_1Subprocess_1_1ParentHook_html_aaf9ff141314d619cd65cd8ec9320fb7d"><div class="ttname"><a href="structprocess_1_1Subprocess_1_1ParentHook.html#aaf9ff141314d619cd65cd8ec9320fb7d">process::Subprocess::ParentHook::parent_setup</a></div><div class="ttdeci">const lambda::function< Try< Nothing >pid_t)> parent_setup</div><div class="ttdoc">The callback that must be specified for execution after the child has been cloned, but before it starts executing the new process. </div><div class="ttdef"><b>Definition:</b> subprocess.hpp:163</div></div>
+<div class="ttc" id="foreach_8hpp_html"><div class="ttname"><a href="foreach_8hpp.html">foreach.hpp</a></div></div>
+<div class="ttc" id="error_8hpp_html"><div class="ttname"><a href="error_8hpp.html">error.hpp</a></div></div>
+<div class="ttc" id="namespaceinternal_html"><div class="ttname"><a href="namespaceinternal.html">internal</a></div><div class="ttdef"><b>Definition:</b> attributes.hpp:24</div></div>
+<div class="ttc" id="classTry_html_a0b98f95163b8a38daafd1651b043a276"><div class="ttname"><a href="classTry.html#a0b98f95163b8a38daafd1651b043a276">Try::isError</a></div><div class="ttdeci">bool isError() const </div><div class="ttdef"><b>Definition:</b> try.hpp:71</div></div>
+<div class="ttc" id="namespaceprocess_html"><div class="ttname"><a href="namespaceprocess.html">process</a></div><div class="ttdef"><b>Definition:</b> executor.hpp:48</div></div>
+<div class="ttc" id="try_8hpp_html"><div class="ttname"><a href="try_8hpp.html">try.hpp</a></div></div>
+<div class="ttc" id="hashset_8hpp_html"><div class="ttname"><a href="hashset_8hpp.html">hashset.hpp</a></div></div>
+<div class="ttc" id="structinternal_1_1windows_1_1ProcessData_html_a65a4a4aba5450087363bfffdb30eea25"><div class="ttname"><a href="structinternal_1_1windows_1_1ProcessData.html#a65a4a4aba5450087363bfffdb30eea25">internal::windows::ProcessData::pid</a></div><div class="ttdeci">pid_t pid</div><div class="ttdef"><b>Definition:</b> shell.hpp:216</div></div>
+<div class="ttc" id="shell_8hpp_html"><div class="ttname"><a href="shell_8hpp.html">shell.hpp</a></div></div>
+<div class="ttc" id="structprocess_1_1Subprocess_1_1ParentHook_html"><div class="ttname"><a href="structprocess_1_1Subprocess_1_1ParentHook.html">process::Subprocess::ParentHook</a></div><div class="ttdoc">A hook can be passed to a subprocess call. </div><div class="ttdef"><b>Definition:</b> subprocess.hpp:152</div></div>
+<div class="ttc" id="int__fd_8hpp_html_aea4dbda01c90455f158ffa9b924c2f07"><div class="ttname"><a href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a></div><div class="ttdeci">int int_fd</div><div class="ttdef"><b>Definition:</b> int_fd.hpp:35</div></div>
+<div class="ttc" id="namespacens_html_a28116b46e6543597a11733424cd1aa20"><div class="ttname"><a href="namespacens.html#a28116b46e6543597a11733424cd1aa20">ns::stringify</a></div><div class="ttdeci">std::string stringify(int flags)</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.11
+</small></address>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors.html b/content/api/latest/c++/structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors.html
index 29089ed..317a1fe 100644
--- a/content/api/latest/c++/structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors.html
+++ b/content/api/latest/c++/structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors.html
@@ -61,7 +61,7 @@
<p>For input file descriptors a child reads from the <code>read</code> file descriptor and a parent may write to the <code>write</code> file descriptor if one is present.
<a href="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors.html#details">More...</a></p>
-<p><code>#include <<a class="el" href="subprocess_8hpp_source.html">subprocess.hpp</a>></code></p>
+<p><code>#include <<a class="el" href="include_2process_2subprocess_8hpp_source.html">subprocess.hpp</a>></code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
Public Attributes</h2></td></tr>
@@ -99,7 +99,7 @@ Public Attributes</h2></td></tr>
</div>
</div>
<hr/>The documentation for this struct was generated from the following file:<ul>
-<li>3rdparty/libprocess/include/process/<a class="el" href="subprocess_8hpp_source.html">subprocess.hpp</a></li>
+<li>3rdparty/libprocess/include/process/<a class="el" href="include_2process_2subprocess_8hpp_source.html">subprocess.hpp</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html b/content/api/latest/c++/structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html
index 0700824..1d92fd3 100644
--- a/content/api/latest/c++/structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html
+++ b/content/api/latest/c++/structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html
@@ -61,7 +61,7 @@
<p>For output file descriptors a child writes to the <code>write</code> file descriptor and a parent may read from the <code>read</code> file descriptor if one is present.
<a href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html#details">More...</a></p>
-<p><code>#include <<a class="el" href="subprocess_8hpp_source.html">subprocess.hpp</a>></code></p>
+<p><code>#include <<a class="el" href="include_2process_2subprocess_8hpp_source.html">subprocess.hpp</a>></code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
Public Attributes</h2></td></tr>
@@ -99,7 +99,7 @@ Public Attributes</h2></td></tr>
</div>
</div>
<hr/>The documentation for this struct was generated from the following file:<ul>
-<li>3rdparty/libprocess/include/process/<a class="el" href="subprocess_8hpp_source.html">subprocess.hpp</a></li>
+<li>3rdparty/libprocess/include/process/<a class="el" href="include_2process_2subprocess_8hpp_source.html">subprocess.hpp</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/structprocess_1_1Subprocess_1_1ParentHook.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/structprocess_1_1Subprocess_1_1ParentHook.html b/content/api/latest/c++/structprocess_1_1Subprocess_1_1ParentHook.html
index ad7b714..69ef4ad 100644
--- a/content/api/latest/c++/structprocess_1_1Subprocess_1_1ParentHook.html
+++ b/content/api/latest/c++/structprocess_1_1Subprocess_1_1ParentHook.html
@@ -63,7 +63,7 @@
<p>A hook can be passed to a <code>subprocess</code> call.
<a href="structprocess_1_1Subprocess_1_1ParentHook.html#details">More...</a></p>
-<p><code>#include <<a class="el" href="subprocess_8hpp_source.html">subprocess.hpp</a>></code></p>
+<p><code>#include <<a class="el" href="include_2process_2subprocess_8hpp_source.html">subprocess.hpp</a>></code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
@@ -139,7 +139,7 @@ Friends</h2></td></tr>
</div>
</div>
<hr/>The documentation for this struct was generated from the following file:<ul>
-<li>3rdparty/libprocess/include/process/<a class="el" href="subprocess_8hpp_source.html">subprocess.hpp</a></li>
+<li>3rdparty/libprocess/include/process/<a class="el" href="include_2process_2subprocess_8hpp_source.html">subprocess.hpp</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/subprocess_8hpp.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/subprocess_8hpp.html b/content/api/latest/c++/subprocess_8hpp.html
deleted file mode 100644
index c5cec43..0000000
--- a/content/api/latest/c++/subprocess_8hpp.html
+++ /dev/null
@@ -1,125 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.11"/>
-<title>Apache Mesos: 3rdparty/libprocess/include/process/subprocess.hpp File Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">Apache Mesos
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.11 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="pages.html"><span>Related Pages</span></a></li>
- <li><a href="namespaces.html"><span>Namespaces</span></a></li>
- <li><a href="annotated.html"><span>Classes</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li><a href="examples.html"><span>Examples</span></a></li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li><a href="globals.html"><span>File Members</span></a></li>
- </ul>
- </div>
-<div id="nav-path" class="navpath">
- <ul>
-<li class="navelem"><a class="el" href="dir_8cab8f464681f7cc51cee77e79a434cd.html">3rdparty</a></li><li class="navelem"><a class="el" href="dir_043a76de98701f9bddf61b5e98f305ff.html">libprocess</a></li><li class="navelem"><a class="el" href="dir_eac18f7a64f6f8afbd1493ef4e09abdb.html">include</a></li><li class="navelem"><a class="el" href="dir_1894286df79cf582d947dbc4268b06cf.html">process</a></li> </ul>
-</div>
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#nested-classes">Classes</a> |
-<a href="#namespaces">Namespaces</a> |
-<a href="#typedef-members">Typedefs</a> |
-<a href="#func-members">Functions</a> </div>
- <div class="headertitle">
-<div class="title">subprocess.hpp File Reference</div> </div>
-</div><!--header-->
-<div class="contents">
-<div class="textblock"><code>#include <map></code><br />
-<code>#include <memory></code><br />
-<code>#include <string></code><br />
-<code>#include <vector></code><br />
-<code>#include <<a class="el" href="future_8hpp_source.html">process/future.hpp</a>></code><br />
-<code>#include <<a class="el" href="3rdparty_2stout_2include_2stout_2flags_8hpp_source.html">stout/flags.hpp</a>></code><br />
-<code>#include <<a class="el" href="lambda_8hpp_source.html">stout/lambda.hpp</a>></code><br />
-<code>#include <<a class="el" href="none_8hpp_source.html">stout/none.hpp</a>></code><br />
-<code>#include <<a class="el" href="option_8hpp_source.html">stout/option.hpp</a>></code><br />
-<code>#include <<a class="el" href="try_8hpp_source.html">stout/try.hpp</a>></code><br />
-<code>#include <<a class="el" href="shell_8hpp_source.html">stout/os/shell.hpp</a>></code><br />
-<code>#include <<a class="el" href="int__fd_8hpp_source.html">stout/os/int_fd.hpp</a>></code><br />
-</div>
-<p><a href="subprocess_8hpp_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
-Classes</h2></td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classprocess_1_1Subprocess.html">process::Subprocess</a></td></tr>
-<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Represents a fork() exec()ed subprocess. <a href="classprocess_1_1Subprocess.html#details">More...</a><br /></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classprocess_1_1Subprocess_1_1IO.html">process::Subprocess::IO</a></td></tr>
-<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Describes how the I/O is redirected for stdin/stdout/stderr. <a href="classprocess_1_1Subprocess_1_1IO.html#details">More...</a><br /></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors.html">process::Subprocess::IO::InputFileDescriptors</a></td></tr>
-<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">For input file descriptors a child reads from the <code>read</code> file descriptor and a parent may write to the <code>write</code> file descriptor if one is present. <a href="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors.html#details">More...</a><br /></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html">process::Subprocess::IO::OutputFileDescriptors</a></td></tr>
-<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">For output file descriptors a child writes to the <code>write</code> file descriptor and a parent may read from the <code>read</code> file descriptor if one is present. <a href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html#details">More...</a><br /></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structprocess_1_1Subprocess_1_1ParentHook.html">process::Subprocess::ParentHook</a></td></tr>
-<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">A hook can be passed to a <code>subprocess</code> call. <a href="structprocess_1_1Subprocess_1_1ParentHook.html#details">More...</a><br /></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classprocess_1_1Subprocess_1_1ChildHook.html">process::Subprocess::ChildHook</a></td></tr>
-<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">A <code><a class="el" href="classprocess_1_1Subprocess_1_1ChildHook.html" title="A ChildHook can be passed to a subprocess call. ">ChildHook</a></code> can be passed to a <code>subprocess</code> call. <a href="classprocess_1_1Subprocess_1_1ChildHook.html#details">More...</a><br /></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
-Namespaces</h2></td></tr>
-<tr class="memitem:namespaceprocess"><td class="memItemLeft" align="right" valign="top">  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceprocess.html">process</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
-Typedefs</h2></td></tr>
-<tr class="memitem:afc6611c4913642642277b44447a16e55"><td class="memItemLeft" align="right" valign="top">using </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceprocess.html#afc6611c4913642642277b44447a16e55">process::InputFileDescriptors</a> = Subprocess::IO::InputFileDescriptors</td></tr>
-<tr class="separator:afc6611c4913642642277b44447a16e55"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a882829822afa4f33b90aafc9c4ffa9af"><td class="memItemLeft" align="right" valign="top">using </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceprocess.html#a882829822afa4f33b90aafc9c4ffa9af">process::OutputFileDescriptors</a> = Subprocess::IO::OutputFileDescriptors</td></tr>
-<tr class="separator:a882829822afa4f33b90aafc9c4ffa9af"><td class="memSeparator" colspan="2"> </td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:a2d7e0a283bc0c9eca8a8b0532e026269"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classTry.html">Try</a>< Subprocess > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceprocess.html#a2d7e0a283bc0c9eca8a8b0532e026269">process::subprocess</a> (const std::string &path, std::vector< std::string > argv, const Subprocess::IO &in=Subprocess::FD(<a class="el" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#afcf80a6d91178952d107ad00b165752b">STDIN_FILENO</a>), const Subprocess::IO &out=Subprocess::FD(<a class="el" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#abd165ee6474b5b75bf075842fff13a04">STDOUT_FILENO</a>), const Subprocess::IO &err=Subprocess::FD(<a class="el" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ae2fe1725bb5e9823d089c46b9ed5266e">STDERR_FILENO</a>), const <a class="el" href="classflags_1_1FlagsBase.html">flags::FlagsBase</a> *<a class="el" href=
"decoder_8hpp.html#abb0829cce9dd20a40ae0d86890ae85c6">flags</a>=nullptr, const <a class="el" href="classOption.html">Option</a>< std::map< std::string, std::string >> &environment=<a class="el" href="structNone.html">None</a>(), const <a class="el" href="classOption.html">Option</a>< lambda::function< <a class="el" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ab03ced250ed239bc3b50b669493997f9">pid_t</a>(const lambda::function< int()> &)>> &clone=<a class="el" href="structNone.html">None</a>(), const std::vector< Subprocess::ParentHook > &parent_hooks={}, const std::vector< Subprocess::ChildHook > &child_hooks={}, const std::vector< <a class="el" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> > &whitelist_fds={})</td></tr>
-<tr class="memdesc:a2d7e0a283bc0c9eca8a8b0532e026269"><td class="mdescLeft"> </td><td class="mdescRight">Forks a subprocess and execs the specified 'path' with the specified 'argv', redirecting stdin, stdout, and stderr as specified by 'in', 'out', and 'err' respectively. <a href="namespaceprocess.html#a2d7e0a283bc0c9eca8a8b0532e026269">More...</a><br /></td></tr>
-<tr class="separator:a2d7e0a283bc0c9eca8a8b0532e026269"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a0a748c548ad3a094196c98f00f9674cf"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classTry.html">Try</a>< Subprocess > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceprocess.html#a0a748c548ad3a094196c98f00f9674cf">process::subprocess</a> (const std::string &command, const Subprocess::IO &in=Subprocess::FD(<a class="el" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#afcf80a6d91178952d107ad00b165752b">STDIN_FILENO</a>), const Subprocess::IO &out=Subprocess::FD(<a class="el" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#abd165ee6474b5b75bf075842fff13a04">STDOUT_FILENO</a>), const Subprocess::IO &err=Subprocess::FD(<a class="el" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ae2fe1725bb5e9823d089c46b9ed5266e">STDERR_FILENO</a>), const <a class="el" href="classOption.html">Option</a>< std::map< std::string, std::string >> &environment=<a class="
el" href="structNone.html">None</a>(), const <a class="el" href="classOption.html">Option</a>< lambda::function< <a class="el" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ab03ced250ed239bc3b50b669493997f9">pid_t</a>(const lambda::function< int()> &)>> &clone=<a class="el" href="structNone.html">None</a>(), const std::vector< Subprocess::ParentHook > &parent_hooks={}, const std::vector< Subprocess::ChildHook > &child_hooks={}, const std::vector< <a class="el" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> > &whitelist_fds={})</td></tr>
-<tr class="memdesc:a0a748c548ad3a094196c98f00f9674cf"><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="structOverload.html">Overload</a> of 'subprocess' for launching a shell command, i.e., 'sh -c command'. <a href="namespaceprocess.html#a0a748c548ad3a094196c98f00f9674cf">More...</a><br /></td></tr>
-<tr class="separator:a0a748c548ad3a094196c98f00f9674cf"><td class="memSeparator" colspan="2"> </td></tr>
-</table>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.11
-</small></address>
-</body>
-</html>
[26/50] mesos-site git commit: Updated the website built from mesos
SHA: 7c9c72d.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/libprocess_2include_2process_2socket_8hpp_source.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/libprocess_2include_2process_2socket_8hpp_source.html b/content/api/latest/c++/libprocess_2include_2process_2socket_8hpp_source.html
index e217466..92d6f28 100644
--- a/content/api/latest/c++/libprocess_2include_2process_2socket_8hpp_source.html
+++ b/content/api/latest/c++/libprocess_2include_2process_2socket_8hpp_source.html
@@ -53,7 +53,7 @@
</div><!--header-->
<div class="contents">
<a href="libprocess_2include_2process_2socket_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// Licensed under the Apache License, Version 2.0 (the "License");</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// you may not use this file except in compliance with the License.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// You may obtain a copy of the License at</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>
0;<span class="comment">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// Unless required by applicable law or agreed to in writing, software</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">// distributed under the License is distributed on an "AS IS" BASIS,</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">// See the License for the specific language governing permissions and</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// limitations under the License</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</s
pan> </div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#ifndef __PROCESS_SOCKET_HPP__</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#define __PROCESS_SOCKET_HPP__</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#ifndef __WINDOWS__</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include <sys/socket.h></span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include <sys/wait.h></span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#endif // __WINDOWS__</span></div><div class="line"><a name="l00020
"></a><span class="lineno"> 20</span> </div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <memory></span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <<a class="code" href="address_8hpp.html">process/address.hpp</a>></span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <<a class="code" href="future_8hpp.html">process/future.hpp</a>></span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include <<a class="code" href="abort_8hpp.html">stout/abort.hpp</a>></span></div><div class="line"><a name="l00027"></a><span cla
ss="lineno"> 27</span> <span class="preprocessor">#include <<a class="code" href="error_8hpp.html">stout/error.hpp</a>></span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include <<a class="code" href="nothing_8hpp.html">stout/nothing.hpp</a>></span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include <<a class="code" href="try_8hpp.html">stout/try.hpp</a>></span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include <<a class="code" href="unreachable_8hpp.html">stout/unreachable.hpp</a>></span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#ifdef __WINDOWS__</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#include <<a clas
s="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html">stout/windows.hpp</a>></span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#endif // __WINDOWS__</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include <<a class="code" href="int__fd_8hpp.html">stout/os/int_fd.hpp</a>></span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> </div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> </div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="keyword">namespace </span><a class="code" href="namespaceprocess.html">process</a> {</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="keyword">namespace </span>netw
ork {</div><div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="namespaceprocess_1_1network_1_1internal.html"> 40</a></span> <span class="keyword">namespace </span><a class="code" href="namespaceinternal.html">internal</a> {</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> </div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html"> 56</a></span> <span class="keyword">class </span><a class="code" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html">SocketImpl</a> : <span class="keyword">public</span> std::enable_shared_from_this<SocketImpl></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span> {</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00065"></a><span class="lineno"><a c
lass="line" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#ab1b898c86d5d9d449a65381c2b1d74f5"> 65</a></span>  <span class="keyword">enum class</span> <a class="code" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#ab1b898c86d5d9d449a65381c2b1d74f5">Kind</a></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  {</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <a class="code" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#ab1b898c86d5d9d449a65381c2b1d74f5a48798d6fe72649c6d013e60081c38d9a">POLL</a>,</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="preprocessor">#ifdef USE_SSL_SOCKET</span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  SSL</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="preprocessor">#endif</span></div><div class="line
"><a name="l00071"></a><span class="lineno"> 71</span>  };</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span> </div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <span class="keyword">static</span> <a class="code" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#ab1b898c86d5d9d449a65381c2b1d74f5">Kind</a> <a class="code" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#a6ef4668e83adac7bb0ff2b54e1a30ecc">DEFAULT_KIND</a>();</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span> </div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="keyword">static</span> <a class="code" href="classTry.html">Try<std::shared_ptr<SocketImpl></a>> <a class="code" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#a5a00f792b5055241fea9f1fc81b2c4c6">create</a>(</div><div class="line"><a name="l00088"></a><span class="
lineno"> 88</span>  <a class="code" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> <a class="code" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#a303670cfc45c0e1a564fec0532320804">s</a>,</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <a class="code" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#ab1b898c86d5d9d449a65381c2b1d74f5">Kind</a> <a class="code" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#aa4754b1975ff51b35734e8f5941ee319">kind</a> = <a class="code" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#a6ef4668e83adac7bb0ff2b54e1a30ecc">DEFAULT_KIND</a>());</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span> </div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <span class="comment">// TODO(josephw): MESOS-5729: Consider making the CLOEXEC option</span></div><div class="line"><a name=
"l00101"></a><span class="lineno"> 101</span>  <span class="comment">// configurable by the caller of the interface.</span></div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <span class="keyword">static</span> <a class="code" href="classTry.html">Try<std::shared_ptr<SocketImpl></a>> <a class="code" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#a5a00f792b5055241fea9f1fc81b2c4c6">create</a>(</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <a class="code" href="classprocess_1_1network_1_1Address.html#a0c9fa166dbf9c863a6ef68aa8343e3fc">Address::Family</a> family,</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <a class="code" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#ab1b898c86d5d9d449a65381c2b1d74f5">Kind</a> <a class="code" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#aa4754b1975ff51b35734e8f5941ee319"
>kind</a> = <a class="code" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#a6ef4668e83adac7bb0ff2b54e1a30ecc">DEFAULT_KIND</a>());</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span> </div><div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#a6c309d35f5d776af4f9abe1f12367094"> 106</a></span>  <span class="keyword">virtual</span> <a class="code" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#a6c309d35f5d776af4f9abe1f12367094">~SocketImpl</a>()</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  {</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <span class="comment">// Don't close if the socket was released.</span></div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <span class="keywordflow">if</span> (s >= 0) {</div><div cla
ss="line"><a name="l00110"></a><span class="lineno"> 110</span>  <a class="code" href="stout_2include_2stout_2check_8hpp.html#aee320e7c6e107071f4b85d4cc135a265">CHECK_SOME</a>(<a class="code" href="namespaceos.html#a8df77ec6d6b8d32d9b287a41bc74cfdc">os::close</a>(s)) << <span class="stringliteral">"Failed to close socket"</span>;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  }</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  }</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span> </div><div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#af0c991d0689192ac03ed3e4bc1d025ec"> 117</a></span>  <a class="code" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> <span class="keyword">get</span>() <span class="keyword">const</span></div><div class="line
"><a name="l00118"></a><span class="lineno"> 118</span>  {</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <span class="keywordflow">return</span> <a class="code" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#a303670cfc45c0e1a564fec0532320804">s</a>;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  }</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span> </div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <a class="code" href="classTry.html">Try<Address></a> <a class="code" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#a2289c8b4a10fae48e88518019c900c5a">address</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span> </div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <a class="code" href="classTry.html">T
ry<Address></a> <a class="code" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#ab378bc6c952d9475a6a047b0a57386b5">peer</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span> </div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <a class="code" href="classTry.html">Try<Address></a> <a class="code" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#a2c9eff7657c4b46be8f19809fcb12822">bind</a>(<span class="keyword">const</span> <a class="code" href="classprocess_1_1network_1_1Address.html">Address</a>& address);</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span> </div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  <span class="keyword">virtual</span> <a class="code" href="classTry.html">Try<Nothing></a> <a class="code" href="classprocess_1_1network_1_1internal_1_1SocketImpl.htm
l#a2af1042316d1dd5bd551bc4a2ee69000">listen</a>(<span class="keywordtype">int</span> backlog) = 0;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span> </div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <span class="keyword">virtual</span> <a class="code" href="classprocess_1_1Future.html">Future<std::shared_ptr<SocketImpl></a>> <a class="code" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#a736f79aaed2572670aab9eda08cc4efa">accept</a>() = 0;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span> </div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  <span class="keyword">virtual</span> <a class="code" href="classprocess_1_1Future.html">Future<Nothing></a> <a class="code" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#a54ff5817c8e53085c47d8df7e6f5ffd9">connect</a>(<span class="keyword">const</span> <a class="code" h
ref="classprocess_1_1network_1_1Address.html">Address</a>& address) = 0;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <span class="keyword">virtual</span> <a class="code" href="classprocess_1_1Future.html">Future<size_t></a> <a class="code" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#a081d62bd6c808c7293a863ebefa1964e">recv</a>(<span class="keywordtype">char</span>* data, <span class="keywordtype">size_t</span> <a class="code" href="namespaceos_1_1stat.html#a7a116891923bc8b5d8c50f78da8657be">size</a>) = 0;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  <span class="keyword">virtual</span> <a class="code" href="classprocess_1_1Future.html">Future<size_t></a> <a class="code" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#afe37d6fc53fc38545d1878dfb0918d88">send</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* data, <span class="keyword
type">size_t</span> size) = 0;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <span class="keyword">virtual</span> <a class="code" href="classprocess_1_1Future.html">Future<size_t></a> <a class="code" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#a15c48459535a0a99a2a70ff1fcbb7d59">sendfile</a>(<a class="code" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> fd, off_t offset, <span class="keywordtype">size_t</span> size) = 0;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span> </div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <span class="comment">// TODO(benh): Consider returning Owned<std::string> or</span></div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  <span class="comment">// Shared<std::string>, the latter enabling reuse of a pool of</span></div><div class="line"><a name="l00173"></a><
span class="lineno"> 173</span>  <span class="comment">// preallocated strings/buffers.</span></div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  <span class="keyword">virtual</span> <a class="code" href="classprocess_1_1Future.html">Future<std::string></a> <a class="code" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#a081d62bd6c808c7293a863ebefa1964e">recv</a>(<span class="keyword">const</span> <a class="code" href="classOption.html">Option<ssize_t></a>& size = <a class="code" href="structNone.html">None</a>());</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span> </div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <span class="comment">// TODO(benh): Consider taking Shared<std::string>, the latter</span></div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <span class="comment">// enabling reuse of a pool of p
reallocated strings/buffers.</span></div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <span class="keyword">virtual</span> <a class="code" href="classprocess_1_1Future.html">Future<Nothing></a> <a class="code" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#afe37d6fc53fc38545d1878dfb0918d88">send</a>(<span class="keyword">const</span> std::string& data);</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span> </div><div class="line"><a name="l00191"></a><span class="lineno"><a class="line" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#a04930363612888ceb04d517061a43f3e"> 191</a></span>  <span class="keyword">virtual</span> <a class="code" href="classTry.html">Try<Nothing, SocketError></a> <a class="code" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#a04930363612888ceb04d517061a43f3e">shutdown</a>(<span class="keywordtype">int</span> how)</div><div class="lin
e"><a name="l00192"></a><span class="lineno"> 192</span>  {</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  <span class="keywordflow">if</span> (::<a class="code" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#a04930363612888ceb04d517061a43f3e">shutdown</a>(s, how) < 0) {</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <span class="keywordflow">return</span> <a class="code" href="error_8hpp.html#a176f6fc34ea37d40201853a52a475762">SocketError</a>();</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  }</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span> </div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  <span class="keywordflow">return</span> <a class="code" href="structNothing.html">Nothing</a>();</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span> 
}</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span> </div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  <span class="keyword">virtual</span> <a class="code" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#ab1b898c86d5d9d449a65381c2b1d74f5">Kind</a> <a class="code" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#aa4754b1975ff51b35734e8f5941ee319">kind</a>() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span> </div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span> <span class="keyword">protected</span>:</div><div class="line"><a name="l00203"></a><span class="lineno"><a class="line" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#a9c899f4ca922824a0092288d5d6b79b4"> 203</a></span>  <span class="keyword">explicit</span> <a class="code" href="classprocess_1_1network_1_1internal
_1_1SocketImpl.html#a9c899f4ca922824a0092288d5d6b79b4">SocketImpl</a>(<a class="code" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> _s) : s(_s) { CHECK(s >= 0); }</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span> </div><div class="line"><a name="l00211"></a><span class="lineno"><a class="line" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#a963ee1a4b21acf7f423b86fd06cdf09a"> 211</a></span>  <a class="code" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> <a class="code" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#a963ee1a4b21acf7f423b86fd06cdf09a">release</a>()</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  {</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  <a class="code" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> released = <a class="code" href="classprocess_1_1n
etwork_1_1internal_1_1SocketImpl.html#a303670cfc45c0e1a564fec0532320804">s</a>;</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  s = -1;</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  <span class="keywordflow">return</span> released;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  }</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span> </div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T></div><div class="line"><a name="l00222"></a><span class="lineno"><a class="line" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#a593398b46bc29ef1e6b87b2fadbba7d6"> 222</a></span>  <span class="keyword">static</span> std::shared_ptr<T> <a class="code" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#a593
398b46bc29ef1e6b87b2fadbba7d6">shared</a>(T* t)</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  {</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  std::shared_ptr<T> pointer =</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  std::dynamic_pointer_cast<T>(CHECK_NOTNULL(t)->shared_from_this());</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  CHECK(pointer);</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  <span class="keywordflow">return</span> pointer;</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  }</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span> </div><div class="line"><a name="l00230"></a><span class="lineno"><a class="line" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#a303670cfc45c0e1a564fe
c0532320804"> 230</a></span>  <a class="code" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> <a class="code" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#a303670cfc45c0e1a564fec0532320804">s</a>;</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span> };</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span> </div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span> </div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span> <span class="keyword">template</span> <<span class="keyword">typename</span> AddressType></div><div class="line"><a name="l00242"></a><span class="lineno"><a class="line" href="classprocess_1_1network_1_1internal_1_1Socket.html"> 242</a></span> <span class="keyword">class </span><a class="code" href="classprocess_1_1network_1_1internal_1_1Socket.html">Socket</a></div><div class="line"><a name="l00243"><
/a><span class="lineno"> 243</span> {</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  static_assert(</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  std::is_convertible<AddressType, network::Address>::value,</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  <span class="stringliteral">"Requires type convertible to `network::Address`"</span>);</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span> </div><div class="line"><a name="l00258"></a><span class="lineno"><a class="line" href="classprocess_1_1network_1_1internal_1_1Socket.html#a63ec4379f16d4f8dbf39f91b1be74a31"> 258</a></span>  <span class="keyword">static</span> <a class="code" href="classTry.html">Try<Socket></a> <a class="code" h
ref="classprocess_1_1network_1_1internal_1_1Socket.html#a63ec4379f16d4f8dbf39f91b1be74a31">create</a>(</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  <a class="code" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> <a class="code" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#a303670cfc45c0e1a564fec0532320804">s</a>,</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  <a class="code" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#ab1b898c86d5d9d449a65381c2b1d74f5">SocketImpl::Kind</a> <a class="code" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#aa4754b1975ff51b35734e8f5941ee319">kind</a> = <a class="code" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#a6ef4668e83adac7bb0ff2b54e1a30ecc">SocketImpl::DEFAULT_KIND</a>())</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  {</div><div class="line"><
a name="l00262"></a><span class="lineno"> 262</span>  <a class="code" href="classTry.html">Try<std::shared_ptr<SocketImpl></a>> impl = <a class="code" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#a5a00f792b5055241fea9f1fc81b2c4c6">SocketImpl::create</a>(s, <a class="code" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#aa4754b1975ff51b35734e8f5941ee319">kind</a>);</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  <span class="keywordflow">if</span> (impl.<a class="code" href="classTry.html#a0b98f95163b8a38daafd1651b043a276">isError</a>()) {</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  <span class="keywordflow">return</span> <a class="code" href="classError.html">Error</a>(impl.<a class="code" href="classTry.html#aec4a11ddd3c036e889d90b7eb6258ba7">error</a>());</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  }</div><
div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  <span class="keywordflow">return</span> <a class="code" href="namespaceprocess_1_1network.html#ac88a30c7132c85b7394664e9985aa8ae">Socket</a>(impl.<a class="code" href="classTry.html#a8bc7f43e75a47111ea18e9c83b007be5">get</a>());</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  }</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span> </div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  <span class="comment">// TODO(josephw): MESOS-5729: Consider making the CLOEXEC option</span></div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  <span class="comment">// configurable by the caller of the interface.</span></div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  <span class="keyword">static</span> <a class="code" href="classTry.html">Try<Socket>
</a> <a class="code" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#a5a00f792b5055241fea9f1fc81b2c4c6">create</a>(<a class="code" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#ab1b898c86d5d9d449a65381c2b1d74f5">SocketImpl::Kind</a> <a class="code" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#aa4754b1975ff51b35734e8f5941ee319">kind</a> = <a class="code" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#a6ef4668e83adac7bb0ff2b54e1a30ecc">SocketImpl::DEFAULT_KIND</a>());</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span> </div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  <span class="keyword">static</span> <a class="code" href="classTry.html">Try<Socket></a> <a class="code" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#a5a00f792b5055241fea9f1fc81b2c4c6">create</a>(</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>
60; <a class="code" href="classprocess_1_1network_1_1Address.html#a0c9fa166dbf9c863a6ef68aa8343e3fc">Address::Family</a> family,</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  <a class="code" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#ab1b898c86d5d9d449a65381c2b1d74f5">SocketImpl::Kind</a> <a class="code" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#aa4754b1975ff51b35734e8f5941ee319">kind</a> = <a class="code" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#a6ef4668e83adac7bb0ff2b54e1a30ecc">SocketImpl::DEFAULT_KIND</a>());</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span> </div><div class="line"><a name="l00307"></a><span class="lineno"><a class="line" href="classprocess_1_1network_1_1internal_1_1Socket.html#a321e42cc71f404ff9a1ae51108c92ef8"> 307</a></span>  <a class="code" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#ab1b898c86d5d9d
449a65381c2b1d74f5">SocketImpl::Kind</a> <a class="code" href="classprocess_1_1network_1_1internal_1_1Socket.html#a321e42cc71f404ff9a1ae51108c92ef8">kind</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  <span class="keywordflow">return</span> impl->kind();</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  }</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span> </div><div class="line"><a name="l00312"></a><span class="lineno"><a class="line" href="classprocess_1_1network_1_1internal_1_1Socket.html#a88163658413e7817b7d6b442b7eb7dd6"> 312</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classprocess_1_1network_1_1internal_1_1Socket.html#a88163658413e7817b7d6b442b7eb7dd6">operator==</a>(<span class="
keyword">const</span> <a class="code" href="classprocess_1_1network_1_1internal_1_1Socket.html">Socket</a>& that)<span class="keyword"> const</span></div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  <span class="keywordflow">return</span> impl == that.impl;</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  }</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span> </div><div class="line"><a name="l00317"></a><span class="lineno"><a class="line" href="classprocess_1_1network_1_1internal_1_1Socket.html#a766b71809970711c05029c28b60a0d62"> 317</a></span>  <span class="keyword">operator</span> <a class="code" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00318"></a><span cla
ss="lineno"> 318</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  <span class="keywordflow">return</span> impl->get();</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  }</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span> </div><div class="line"><a name="l00322"></a><span class="lineno"><a class="line" href="classprocess_1_1network_1_1internal_1_1Socket.html#ae0a90b8a9cbc66e8042905a34652f2db"> 322</a></span>  <a class="code" href="classTry.html">Try<AddressType></a> <a class="code" href="classprocess_1_1network_1_1internal_1_1Socket.html#ae0a90b8a9cbc66e8042905a34652f2db">address</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span> 
<span class="keywordflow">return</span> convert<AddressType>(impl->address());</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  }</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span> </div><div class="line"><a name="l00327"></a><span class="lineno"><a class="line" href="classprocess_1_1network_1_1internal_1_1Socket.html#a78158efb4187b3d5adac7e8b902378c4"> 327</a></span>  <a class="code" href="classTry.html">Try<AddressType></a> <a class="code" href="classprocess_1_1network_1_1internal_1_1Socket.html#a78158efb4187b3d5adac7e8b902378c4">peer</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  <span class="keywordflow">return</span> convert<AddressType>(impl->peer());</div><div class="line"><a name="l0
0330"></a><span class="lineno"> 330</span>  }</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span> </div><div class="line"><a name="l00332"></a><span class="lineno"><a class="line" href="classprocess_1_1network_1_1internal_1_1Socket.html#a9634920f3ca2ed414fab8ad242b67e6c"> 332</a></span>  <a class="code" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> <span class="keyword">get</span>() <span class="keyword">const</span></div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  {</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  <span class="keywordflow">return</span> impl->get();</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>  }</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span> </div><div class="line"><a name="l00337"></a><span class="lineno"><a class="line" href="classprocess_1_1net
work_1_1internal_1_1Socket.html#a68eb3de09258bba9066e7c258abe4be8"> 337</a></span>  <a class="code" href="classTry.html">Try<AddressType></a> <a class="code" href="classprocess_1_1network_1_1internal_1_1Socket.html#a68eb3de09258bba9066e7c258abe4be8">bind</a>(<span class="keyword">const</span> AddressType& <a class="code" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#a2289c8b4a10fae48e88518019c900c5a">address</a>)</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>  {</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  <span class="keywordflow">return</span> convert<AddressType>(impl->bind(address));</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  }</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span> </div><div class="line"><a name="l00342"></a><span class="lineno"><a class="line" href="classprocess_1_1network_
1_1internal_1_1Socket.html#a47004344dd24c96f445f86fd5bd11b2c"> 342</a></span>  <a class="code" href="classTry.html">Try<Nothing></a> <a class="code" href="classprocess_1_1network_1_1internal_1_1Socket.html#a47004344dd24c96f445f86fd5bd11b2c">listen</a>(<span class="keywordtype">int</span> backlog)</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  {</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  <span class="keywordflow">return</span> impl->listen(backlog);</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  }</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span> </div><div class="line"><a name="l00347"></a><span class="lineno"><a class="line" href="classprocess_1_1network_1_1internal_1_1Socket.html#a710758874ebc05acdc9bee369254aa13"> 347</a></span>  <a class="code" href="classprocess_1_1Future.html">Future<Socket></a> <a
class="code" href="classprocess_1_1network_1_1internal_1_1Socket.html#a710758874ebc05acdc9bee369254aa13">accept</a>()</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>  {</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  <span class="comment">// NOTE: We save a reference to the listening socket itself</span></div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>  <span class="comment">// (i.e., 'this') so that we don't close the listening socket</span></div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  <span class="comment">// while 'accept' is in flight.</span></div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>  std::shared_ptr<SocketImpl> <span class="keyword">self</span> = impl->shared_from_this();</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span> 
</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  <span class="keywordflow">return</span> impl->accept()</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  <span class="comment">// TODO(benh): Use && for `accepted` here!</span></div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  .then([<span class="keyword">self</span>](<span class="keyword">const</span> std::shared_ptr<SocketImpl>& accepted) {</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  <span class="keywordflow">return</span> <a class="code" href="namespaceprocess_1_1network.html#ac88a30c7132c85b7394664e9985aa8ae">Socket</a>(accepted);</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  });</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>  }</div><div class="line"><a name="l00360"></
a><span class="lineno"> 360</span> </div><div class="line"><a name="l00361"></a><span class="lineno"><a class="line" href="classprocess_1_1network_1_1internal_1_1Socket.html#aa441e29328f4f4416a07689de4040022"> 361</a></span>  <a class="code" href="classprocess_1_1Future.html">Future<Nothing></a> <a class="code" href="classprocess_1_1network_1_1internal_1_1Socket.html#aa441e29328f4f4416a07689de4040022">connect</a>(<span class="keyword">const</span> AddressType& <a class="code" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#a2289c8b4a10fae48e88518019c900c5a">address</a>)</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  {</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>  <span class="keywordflow">return</span> impl->connect(address);</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>  }</div><div class="line"><a name="l00365"></a><span class=
"lineno"> 365</span> </div><div class="line"><a name="l00366"></a><span class="lineno"><a class="line" href="classprocess_1_1network_1_1internal_1_1Socket.html#ae81929b2f51bb910ed4ae1504284bffa"> 366</a></span>  <a class="code" href="classprocess_1_1Future.html">Future<size_t></a> <a class="code" href="classprocess_1_1network_1_1internal_1_1Socket.html#ae81929b2f51bb910ed4ae1504284bffa">recv</a>(<span class="keywordtype">char</span>* data, <span class="keywordtype">size_t</span> <a class="code" href="namespaceos_1_1stat.html#a7a116891923bc8b5d8c50f78da8657be">size</a>)<span class="keyword"> const</span></div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  <span class="keywordflow">return</span> impl->recv(data, size);</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  }</div><div
class="line"><a name="l00370"></a><span class="lineno"> 370</span> </div><div class="line"><a name="l00371"></a><span class="lineno"><a class="line" href="classprocess_1_1network_1_1internal_1_1Socket.html#a78f8be2490ac380984f60f6081a5c8eb"> 371</a></span>  <a class="code" href="classprocess_1_1Future.html">Future<size_t></a> <a class="code" href="classprocess_1_1network_1_1internal_1_1Socket.html#a78f8be2490ac380984f60f6081a5c8eb">send</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* data, <span class="keywordtype">size_t</span> <a class="code" href="namespaceos_1_1stat.html#a7a116891923bc8b5d8c50f78da8657be">size</a>)<span class="keyword"> const</span></div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  <span class="keywordflow">return</span> impl->send(data, size);</div><div class=
"line"><a name="l00374"></a><span class="lineno"> 374</span>  }</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span> </div><div class="line"><a name="l00376"></a><span class="lineno"><a class="line" href="classprocess_1_1network_1_1internal_1_1Socket.html#a90bb4cd85693572a79192d8f2a044ed2"> 376</a></span>  <a class="code" href="classprocess_1_1Future.html">Future<size_t></a> <a class="code" href="classprocess_1_1network_1_1internal_1_1Socket.html#a90bb4cd85693572a79192d8f2a044ed2">sendfile</a>(<a class="code" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> fd, off_t offset, <span class="keywordtype">size_t</span> <a class="code" href="namespaceos_1_1stat.html#a7a116891923bc8b5d8c50f78da8657be">size</a>)<span class="keyword"> const</span></div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00378"></a><span class="line
no"> 378</span>  <span class="keywordflow">return</span> impl->sendfile(fd, offset, size);</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  }</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span> </div><div class="line"><a name="l00381"></a><span class="lineno"><a class="line" href="classprocess_1_1network_1_1internal_1_1Socket.html#a83b6acc990b981a818eb2691a44fc6c4"> 381</a></span>  <a class="code" href="classprocess_1_1Future.html">Future<std::string></a> <a class="code" href="classprocess_1_1network_1_1internal_1_1Socket.html#a83b6acc990b981a818eb2691a44fc6c4">recv</a>(<span class="keyword">const</span> <a class="code" href="classOption.html">Option<ssize_t></a>& <a class="code" href="namespaceos_1_1stat.html#a7a116891923bc8b5d8c50f78da8657be">size</a> = <a class="code" href="structNone.html">None</a>())</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&
#160; {</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>  <span class="keywordflow">return</span> impl->recv(<a class="code" href="namespaceos_1_1stat.html#a7a116891923bc8b5d8c50f78da8657be">size</a>);</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>  }</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span> </div><div class="line"><a name="l00386"></a><span class="lineno"><a class="line" href="classprocess_1_1network_1_1internal_1_1Socket.html#a85a9dda04473d40c874189b62efd19bd"> 386</a></span>  <a class="code" href="classprocess_1_1Future.html">Future<Nothing></a> <a class="code" href="classprocess_1_1network_1_1internal_1_1Socket.html#a85a9dda04473d40c874189b62efd19bd">send</a>(<span class="keyword">const</span> std::string& data)</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  {</div><div class="line"><a name="l00388"></a><sp
an class="lineno"> 388</span>  <span class="keywordflow">return</span> impl->send(data);</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  }</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span> </div><div class="line"><a name="l00391"></a><span class="lineno"><a class="line" href="classprocess_1_1network_1_1internal_1_1Socket.html#ac5a52929658fbe1ed19b4b03bdd63904"> 391</a></span>  <span class="keyword">enum class</span> <a class="code" href="classprocess_1_1network_1_1internal_1_1Socket.html#ac5a52929658fbe1ed19b4b03bdd63904">Shutdown</a></div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  {</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>  READ,</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  WRITE,</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  READ_W
RITE</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  };</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span> </div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>  <span class="comment">// TODO(benh): Replace the default to Shutdown::READ_WRITE or remove</span></div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  <span class="comment">// all together since it's unclear what the default should be.</span></div><div class="line"><a name="l00400"></a><span class="lineno"><a class="line" href="classprocess_1_1network_1_1internal_1_1Socket.html#a9d7ac9f641277f1c5f4e7dc6f5464845"> 400</a></span>  <a class="code" href="classTry.html">Try<Nothing, SocketError></a> <a class="code" href="classprocess_1_1network_1_1internal_1_1Socket.html#a9d7ac9f641277f1c5f4e7dc6f5464845">shutdown</a>(<a class="code" href="classprocess_1_1network_1_1internal_1_1Sock
et.html#ac5a52929658fbe1ed19b4b03bdd63904">Shutdown</a> <a class="code" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#a04930363612888ceb04d517061a43f3e">shutdown</a> = <a class="code" href="namespaceprocess_1_1io.html#aca1f059ca9f0d7360631c621debeb879">Shutdown::READ</a>)</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  {</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>  <span class="keywordtype">int</span> how = [&]() {</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>  <span class="keywordflow">switch</span> (<a class="code" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#a04930363612888ceb04d517061a43f3e">shutdown</a>) {</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>  <span class="keywordflow">case</span> <a class="code" href="namespaceprocess_1_1io.html#aca1f059ca9f0d7360631c621debeb879">Shutdown
::READ</a>: <span class="keywordflow">return</span> <a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#a337bdc938215c39cd21ddd11106189c6">SHUT_RD</a>;</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>  <span class="keywordflow">case</span> <a class="code" href="namespaceprocess_1_1io.html#ab005316d71b45c5b05de0a6234c6f8fc">Shutdown::WRITE</a>: <span class="keywordflow">return</span> <a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ac3d4e32482af3ec2158643d9996d78da">SHUT_WR</a>;</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>  <span class="keywordflow">case</span> Shutdown::READ_WRITE: <span class="keywordflow">return</span> <a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#abc5dbd13b73a0a66d7fa25364a3f7d77">SHUT_RDWR</a>;</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  }</div><div class="line">
<a name="l00408"></a><span class="lineno"> 408</span>  <a class="code" href="unreachable_8hpp.html#a0bc63b24b654ca433be7b97a3edde132">UNREACHABLE</a>();</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>  }();</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span> </div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  <span class="keywordflow">return</span> impl->shutdown(how);</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  }</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span> </div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>  <span class="comment">// Support implicit conversion of any `Socket<AddressType>` to a</span></div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>  <span class="comment">// `Socket<network::Address>`.</span>
</div><div class="line"><a name="l00416"></a><span class="lineno"><a class="line" href="classprocess_1_1network_1_1internal_1_1Socket.html#a044985d2955fb97d2d966a3d2a66dc86"> 416</a></span>  <span class="keyword">operator</span> <a class="code" href="classprocess_1_1network_1_1internal_1_1Socket.html">Socket<network::Address></a>() <span class="keyword">const</span></div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  {</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  <span class="keywordflow">return</span> <a class="code" href="classprocess_1_1network_1_1internal_1_1Socket.html">Socket<network::Address></a>(impl);</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>  }</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span> </div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span> <span class="keyword">private</
span>:</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>  <span class="comment">// Necessary to support the implicit conversion operator from any</span></div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>  <span class="comment">// `Socket<AddressType>` to `Socket<network::Address>`.</span></div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T></div><div class="line"><a name="l00425"></a><span class="lineno"><a class="line" href="classprocess_1_1network_1_1internal_1_1Socket.html#a4c6b05834cc8a65c85de7bdb32aac069"> 425</a></span>  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classprocess_1_1network_1_1internal_1_1Socket.html">Socket</a>;</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span> </div><div class="li
ne"><a name="l00427"></a><span class="lineno"> 427</span>  <span class="keyword">explicit</span> <a class="code" href="namespaceprocess_1_1network.html#ac88a30c7132c85b7394664e9985aa8ae">Socket</a>(std::shared_ptr<SocketImpl>&& that) : impl(<a class="code" href="namespacestd.html">std</a>::move(that)) {}</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span> </div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>  <span class="keyword">explicit</span> <a class="code" href="namespaceprocess_1_1network.html#ac88a30c7132c85b7394664e9985aa8ae">Socket</a>(<span class="keyword">const</span> std::shared_ptr<SocketImpl>& that) : impl(that) {}</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span> </div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>  std::shared_ptr<SocketImpl> impl;</div><div class="line"><a name="l00432"></a><span class="
lineno"> 432</span> };</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span> </div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span> } <span class="comment">// namespace internal {</span></div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span> </div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span> </div><div class="line"><a name="l00437"></a><span class="lineno"><a class="line" href="namespaceprocess_1_1network.html#ac88a30c7132c85b7394664e9985aa8ae"> 437</a></span> <span class="keyword">using</span> <a class="code" href="classprocess_1_1network_1_1internal_1_1Socket.html">Socket</a> = <a class="code" href="classprocess_1_1network_1_1internal_1_1Socket.html">network::internal::Socket<network::Address></a>;</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span> </div><div class="line"><a name="l00439"></a><span class="lineno">
439</span> <span class="keyword">namespace </span>inet {</div><div class="line"><a name="l00440"></a><span class="lineno"><a class="line" href="namespaceprocess_1_1network_1_1inet.html#a891ec97cdaf1fa184350945b7233eaa4"> 440</a></span> <span class="keyword">using</span> <a class="code" href="classprocess_1_1network_1_1internal_1_1Socket.html">Socket</a> = <a class="code" href="classprocess_1_1network_1_1internal_1_1Socket.html">network::internal::Socket<inet::Address></a>;</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span> } <span class="comment">// namespace inet {</span></div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span> </div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span> <span class="preprocessor">#ifndef __WINDOWS__</span></div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span> <span class="keyword">namespace </span>unix {</div><div class="
line"><a name="l00445"></a><span class="lineno"><a class="line" href="namespaceprocess_1_1network_1_1unix.html#a8836b16e6b5735d60b9a3dbb14294e61"> 445</a></span> <span class="keyword">using</span> <a class="code" href="classprocess_1_1network_1_1internal_1_1Socket.html">Socket</a> = <a class="code" href="classprocess_1_1network_1_1internal_1_1Socket.html">network::internal::Socket<unix::Address></a>;</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span> } <span class="comment">// namespace unix {</span></div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span> <span class="preprocessor">#endif // __WINDOWS__</span></div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span> </div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span> </div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span> <span class="keyword">namespace </span><a class="code" hr
ef="namespaceinternal.html">internal</a> {</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span> </div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span> <span class="keyword">template</span> <></div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span> <a class="code" href="classTry.html">Try<Socket<network::Address></a>> <a class="code" href="classprocess_1_1network_1_1internal_1_1Socket.html#a63ec4379f16d4f8dbf39f91b1be74a31">Socket<network::Address>::create</a>(</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>  <a class="code" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#ab1b898c86d5d9d449a65381c2b1d74f5">SocketImpl::Kind</a> <a class="code" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#aa4754b1975ff51b35734e8f5941ee319">kind</a>) = <span class="keyword">delete</span>;</div><div class="line"><a name="l00455"><
/a><span class="lineno"> 455</span> </div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span> </div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span> <span class="keyword">template</span> <></div><div class="line"><a name="l00458"></a><span class="lineno"><a class="line" href="classprocess_1_1network_1_1internal_1_1Socket.html#adfcb15ac455f4f06d7c10d812d0b1e16"> 458</a></span> <span class="keyword">inline</span> <a class="code" href="classTry.html">Try<Socket<network::Address></a>> <a class="code" href="classprocess_1_1network_1_1internal_1_1Socket.html#a63ec4379f16d4f8dbf39f91b1be74a31">Socket<network::Address>::create</a>(</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>  <a class="code" href="classprocess_1_1network_1_1Address.html#a0c9fa166dbf9c863a6ef68aa8343e3fc">Address::Family</a> family,</div><div class="line"><a name="l00460"></a><span class="linen
o"> 460</span>  <a class="code" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#ab1b898c86d5d9d449a65381c2b1d74f5">SocketImpl::Kind</a> kind)</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span> {</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>  <a class="code" href="classTry.html">Try<std::shared_ptr<SocketImpl></a>> impl = <a class="code" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#a5a00f792b5055241fea9f1fc81b2c4c6">SocketImpl::create</a>(family, kind);</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>  <span class="keywordflow">if</span> (impl.<a class="code" href="classTry.html#a0b98f95163b8a38daafd1651b043a276">isError</a>()) {</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>  <span class="keywordflow">return</span> <a class="code" href="classError.html">Error</a>(impl.<a class="code" href="cl
assTry.html#aec4a11ddd3c036e889d90b7eb6258ba7">error</a>());</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>  }</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>  <span class="keywordflow">return</span> <a class="code" href="namespaceprocess_1_1network.html#ac88a30c7132c85b7394664e9985aa8ae">Socket</a>(impl.<a class="code" href="classTry.html#a8bc7f43e75a47111ea18e9c83b007be5">get</a>());</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span> }</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span> </div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span> </div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span> <span class="keyword">template</span> <></div><div class="line"><a name="l00471"></a><span class="lineno"><a class="line" href="classprocess_1_1network_1_1internal_1_1Socket.html#a0fbcec9bb3b4e
cfe298805e179c70f18"> 471</a></span> <span class="keyword">inline</span> <a class="code" href="classTry.html">Try<Socket<inet::Address></a>> <a class="code" href="classprocess_1_1network_1_1internal_1_1Socket.html#a63ec4379f16d4f8dbf39f91b1be74a31">Socket<inet::Address>::create</a>(</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>  <a class="code" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#ab1b898c86d5d9d449a65381c2b1d74f5">SocketImpl::Kind</a> kind)</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span> {</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>  <span class="comment">// TODO(benh): Replace this function which defaults to IPv4 in</span></div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>  <span class="comment">// exchange for explicit IPv4 and IPv6 versions.</span></div><div class="line"><a name="l00476
"></a><span class="lineno"> 476</span>  <a class="code" href="classTry.html">Try<std::shared_ptr<SocketImpl></a>> impl =</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>  <a class="code" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#a5a00f792b5055241fea9f1fc81b2c4c6">SocketImpl::create</a>(<a class="code" href="classprocess_1_1network_1_1Address.html#a0c9fa166dbf9c863a6ef68aa8343e3fca026226c3cf0400ffbf1ef901c0709aea">Address::Family::INET4</a>, kind);</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>  <span class="keywordflow">if</span> (impl.<a class="code" href="classTry.html#a0b98f95163b8a38daafd1651b043a276">isError</a>()) {</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>  <span class="keywordflow">return</span> <a class="code" href="classError.html">Error</a>(impl.<a class="code" href="classTry.html#aec4a11ddd3c036e889d90b7eb6258ba7">err
or</a>());</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>  }</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>  <span class="keywordflow">return</span> <a class="code" href="namespaceprocess_1_1network.html#ac88a30c7132c85b7394664e9985aa8ae">Socket</a>(impl.<a class="code" href="classTry.html#a8bc7f43e75a47111ea18e9c83b007be5">get</a>());</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span> }</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span> </div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span> </div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span> <span class="keyword">template</span> <></div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span> <a class="code" href="classTry.html">Try<Socket<inet::Address></a>> <a class="code" href="classprocess_1_1n
etwork_1_1internal_1_1Socket.html#a63ec4379f16d4f8dbf39f91b1be74a31">Socket<inet::Address>::create</a>(</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>  <a class="code" href="classprocess_1_1network_1_1Address.html#a0c9fa166dbf9c863a6ef68aa8343e3fc">Address::Family</a> family,</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>  <a class="code" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#ab1b898c86d5d9d449a65381c2b1d74f5">SocketImpl::Kind</a> kind) = <span class="keyword">delete</span>;</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span> </div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span> </div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span> <span class="preprocessor">#ifndef __WINDOWS__</span></div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span> <span class="keyword">
template</span> <></div><div class="line"><a name="l00493"></a><span class="lineno"><a class="line" href="classprocess_1_1network_1_1internal_1_1Socket.html#ac0213557d5d95514f99283d16724694a"> 493</a></span> <span class="keyword">inline</span> <a class="code" href="classTry.html">Try<Socket<unix::Address></a>> <a class="code" href="classprocess_1_1network_1_1internal_1_1Socket.html#a63ec4379f16d4f8dbf39f91b1be74a31">Socket<unix::Address>::create</a>(</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>  <a class="code" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#ab1b898c86d5d9d449a65381c2b1d74f5">SocketImpl::Kind</a> kind)</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span> {</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>  <a class="code" href="classTry.html">Try<std::shared_ptr<SocketImpl></a>> impl =</div><div class="line">
<a name="l00497"></a><span class="lineno"> 497</span>  <a class="code" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#a5a00f792b5055241fea9f1fc81b2c4c6">SocketImpl::create</a>(<a class="code" href="classprocess_1_1network_1_1Address.html#a0c9fa166dbf9c863a6ef68aa8343e3fca15395d0642f86c5992abbca5e56e2b29">Address::Family::UNIX</a>, kind);</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>  <span class="keywordflow">if</span> (impl.<a class="code" href="classTry.html#a0b98f95163b8a38daafd1651b043a276">isError</a>()) {</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>  <span class="keywordflow">return</span> <a class="code" href="classError.html">Error</a>(impl.<a class="code" href="classTry.html#aec4a11ddd3c036e889d90b7eb6258ba7">error</a>());</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>  }</div><div class="line"><a name="l00501"></a><span class="lineno">
501</span>  <span class="keywordflow">return</span> <a class="code" href="namespaceprocess_1_1network.html#ac88a30c7132c85b7394664e9985aa8ae">Socket</a>(impl.<a class="code" href="classTry.html#a8bc7f43e75a47111ea18e9c83b007be5">get</a>());</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span> }</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span> </div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span> </div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span> <span class="keyword">template</span> <></div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span> <a class="code" href="classTry.html">Try<Socket<unix::Address></a>> <a class="code" href="classprocess_1_1network_1_1internal_1_1Socket.html#a63ec4379f16d4f8dbf39f91b1be74a31">Socket<unix::Address>::create</a>(</div><div class="line"><a name="l00507"></a><span clas
s="lineno"> 507</span>  <a class="code" href="classprocess_1_1network_1_1Address.html#a0c9fa166dbf9c863a6ef68aa8343e3fc">Address::Family</a> family,</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>  <a class="code" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#ab1b898c86d5d9d449a65381c2b1d74f5">SocketImpl::Kind</a> kind) = <span class="keyword">delete</span>;</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span> <span class="preprocessor">#endif // __WINDOWS__</span></div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span> </div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span> } <span class="comment">// namespace internal {</span></div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span> } <span class="comment">// namespace network {</span></div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span
> } <span class="comment">// namespace process {</span></div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span> </div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span> <span class="preprocessor">#endif // __PROCESS_SOCKET_HPP__</span></div><div class="ttc" id="namespaceprocess_1_1network_html_ac88a30c7132c85b7394664e9985aa8ae"><div class="ttname"><a href="namespaceprocess_1_1network.html#ac88a30c7132c85b7394664e9985aa8ae">process::network::Socket</a></div><div class="ttdeci">network::internal::Socket< network::Address > Socket</div><div class="ttdef"><b>Definition:</b> socket.hpp:437</div></div>
-<div class="ttc" id="namespaceprocess_1_1io_html_aca1f059ca9f0d7360631c621debeb879"><div class="ttname"><a href="namespaceprocess_1_1io.html#aca1f059ca9f0d7360631c621debeb879">process::io::READ</a></div><div class="ttdeci">const short READ</div><div class="ttdoc">A possible event while polling. </div><div class="ttdef"><b>Definition:</b> io.hpp:34</div></div>
+<div class="ttc" id="namespaceprocess_1_1io_html_aca1f059ca9f0d7360631c621debeb879"><div class="ttname"><a href="namespaceprocess_1_1io.html#aca1f059ca9f0d7360631c621debeb879">process::io::READ</a></div><div class="ttdeci">const short READ</div><div class="ttdoc">A possible event while polling. </div><div class="ttdef"><b>Definition:</b> io.hpp:35</div></div>
<div class="ttc" id="classprocess_1_1network_1_1internal_1_1Socket_html_a90bb4cd85693572a79192d8f2a044ed2"><div class="ttname"><a href="classprocess_1_1network_1_1internal_1_1Socket.html#a90bb4cd85693572a79192d8f2a044ed2">process::network::internal::Socket::sendfile</a></div><div class="ttdeci">Future< size_t > sendfile(int_fd fd, off_t offset, size_t size) const </div><div class="ttdef"><b>Definition:</b> socket.hpp:376</div></div>
<div class="ttc" id="classprocess_1_1network_1_1internal_1_1Socket_html_a83b6acc990b981a818eb2691a44fc6c4"><div class="ttname"><a href="classprocess_1_1network_1_1internal_1_1Socket.html#a83b6acc990b981a818eb2691a44fc6c4">process::network::internal::Socket::recv</a></div><div class="ttdeci">Future< std::string > recv(const Option< ssize_t > &size=None())</div><div class="ttdef"><b>Definition:</b> socket.hpp:381</div></div>
<div class="ttc" id="classprocess_1_1network_1_1internal_1_1SocketImpl_html_aa4754b1975ff51b35734e8f5941ee319"><div class="ttname"><a href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#aa4754b1975ff51b35734e8f5941ee319">process::network::internal::SocketImpl::kind</a></div><div class="ttdeci">virtual Kind kind() const =0</div></div>
@@ -93,7 +93,7 @@
<div class="ttc" id="classprocess_1_1network_1_1internal_1_1SocketImpl_html_a9c899f4ca922824a0092288d5d6b79b4"><div class="ttname"><a href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#a9c899f4ca922824a0092288d5d6b79b4">process::network::internal::SocketImpl::SocketImpl</a></div><div class="ttdeci">SocketImpl(int_fd _s)</div><div class="ttdef"><b>Definition:</b> socket.hpp:203</div></div>
<div class="ttc" id="nothing_8hpp_html"><div class="ttname"><a href="nothing_8hpp.html">nothing.hpp</a></div></div>
<div class="ttc" id="namespaceos_html_a8df77ec6d6b8d32d9b287a41bc74cfdc"><div class="ttname"><a href="namespaceos.html#a8df77ec6d6b8d32d9b287a41bc74cfdc">os::close</a></div><div class="ttdeci">Try< Nothing > close(int fd)</div><div class="ttdef"><b>Definition:</b> close.hpp:24</div></div>
-<div class="ttc" id="namespaceprocess_1_1io_html_ab005316d71b45c5b05de0a6234c6f8fc"><div class="ttname"><a href="namespaceprocess_1_1io.html#ab005316d71b45c5b05de0a6234c6f8fc">process::io::WRITE</a></div><div class="ttdeci">const short WRITE</div><div class="ttdoc">A possible event while polling. </div><div class="ttdef"><b>Definition:</b> io.hpp:39</div></div>
+<div class="ttc" id="namespaceprocess_1_1io_html_ab005316d71b45c5b05de0a6234c6f8fc"><div class="ttname"><a href="namespaceprocess_1_1io.html#ab005316d71b45c5b05de0a6234c6f8fc">process::io::WRITE</a></div><div class="ttdeci">const short WRITE</div><div class="ttdoc">A possible event while polling. </div><div class="ttdef"><b>Definition:</b> io.hpp:40</div></div>
<div class="ttc" id="classprocess_1_1network_1_1internal_1_1SocketImpl_html"><div class="ttname"><a href="classprocess_1_1network_1_1internal_1_1SocketImpl.html">process::network::internal::SocketImpl</a></div><div class="ttdoc">Implementation interface for a Socket. </div><div class="ttdef"><b>Definition:</b> socket.hpp:56</div></div>
<div class="ttc" id="classprocess_1_1network_1_1Address_html_a0c9fa166dbf9c863a6ef68aa8343e3fca15395d0642f86c5992abbca5e56e2b29"><div class="ttname"><a href="classprocess_1_1network_1_1Address.html#a0c9fa166dbf9c863a6ef68aa8343e3fca15395d0642f86c5992abbca5e56e2b29">process::network::Address::Family::UNIX</a></div></div>
<div class="ttc" id="abort_8hpp_html"><div class="ttname"><a href="abort_8hpp.html">abort.hpp</a></div></div>
[15/50] mesos-site git commit: Updated the website built from mesos
SHA: 7c9c72d.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/src_2master_2master_8hpp_source.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/src_2master_2master_8hpp_source.html b/content/api/latest/c++/src_2master_2master_8hpp_source.html
index e9d034f..19392cd 100644
--- a/content/api/latest/c++/src_2master_2master_8hpp_source.html
+++ b/content/api/latest/c++/src_2master_2master_8hpp_source.html
@@ -52,7 +52,7 @@
<div class="title">master.hpp</div> </div>
</div><!--header-->
<div class="contents">
-<a href="src_2master_2master_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// or more contributor license agreements. See the NOTICE file</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// distributed with this work for additional information</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">// regarding copyright ownership. The ASF licenses this file</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00006"><
/a><span class="lineno"> 6</span> <span class="comment">// "License"); you may not use this file except in compliance</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// with the License. You may obtain a copy of the License at</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">//</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// Unless required by applicable law or agreed to in writing, software</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment">
// distributed under the License is distributed on an "AS IS" BASIS,</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">// See the License for the specific language governing permissions and</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// limitations under the License.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#ifndef __MASTER_HPP__</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#define __MASTER_HPP__</span></div><div class="line"><a name
="l00019"></a><span class="lineno"> 19</span> </div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include <stdint.h></span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <list></span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <memory></span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <set></span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <string></span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include <vector></span></div><div class=
"line"><a name="l00027"></a><span class="lineno"> 27</span> </div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include <boost/circular_buffer.hpp></span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> </div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include <<a class="code" href="include_2mesos_2mesos_8hpp.html">mesos/mesos.hpp</a>></span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include <<a class="code" href="resources_8hpp.html">mesos/resources.hpp</a>></span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#include <<a class="code" href="type__utils_8hpp.html">mesos/type_utils.hpp</a>></span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33<
/span> </div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#include <<a class="code" href="include_2mesos_2maintenance_2maintenance_8hpp.html">mesos/maintenance/maintenance.hpp</a>></span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> </div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#include <<a class="code" href="include_2mesos_2allocator_2allocator_8hpp.html">mesos/allocator/allocator.hpp</a>></span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#include <<a class="code" href="master_2contender_8hpp.html">mesos/master/contender.hpp</a>></span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor">#include <<a class="code" href="include_2mesos_2master_2detector_8hpp.html">mesos/maste
r/detector.hpp</a>></span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor">#include <<a class="code" href="include_2mesos_2master_2master_8hpp.html">mesos/master/master.hpp</a>></span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="preprocessor">#include <<a class="code" href="include_2mesos_2module_2authenticator_8hpp.html">mesos/module/authenticator.hpp</a>></span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor">#include <<a class="code" href="include_2mesos_2quota_2quota_8hpp.html">mesos/quota/quota.hpp</a>></span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div><div class="line"><a n
ame="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#include <<a class="code" href="scheduler_2scheduler_8hpp.html">mesos/scheduler/scheduler.hpp</a>></span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> </div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor">#include <<a class="code" href="3rdparty_2libprocess_2include_2process_2limiter_8hpp.html">process/limiter.hpp</a>></span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor">#include <<a class="code" href="3rdparty_2libprocess_2include_2process_2http_8hpp.html">process/http.hpp</a>></span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor">#include <<a class="code" href="owned_8hpp.html">process/owned.hpp</a>></span></div><div class="line"><a name="l00050"></a><span c
lass="lineno"> 50</span> <span class="preprocessor">#include <<a class="code" href="libprocess_2include_2process_2process_8hpp.html">process/process.hpp</a>></span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="preprocessor">#include <<a class="code" href="3rdparty_2libprocess_2include_2process_2protobuf_8hpp.html">process/protobuf.hpp</a>></span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="preprocessor">#include <<a class="code" href="timer_8hpp.html">process/timer.hpp</a>></span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span> </div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="preprocessor">#include <<a class="code" href="counter_8hpp.html">process/metrics/counter.hpp</a>></span></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div><di
v class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="preprocessor">#include <<a class="code" href="boundedhashmap_8hpp.html">stout/boundedhashmap.hpp</a>></span></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="preprocessor">#include <<a class="code" href="3rdparty_2stout_2include_2stout_2cache_8hpp.html">stout/cache.hpp</a>></span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="preprocessor">#include <<a class="code" href="foreach_8hpp.html">stout/foreach.hpp</a>></span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="preprocessor">#include <<a class="code" href="hashmap_8hpp.html">stout/hashmap.hpp</a>></span></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="preprocessor">#include <<a class="code" href="hashset_8hpp.html">stout/hash
set.hpp</a>></span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="preprocessor">#include <<a class="code" href="linkedhashmap_8hpp.html">stout/linkedhashmap.hpp</a>></span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="preprocessor">#include <<a class="code" href="multihashmap_8hpp.html">stout/multihashmap.hpp</a>></span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="preprocessor">#include <<a class="code" href="nothing_8hpp.html">stout/nothing.hpp</a>></span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="preprocessor">#include <<a class="code" href="option_8hpp.html">stout/option.hpp</a>></span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="preprocessor">#include <<a class="code" href="3rdparty_2stout_2incl
ude_2stout_2recordio_8hpp.html">stout/recordio.hpp</a>></span></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="preprocessor">#include <<a class="code" href="try_8hpp.html">stout/try.hpp</a>></span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="preprocessor">#include <<a class="code" href="uuid_8hpp.html">stout/uuid.hpp</a>></span></div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span> </div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="preprocessor">#include "<a class="code" href="src_2common_2http_8hpp.html">common/http.hpp</a>"</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="preprocessor">#include "<a class="code" href="protobuf__utils_8hpp.html">common/protobuf_utils.hpp</a>"</span></div><div class="line"><a name="l00071"><
/a><span class="lineno"> 71</span> <span class="preprocessor">#include "<a class="code" href="common_2resources__utils_8hpp.html">common/resources_utils.hpp</a>"</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span> </div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="preprocessor">#include "<a class="code" href="files_8hpp.html">files/files.hpp</a>"</span></div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span> </div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="preprocessor">#include "<a class="code" href="devolve_8hpp.html">internal/devolve.hpp</a>"</span></div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="preprocessor">#include "<a class="code" href="evolve_8hpp.html">internal/evolve.hpp</a>"</span></div><div class="line"><a name="l00077">
</a><span class="lineno"> 77</span> </div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="preprocessor">#include "<a class="code" href="src_2master_2constants_8hpp.html">master/constants.hpp</a>"</span></div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="preprocessor">#include "<a class="code" href="src_2master_2flags_8hpp.html">master/flags.hpp</a>"</span></div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="preprocessor">#include "<a class="code" href="machine_8hpp.html">master/machine.hpp</a>"</span></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="preprocessor">#include "<a class="code" href="src_2master_2metrics_8hpp.html">master/metrics.hpp</a>"</span></div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="preprocess
or">#include "<a class="code" href="master_2validation_8hpp.html">master/validation.hpp</a>"</span></div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span> </div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="preprocessor">#include "<a class="code" href="messages_8hpp.html">messages/messages.hpp</a>"</span></div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span> </div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="keyword">namespace </span><a class="code" href="namespaceprocess.html">process</a> {</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="keyword">class </span>RateLimiter; <span class="comment">// Forward declaration.</span></div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span> }</div><div class="line"><a name="l00089"></a><span class="lineno
"> 89</span> </div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="keyword">namespace </span><a class="code" href="namespacemesos.html">mesos</a> {</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span> </div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <span class="comment">// Forward declarations.</span></div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="keyword">class </span>Authorizer;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <span class="keyword">class </span>ObjectApprovers;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span> </div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span> <span class="keyword">namespace </span><a class="code" href="namespaceinternal.html">internal</a> {</div><div class="line"><a name="l00097"></a><s
pan class="lineno"> 97</span> </div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="comment">// Forward declarations.</span></div><div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="namespacemesos_1_1internal_1_1registry.html"> 99</a></span> <span class="keyword">namespace </span>registry {</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <span class="keyword">class </span>Slaves;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span> }</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span> </div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <span class="keyword">class </span>Registry;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="keyword">class </span><a class="code" href="classmesos_1_1internal_1_1WhitelistWatcher.html">Whitel
istWatcher</a>;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span> </div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <span class="keyword">namespace </span><a class="code" href="namespacemesos_1_1v1_1_1master.html">master</a> {</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span> </div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span> <span class="keyword">class </span>Master;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <span class="keyword">class </span>Registrar;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="keyword">class </span>SlaveObserver;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span> </div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span> <span class="keyword">struct </span>BoundedRateLimiter;</div><di
v class="line"><a name="l00113"></a><span class="lineno"> 113</span> <span class="keyword">struct </span>Framework;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span> <span class="keyword">struct </span>Role;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span> </div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span> </div><div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1master_1_1Slave.html"> 117</a></span> <span class="keyword">struct </span><a class="code" href="structmesos_1_1internal_1_1master_1_1Slave.html">Slave</a></div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span> {</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span> <a class="code" href="structmesos_1_1internal_1_1master_1_1Slave.html">Slave</a>(<a class="code" href="classmesos_1_1internal_1_1master_1_1
Master.html">Master</a>* <span class="keyword">const</span> _master,</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  SlaveInfo _info,</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">process::UPID</a>& _pid,</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <span class="keyword">const</span> MachineID& _machineId,</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <span class="keyword">const</span> std::string& _version,</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  std::vector<SlaveInfo::Capability> _capabilites,</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <span class="keyword">const</span> <a class="code" href="classprocess_1_1T
ime.html">process::Time</a>& _registeredTime,</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  std::vector<Resource> _checkpointedResources,</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<UUID></a>& _resourceVersion,</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  std::vector<ExecutorInfo> executorInfos = std::vector<ExecutorInfo>(),</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  std::vector<Task> tasks = std::vector<Task>());</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span> </div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  ~<a class="code" href="structmesos_1_1internal_1_1master_1_1Slave.html">Slave</a>();</div><div cla
ss="line"><a name="l00132"></a><span class="lineno"> 132</span> </div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  Task* getTask(</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <span class="keyword">const</span> FrameworkID& frameworkId,</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <span class="keyword">const</span> TaskID& taskId) <span class="keyword">const</span>;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span> </div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <span class="keywordtype">void</span> addTask(Task* task);</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span> </div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  <span class="comment">// Update slave to recover the resources that were previously</span></div
><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  <span class="comment">// being used by `task`.</span></div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <span class="comment">//</span></div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <span class="comment">// TODO(bmahler): This is a hack for performance. We need to</span></div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <span class="comment">// maintain resource counters because computing task resources</span></div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <span class="comment">// functionally for all tasks is expensive, for now.</span></div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <span class="keywordtype">void</span> recoverResources(Task* task);</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</s
pan> </div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <span class="keywordtype">void</span> removeTask(Task* task);</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span> </div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  <span class="keywordtype">void</span> addOperation(<a class="code" href="namespacecgroups_1_1blkio.html#a350b1eb57318afaea7700ab7786b55ef">Operation</a>* operation);</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span> </div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <span class="keywordtype">void</span> recoverResources(<a class="code" href="namespacecgroups_1_1blkio.html#a350b1eb57318afaea7700ab7786b55ef">Operation</a>* operation);</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span> </div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>
0; <span class="keywordtype">void</span> removeOperation(<a class="code" href="namespacecgroups_1_1blkio.html#a350b1eb57318afaea7700ab7786b55ef">Operation</a>* operation);</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span> </div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <a class="code" href="namespacecgroups_1_1blkio.html#a350b1eb57318afaea7700ab7786b55ef">Operation</a>* getOperation(<span class="keyword">const</span> UUID& uuid) <span class="keyword">const</span>;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span> </div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <span class="keywordtype">void</span> addOffer(Offer* offer);</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span> </div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <span class="keywordtype">void</span> removeOffer(Of
fer* offer);</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span> </div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  <span class="keywordtype">void</span> addInverseOffer(InverseOffer* inverseOffer);</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span> </div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  <span class="keywordtype">void</span> removeInverseOffer(InverseOffer* inverseOffer);</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span> </div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <span class="keywordtype">bool</span> hasExecutor(</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <span class="keyword">const</span> FrameworkID& frameworkId,</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  <span class="k
eyword">const</span> ExecutorID& executorId) <span class="keyword">const</span>;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span> </div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <span class="keywordtype">void</span> addExecutor(</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <span class="keyword">const</span> FrameworkID& frameworkId,</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <span class="keyword">const</span> ExecutorInfo& executorInfo);</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span> </div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  <span class="keywordtype">void</span> removeExecutor(</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  <span class="keyword">const</span> FrameworkID& frameworkId,</div
><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  <span class="keyword">const</span> ExecutorID& executorId);</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span> </div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  <span class="keywordtype">void</span> apply(<span class="keyword">const</span> std::vector<ResourceConversion>& conversions);</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span> </div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  <a class="code" href="classTry.html">Try<Nothing></a> <a class="code" href="namespacerouting_1_1filter_1_1basic.html#a088d88712e011acb0673da92045b365b">update</a>(</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  <span class="keyword">const</span> SlaveInfo& info,</div><div class="line"><a name="l00181"></a><span class="li
neno"> 181</span>  <span class="keyword">const</span> std::string& _version,</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  <span class="keyword">const</span> std::vector<SlaveInfo::Capability>& _capabilites,</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <span class="keyword">const</span> <a class="code" href="classmesos_1_1Resources.html">Resources</a>& _checkpointedResources,</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<UUID></a>& resourceVersion);</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span> </div><div class="line"><a name="l00186"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1master_1_1Slave.html#a59f6d83e771ca1dc9bf7f3db88d9339d"> 186</a></span>  <a class="code
" href="classmesos_1_1internal_1_1master_1_1Master.html">Master</a>* <span class="keyword">const</span> <a class="code" href="structmesos_1_1internal_1_1master_1_1Slave.html#a59f6d83e771ca1dc9bf7f3db88d9339d">master</a>;</div><div class="line"><a name="l00187"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1master_1_1Slave.html#a977de92e6e1fb9fa145aec95806be71f"> 187</a></span>  <span class="keyword">const</span> SlaveID <a class="code" href="structmesos_1_1internal_1_1master_1_1Slave.html#a977de92e6e1fb9fa145aec95806be71f">id</a>;</div><div class="line"><a name="l00188"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1master_1_1Slave.html#af4ee8827d405d9dcb03107dd04fa22ca"> 188</a></span>  SlaveInfo <a class="code" href="structmesos_1_1internal_1_1master_1_1Slave.html#af4ee8827d405d9dcb03107dd04fa22ca">info</a>;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span> </div><div class="line">
<a name="l00190"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1master_1_1Slave.html#adb162982d3dd921c4a9c3114c88daf5c"> 190</a></span>  <span class="keyword">const</span> MachineID <a class="code" href="structmesos_1_1internal_1_1master_1_1Slave.html#adb162982d3dd921c4a9c3114c88daf5c">machineId</a>;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span> </div><div class="line"><a name="l00192"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1master_1_1Slave.html#a587fe54aa032cf8b260e3722e0f3c8fd"> 192</a></span>  <a class="code" href="structprocess_1_1UPID.html">process::UPID</a> <a class="code" href="structmesos_1_1internal_1_1master_1_1Slave.html#a587fe54aa032cf8b260e3722e0f3c8fd">pid</a>;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span> </div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <span class="comment">// TODO(bm
ahler): Use stout's Version when it can parse labels, etc.</span></div><div class="line"><a name="l00195"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1master_1_1Slave.html#ac4cd16759066addb866615eeaf5e6097"> 195</a></span>  std::string <a class="code" href="structmesos_1_1internal_1_1master_1_1Slave.html#ac4cd16759066addb866615eeaf5e6097">version</a>;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span> </div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  <span class="comment">// Agent capabilities.</span></div><div class="line"><a name="l00198"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1master_1_1Slave.html#ad684be997cbb5c701e3fe54b36c2b207"> 198</a></span>  <a class="code" href="structmesos_1_1internal_1_1protobuf_1_1slave_1_1Capabilities.html">protobuf::slave::Capabilities</a> <a class="code" href="structmesos_1_1internal_1_1master_1_1Slave.
html#ad684be997cbb5c701e3fe54b36c2b207">capabilities</a>;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span> </div><div class="line"><a name="l00200"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1master_1_1Slave.html#a8a22f7902325bc17e32068ec2e39867b"> 200</a></span>  <a class="code" href="classprocess_1_1Time.html">process::Time</a> <a class="code" href="structmesos_1_1internal_1_1master_1_1Slave.html#a8a22f7902325bc17e32068ec2e39867b">registeredTime</a>;</div><div class="line"><a name="l00201"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1master_1_1Slave.html#a31770631022ef2687e10fc826709f2c8"> 201</a></span>  <a class="code" href="classOption.html">Option<process::Time></a> <a class="code" href="structmesos_1_1internal_1_1master_1_1Slave.html#a31770631022ef2687e10fc826709f2c8">reregisteredTime</a>;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span
> </div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  <span class="comment">// Slave becomes disconnected when the socket closes.</span></div><div class="line"><a name="l00204"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1master_1_1Slave.html#a4fb10e5dfb983e03a5bfd4f9eb90c386"> 204</a></span>  <span class="keywordtype">bool</span> <a class="code" href="structmesos_1_1internal_1_1master_1_1Slave.html#a4fb10e5dfb983e03a5bfd4f9eb90c386">connected</a>;</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span> </div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  <span class="comment">// Slave becomes deactivated when it gets disconnected. In the</span></div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  <span class="comment">// future this might also happen via HTTP endpoint.</span></div><div class="line"><a name="l00208"></
a><span class="lineno"> 208</span>  <span class="comment">// No offers will be made for a deactivated slave.</span></div><div class="line"><a name="l00209"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1master_1_1Slave.html#aa112c6ba4de9bd7ab91365adf92d5c77"> 209</a></span>  <span class="keywordtype">bool</span> <a class="code" href="structmesos_1_1internal_1_1master_1_1Slave.html#aa112c6ba4de9bd7ab91365adf92d5c77">active</a>;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span> </div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  <span class="comment">// Timer for marking slaves unreachable that become disconnected and</span></div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  <span class="comment">// don't reregister. This timeout is larger than the slave</span></div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>
0; <span class="comment">// observer's timeout, so typically the slave observer will be the</span></div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  <span class="comment">// one to mark such slaves unreachable; this timer is a backup for</span></div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  <span class="comment">// when a slave responds to pings but does not reregister (e.g.,</span></div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  <span class="comment">// because agent recovery has hung).</span></div><div class="line"><a name="l00217"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1master_1_1Slave.html#a15e591c436773cdfb2ee3369f0541659"> 217</a></span>  <a class="code" href="classOption.html">Option<process::Timer></a> <a class="code" href="structmesos_1_1internal_1_1master_1_1Slave.html#a15e591c436773cdfb2ee3369f0541659">reregistra
tionTimer</a>;</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span> </div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  <span class="comment">// Executors running on this slave.</span></div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  <span class="comment">//</span></div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  <span class="comment">// TODO(bmahler): Make this private to enforce that `addExecutor()`</span></div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  <span class="comment">// and `removeExecutor()` are used, and provide a const view into</span></div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  <span class="comment">// the executors.</span></div><div class="line"><a name="l00224"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1master_1_1Slave.html#a7
3bf7efab01d3620fb8cb615c338da6c"> 224</a></span>  <a class="code" href="classhashmap.html">hashmap<FrameworkID, hashmap<ExecutorID, ExecutorInfo></a>> <a class="code" href="structmesos_1_1internal_1_1master_1_1Slave.html#a73bf7efab01d3620fb8cb615c338da6c">executors</a>;</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span> </div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  <span class="comment">// Tasks that have not yet been launched because they are currently</span></div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  <span class="comment">// being authorized. This is similar to Framework's pendingTasks but we</span></div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  <span class="comment">// track pendingTasks per agent separately to determine if any offer</span></div><div class="line"><a name="l00229"></a><span class="lineno"> 2
29</span>  <span class="comment">// operation for this agent would change resources requested by these tasks.</span></div><div class="line"><a name="l00230"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1master_1_1Slave.html#a33cbcce2b9fcf343f15cb4f64672868d"> 230</a></span>  <a class="code" href="classhashmap.html">hashmap<FrameworkID, hashmap<TaskID, TaskInfo></a>> <a class="code" href="structmesos_1_1internal_1_1master_1_1Slave.html#a33cbcce2b9fcf343f15cb4f64672868d">pendingTasks</a>;</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span> </div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  <span class="comment">// Tasks present on this slave.</span></div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  <span class="comment">//</span></div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  <span class="comment
">// TODO(bmahler): Make this private to enforce that `addTask()` and</span></div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  <span class="comment">// `removeTask()` are used, and provide a const view into the tasks.</span></div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  <span class="comment">//</span></div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  <span class="comment">// TODO(bmahler): The task pointer ownership complexity arises from the fact</span></div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  <span class="comment">// that we own the pointer here, but it's shared with the Framework struct.</span></div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  <span class="comment">// We should find a way to eliminate this.</span></div><div class="line"><a name="l00240"></a><span class="lineno"><a class="lin
e" href="structmesos_1_1internal_1_1master_1_1Slave.html#af31bd54cf2fd44fd1d95d1c898d6d2c8"> 240</a></span>  <a class="code" href="classhashmap.html">hashmap<FrameworkID, hashmap<TaskID, Task*></a>> <a class="code" href="structmesos_1_1internal_1_1master_1_1Slave.html#af31bd54cf2fd44fd1d95d1c898d6d2c8">tasks</a>;</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span> </div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  <span class="comment">// Tasks that were asked to kill by frameworks.</span></div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  <span class="comment">// This is used for reconciliation when the slave reregisters.</span></div><div class="line"><a name="l00244"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1master_1_1Slave.html#a471feb09e6e40006c48fa1941ae4961a"> 244</a></span>  <a class="code" href="classmultihashmap.html">
multihashmap<FrameworkID, TaskID></a> <a class="code" href="structmesos_1_1internal_1_1master_1_1Slave.html#a471feb09e6e40006c48fa1941ae4961a">killedTasks</a>;</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span> </div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  <span class="comment">// Pending operations or terminal operations that have</span></div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  <span class="comment">// unacknowledged status updates on this agent.</span></div><div class="line"><a name="l00248"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1master_1_1Slave.html#a4810733e4b2c0ff6c35ad5ade573ac75"> 248</a></span>  <a class="code" href="classhashmap.html">hashmap<UUID, Operation*></a> <a class="code" href="structmesos_1_1internal_1_1master_1_1Slave.html#a4810733e4b2c0ff6c35ad5ade573ac75">operations</a>;</div><div class="line"><
a name="l00249"></a><span class="lineno"> 249</span> </div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  <span class="comment">// Active offers on this slave.</span></div><div class="line"><a name="l00251"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1master_1_1Slave.html#a9dbf820e6c564c4333f97eaff7136cb1"> 251</a></span>  <a class="code" href="classhashset.html">hashset<Offer*></a> <a class="code" href="structmesos_1_1internal_1_1master_1_1Slave.html#a9dbf820e6c564c4333f97eaff7136cb1">offers</a>;</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span> </div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  <span class="comment">// Active inverse offers on this slave.</span></div><div class="line"><a name="l00254"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1master_1_1Slave.html#a2232ba794de09c7834fd882888c8e8c4"> 254
</a></span>  <a class="code" href="classhashset.html">hashset<InverseOffer*></a> <a class="code" href="structmesos_1_1internal_1_1master_1_1Slave.html#a2232ba794de09c7834fd882888c8e8c4">inverseOffers</a>;</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span> </div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  <span class="comment">// Resources for active task / executors / operations.</span></div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  <span class="comment">// Note that we maintain multiple copies of each shared resource in</span></div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  <span class="comment">// `usedResources` as they are used by multiple tasks.</span></div><div class="line"><a name="l00259"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1master_1_1Slave.html#abb421e81e433867b8c5f9382c92a0812"> 259<
/a></span>  <a class="code" href="classhashmap.html">hashmap<FrameworkID, Resources></a> <a class="code" href="structmesos_1_1internal_1_1master_1_1Slave.html#abb421e81e433867b8c5f9382c92a0812">usedResources</a>;</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span> </div><div class="line"><a name="l00261"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1master_1_1Slave.html#a8424019e6048a4f479cd0005873c8314"> 261</a></span>  <a class="code" href="classmesos_1_1Resources.html">Resources</a> <a class="code" href="structmesos_1_1internal_1_1master_1_1Slave.html#a8424019e6048a4f479cd0005873c8314">offeredResources</a>; <span class="comment">// Offers.</span></div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span> </div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  <span class="comment">// Resources that should be checkpointed by the slave (e.g.,</span></d
iv><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  <span class="comment">// persistent volumes, dynamic reservations, etc). These are either</span></div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  <span class="comment">// in use by a task/executor, or are available for use and will be</span></div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  <span class="comment">// re-offered to the framework.</span></div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  <span class="comment">// TODO(jieyu): `checkpointedResources` is only for agent default</span></div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  <span class="comment">// resources. Resources from resource providers are not included in</span></div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  <span class="comment">// this field. Consid
er removing this field.</span></div><div class="line"><a name="l00270"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1master_1_1Slave.html#a5324f39f9aebebd7a65baa4edf1789f9"> 270</a></span>  <a class="code" href="classmesos_1_1Resources.html">Resources</a> <a class="code" href="structmesos_1_1internal_1_1master_1_1Slave.html#a5324f39f9aebebd7a65baa4edf1789f9">checkpointedResources</a>;</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span> </div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  <span class="comment">// The current total resources of the slave. Note that this is</span></div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  <span class="comment">// different from 'info.resources()' because this also considers</span></div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  <span class="comment">// operations (e.g.
, CREATE, RESERVE) that have been applied and</span></div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  <span class="comment">// includes revocable resources and resources from resource</span></div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  <span class="comment">// providers as well.</span></div><div class="line"><a name="l00277"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1master_1_1Slave.html#ae797309d98eea44477d8b5611972f907"> 277</a></span>  <a class="code" href="classmesos_1_1Resources.html">Resources</a> <a class="code" href="structmesos_1_1internal_1_1master_1_1Slave.html#ae797309d98eea44477d8b5611972f907">totalResources</a>;</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span> </div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  <span class="comment">// Used to establish the relationship between the operatio
n and the</span></div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  <span class="comment">// resources that the operation is operating on. Each resource</span></div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  <span class="comment">// provider will keep a resource version UUID, and change it when it</span></div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  <span class="comment">// believes that the resources from this resource provider are out</span></div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  <span class="comment">// of sync from the master's view. The master will keep track of</span></div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  <span class="comment">// the last known resource version UUID for each resource provider,</span></div><div class="line"><a name="l00285"></a><span class="lineno"> 285</s
pan>  <span class="comment">// and attach the resource version UUID in each operation it sends</span></div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  <span class="comment">// out. The resource provider should reject operations that have a</span></div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  <span class="comment">// different resource version UUID than that it maintains, because</span></div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  <span class="comment">// this means the operation is operating on resources that might</span></div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  <span class="comment">// have already been invalidated.</span></div><div class="line"><a name="l00290"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1master_1_1Slave.html#ab0449df2888be22f3d5c0288367ca31f"> 290</a></span>  <a cla
ss="code" href="classOption.html">Option<UUID></a> <a class="code" href="structmesos_1_1internal_1_1master_1_1Slave.html#ab0449df2888be22f3d5c0288367ca31f">resourceVersion</a>;</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span> </div><div class="line"><a name="l00292"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1master_1_1Slave.html#ace1f060347d268874173bac4c6e0a035"> 292</a></span>  SlaveObserver* <a class="code" href="structmesos_1_1internal_1_1master_1_1Slave.html#ace1f060347d268874173bac4c6e0a035">observer</a>;</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span> </div><div class="line"><a name="l00294"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1master_1_1Slave_1_1ResourceProvider.html"> 294</a></span>  <span class="keyword">struct </span><a class="code" href="structmesos_1_1internal_1_1master_1_1Slave_1_1ResourceProvider.html">ResourcePro
vider</a> {</div><div class="line"><a name="l00295"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1master_1_1Slave_1_1ResourceProvider.html#a2f79355937f8c3b4b17bafcf4d46cf1d"> 295</a></span>  ResourceProviderInfo <a class="code" href="structmesos_1_1internal_1_1master_1_1Slave_1_1ResourceProvider.html#a2f79355937f8c3b4b17bafcf4d46cf1d">info</a>;</div><div class="line"><a name="l00296"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1master_1_1Slave_1_1ResourceProvider.html#ada581846ff5ab022c593e7e6260905af"> 296</a></span>  <a class="code" href="classmesos_1_1Resources.html">Resources</a> <a class="code" href="structmesos_1_1internal_1_1master_1_1Slave_1_1ResourceProvider.html#ada581846ff5ab022c593e7e6260905af">totalResources</a>;</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span> </div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  <span class="co
mment">// Used to establish the relationship between the operation and the</span></div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  <span class="comment">// resources that the operation is operating on. Each resource</span></div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  <span class="comment">// provider will keep a resource version UUID, and change it when it</span></div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  <span class="comment">// believes that the resources from this resource provider are out</span></div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  <span class="comment">// of sync from the master's view. The master will keep track of</span></div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  <span class="comment">// the last known resource version UUID for each resource provider,</span
></div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  <span class="comment">// and attach the resource version UUID in each operation it sends</span></div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  <span class="comment">// out. The resource provider should reject operations that have a</span></div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  <span class="comment">// different resource version UUID than that it maintains, because</span></div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  <span class="comment">// this means the operation is operating on resources that might</span></div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  <span class="comment">// have already been invalidated.</span></div><div class="line"><a name="l00309"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1m
aster_1_1Slave_1_1ResourceProvider.html#aa8f983cfaa834cca6e4f9b372815396b"> 309</a></span>  UUID <a class="code" href="structmesos_1_1internal_1_1master_1_1Slave_1_1ResourceProvider.html#aa8f983cfaa834cca6e4f9b372815396b">resourceVersion</a>;</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span> </div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  <span class="comment">// Pending operations or terminal operations that have</span></div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  <span class="comment">// unacknowledged status updates.</span></div><div class="line"><a name="l00313"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1master_1_1Slave_1_1ResourceProvider.html#aadb3d3717bababe38b8dcb2eb3b3cbf2"> 313</a></span>  <a class="code" href="classhashmap.html">hashmap<UUID, Operation*></a> <a class="code" href="structmesos_1_1internal_1
_1master_1_1Slave_1_1ResourceProvider.html#aadb3d3717bababe38b8dcb2eb3b3cbf2">operations</a>;</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  };</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span> </div><div class="line"><a name="l00316"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1master_1_1Slave.html#ac69e834c9f86c1628859459e4e5255b5"> 316</a></span>  <a class="code" href="classhashmap.html">hashmap<ResourceProviderID, ResourceProvider></a> <a class="code" href="structmesos_1_1internal_1_1master_1_1Slave.html#ac69e834c9f86c1628859459e4e5255b5">resourceProviders</a>;</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span> </div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  <a class="code" href="
structmesos_1_1internal_1_1master_1_1Slave.html">Slave</a>(<span class="keyword">const</span> <a class="code" href="structmesos_1_1internal_1_1master_1_1Slave.html">Slave</a>&); <span class="comment">// No copying.</span></div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  <a class="code" href="structmesos_1_1internal_1_1master_1_1Slave.html">Slave</a>& operator=(<span class="keyword">const</span> <a class="code" href="structmesos_1_1internal_1_1master_1_1Slave.html">Slave</a>&); <span class="comment">// No assigning.</span></div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span> };</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span> </div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span> </div><div class="line"><a name="l00324"></a><span class="lineno"><a class="line" href="namespacemesos_1_1internal_1_1master.html#a222c724f5e238d743bb338c7
1016048d"> 324</a></span> <span class="keyword">inline</span> std::ostream& <a class="code" href="namespaceprocess.html#a1f0b8b2ea7d75c3b9d8d4781689f731b">operator<<</a>(std::ostream& stream, <span class="keyword">const</span> <a class="code" href="structmesos_1_1internal_1_1master_1_1Slave.html">Slave</a>& slave)</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span> {</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  <span class="keywordflow">return</span> stream << slave.<a class="code" href="structmesos_1_1internal_1_1master_1_1Slave.html#a977de92e6e1fb9fa145aec95806be71f">id</a> << <span class="stringliteral">" at "</span> << slave.<a class="code" href="structmesos_1_1internal_1_1master_1_1Slave.html#a587fe54aa032cf8b260e3722e0f3c8fd">pid</a></div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  << <span class="str
ingliteral">" ("</span> << slave.<a class="code" href="structmesos_1_1internal_1_1master_1_1Slave.html#af4ee8827d405d9dcb03107dd04fa22ca">info</a>.hostname() << <span class="stringliteral">")"</span>;</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span> }</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span> </div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span> </div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span> <span class="comment">// Represents the streaming HTTP connection to a framework or a client</span></div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span> <span class="comment">// subscribed to the '/api/vX' endpoint.</span></div><div class="line"><a name="l00333"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1master_1_1HttpConnection.html"> 333</a></span> 
<span class="keyword">struct </span><a class="code" href="structmesos_1_1internal_1_1master_1_1HttpConnection.html">HttpConnection</a></div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span> {</div><div class="line"><a name="l00335"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1master_1_1HttpConnection.html#a4c4c7be068622f9d8c557a58eb065cc6"> 335</a></span>  <a class="code" href="structmesos_1_1internal_1_1master_1_1HttpConnection.html#a4c4c7be068622f9d8c557a58eb065cc6">HttpConnection</a>(<span class="keyword">const</span> <a class="code" href="classprocess_1_1http_1_1Pipe_1_1Writer.html">process::http::Pipe::Writer</a>& _writer,</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  <a class="code" href="namespacemesos.html#a13035ce0cc66cca4a467787b4716039e">ContentType</a> _contentType,</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span> 
<a class="code" href="structid_1_1UUID.html">id::UUID</a> _streamId)</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>  : writer(_writer),</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  contentType(_contentType),</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  streamId(_streamId) {}</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span> </div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  <span class="comment">// We need to evolve the internal old style message/unversioned event into a</span></div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  <span class="comment">// versioned event e.g., `v1::scheduler::Event` or `v1::master::Event`.</span></div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  <span class="keyword">template</sp
an> <<span class="keyword">typename</span> Message, <span class="keyword">typename</span> Event = v1::scheduler::Event></div><div class="line"><a name="l00345"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1master_1_1HttpConnection.html#a30bba2e03dffe8a8a369668c15ff6433"> 345</a></span>  <span class="keywordtype">bool</span> <a class="code" href="structmesos_1_1internal_1_1master_1_1HttpConnection.html#a30bba2e03dffe8a8a369668c15ff6433">send</a>(<span class="keyword">const</span> Message& message)</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>  {</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>  <a class="code" href="classrecordio_1_1Encoder.html">::recordio::Encoder<Event></a> encoder (<a class="code" href="namespaceprocess_1_1network.html#ad067110a4b38cc83785a43f49bf6c8e2">lambda::bind</a>(</div><div class="line"><a name="l00348"></a><span class="lineno"> 34
8</span>  <a class="code" href="namespacemesos_1_1internal.html#a9c1f91de8a8a389b357b81f7b51b0554">serialize</a>, contentType, lambda::_1));</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span> </div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>  <span class="keywordflow">return</span> writer.write(encoder.<a class="code" href="classrecordio_1_1Encoder.html#a1ab4319875f0c4a59fe6c2283777e78c">encode</a>(<a class="code" href="namespacemesos_1_1internal.html#a845d4d5a46b931d03f340c8afc58b60a">evolve</a>(message)));</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  }</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span> </div><div class="line"><a name="l00353"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1master_1_1HttpConnection.html#a2347c2f4d88f6f0043690aba6dfac27f"> 353</a></span>  <span class="keywordtype">bo
ol</span> <a class="code" href="structmesos_1_1internal_1_1master_1_1HttpConnection.html#a2347c2f4d88f6f0043690aba6dfac27f">close</a>()</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  {</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  <span class="keywordflow">return</span> writer.close();</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  }</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span> </div><div class="line"><a name="l00358"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1master_1_1HttpConnection.html#aabda4b0588e263e20f98c220f1f7da92"> 358</a></span>  <a class="code" href="classprocess_1_1Future.html">process::Future<Nothing></a> <a class="code" href="structmesos_1_1internal_1_1master_1_1HttpConnection.html#aabda4b0588e263e20f98c220f1f7da92">closed</a>()<span class="keyword"> const</span></div><div
class="line"><a name="l00359"></a><span class="lineno"> 359</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  <span class="keywordflow">return</span> writer.readerClosed();</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>  }</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span> </div><div class="line"><a name="l00363"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1master_1_1HttpConnection.html#aeb26fc327b1d73f95d9d874eb4226d5c"> 363</a></span>  <a class="code" href="classprocess_1_1http_1_1Pipe_1_1Writer.html">process::http::Pipe::Writer</a> <a class="code" href="structmesos_1_1internal_1_1master_1_1HttpConnection.html#aeb26fc327b1d73f95d9d874eb4226d5c">writer</a>;</div><div class="line"><a name="l00364"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1master_1_1HttpConnection.ht
ml#a96b11a33b4022d7a60fa6d672de552ea"> 364</a></span>  <a class="code" href="namespacemesos.html#a13035ce0cc66cca4a467787b4716039e">ContentType</a> <a class="code" href="structmesos_1_1internal_1_1master_1_1HttpConnection.html#a96b11a33b4022d7a60fa6d672de552ea">contentType</a>;</div><div class="line"><a name="l00365"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1master_1_1HttpConnection.html#ad6de2b778601691522fab0b3eed260e7"> 365</a></span>  <a class="code" href="structid_1_1UUID.html">id::UUID</a> <a class="code" href="structmesos_1_1internal_1_1master_1_1HttpConnection.html#ad6de2b778601691522fab0b3eed260e7">streamId</a>;</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span> };</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span> </div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span> </div><div class="line"><a name="l00369"></a><span class="lineno"> 3
69</span> <span class="comment">// This process periodically sends heartbeats to a given HTTP connection.</span></div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span> <span class="comment">// The `Message` template parameter is the type of the heartbeat event passed</span></div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span> <span class="comment">// into the heartbeater during construction, while the `Event` template</span></div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span> <span class="comment">// parameter is the versioned event type which is sent to the client.</span></div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span> <span class="comment">// The optional delay parameter is used to specify the delay period before it</span></div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span> <span class="comment">// sends the first heartbeat
.</span></div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Message, <span class="keyword">typename</span> Event></div><div class="line"><a name="l00376"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1master_1_1Heartbeater.html"> 376</a></span> <span class="keyword">class </span><a class="code" href="classmesos_1_1internal_1_1master_1_1Heartbeater.html">Heartbeater</a> : <span class="keyword">public</span> <a class="code" href="classprocess_1_1Process.html">process::Process</a><Heartbeater<Message, Event>></div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span> {</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00379"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1master_1
_1Heartbeater.html#a9c325ca5310bfde29ae8ba93b0d72afb"> 379</a></span>  <a class="code" href="classmesos_1_1internal_1_1master_1_1Heartbeater.html#a9c325ca5310bfde29ae8ba93b0d72afb">Heartbeater</a>(<span class="keyword">const</span> std::string& _logMessage,</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>  <span class="keyword">const</span> Message& _heartbeatMessage,</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>  <span class="keyword">const</span> <a class="code" href="structmesos_1_1internal_1_1master_1_1HttpConnection.html">HttpConnection</a>& _http,</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  <span class="keyword">const</span> <a class="code" href="classDuration.html">Duration</a>& _interval,</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>  <span class="keyword"
>const</span> <a class="code" href="classOption.html">Option<Duration></a>& _delay = <a class="code" href="structNone.html">None</a>())</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>  : <a class="code" href="namespaceprocess.html">process</a>::ProcessBase(<a class="code" href="namespaceprocess.html">process</a>::ID::<a class="code" href="namespaceprocess_1_1ID.html#aeb11a48c9def1da169d8455a30d0ee39">generate</a>(<span class="stringliteral">"heartbeater"</span>)),</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>  logMessage(_logMessage),</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  heartbeatMessage(_heartbeatMessage),</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  <a class="code" href="namespacemesos_1_1uri.html#a5dff7c4a2df7be12fb642b5801c34f9f">http</a>(_http),</div><div class="line"><a name="l00388">
</a><span class="lineno"> 388</span>  interval(_interval),</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  <a class="code" href="namespaceprocess.html#ad46335bec9fe626e60003c33e8f13023">delay</a>(_delay) {}</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span> </div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span> <span class="keyword">protected</span>:</div><div class="line"><a name="l00392"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1master_1_1Heartbeater.html#ac9ebf3a4eb46a4501e13bd38dcd96a5d"> 392</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1master_1_1Heartbeater.html#ac9ebf3a4eb46a4501e13bd38dcd96a5d">initialize</a>()<span class="keyword"> override</span></div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span> <span cla
ss="keyword"> </span>{</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  <span class="keywordflow">if</span> (<a class="code" href="namespaceprocess.html#ad46335bec9fe626e60003c33e8f13023">delay</a>.isSome()) {</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  <a class="code" href="namespaceprocess.html#ad46335bec9fe626e60003c33e8f13023">process::delay</a>(</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  <a class="code" href="namespaceprocess.html#ad46335bec9fe626e60003c33e8f13023">delay</a>.get(),</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>  <span class="keyword">this</span>,</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>  &<a class="code" href="classmesos_1_1internal_1_1master_1_1Heartbeater.html">Heartbeater<Message, Event>::heartbeat</a>);</div><div class="l
ine"><a name="l00399"></a><span class="lineno"> 399</span>  } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  heartbeat();</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  }</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>  }</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span> </div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>  <span class="keywordtype">void</span> heartbeat()</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>  {</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  <span class="comment">// Only send a heartbeat if the connection is not closed.</span></div><d
iv class="line"><a name="l00408"></a><span class="lineno"> 408</span>  <span class="keywordflow">if</span> (<a class="code" href="namespacemesos_1_1uri.html#a5dff7c4a2df7be12fb642b5801c34f9f">http</a>.closed().isPending()) {</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>  VLOG(2) << <span class="stringliteral">"Sending heartbeat to "</span> << logMessage;</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span> </div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  Message message(heartbeatMessage);</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  <a class="code" href="namespacemesos_1_1uri.html#a5dff7c4a2df7be12fb642b5801c34f9f">http</a>.send<Message, <a class="code" href="namespacemesos_1_1internal_1_1tests_1_1v1_1_1scheduler.html#acd3fa8addac36f513726743665631d79">Event</a>>(message);</div><div class="li
ne"><a name="l00413"></a><span class="lineno"> 413</span>  }</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span> </div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>  <a class="code" href="namespaceprocess.html#ad46335bec9fe626e60003c33e8f13023">process::delay</a>(interval, <span class="keyword">this</span>, &<a class="code" href="classmesos_1_1internal_1_1master_1_1Heartbeater.html">Heartbeater<Message, Event>::heartbeat</a>);</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>  }</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span> </div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  <span class="keyword">const</span> std::string logMessage;</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>  <span class="keyword">const</span> Message heartbeatMessage;</div><div class="lin
e"><a name="l00420"></a><span class="lineno"> 420</span>  <a class="code" href="structmesos_1_1internal_1_1master_1_1HttpConnection.html">HttpConnection</a> <a class="code" href="namespacemesos_1_1uri.html#a5dff7c4a2df7be12fb642b5801c34f9f">http</a>;</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>  <span class="keyword">const</span> <a class="code" href="classDuration.html">Duration</a> interval;</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<Duration></a> <a class="code" href="namespaceprocess.html#ad46335bec9fe626e60003c33e8f13023">delay</a>;</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span> };</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span> </div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span> </div><div class="line">
<a name="l00426"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1master_1_1Master.html"> 426</a></span> <span class="keyword">class </span><a class="code" href="classmesos_1_1internal_1_1master_1_1Master.html">Master</a> : <span class="keyword">public</span> <a class="code" href="classProtobufProcess.html">ProtobufProcess</a><Master></div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span> {</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>  <a class="code" href="classmesos_1_1internal_1_1master_1_1Master.html">Master</a>(<a class="code" href="classmesos_1_1allocator_1_1Allocator.html">mesos::allocator::Allocator</a>* allocator,</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>  <a class="code" href="classmesos_1_1internal_1_1mas
ter_1_1Registrar.html">Registrar</a>* registrar,</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>  <a class="code" href="classmesos_1_1internal_1_1Files.html">Files</a>* files,</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>  <a class="code" href="classmesos_1_1master_1_1contender_1_1MasterContender.html">mesos::master::contender::MasterContender</a>* contender,</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>  <a class="code" href="classmesos_1_1master_1_1detector_1_1MasterDetector.html">mesos::master::detector::MasterDetector</a>* detector,</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<Authorizer*></a>& authorizer,</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>  <span class="ke
yword">const</span> <a class="code" href="classOption.html">Option</a><std::shared_ptr<process::RateLimiter>>&</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>  slaveRemovalLimiter,</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>  <span class="keyword">const</span> <a class="code" href="classmesos_1_1internal_1_1master_1_1Flags.html">Flags</a>& <a class="code" href="namespaceflags.html">flags</a> = <a class="code" href="classmesos_1_1internal_1_1master_1_1Flags.html">Flags</a>());</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span> </div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>  <span class="keyword">virtual</span> ~<a class="code" href="classmesos_1_1internal_1_1master_1_1Master.html">Master</a>();</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span> </div><div class="line"><a na
me="l00441"></a><span class="lineno"> 441</span>  <span class="comment">// Message handlers.</span></div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>  <span class="keywordtype">void</span> submitScheduler(</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>  <span class="keyword">const</span> std::string& <a class="code" href="namespaceos_1_1Shell.html#acfe16ef2b1146ad49a8651c0a457ce46">name</a>);</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span> </div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>  <span class="keywordtype">void</span> registerFramework(</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>  <span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">process::UPID</a>& from,</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span> 
RegisterFrameworkMessage&& registerFrameworkMessage);</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span> </div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>  <span class="keywordtype">void</span> reregisterFramework(</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>  <span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">process::UPID</a>& from,</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>  ReregisterFrameworkMessage&& reregisterFrameworkMessage);</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span> </div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>  <span class="keywordtype">void</span> unregisterFramework(</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>  <span class="keyword">const</
span> <a class="code" href="structprocess_1_1UPID.html">process::UPID</a>& from,</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>  <span class="keyword">const</span> FrameworkID& frameworkId);</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span> </div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>  <span class="keywordtype">void</span> deactivateFramework(</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>  <span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">process::UPID</a>& from,</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>  <span class="keyword">const</span> FrameworkID& frameworkId);</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span> </div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>  <s
pan class="comment">// TODO(vinod): Remove this once the old driver is removed.</span></div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>  <span class="keywordtype">void</span> resourceRequest(</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>  <span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">process::UPID</a>& from,</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>  <span class="keyword">const</span> FrameworkID& frameworkId,</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>  <span class="keyword">const</span> std::vector<Request>& requests);</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span> </div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>  <span class="keywordtype">void</span> launchTasks(</div><div class="line"><a
name="l00468"></a><span class="lineno"> 468</span>  <span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">process::UPID</a>& from,</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>  LaunchTasksMessage&& launchTasksMessage);</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span> </div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>  <span class="keywordtype">void</span> reviveOffers(</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>  <span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">process::UPID</a>& from,</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>  <span class="keyword">const</span> FrameworkID& frameworkId,</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>  <span class="k
eyword">const</span> std::vector<std::string>& role);</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span> </div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>  <span class="keywordtype">void</span> killTask(</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>  <span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">process::UPID</a>& from,</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>  <span class="keyword">const</span> FrameworkID& frameworkId,</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>  <span class="keyword">const</span> TaskID& taskId);</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span> </div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>  <span class="keywordtype">void</span> statusU
pdateAcknowledgement(</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>  <span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">process::UPID</a>& from,</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>  StatusUpdateAcknowledgementMessage&& statusUpdateAcknowledgementMessage);</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span> </div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>  <span class="keywordtype">void</span> schedulerMessage(</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>  <span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">process::UPID</a>& from,</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>  FrameworkToExecutorMessage&& frameworkToExecutorMessage);</div><div class="l
ine"><a name="l00488"></a><span class="lineno"> 488</span> </div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>  <span class="keywordtype">void</span> executorMessage(</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>  <span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">process::UPID</a>& from,</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>  ExecutorToFrameworkMessage&& executorToFrameworkMessage);</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span> </div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>  <span class="keywordtype">void</span> <a class="code" href="namespacemesos_1_1internal_1_1master_1_1validation_1_1master_1_1message.html#afd6f535967a78ca5bfe59127ac23a626">registerSlave</a>(</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</s
pan>  <span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">process::UPID</a>& from,</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>  RegisterSlaveMessage&& registerSlaveMessage);</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span> </div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>  <span class="keywordtype">void</span> <a class="code" href="namespacemesos_1_1internal_1_1master_1_1validation_1_1master_1_1message.html#aa161808296e305b8b17479f2f7b70fa4">reregisterSlave</a>(</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>  <span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">process::UPID</a>& from,</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>  ReregisterSlaveMessage&& incomingMessage);</div><div class="li
ne"><a name="l00500"></a><span class="lineno"> 500</span> </div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>  <span class="keywordtype">void</span> unregisterSlave(</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>  <span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">process::UPID</a>& from,</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>  <span class="keyword">const</span> SlaveID& slaveId);</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span> </div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>  <span class="keywordtype">void</span> statusUpdate(</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>  StatusUpdateMessage&& statusUpdateMessage);</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>
60;</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>  <span class="keywordtype">void</span> reconcileTasks(</div><div c
<TRUNCATED>
[21/50] mesos-site git commit: Updated the website built from mesos
SHA: 7c9c72d.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/namespaceprocess_1_1io_1_1internal.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/namespaceprocess_1_1io_1_1internal.html b/content/api/latest/c++/namespaceprocess_1_1io_1_1internal.html
new file mode 100644
index 0000000..71fd66f
--- /dev/null
+++ b/content/api/latest/c++/namespaceprocess_1_1io_1_1internal.html
@@ -0,0 +1,174 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.11"/>
+<title>Apache Mesos: process::io::internal Namespace Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">Apache Mesos
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="pages.html"><span>Related Pages</span></a></li>
+ <li class="current"><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li><a href="examples.html"><span>Examples</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="namespaces.html"><span>Namespace List</span></a></li>
+ <li><a href="namespacemembers.html"><span>Namespace Members</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceprocess.html">process</a></li><li class="navelem"><a class="el" href="namespaceprocess_1_1io.html">io</a></li><li class="navelem"><a class="el" href="namespaceprocess_1_1io_1_1internal.html">internal</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">process::io::internal Namespace Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ac0a90b8abf47098e5a57d90e744a42a8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classprocess_1_1Future.html">Future</a>< size_t > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceprocess_1_1io_1_1internal.html#ac0a90b8abf47098e5a57d90e744a42a8">read</a> (<a class="el" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> fd, void *data, size_t size)</td></tr>
+<tr class="separator:ac0a90b8abf47098e5a57d90e744a42a8"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ab4ecbbe96ef3c0600060e16c47988798"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classprocess_1_1Future.html">Future</a>< size_t > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceprocess_1_1io_1_1internal.html#ab4ecbbe96ef3c0600060e16c47988798">write</a> (<a class="el" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> fd, const void *data, size_t size)</td></tr>
+<tr class="separator:ab4ecbbe96ef3c0600060e16c47988798"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a9458b24220892124c2112b3fe85e585e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classTry.html">Try</a>< <a class="el" href="structNothing.html">Nothing</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceprocess_1_1io_1_1internal.html#a9458b24220892124c2112b3fe85e585e">prepare_async</a> (<a class="el" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> fd)</td></tr>
+<tr class="separator:a9458b24220892124c2112b3fe85e585e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a2291f1f69f4bdf80f3b114c493eb1e37"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classTry.html">Try</a>< bool > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceprocess_1_1io_1_1internal.html#a2291f1f69f4bdf80f3b114c493eb1e37">is_async</a> (<a class="el" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> fd)</td></tr>
+<tr class="separator:a2291f1f69f4bdf80f3b114c493eb1e37"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a2291f1f69f4bdf80f3b114c493eb1e37"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classTry.html">Try</a><bool> process::io::internal::is_async </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> </td>
+ <td class="paramname"><em>fd</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a9458b24220892124c2112b3fe85e585e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classTry.html">Try</a><<a class="el" href="structNothing.html">Nothing</a>> process::io::internal::prepare_async </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> </td>
+ <td class="paramname"><em>fd</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ac0a90b8abf47098e5a57d90e744a42a8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classprocess_1_1Future.html">Future</a><size_t> process::io::internal::read </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> </td>
+ <td class="paramname"><em>fd</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">void * </td>
+ <td class="paramname"><em>data</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">size_t </td>
+ <td class="paramname"><em>size</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ab4ecbbe96ef3c0600060e16c47988798"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classprocess_1_1Future.html">Future</a><size_t> process::io::internal::write </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> </td>
+ <td class="paramname"><em>fd</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const void * </td>
+ <td class="paramname"><em>data</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">size_t </td>
+ <td class="paramname"><em>size</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.11
+</small></address>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/namespaceprocess_1_1windows.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/namespaceprocess_1_1windows.html b/content/api/latest/c++/namespaceprocess_1_1windows.html
new file mode 100644
index 0000000..2f3378a
--- /dev/null
+++ b/content/api/latest/c++/namespaceprocess_1_1windows.html
@@ -0,0 +1,332 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.11"/>
+<title>Apache Mesos: process::windows Namespace Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">Apache Mesos
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="pages.html"><span>Related Pages</span></a></li>
+ <li class="current"><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li><a href="examples.html"><span>Examples</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="namespaces.html"><span>Namespace List</span></a></li>
+ <li><a href="namespacemembers.html"><span>Namespace Members</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceprocess.html">process</a></li><li class="navelem"><a class="el" href="namespaceprocess_1_1windows.html">windows</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> |
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">process::windows Namespace Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classprocess_1_1windows_1_1EventLoop.html">EventLoop</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a7436ed89e84ff3415987de0ca9428d08"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classprocess_1_1Future.html">Future</a>< size_t > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceprocess_1_1windows.html#a7436ed89e84ff3415987de0ca9428d08">read</a> (const <a class="el" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> &fd, void *buf, size_t size)</td></tr>
+<tr class="separator:a7436ed89e84ff3415987de0ca9428d08"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a69a29846581bb7bb1084e9ee90cbe8e6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classprocess_1_1Future.html">Future</a>< size_t > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceprocess_1_1windows.html#a69a29846581bb7bb1084e9ee90cbe8e6">write</a> (const <a class="el" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> &fd, const void *buf, size_t size)</td></tr>
+<tr class="separator:a69a29846581bb7bb1084e9ee90cbe8e6"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a37fde6f31c2f9838a18cf83c2c865134"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classprocess_1_1Future.html">Future</a>< size_t > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceprocess_1_1windows.html#a37fde6f31c2f9838a18cf83c2c865134">recv</a> (const <a class="el" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> &fd, void *buf, size_t size)</td></tr>
+<tr class="separator:a37fde6f31c2f9838a18cf83c2c865134"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a04c64346155d34517acdf8b587162868"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classprocess_1_1Future.html">Future</a>< size_t > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceprocess_1_1windows.html#a04c64346155d34517acdf8b587162868">send</a> (const <a class="el" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> &fd, const void *buf, size_t size)</td></tr>
+<tr class="separator:a04c64346155d34517acdf8b587162868"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a1f34e4ee3092afe93c37c170430c03f5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classprocess_1_1Future.html">Future</a>< <a class="el" href="structNothing.html">Nothing</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceprocess_1_1windows.html#a1f34e4ee3092afe93c37c170430c03f5">accept</a> (const <a class="el" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> &fd, const <a class="el" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> &accepted_socket)</td></tr>
+<tr class="separator:a1f34e4ee3092afe93c37c170430c03f5"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a5afdaeaeb57343d0aca728b74dcd3f71"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classprocess_1_1Future.html">Future</a>< <a class="el" href="structNothing.html">Nothing</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceprocess_1_1windows.html#a5afdaeaeb57343d0aca728b74dcd3f71">connect</a> (const <a class="el" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> &fd, const <a class="el" href="classprocess_1_1network_1_1Address.html">network::Address</a> &<a class="el" href="namespaceprocess.html#afdecc57ab065ab5d354e728d0ef0ff34">address</a>)</td></tr>
+<tr class="separator:a5afdaeaeb57343d0aca728b74dcd3f71"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:afc59f27e725b5feb12f76e1c008ba767"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classprocess_1_1Future.html">Future</a>< size_t > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceprocess_1_1windows.html#afc59f27e725b5feb12f76e1c008ba767">sendfile</a> (const <a class="el" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> &fd, const <a class="el" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> &file_fd, off_t offset, size_t size)</td></tr>
+<tr class="separator:afc59f27e725b5feb12f76e1c008ba767"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a1f34e4ee3092afe93c37c170430c03f5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classprocess_1_1Future.html">Future</a><<a class="el" href="structNothing.html">Nothing</a>> process::windows::accept </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> & </td>
+ <td class="paramname"><em>fd</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> & </td>
+ <td class="paramname"><em>accepted_socket</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a5afdaeaeb57343d0aca728b74dcd3f71"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classprocess_1_1Future.html">Future</a><<a class="el" href="structNothing.html">Nothing</a>> process::windows::connect </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> & </td>
+ <td class="paramname"><em>fd</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="classprocess_1_1network_1_1Address.html">network::Address</a> & </td>
+ <td class="paramname"><em>address</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a7436ed89e84ff3415987de0ca9428d08"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classprocess_1_1Future.html">Future</a><size_t> process::windows::read </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> & </td>
+ <td class="paramname"><em>fd</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">void * </td>
+ <td class="paramname"><em>buf</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">size_t </td>
+ <td class="paramname"><em>size</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a37fde6f31c2f9838a18cf83c2c865134"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classprocess_1_1Future.html">Future</a><size_t> process::windows::recv </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> & </td>
+ <td class="paramname"><em>fd</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">void * </td>
+ <td class="paramname"><em>buf</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">size_t </td>
+ <td class="paramname"><em>size</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a04c64346155d34517acdf8b587162868"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classprocess_1_1Future.html">Future</a><size_t> process::windows::send </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> & </td>
+ <td class="paramname"><em>fd</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const void * </td>
+ <td class="paramname"><em>buf</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">size_t </td>
+ <td class="paramname"><em>size</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="afc59f27e725b5feb12f76e1c008ba767"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classprocess_1_1Future.html">Future</a><size_t> process::windows::sendfile </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> & </td>
+ <td class="paramname"><em>fd</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const <a class="el" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> & </td>
+ <td class="paramname"><em>file_fd</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">off_t </td>
+ <td class="paramname"><em>offset</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">size_t </td>
+ <td class="paramname"><em>size</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a69a29846581bb7bb1084e9ee90cbe8e6"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classprocess_1_1Future.html">Future</a><size_t> process::windows::write </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> & </td>
+ <td class="paramname"><em>fd</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const void * </td>
+ <td class="paramname"><em>buf</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">size_t </td>
+ <td class="paramname"><em>size</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.11
+</small></address>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/namespaces.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/namespaces.html b/content/api/latest/c++/namespaces.html
index d016d93..0236e44 100644
--- a/content/api/latest/c++/namespaces.html
+++ b/content/api/latest/c++/namespaces.html
@@ -283,7 +283,8 @@
<tr id="row_32_4_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespaceprocess_1_1ID.html" target="_self">ID</a></td><td class="desc"></td></tr>
<tr id="row_32_5_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespaceprocess_1_1inject.html" target="_self">inject</a></td><td class="desc"></td></tr>
<tr id="row_32_6_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespaceprocess_1_1internal.html" target="_self">internal</a></td><td class="desc"></td></tr>
-<tr id="row_32_7_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespaceprocess_1_1io.html" target="_self">io</a></td><td class="desc"></td></tr>
+<tr id="row_32_7_" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span id="arr_32_7_" class="arrow" onclick="toggleFolder('32_7_')">►</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespaceprocess_1_1io.html" target="_self">io</a></td><td class="desc"></td></tr>
+<tr id="row_32_7_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespaceprocess_1_1io_1_1internal.html" target="_self">internal</a></td><td class="desc"></td></tr>
<tr id="row_32_8_" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span id="arr_32_8_" class="arrow" onclick="toggleFolder('32_8_')">►</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespaceprocess_1_1metrics.html" target="_self">metrics</a></td><td class="desc"></td></tr>
<tr id="row_32_8_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespaceprocess_1_1metrics_1_1internal.html" target="_self">internal</a></td><td class="desc"></td></tr>
<tr id="row_32_9_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespaceprocess_1_1mime.html" target="_self">mime</a></td><td class="desc"></td></tr>
@@ -294,6 +295,7 @@
<tr id="row_32_10_3_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespaceprocess_1_1network_1_1internal.html" target="_self">internal</a></td><td class="desc"></td></tr>
<tr id="row_32_10_4_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespaceprocess_1_1network_1_1openssl.html" target="_self">openssl</a></td><td class="desc"></td></tr>
<tr id="row_32_10_5_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespaceprocess_1_1network_1_1unix.html" target="_self">unix</a></td><td class="desc"></td></tr>
+<tr id="row_32_11_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespaceprocess_1_1windows.html" target="_self">windows</a></td><td class="desc"></td></tr>
<tr id="row_33_"><td class="entry"><span style="width:0px;display:inline-block;"> </span><span id="arr_33_" class="arrow" onclick="toggleFolder('33_')">►</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespaceprotobuf.html" target="_self">protobuf</a></td><td class="desc"></td></tr>
<tr id="row_33_0_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespaceprotobuf_1_1internal.html" target="_self">internal</a></td><td class="desc"></td></tr>
<tr id="row_34_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacerecordio.html" target="_self">recordio</a></td><td class="desc">Provides facilities for "Record-IO" encoding of data </td></tr>
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/port__mapping_8hpp.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/port__mapping_8hpp.html b/content/api/latest/c++/port__mapping_8hpp.html
index 6ea2e95..b627086 100644
--- a/content/api/latest/c++/port__mapping_8hpp.html
+++ b/content/api/latest/c++/port__mapping_8hpp.html
@@ -64,7 +64,7 @@
<code>#include <vector></code><br />
<code>#include <<a class="el" href="id_8hpp_source.html">process/id.hpp</a>></code><br />
<code>#include <<a class="el" href="owned_8hpp_source.html">process/owned.hpp</a>></code><br />
-<code>#include <<a class="el" href="subprocess_8hpp_source.html">process/subprocess.hpp</a>></code><br />
+<code>#include <<a class="el" href="include_2process_2subprocess_8hpp_source.html">process/subprocess.hpp</a>></code><br />
<code>#include <<a class="el" href="3rdparty_2libprocess_2include_2process_2metrics_2metrics_8hpp_source.html">process/metrics/metrics.hpp</a>></code><br />
<code>#include <<a class="el" href="counter_8hpp_source.html">process/metrics/counter.hpp</a>></code><br />
<code>#include <<a class="el" href="bytes_8hpp_source.html">stout/bytes.hpp</a>></code><br />
[05/50] mesos-site git commit: Updated the website built from mesos
SHA: 7c9c72d.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/windows_2event__loop_8hpp.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/windows_2event__loop_8hpp.html b/content/api/latest/c++/windows_2event__loop_8hpp.html
new file mode 100644
index 0000000..8d2caf7
--- /dev/null
+++ b/content/api/latest/c++/windows_2event__loop_8hpp.html
@@ -0,0 +1,80 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.11"/>
+<title>Apache Mesos: 3rdparty/libprocess/src/windows/event_loop.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">Apache Mesos
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="pages.html"><span>Related Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li><a href="examples.html"><span>Examples</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ <li><a href="globals.html"><span>File Members</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_8cab8f464681f7cc51cee77e79a434cd.html">3rdparty</a></li><li class="navelem"><a class="el" href="dir_043a76de98701f9bddf61b5e98f305ff.html">libprocess</a></li><li class="navelem"><a class="el" href="dir_01cbbd8dcbf9de3825992568658f467e.html">src</a></li><li class="navelem"><a class="el" href="dir_4f303781ded361ff602a549327c53cc9.html">windows</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#namespaces">Namespaces</a> |
+<a href="#var-members">Variables</a> </div>
+ <div class="headertitle">
+<div class="title">event_loop.hpp File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include "<a class="el" href="libwinio_8hpp_source.html">windows/libwinio.hpp</a>"</code><br />
+</div>
+<p><a href="windows_2event__loop_8hpp_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceprocess"><td class="memItemLeft" align="right" valign="top">  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceprocess.html">process</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
+Variables</h2></td></tr>
+<tr class="memitem:a3b1f9b3719ea6358ad426ae31bc8eae6"><td class="memItemLeft" align="right" valign="top">windows::EventLoop * </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceprocess.html#a3b1f9b3719ea6358ad426ae31bc8eae6">process::libwinio_loop</a></td></tr>
+<tr class="separator:a3b1f9b3719ea6358ad426ae31bc8eae6"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.11
+</small></address>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/windows_2event__loop_8hpp_source.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/windows_2event__loop_8hpp_source.html b/content/api/latest/c++/windows_2event__loop_8hpp_source.html
new file mode 100644
index 0000000..4406c64
--- /dev/null
+++ b/content/api/latest/c++/windows_2event__loop_8hpp_source.html
@@ -0,0 +1,66 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.11"/>
+<title>Apache Mesos: 3rdparty/libprocess/src/windows/event_loop.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">Apache Mesos
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="pages.html"><span>Related Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li><a href="examples.html"><span>Examples</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ <li><a href="globals.html"><span>File Members</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_8cab8f464681f7cc51cee77e79a434cd.html">3rdparty</a></li><li class="navelem"><a class="el" href="dir_043a76de98701f9bddf61b5e98f305ff.html">libprocess</a></li><li class="navelem"><a class="el" href="dir_01cbbd8dcbf9de3825992568658f467e.html">src</a></li><li class="navelem"><a class="el" href="dir_4f303781ded361ff602a549327c53cc9.html">windows</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">event_loop.hpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="windows_2event__loop_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// Licensed under the Apache License, Version 2.0 (the "License");</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// you may not use this file except in compliance with the License.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// You may obtain a copy of the License at</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="c
omment">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// Unless required by applicable law or agreed to in writing, software</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">// distributed under the License is distributed on an "AS IS" BASIS,</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">// See the License for the specific language governing permissions and</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// limitations under the License</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> </div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#ifndef __WINDOWS_EVENT_LOOP_HPP__</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#define __WINDOWS_EVENT_LOOP_HPP__</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include "<a class="code" href="libwinio_8hpp.html">windows/libwinio.hpp</a>"</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> </div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="keyword">namespace </span><a class="code" href="namespaceprocess.html">process</a> {</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> </div><div class="line"><a name="l00020"></a><span class="lin
eno"> 20</span> <span class="comment">// Windows event loop variable.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="keyword">extern</span> windows::EventLoop* <a class="code" href="namespaceprocess.html#a3b1f9b3719ea6358ad426ae31bc8eae6">libwinio_loop</a>;</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> } <span class="comment">// namespace process {</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> </div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#endif // __WINDOWS_EVENT_LOOP_HPP__</span></div><div class="ttc" id="namespaceprocess_html_a3b1f9b3719ea6358ad426ae31bc8eae6"><div class="ttname"><a href="namespaceprocess.html#a3b1f9b3719ea6358ad426ae31bc8eae6">process::libwinio_loop</a></div><div class="ttde
ci">windows::EventLoop * libwinio_loop</div></div>
+<div class="ttc" id="libwinio_8hpp_html"><div class="ttname"><a href="libwinio_8hpp.html">libwinio.hpp</a></div></div>
+<div class="ttc" id="namespaceprocess_html"><div class="ttname"><a href="namespaceprocess.html">process</a></div><div class="ttdef"><b>Definition:</b> executor.hpp:48</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.11
+</small></address>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/windows_2os_8hpp.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/windows_2os_8hpp.html b/content/api/latest/c++/windows_2os_8hpp.html
index 51c0e72..60222c6 100644
--- a/content/api/latest/c++/windows_2os_8hpp.html
+++ b/content/api/latest/c++/windows_2os_8hpp.html
@@ -97,6 +97,8 @@ Namespaces</h2></td></tr>
Functions</h2></td></tr>
<tr class="memitem:a02c567b1b6bb441a3a29433a126cedec"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classTry.html">Try</a>< std::string > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceos_1_1internal.html#a02c567b1b6bb441a3a29433a126cedec">os::internal::nodename</a> ()</td></tr>
<tr class="separator:a02c567b1b6bb441a3a29433a126cedec"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a1493e5fcc92753702d08b36881ee8f97"><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceos_1_1internal.html#a1493e5fcc92753702d08b36881ee8f97">os::internal::windows_to_unix_epoch</a> (const FILETIME &filetime)</td></tr>
+<tr class="separator:a1493e5fcc92753702d08b36881ee8f97"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:abdecf7ea8278e2d8b2110ecd2e8ca0ec"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classTry.html">Try</a>< std::set< <a class="el" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ab03ced250ed239bc3b50b669493997f9">pid_t</a> > > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceos.html#abdecf7ea8278e2d8b2110ecd2e8ca0ec">os::pids</a> (<a class="el" href="classOption.html">Option</a>< <a class="el" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ab03ced250ed239bc3b50b669493997f9">pid_t</a> > <a class="el" href="structgroup.html">group</a>, <a class="el" href="classOption.html">Option</a>< <a class="el" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ab03ced250ed239bc3b50b669493997f9">pid_t</a> > session)</td></tr>
<tr class="separator:abdecf7ea8278e2d8b2110ecd2e8ca0ec"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a42af1cab63434cedf2b698cd6f49f073"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classTry.html">Try</a>< std::set< <a class="el" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ab03ced250ed239bc3b50b669493997f9">pid_t</a> > > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceos.html#a42af1cab63434cedf2b698cd6f49f073">os::pids</a> ()</td></tr>
[23/50] mesos-site git commit: Updated the website built from mesos
SHA: 7c9c72d.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/linux_2cgroups_8hpp_source.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/linux_2cgroups_8hpp_source.html b/content/api/latest/c++/linux_2cgroups_8hpp_source.html
index eb408af..5cba4f0 100644
--- a/content/api/latest/c++/linux_2cgroups_8hpp_source.html
+++ b/content/api/latest/c++/linux_2cgroups_8hpp_source.html
@@ -52,7 +52,7 @@
<div class="title">cgroups.hpp</div> </div>
</div><!--header-->
<div class="contents">
-<a href="linux_2cgroups_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// or more contributor license agreements. See the NOTICE file</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// distributed with this work for additional information</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">// regarding copyright ownership. The ASF licenses this file</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00006"></a><s
pan class="lineno"> 6</span> <span class="comment">// "License"); you may not use this file except in compliance</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// with the License. You may obtain a copy of the License at</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">//</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// Unless required by applicable law or agreed to in writing, software</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment">// di
stributed under the License is distributed on an "AS IS" BASIS,</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">// See the License for the specific language governing permissions and</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// limitations under the License.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#ifndef __CGROUPS_HPP__</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#define __CGROUPS_HPP__</span></div><div class="line"><a name="l
00019"></a><span class="lineno"> 19</span> </div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include <stdint.h></span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <stdlib.h></span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <set></span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <string></span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <vector></span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div><div class="line"><a name="l00027"></a><span class="lineno"> 27</
span> <span class="preprocessor">#include <sys/types.h></span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> </div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include <<a class="code" href="future_8hpp.html">process/future.hpp</a>></span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include <<a class="code" href="timeout_8hpp.html">process/timeout.hpp</a>></span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> </div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#include <<a class="code" href="bytes_8hpp.html">stout/bytes.hpp</a>></span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#include <<a class="code" href="duration_8hpp.html">s
tout/duration.hpp</a>></span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#include <<a class="code" href="hashmap_8hpp.html">stout/hashmap.hpp</a>></span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include <<a class="code" href="nothing_8hpp.html">stout/nothing.hpp</a>></span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#include <<a class="code" href="option_8hpp.html">stout/option.hpp</a>></span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#include <<a class="code" href="try_8hpp.html">stout/try.hpp</a>></span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div><div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="namespacecgroup
s.html"> 39</a></span> <span class="keyword">namespace </span><a class="code" href="namespacecgroups.html">cgroups</a> {</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="comment">// Suggested timeout for use with the convenience version of</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="comment">// cgroups::destroy(); it is not a default timeout and must be</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="comment">// explicitly specified.</span></div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="namespacecgroups.html#a3e497aa6d62c407000dffd5f0516a53c"> 44</a></span> <span class="keyword">const</span> <a class="code" href="classDuration.html">Duration</a> <a class="code" href="namespacecgroups.html#
a3e497aa6d62c407000dffd5f0516a53c">DESTROY_TIMEOUT</a> = <a class="code" href="classSeconds.html">Seconds</a>(60);</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> </div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="comment">// Freezing a cgroup may get stuck (see MESOS-1689 for details). To</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="comment">// workaround, we may want to thaw the cgroup and retry freezing it.</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="comment">// This is the suggested retry interval.</span></div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="namespacecgroups.html#a5207e520ebc1a375a7b50532217e77d5"> 50</a></span> <span class="keyword">const</span>
<a class="code" href="classDuration.html">Duration</a> <a class="code" href="namespacecgroups.html#a5207e520ebc1a375a7b50532217e77d5">FREEZE_RETRY_INTERVAL</a> = <a class="code" href="classSeconds.html">Seconds</a>(10);</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="comment">// Default number of assign attempts when moving threads to a cgroup.</span></div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="namespacecgroups.html#a0dccf61f2e6889ebe2c0e743d969e4c5"> 54</a></span> <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="namespacecgroups.html#a0dccf61f2e6889ebe2c0e743d969e4c5">THREAD_ASSIGN_RETRIES</a> = 100;</div><div class="line"><a name="l0
0055"></a><span class="lineno"> 55</span> </div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="comment">// We use the following notations throughout the cgroups code. The notations</span></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="comment">// here are derived from the kernel documentation. More details can be found in</span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="comment">// <kernel-source>/Documentation/cgroups/cgroups.txt.</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="comment">//</span></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="comment">// Hierarchy - A hierarchy contains a set of cgroups arranged in a tree such</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span
class="comment">// that every task in the system is in exactly one of the cgroups</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="comment">// in the hierarchy. One or more subsystems can be attached to a</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="comment">// hierarchy.</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="comment">// Subsystem - A subsystem (e.g. cpu, memory, cpuset, etc) in the kernel. Each</span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="comment">// subsystem can be attached to only one hierarchy.</span></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="comment">// Cgroup - A cgroup is just a set of tasks with a set of controls for one</span></div><
div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="comment">// or more subsystems.</span></div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="comment">// Control - A control file in a cgroup (e.g. tasks, cpu.shares).</span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span> </div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span> </div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="comment">// TODO(idownes): Rework all functions in this file to better support</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="comment">// separately mounted subsystems.</span></div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class
="comment">// Prepare a hierarchy which has the specified subsystem (and only that</span></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="comment">// subsystem) mounted and also has the specified cgroup created. Returns the</span></div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="comment">// hierarchy. Checks are made to ensure that cgroups are supported and that</span></div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="comment">// nested cgroups can be created.</span></div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <a class="code" href="classTry.html">Try<std::string></a> <a class="code" href="namespacecgroups.html#a4bf20862574beb5b0f9af7799489866f">prepare</a>(</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <span class="keyword">const</span> std::string& baseHi
erarchy,</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="keyword">const</span> std::string& subsystem,</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <span class="keyword">const</span> std::string& <a class="code" href="namespacecgroups_1_1named.html#a90339a144714dee1c97f9e34553ace0e">cgroup</a>);</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span> </div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span> </div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="comment">// Check whether cgroups module is enabled on the current machine.</span></div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="comment">// @return True if cgroups module is enabled.</span></div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span cla
ss="comment">// False if cgroups module is not available.</span></div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="keywordtype">bool</span> <a class="code" href="namespacecgroups.html#a549f051f3df2b570aef0ee2b806020e3">enabled</a>();</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span> </div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span> </div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="comment">// Return the currently active hierarchies.</span></div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <span class="comment">// @return A set of active hierarchy paths (e.g., '/cgroup').</span></div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <span class="comment">// Error if unexpected happens.</span></div><div class="line"><a name="l00093"></a><spa
n class="lineno"> 93</span> <a class="code" href="classTry.html">Try<std::set<std::string></a>> <a class="code" href="namespacecgroups.html#adabca75358eab66d19aaed528dd251d7">hierarchies</a>();</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span> </div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span> </div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span> <span class="comment">// Get an already mounted hierarchy that has 'subsystems' attached.</span></div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="comment">// This function will return an error if we are unable to find the</span></div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="comment">// hierarchies or if we are unable to find if the subsystems are</span></div><div class="line"><a name="l00099"></a><span class="lineno"> 99</
span> <span class="comment">// mounted at a given hierarchy.</span></div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <span class="comment">// @param subsystems Comma-separated subsystem names.</span></div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span> <span class="comment">// @return Path to the hierarchy root, if a hierarchy with all the</span></div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span> <span class="comment">// given subsystems mounted exists.</span></div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <span class="comment">// None, if no such hierarchy exists.</span></div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="comment">// Error, if the operation fails.</span></div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <a class="code" href="classR
esult.html">Result<std::string></a> <a class="code" href="namespacecgroups.html#ad675453425dc290064c609351f2e3363">hierarchy</a>(<span class="keyword">const</span> std::string& <a class="code" href="namespacecgroups.html#a43ff5aa5dec5f24b0a3620847e9dd6b6">subsystems</a>);</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span> </div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span> </div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span> <span class="comment">// Check whether all the given subsystems are enabled on the current machine.</span></div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <span class="comment">// @param subsystems Comma-separated subsystem names.</span></div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="comment">// @return True if all the given subsystems are enabled.</span></div><div class="
line"><a name="l00111"></a><span class="lineno"> 111</span> <span class="comment">// False if any of the given subsystems is not enabled.</span></div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span> <span class="comment">// Error if something unexpected happens.</span></div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span> <a class="code" href="classTry.html">Try<bool></a> <a class="code" href="namespacecgroups.html#a549f051f3df2b570aef0ee2b806020e3">enabled</a>(<span class="keyword">const</span> std::string& <a class="code" href="namespacecgroups.html#a43ff5aa5dec5f24b0a3620847e9dd6b6">subsystems</a>);</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span> </div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span> </div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span> <span class="comment">// Return true if any
of the given subsystems is currently attached to a</span></div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span> <span class="comment">// hierarchy.</span></div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span> <span class="comment">// @param subsystems Comma-separated subsystem names.</span></div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span> <span class="comment">// @return True if any of the given subsystems is being attached.</span></div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span> <span class="comment">// False if non of the given subsystems is being attached.</span></div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span> <span class="comment">// Error if something unexpected happens.</span></div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span> <a class="code" href="classTry.html">Tr
y<bool></a> <a class="code" href="namespacecgroups.html#a56d29749c5955372d012171f5c9b1724">busy</a>(<span class="keyword">const</span> std::string& <a class="code" href="namespacecgroups.html#a43ff5aa5dec5f24b0a3620847e9dd6b6">subsystems</a>);</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span> </div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span> </div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span> <span class="comment">// Return the currently enabled subsystems.</span></div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span> <span class="comment">// @return A set of enabled subsystem names if succeeds.</span></div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span> <span class="comment">// Error if unexpected happens.</span></div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span> <a class="cod
e" href="classTry.html">Try<std::set<std::string></a>> <a class="code" href="namespacecgroups.html#a43ff5aa5dec5f24b0a3620847e9dd6b6">subsystems</a>();</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span> </div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span> </div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span> <span class="comment">// Return a set of subsystems that are attached to a given hierarchy. An error</span></div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span> <span class="comment">// will be returned if the given hierarchy is not currently mounted with a</span></div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span> <span class="comment">// cgroups virtual file system. As a result, this function can be used to check</span></div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span> <span class=
"comment">// whether a hierarchy is indeed a cgroups hierarchy root.</span></div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span> <span class="comment">// @param hierarchy Path to the hierarchy root.</span></div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span> <span class="comment">// @return A set of attached subsystem names.</span></div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span> <span class="comment">// Error otherwise, (e.g., hierarchy does not exist or is not mounted).</span></div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span> <a class="code" href="classTry.html">Try<std::set<std::string></a>> <a class="code" href="namespacecgroups.html#a43ff5aa5dec5f24b0a3620847e9dd6b6">subsystems</a>(<span class="keyword">const</span> std::string& <a class="code" href="namespacecgroups.html#ad675453425dc290064c609351f2e3363">hierarchy</a>);</
div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span> </div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span> </div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span> <span class="comment">// Mount a cgroups hierarchy and attach the given subsystems to</span></div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span> <span class="comment">// it. This function will return error if the path given for the</span></div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span> <span class="comment">// hierarchy already exists. Also, the function will return error if</span></div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span> <span class="comment">// a subsystem in the given subsystem list has already been attached</span></div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span> <span class="comment">// to ano
ther hierarchy. On success, the cgroups virtual file system</span></div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span> <span class="comment">// will be mounted with the proper subsystems attached. On failure,</span></div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span> <span class="comment">// mount will be retried the specified number of times.</span></div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span> <span class="comment">// @param hierarchy Path to the hierarchy root.</span></div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span> <span class="comment">// @param subsystems Comma-separated subsystem names.</span></div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span> <span class="comment">// @param retry Number of times to retry mount.</span></div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>
0;<span class="comment">// @return Some if the operation succeeds.</span></div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span> <span class="comment">// Error if the operation fails.</span></div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span> <a class="code" href="classTry.html">Try<Nothing></a> <a class="code" href="namespacecgroups.html#aa3c1a4d4d11cca392dc45ff363718fc1">mount</a>(</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  <span class="keyword">const</span> std::string& <a class="code" href="namespacecgroups.html#ad675453425dc290064c609351f2e3363">hierarchy</a>,</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <span class="keyword">const</span> std::string& <a class="code" href="namespacecgroups.html#a43ff5aa5dec5f24b0a3620847e9dd6b6">subsystems</a>,</div><div class="line"><a name="l00156"></a><span class="lineno"> 1
56</span>  <span class="keywordtype">int</span> retry = 0);</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span> </div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span> </div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span> <span class="comment">// Unmount a hierarchy and remove the directory associated with</span></div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span> <span class="comment">// it. This function will return error if the given hierarchy is not</span></div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span> <span class="comment">// valid. Also, it will return error if the given hierarchy has</span></div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span> <span class="comment">// any cgroups.</span></div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span> <span class="comm
ent">// @param hierarchy Path to the hierarchy root.</span></div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span> <span class="comment">// @return Some if the operation succeeds.</span></div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span> <span class="comment">// Error if the operation fails.</span></div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span> <a class="code" href="classTry.html">Try<Nothing></a> <a class="code" href="namespacecgroups.html#af94090b7b947fde2603c22b609650c9b">unmount</a>(<span class="keyword">const</span> std::string& <a class="code" href="namespacecgroups.html#ad675453425dc290064c609351f2e3363">hierarchy</a>);</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span> </div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span> </div><div class="line"><a name="l00169"></a><span class="lineno"> 169</sp
an> <span class="comment">// Returns true if the given hierarchy root is mounted as a cgroups</span></div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span> <span class="comment">// virtual file system with the specified subsystems attached.</span></div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span> <span class="comment">// @param hierarchy Path to the hierarchy root.</span></div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span> <span class="comment">// @return True if the given directory is a hierarchy root and all of the</span></div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span> <span class="comment">// specified subsystems are attached.</span></div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span> <span class="comment">// False if the directory is not a hierarchy (or doesn't exist)</span></div><div class="
line"><a name="l00175"></a><span class="lineno"> 175</span> <span class="comment">// or some of the specified subsystems are not attached.</span></div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span> <span class="comment">// Error if the operation fails.</span></div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span> <a class="code" href="classTry.html">Try<bool></a> <a class="code" href="namespacecgroups.html#a379912fbd52d8dba056a7d94041a224e">mounted</a>(</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  <span class="keyword">const</span> std::string& <a class="code" href="namespacecgroups.html#ad675453425dc290064c609351f2e3363">hierarchy</a>,</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  <span class="keyword">const</span> std::string& <a class="code" href="namespacecgroups.html#a43ff5aa5dec5f24b0a3620847e9dd6b6"
>subsystems</a> = <span class="stringliteral">""</span>);</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span> </div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span> </div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span> <span class="comment">// Create a cgroup under a given hierarchy. This function will return error if</span></div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span> <span class="comment">// the given hierarchy is not valid.</span></div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span> <span class="comment">// @param hierarchy Path to the hierarchy root.</span></div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span> <span class="comment">// @param cgroup Path to the cgroup relative to the hierarchy root.</span></div><div class="line"><a name="l00186"></a><span class="lineno"> 186
</span> <span class="comment">// @param recursive Will create nested cgroups</span></div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span> <span class="comment">// @return Some if the operation succeeds.</span></div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span> <span class="comment">// Error if the operation fails.</span></div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span> <a class="code" href="classTry.html">Try<Nothing></a> <a class="code" href="namespacecgroups.html#a2ecc89636706df947027a4c3c2100fbe">create</a>(</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  <span class="keyword">const</span> std::string& <a class="code" href="namespacecgroups.html#ad675453425dc290064c609351f2e3363">hierarchy</a>,</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  <span class="keyword">const</span> std::
string& <a class="code" href="namespacecgroups_1_1named.html#a90339a144714dee1c97f9e34553ace0e">cgroup</a>,</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  <span class="keywordtype">bool</span> recursive = <span class="keyword">false</span>);</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span> </div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span> </div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span> <span class="comment">// Remove a cgroup under a given hierarchy. This function will return error if</span></div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span> <span class="comment">// the given hierarchy or the given cgroup is not valid. The cgroup will NOT be</span></div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span> <span class="comment">// removed recursively. In other words, if the cgroup h
as sub-cgroups inside,</span></div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span> <span class="comment">// the function will return error. Also, if any process is attached to the</span></div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span> <span class="comment">// given cgroup, the removal operation will also fail.</span></div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span> <span class="comment">// @param hierarchy Path to the hierarchy root.</span></div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span> <span class="comment">// @param cgroup Path to the cgroup relative to the hierarchy root.</span></div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span> <a class="code" href="classTry.html">Try<Nothing></a> <span class="keyword">remove</span>(<span class="keyword">const</span> std::string& <a class="code" href="namespace
cgroups.html#ad675453425dc290064c609351f2e3363">hierarchy</a>, <span class="keyword">const</span> std::string& <a class="code" href="namespacecgroups_1_1named.html#a90339a144714dee1c97f9e34553ace0e">cgroup</a>);</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span> </div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span> </div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span> <span class="comment">// Returns true if the given cgroup under a given hierarchy exists.</span></div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span> <span class="comment">// @param hierarchy Path to the hierarchy root.</span></div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span> <span class="comment">// @param cgroup Path to the cgroup relative to the hierarchy root.</span></div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span> 
;<span class="comment">// @return True if the cgroup exists.</span></div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span> <span class="comment">// False if the cgroup does not exist.</span></div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span> <span class="comment">// Error if the operation fails (i.e., hierarchy is not mounted).</span></div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span> <a class="code" href="classTry.html">Try<bool></a> <a class="code" href="namespacecgroups.html#a8a1f39ed37d38f45bf997bbb2f6b791c">exists</a>(<span class="keyword">const</span> std::string& hierarchy, <span class="keyword">const</span> std::string& <a class="code" href="namespacecgroups_1_1named.html#a90339a144714dee1c97f9e34553ace0e">cgroup</a>);</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span> </div><div class="line"><a name="l00213"></a><span c
lass="lineno"> 213</span> </div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span> <span class="comment">// Return all the cgroups under the given cgroup of a given hierarchy. By</span></div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span> <span class="comment">// default, it returns all the cgroups under the given hierarchy. This function</span></div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span> <span class="comment">// will return error if the given hierarchy is not mounted or the cgroup does</span></div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span> <span class="comment">// not exist. We use a post-order walk here to ease the removal of cgroups.</span></div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span> <span class="comment">// @param hierarchy Path to the hierarchy root.</span></div><div class="line"><a name="l00219"></a>
<span class="lineno"> 219</span> <span class="comment">// @return A vector of cgroup names.</span></div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span> <a class="code" href="classTry.html">Try<std::vector<std::string></a>> <span class="keyword">get</span>(</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  <span class="keyword">const</span> std::string& <a class="code" href="namespacecgroups.html#ad675453425dc290064c609351f2e3363">hierarchy</a>,</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  <span class="keyword">const</span> std::string& <a class="code" href="namespacecgroups_1_1named.html#a90339a144714dee1c97f9e34553ace0e">cgroup</a> = <span class="stringliteral">"/"</span>);</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span> </div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span> 
</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span> <span class="comment">// Send the specified signal to all process in a cgroup.</span></div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span> <span class="comment">// @param hierarchy Path to the hierarchy root.</span></div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span> <span class="comment">// @param cgroup Path to the cgroup relative to the hierarchy root.</span></div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span> <span class="comment">// @param signal The signal to send to all tasks within the cgroup.</span></div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span> <span class="comment">// @return Some on success.</span></div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span> <span class="comment">// Error if something unexpected h
appens.</span></div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span> <a class="code" href="classTry.html">Try<Nothing></a> <a class="code" href="namespacecgroups.html#ab75e1e2d1be63eec907bf12306a7c8a7">kill</a>(</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  <span class="keyword">const</span> std::string& hierarchy,</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  <span class="keyword">const</span> std::string& cgroup,</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  <span class="keywordtype">int</span> signal);</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span> </div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span> </div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span> <span class="comment">// Read a control file. Control files are used
to monitor and control cgroups.</span></div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span> <span class="comment">// This function will verify all the parameters. If the given hierarchy is not</span></div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span> <span class="comment">// properly mounted with appropriate subsystems, or the given cgroup is not</span></div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span> <span class="comment">// valid, or the given control file is not valid, the function will return</span></div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span> <span class="comment">// error.</span></div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span> <span class="comment">// @param hierarchy Path to the hierarchy root.</span></div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span> <span class="comment">/
/ @param cgroup Path to the cgroup relative to the hierarchy root.</span></div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span> <span class="comment">// @param control Name of the control file.</span></div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span> <span class="comment">// @return The value read from the control file.</span></div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span> <a class="code" href="classTry.html">Try<std::string></a> <a class="code" href="namespacecgroups.html#aa696e42fa4a13e922dee2d1f869146d2">read</a>(</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  <span class="keyword">const</span> std::string& hierarchy,</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  <span class="keyword">const</span> std::string& cgroup,</div><div class="line"><a name="l00249"></a><span class="li
neno"> 249</span>  <span class="keyword">const</span> std::string& control);</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span> </div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span> </div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span> <span class="comment">// Write a control file. Parameter checking is similar to read.</span></div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span> <span class="comment">// @param hierarchy Path to the hierarchy root.</span></div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span> <span class="comment">// @param cgroup Path to the cgroup relative to the hierarchy root.</span></div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span> <span class="comment">// @param control Name of the control file.</span></div><div class="line"><a name="l00256"></a><span
class="lineno"> 256</span> <span class="comment">// @param value Value to be written.</span></div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span> <span class="comment">// @return Some if the operation succeeds.</span></div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span> <span class="comment">// Error if the operation fails.</span></div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span> <a class="code" href="classTry.html">Try<Nothing></a> <a class="code" href="namespacecgroups.html#ad199dcd922eab26b23b7011c7e0ca34a">write</a>(</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  <span class="keyword">const</span> std::string& hierarchy,</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  <span class="keyword">const</span> std::string& cgroup,</div><div class="line"><a name="l00262"></a><span
class="lineno"> 262</span>  <span class="keyword">const</span> std::string& control,</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  <span class="keyword">const</span> std::string& value);</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span> </div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span> </div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span> <span class="comment">// Check whether a control file is valid under a given cgroup and a given</span></div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span> <span class="comment">// hierarchy. This function will return error if the given hierarchy is not</span></div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span> <span class="comment">// properly mounted with appropriate subsystems, or the given cgroup does not</span></div><div class="lin
e"><a name="l00269"></a><span class="lineno"> 269</span> <span class="comment">// exist, or the control file does not exist.</span></div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span> <span class="comment">// @param hierarchy Path to the hierarchy root.</span></div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span> <span class="comment">// @param cgroup Path to the cgroup relative to the hierarchy root.</span></div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span> <span class="comment">// @param control Name of the control file.</span></div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span> <span class="comment">// @return Some if the check succeeds.</span></div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span> <span class="comment">// Error if the check fails.</span></div><div class="line"><a name="l00275"></a>
<span class="lineno"> 275</span> <a class="code" href="classTry.html">Try<bool></a> <a class="code" href="namespacecgroups.html#a8a1f39ed37d38f45bf997bbb2f6b791c">exists</a>(</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  <span class="keyword">const</span> std::string& hierarchy,</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  <span class="keyword">const</span> std::string& cgroup,</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  <span class="keyword">const</span> std::string& control);</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span> </div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span> </div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span> <span class="comment">// Return the set of process IDs in a given cgroup under a given hierarchy. It</span></div>
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span> <span class="comment">// will return error if the given hierarchy or the given cgroup is not valid.</span></div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span> <span class="comment">// @param hierarchy Path to the hierarchy root.</span></div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span> <span class="comment">// @param cgroup Path to the cgroup relative to the hierarchy root.</span></div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span> <span class="comment">// @return The set of process ids.</span></div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span> <a class="code" href="classTry.html">Try<std::set<pid_t></a>> <a class="code" href="namespacecgroups.html#ad3e8800b1782f900cead465f7920dfa5">processes</a>(</div><div class="line"><a name="l00287"></a><span class="linen
o"> 287</span>  <span class="keyword">const</span> std::string& hierarchy,</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  <span class="keyword">const</span> std::string& cgroup);</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span> </div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span> </div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span> <span class="comment">// Return the set of thread IDs in a given cgroup under a given hierarchy. It</span></div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span> <span class="comment">// will return error if the given hierarchy or the given cgroup is not valid.</span></div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span> <span class="comment">// @param hierarchy Path to the hierarchy root.</span></div><div class="line"><a name="l00294"></a><span
class="lineno"> 294</span> <span class="comment">// @param cgroup Path to the cgroup relative to the hierarchy root.</span></div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span> <span class="comment">// @return The set of thread ids.</span></div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span> <a class="code" href="classTry.html">Try<std::set<pid_t></a>> <a class="code" href="namespacecgroups.html#a9fb61299862484ab2d1bd382ea109ca9">threads</a>(</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  <span class="keyword">const</span> std::string& hierarchy,</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  <span class="keyword">const</span> std::string& cgroup);</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span> </div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>
0;</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span> <span class="comment">// Assign a given process specified by its pid to a given cgroup. All threads</span></div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span> <span class="comment">// in the pid's threadgroup will also be moved to the cgroup. This function</span></div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span> <span class="comment">// will return error if the given hierarchy or the given cgroup is not valid.</span></div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span> <span class="comment">// Also, it will return error if the pid has no process associated with it.</span></div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span> <span class="comment">// @param hierarchy Path to the hierarchy root.</span></div><div class="line"><a name="l00306"></a><span class="lineno"> 306
</span> <span class="comment">// @param cgroup Path to the cgroup relative to the hierarchy root.</span></div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span> <span class="comment">// @param pid The pid of the given process.</span></div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span> <span class="comment">// @return Some if the operation succeeds.</span></div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span> <span class="comment">// Error if the operation fails.</span></div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span> <a class="code" href="classTry.html">Try<Nothing></a> <a class="code" href="namespacecgroups.html#a60fe712940bfb345dc346c1dbc622cf5">assign</a>(</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  <span class="keyword">const</span> std::string& hierarchy,</div><div class="lin
e"><a name="l00312"></a><span class="lineno"> 312</span>  <span class="keyword">const</span> std::string& cgroup,</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  <a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ab03ced250ed239bc3b50b669493997f9">pid_t</a> pid);</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span> </div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span> </div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span> <span class="comment">// Isolate a given process specified by its 'pid' to a given cgroup</span></div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span> <span class="comment">// by both creating the cgroup (recursively) if it doesn't exist and</span></div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span> <span class="comment">// then assig
ning the process to that cgroup.</span></div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span> <span class="comment">//</span></div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span> <span class="comment">// @param hierarchy Path to the hierarchy root.</span></div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span> <span class="comment">// @param cgroup Path to the cgroup relative to the hierarchy root.</span></div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span> <span class="comment">// @param pid The pid of the given process.</span></div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span> <span class="comment">// @return Nothing if the operation succeeds.</span></div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span> <span class="comment">// Error if the operation fails.</span></div><div cl
ass="line"><a name="l00325"></a><span class="lineno"> 325</span> <a class="code" href="classTry.html">Try<Nothing></a> <a class="code" href="namespacecgroups.html#aceb245d6ea6362ac1c2b1247556179d6">isolate</a>(</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  <span class="keyword">const</span> std::string& hierarchy,</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  <span class="keyword">const</span> std::string& cgroup,</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  <a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ab03ced250ed239bc3b50b669493997f9">pid_t</a> pid);</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span> </div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span> </div><div class="line"><a name="l00331"></a><span class="lineno"><a class="line" href="namespacecg
roups_1_1event.html"> 331</a></span> <span class="keyword">namespace </span>event {</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span> </div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span> <span class="comment">// Listen on an event notifier and return a future which will become ready when</span></div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span> <span class="comment">// the certain event happens. This function will return a future failure if some</span></div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span> <span class="comment">// expected happens (e.g. the given hierarchy does not have the proper</span></div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span> <span class="comment">// subsystems attached).</span></div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span> <span class="comment">// @param h
ierarchy Path to the hierarchy root.</span></div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span> <span class="comment">// @param cgroup Path to the cgroup relative to the hierarchy root.</span></div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span> <span class="comment">// @param control Name of the control file.</span></div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span> <span class="comment">// @param args Control specific arguments.</span></div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span> <span class="comment">// @return A future which contains the value read from the file when ready.</span></div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span> <span class="comment">// Error if something unexpected happens.</span></div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span> <a
class="code" href="classprocess_1_1Future.html">process::Future<uint64_t></a> <a class="code" href="namespacecgroups_1_1event.html#a6f0a35d2d8f1381bc000001c94155393">listen</a>(</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  <span class="keyword">const</span> std::string& hierarchy,</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  <span class="keyword">const</span> std::string& cgroup,</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>  <span class="keyword">const</span> std::string& control,</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a>& args = <a class="code" href="classOption.html">Option<std::string>::none</a>());</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span> <
/div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span> } <span class="comment">// namespace event {</span></div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span> </div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span> </div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span> <span class="comment">// Destroy a cgroup under a given hierarchy. It will also recursively</span></div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span> <span class="comment">// destroy any sub-cgroups. If the freezer subsystem is attached to</span></div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span> <span class="comment">// the hierarchy, we attempt to kill all tasks in a given cgroup,</span></div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span> <span class="comment">// before removing it. Otherwise, we just attempt
to remove the</span></div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span> <span class="comment">// cgroup. This function will return an error if the given hierarchy</span></div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span> <span class="comment">// or the given cgroup does not exist or if we failed to destroy any</span></div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span> <span class="comment">// of the cgroups.</span></div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span> <span class="comment">// NOTE: If cgroup is "/" (default), all cgroups under the</span></div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span> <span class="comment">// hierarchy are destroyed.</span></div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span> <span class="comment">// TODO(vinod): Add support for killing tasks when freez
er subsystem</span></div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span> <span class="comment">// is not present.</span></div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span> <span class="comment">// @param hierarchy Path to the hierarchy root.</span></div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span> <span class="comment">// @param cgroup Path to the cgroup relative to the hierarchy root.</span></div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span> <span class="comment">// @return A future which will become ready when the operation is done.</span></div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span> <span class="comment">// Error if something unexpected happens.</span></div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span> <a class="code" href="classprocess_1_1Future.html">process::Future
<Nothing></a> <a class="code" href="namespacecgroups.html#aff40863260825f6176d8195102a0a47f">destroy</a>(</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  <span class="keyword">const</span> std::string& hierarchy,</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  <span class="keyword">const</span> std::string& cgroup = <span class="stringliteral">"/"</span>);</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span> </div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span> </div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span> <span class="comment">// Destroy a cgroup under a given hierarchy. This is a convenience</span></div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span> <span class="comment">// function which wraps the cgroups::destroy() to add a timeout: if</span></div><div
class="line"><a name="l00374"></a><span class="lineno"> 374</span> <span class="comment">// the cgroup(s) cannot be destroyed after timeout the operation will</span></div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span> <span class="comment">// be discarded.</span></div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span> <a class="code" href="classprocess_1_1Future.html">process::Future<Nothing></a> <a class="code" href="namespacecgroups.html#aff40863260825f6176d8195102a0a47f">destroy</a>(</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  <span class="keyword">const</span> std::string& hierarchy,</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  <span class="keyword">const</span> std::string& cgroup,</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  <span class="keyword">const</span> <a class="code"
href="classDuration.html">Duration</a>& timeout);</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span> </div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span> </div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span> <span class="comment">// Cleanup the hierarchy, by first destroying all the underlying</span></div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span> <span class="comment">// cgroups, unmounting the hierarchy and deleting the mount point.</span></div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span> <span class="comment">// @param hierarchy Path to the hierarchy root.</span></div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span> <span class="comment">// @return A future which will become ready when the operation is done.</span></div><div class="line"><a name="l00386"></a><span class="lineno"> 386<
/span> <span class="comment">// Error if something unexpected happens.</span></div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span> <a class="code" href="classprocess_1_1Future.html">process::Future<bool></a> <a class="code" href="namespacecgroups.html#a12d210f286e5fcf7993c0c90b9459606">cleanup</a>(<span class="keyword">const</span> std::string& hierarchy);</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span> </div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span> </div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span> <span class="comment">// Returns the stat information from the given file.</span></div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span> <span class="comment">// @param hierarchy Path to the hierarchy root.</span></div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span> <spa
n class="comment">// @param cgroup Path to the cgroup relative to the hierarchy root.</span></div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span> <span class="comment">// @param file The stat file to read from. (Ex: "memory.stat").</span></div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span> <span class="comment">// @return The stat information parsed from the file.</span></div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span> <span class="comment">// Error if reading or parsing fails.</span></div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span> <span class="comment">// TODO(bmahler): Consider namespacing stat for each subsystem (e.g.</span></div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span> <span class="comment">// cgroups::memory::stat and cgroups::cpuacct::stat).</span></div><div class="line"><a nam
e="l00398"></a><span class="lineno"> 398</span> <a class="code" href="classTry.html">Try<hashmap<std::string, uint64_t></a>> <a class="code" href="namespacecgroups.html#a78e3c7ca2e422779908eec45f859d757">stat</a>(</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  <span class="keyword">const</span> std::string& hierarchy,</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  <span class="keyword">const</span> std::string& cgroup,</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  <span class="keyword">const</span> std::string& <a class="code" href="namespacemesos_1_1uri.html#a0a3b30c1eb427c4053aaef120b1f453c">file</a>);</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span> </div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span> </div><div class="line"><a name="l00404"></a><span class="lineno">
404</span> <span class="comment">// Blkio subsystem.</span></div><div class="line"><a name="l00405"></a><span class="lineno"><a class="line" href="namespacecgroups_1_1blkio.html"> 405</a></span> <span class="keyword">namespace </span>blkio {</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span> </div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span> <span class="comment">// Returns the cgroup that the specified pid is a member of within the</span></div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span> <span class="comment">// hierarchy that the 'blkio' subsystem is mounted, or None if the subsystem</span></div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span> <span class="comment">// is not mounted or the pid is not a member of a cgroup.</span></div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span> <a class="code" href="clas
sResult.html">Result<std::string></a> <a class="code" href="namespacecgroups_1_1named.html#a90339a144714dee1c97f9e34553ace0e">cgroup</a>(<a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ab03ced250ed239bc3b50b669493997f9">pid_t</a> pid);</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span> </div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span> </div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span> <span class="comment">// Wrapper class for dev_t.</span></div><div class="line"><a name="l00414"></a><span class="lineno"><a class="line" href="classcgroups_1_1blkio_1_1Device.html"> 414</a></span> <span class="keyword">class </span><a class="code" href="classcgroups_1_1blkio_1_1Device.html">Device</a></div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span> {</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span> <
span class="keyword">public</span>:</div><div class="line"><a name="l00417"></a><span class="lineno"><a class="line" href="classcgroups_1_1blkio_1_1Device.html#a0f1f2e35fe5525c879b74514ded15871"> 417</a></span>  constexpr <a class="code" href="classcgroups_1_1blkio_1_1Device.html#a0f1f2e35fe5525c879b74514ded15871">Device</a>(dev_t device) : value(device) {}</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> getMajor() <span class="keyword">const</span>;</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> getMinor() <span class="keyword">const</span>;</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span> </div><div class="line"><a name="l00421"></a><span class="lineno"><a class="line" href="classcgroups_1_1blkio_1_1Device.html#
a578d8a8719fa30c1284c30fb764727a8"> 421</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classcgroups_1_1blkio_1_1Device.html#a578d8a8719fa30c1284c30fb764727a8">operator==</a>(<span class="keyword">const</span> <a class="code" href="classcgroups_1_1blkio_1_1Device.html">Device</a>& that)<span class="keyword"> const</span></div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>  <span class="keywordflow">return</span> value == that.value;</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  }</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span> </div><div class="line"><a name="l00426"></a><span class="lineno"><a class="line" href="classcgroups_1_1blkio_1_1Device.html#a95281e7fd14131a91a6e4c20a4a361c5"> 426</a>
</span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classcgroups_1_1blkio_1_1Device.html#a95281e7fd14131a91a6e4c20a4a361c5">operator!=</a>(<span class="keyword">const</span> <a class="code" href="classcgroups_1_1blkio_1_1Device.html">Device</a>& that)<span class="keyword"> const</span></div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>  <span class="keywordflow">return</span> value != that.value;</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>  }</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span> </div><div class="line"><a name="l00431"></a><span class="lineno"><a class="line" href="classcgroups_1_1blkio_1_1Device.html#a7932aa078a2e641999014f433e5c6acc"> 431</a></span>  <span class="keyword">inline<
/span> <span class="keyword">operator</span> dev_t()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> value; }</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span> </div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>  <span class="keyword">static</span> <a class="code" href="classTry.html">Try<Device></a> <a class="code" href="namespaceappc_1_1spec.html#a2107ae129dd83fbd20b22195247f16b5">parse</a>(<span class="keyword">const</span> std::string& s);</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span> </div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>  dev_t value;</div><div class="line
"><a name="l00438"></a><span class="lineno"> 438</span> };</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span> </div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span> </div><div class="line"><a name="l00441"></a><span class="lineno"><a class="line" href="namespacecgroups_1_1blkio.html#a350b1eb57318afaea7700ab7786b55ef"> 441</a></span> <span class="keyword">enum class</span> <a class="code" href="namespacecgroups_1_1blkio.html#a350b1eb57318afaea7700ab7786b55ef">Operation</a> {</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>  <a class="code" href="namespacecgroups_1_1blkio.html#a350b1eb57318afaea7700ab7786b55efa3af22b59f4641bc5501998297f9ac70d">TOTAL</a>,</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>  READ,</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>  WRITE,</div><div class="line"><a name="l00445"></a><
span class="lineno"> 445</span>  <a class="code" href="namespacecgroups_1_1blkio.html#a350b1eb57318afaea7700ab7786b55efa274ccef15a21e829d03293a6fd1974f3">SYNC</a>,</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>  <a class="code" href="namespacecgroups_1_1blkio.html#a350b1eb57318afaea7700ab7786b55efabe553330beb7b3d994656e0a4e66cd96">ASYNC</a>,</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span> };</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span> </div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span> </div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span> <span class="comment">// Entry for a blkio file. The format of each entry can either be:</span></div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span> <span class="comment">// 1. <value></span></div><div class="line"><a name="l00452"></a>
<span class="lineno"> 452</span> <span class="comment">// 2. <dev> <value></span></div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span> <span class="comment">// 3. <dev> <op> <value></span></div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span> <span class="comment">// 4. <op> <value></span></div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span> <span class="comment">//</span></div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span> <span class="comment">// For details:</span></div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span> <span class="comment">// https://www.kernel.org/doc/Documentation/cgroup-v1/blkio-controller.txt</span></div><div class="line"><a name="l00458"></a><span class="lineno"><a class="line" href="structcgroups_1_1blkio_1_1Value.html"> 458</a></span> <span class="keyword">
struct </span><a class="code" href="structcgroups_1_1blkio_1_1Value.html">Value</a></div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span> {</div><div class="line"><a name="l00460"></a><span class="lineno"><a class="line" href="structcgroups_1_1blkio_1_1Value.html#a19fac9c72340cc635cb386052e82c157"> 460</a></span>  <a class="code" href="classOption.html">Option<Device></a> <a class="code" href="structcgroups_1_1blkio_1_1Value.html#a19fac9c72340cc635cb386052e82c157">device</a>;</div><div class="line"><a name="l00461"></a><span class="lineno"><a class="line" href="structcgroups_1_1blkio_1_1Value.html#a579f026b9f741a2c33ebfc0ee7ff48c8"> 461</a></span>  <a class="code" href="classOption.html">Option<Operation></a> <a class="code" href="structcgroups_1_1blkio_1_1Value.html#a579f026b9f741a2c33ebfc0ee7ff48c8">op</a>;</div><div class="line"><a name="l00462"></a><span class="lineno"><a class="line" href="structcgroups_1_1blkio_1_1Value.ht
ml#ae00adee746b63d26ff3f3be95dddbbb8"> 462</a></span>  uint64_t <a class="code" href="structcgroups_1_1blkio_1_1Value.html#ae00adee746b63d26ff3f3be95dddbbb8">value</a>;</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span> </div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>  <span class="keyword">static</span> <a class="code" href="classTry.html">Try<Value></a> <a class="code" href="namespaceappc_1_1spec.html#a2107ae129dd83fbd20b22195247f16b5">parse</a>(<span class="keyword">const</span> std::string& s);</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span> };</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span> </div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span> </div><div class="line"><a name="l00468"></a><span class="lineno"><a class="line" href="namespacecgroups_1_1blkio_1_1cfq.html"> 468</a></span> <span
class="keyword">namespace </span>cfq {</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span> </div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span> <a class="code" href="classTry.html">Try<std::vector<Value></a>> <a class="code" href="namespacecgroups_1_1blkio_1_1cfq.html#abe4d7d69fdf7ca70fb30c6cd34a953e4">time</a>(</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>  <span class="keyword">const</span> std::string& hierarchy,</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>  <span class="keyword">const</span> std::string& cgroup);</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span> </div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span> </div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span> <a class="code" href="classTry.html">Try<std::vector<V
alue></a>> <a class="code" href="namespacecgroups_1_1blkio_1_1cfq.html#a5a9522fa8b40ec2eda4194dddacc1994">time_recursive</a>(</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>  <span class="keyword">const</span> std::string& hierarchy,</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>  <span class="keyword">const</span> std::string& cgroup);</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span> </div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span> </div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span> <a class="code" href="classTry.html">Try<std::vector<Value></a>> <a class="code" href="namespacecgroups_1_1blkio_1_1cfq.html#ae20bcd7db659e6a7e6e6f78e8c0dfce5">sectors</a>(</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>  <span class="keyword">const</span> std::stri
ng& hierarchy,</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>  <span class="keyword">const</span> std::string& cgroup);</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span> </div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span> </div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span> <a class="code" href="classTry.html">Try<std::vector<Value></a>> <a class="code" href="namespacecgroups_1_1blkio_1_1cfq.html#a93d74b08c57a574b030b284a69665b09">sectors_recursive</a>(</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>  <span class="keyword">const</span> std::string& hierarchy,</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>  <span class="keyword">const</span> std::string& cgroup);</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span> </d
iv><div class="line"><a name="l00489"></a><span class="lineno"> 489</span> </div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span> <span class="comment">// Returns the total number of bios/requests merged into requests</span></div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span> <span class="comment">// belonging to the given cgroup from blkio.io_merged.</span></div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span> <a class="code" href="classTry.html">Try<std::vector<Value></a>> <a class="code" href="namespacecgroups_1_1blkio_1_1cfq.html#aadb0e71d712040f776c17f46ae932f1e">io_merged</a>(</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>  <span class="keyword">const</span> std::string& hierarchy,</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>  <span class="keyword">const</span> std::string& cgroup);</d
iv><div class="line"><a name="l00495"></a><span class="lineno"> 495</span> </div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span> </div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span> <span class="comment">// Returns the total number of bios/requests merged into requests</span></div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span> <span class="comment">// belonging to the given cgroup and all its descendants from</span></div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span> <span class="comment">// blkio.io_merged_recursive.</span></div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span> <a class="code" href="classTry.html">Try<std::vector<Value></a>> <a class="code" href="namespacecgroups_1_1blkio_1_1cfq.html#a2a52363ef2582fd4c35b89fd798af0b4">io_merged_recursive</a>(</div><div class="line"><a name="l00501"></a><span class="
lineno"> 501</span>  <span class="keyword">const</span> std::string& hierarchy,</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>  <span class="keyword">const</span> std::string& cgroup);</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span> </div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span> </div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span> <span class="comment">// Returns the total number of requests queued up in the given</span></div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span> <span class="comment">// cgroup from blkio.io_queued.</span></div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span> <a class="code" href="classTry.html">Try<std::vector<Value></a>> <a class="code" href="namespacecgroups_1_1blkio_1_1cfq.html#a7b61635cf26f0d996aa248742a804a08">io_queued</a>(
</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>  <span class="keyword">const</span> std::string& hierarchy,</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>  <span class="keyword">const</span> std::string& cgroup);</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span> </div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span> </div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span> <span class="comment">// Returns the total number of requests queued up in the given</span></div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span> <span class="comment">// cgroup and all its descendants from blkio.io_queued_recursive.</span></div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span> <a class="code" href="classTry.html">Try<std::vector<Value></a>> <a class="code" h
ref="namespacecgroups_1_1blkio_1_1cfq.html#acd59264959c762cda013b9d7117b1c6d">io_queued_recursive</a>(</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>  <span class="keyword">const</span> std::string& hierarchy,</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>  <span class="keyword">const</span> std::string& cgroup);</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span> </div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span> </div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span> <span class="comment">// Returns the number of bytes transferred to/from the disk by</span></div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span> <span class="comment">// the given cgroup from blkio.io_service_bytes.</span></div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span> <a class=
"code" href="classTry.html">Try<std::vector<Value></a>> <a class="code" href="namespacecgroups_1_1blkio_1_1throttle.html#a3b600e20f0fcfbc89dfb9e30b2000d88">io_service_bytes</a>(</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>  <span class="keyword">const</span> std::string& hierarchy,</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>  <span class="keyword">const</span> std::string& cgroup);</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span> </div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span> </div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span> <span class="comment">// Returns the number of bytes transferred to/from the disk by</span></div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span> <span class="comment">// the given cgroup and all its descendants from</span></div>
<div class="line"><a name="l00528"></a><span class="lineno"> 528</span> <span class="comment">// blkio.io_service_bytes_recursive.</span></div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span> <a class="code" href="classTry.html">Try<std::vector<Value></a>> <a class="code" href="namespacecgroups_1_1blkio_1_1cfq.html#a1ee0eb51db62f640e7a63833698170b2">io_service_bytes_recursive</a>(</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>  <span class="keyword">const</span> std::string& hierarchy,</div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>  <span class="keyword">const</span> std::string& cgroup);</div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span> </div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span> </div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span> <span class="comm
ent">// Returns the total amount of time between request dispatch and</span></div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span> <span class="comment">// completion by the IOs done by the given cgroup from</span></div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span> <span class="comment">// blkio.io_service_time.</span></div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span> <a class="code" href="classTry.html">Try<std::vector<Value></a>> <a class="code" href="namespacecgroups_1_1blkio_1_1cfq.html#ab2d80247957e550deaafc377f4574fe2">io_service_time</a>(</div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>  <span class="keyword">const</span> std::string& hierarchy,</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>  <span class="keyword">const</span> std::string& cgroup);</div><div class="line"><a name="l00540"><
/a><span class="lineno"> 540</span> </div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span> </div><div class="line"><a name="l00542"></a><span c
<TRUNCATED>
[08/50] mesos-site git commit: Updated the website built from mesos
SHA: 7c9c72d.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/subprocess__windows_8hpp.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/subprocess__windows_8hpp.html b/content/api/latest/c++/subprocess__windows_8hpp.html
deleted file mode 100644
index c6e1a69..0000000
--- a/content/api/latest/c++/subprocess__windows_8hpp.html
+++ /dev/null
@@ -1,97 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.11"/>
-<title>Apache Mesos: 3rdparty/libprocess/src/subprocess_windows.hpp File Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">Apache Mesos
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.11 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="pages.html"><span>Related Pages</span></a></li>
- <li><a href="namespaces.html"><span>Namespaces</span></a></li>
- <li><a href="annotated.html"><span>Classes</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li><a href="examples.html"><span>Examples</span></a></li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li><a href="globals.html"><span>File Members</span></a></li>
- </ul>
- </div>
-<div id="nav-path" class="navpath">
- <ul>
-<li class="navelem"><a class="el" href="dir_8cab8f464681f7cc51cee77e79a434cd.html">3rdparty</a></li><li class="navelem"><a class="el" href="dir_043a76de98701f9bddf61b5e98f305ff.html">libprocess</a></li><li class="navelem"><a class="el" href="dir_01cbbd8dcbf9de3825992568658f467e.html">src</a></li> </ul>
-</div>
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#namespaces">Namespaces</a> |
-<a href="#func-members">Functions</a> </div>
- <div class="headertitle">
-<div class="title">subprocess_windows.hpp File Reference</div> </div>
-</div><!--header-->
-<div class="contents">
-<div class="textblock"><code>#include <signal.h></code><br />
-<code>#include <array></code><br />
-<code>#include <string></code><br />
-<code>#include <glog/logging.h></code><br />
-<code>#include <<a class="el" href="subprocess_8hpp_source.html">process/subprocess.hpp</a>></code><br />
-<code>#include <<a class="el" href="error_8hpp_source.html">stout/error.hpp</a>></code><br />
-<code>#include <<a class="el" href="foreach_8hpp_source.html">stout/foreach.hpp</a>></code><br />
-<code>#include <<a class="el" href="hashset_8hpp_source.html">stout/hashset.hpp</a>></code><br />
-<code>#include <<a class="el" href="option_8hpp_source.html">stout/option.hpp</a>></code><br />
-<code>#include <<a class="el" href="os_8hpp_source.html">stout/os.hpp</a>></code><br />
-<code>#include <<a class="el" href="shell_8hpp_source.html">stout/os/shell.hpp</a>></code><br />
-<code>#include <<a class="el" href="try_8hpp_source.html">stout/try.hpp</a>></code><br />
-<code>#include <<a class="el" href="3rdparty_2stout_2include_2stout_2windows_8hpp_source.html">stout/windows.hpp</a>></code><br />
-<code>#include <<a class="el" href="close_8hpp_source.html">stout/os/close.hpp</a>></code><br />
-<code>#include <<a class="el" href="3rdparty_2stout_2include_2stout_2os_2environment_8hpp_source.html">stout/os/environment.hpp</a>></code><br />
-<code>#include <userEnv.h></code><br />
-</div>
-<p><a href="subprocess__windows_8hpp_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
-Namespaces</h2></td></tr>
-<tr class="memitem:namespaceprocess"><td class="memItemLeft" align="right" valign="top">  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceprocess.html">process</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:namespaceprocess_1_1internal"><td class="memItemLeft" align="right" valign="top">  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceprocess_1_1internal.html">process::internal</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:a32020f2bbbcc116f2e055e209b4b8ce7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classTry.html">Try</a><::<a class="el" href="structinternal_1_1windows_1_1ProcessData.html">internal::windows::ProcessData</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceprocess_1_1internal.html#a32020f2bbbcc116f2e055e209b4b8ce7">process::internal::createChildProcess</a> (const std::string &path, const std::vector< std::string > &argv, const <a class="el" href="classOption.html">Option</a>< std::map< std::string, std::string >> &environment, const std::vector< Subprocess::ParentHook > &parent_hooks, const InputFileDescriptors &stdinfds, const OutputFileDescriptors &stdoutfds, const OutputFileDescriptors &stderrfds, const std::vector< <a class="el" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> > &whitelist_fds={})</td></tr>
-<tr class="separator:a32020f2bbbcc116f2e055e209b4b8ce7"><td class="memSeparator" colspan="2"> </td></tr>
-</table>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.11
-</small></address>
-</body>
-</html>
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/subprocess__windows_8hpp_source.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/subprocess__windows_8hpp_source.html b/content/api/latest/c++/subprocess__windows_8hpp_source.html
deleted file mode 100644
index e4900cb..0000000
--- a/content/api/latest/c++/subprocess__windows_8hpp_source.html
+++ /dev/null
@@ -1,100 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.11"/>
-<title>Apache Mesos: 3rdparty/libprocess/src/subprocess_windows.hpp Source File</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">Apache Mesos
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.11 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="pages.html"><span>Related Pages</span></a></li>
- <li><a href="namespaces.html"><span>Namespaces</span></a></li>
- <li><a href="annotated.html"><span>Classes</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li><a href="examples.html"><span>Examples</span></a></li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li><a href="globals.html"><span>File Members</span></a></li>
- </ul>
- </div>
-<div id="nav-path" class="navpath">
- <ul>
-<li class="navelem"><a class="el" href="dir_8cab8f464681f7cc51cee77e79a434cd.html">3rdparty</a></li><li class="navelem"><a class="el" href="dir_043a76de98701f9bddf61b5e98f305ff.html">libprocess</a></li><li class="navelem"><a class="el" href="dir_01cbbd8dcbf9de3825992568658f467e.html">src</a></li> </ul>
-</div>
-</div><!-- top -->
-<div class="header">
- <div class="headertitle">
-<div class="title">subprocess_windows.hpp</div> </div>
-</div><!--header-->
-<div class="contents">
-<a href="subprocess__windows_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// Licensed under the Apache License, Version 2.0 (the "License");</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// you may not use this file except in compliance with the License.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// You may obtain a copy of the License at</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="co
mment">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// Unless required by applicable law or agreed to in writing, software</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">// distributed under the License is distributed on an "AS IS" BASIS,</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">// See the License for the specific language governing permissions and</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// limitations under the License</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> </div><
div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#ifndef __PROCESS_WINDOWS_SUBPROCESS_HPP__</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#define __PROCESS_WINDOWS_SUBPROCESS_HPP__</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include <signal.h></span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> </div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include <array></span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include <string></span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> </div><d
iv class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <glog/logging.h></span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <<a class="code" href="subprocess_8hpp.html">process/subprocess.hpp</a>></span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> </div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <<a class="code" href="error_8hpp.html">stout/error.hpp</a>></span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include <<a class="code" href="foreach_8hpp.html">stout/foreach.hpp</a>></span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span cla
ss="preprocessor">#include <<a class="code" href="hashset_8hpp.html">stout/hashset.hpp</a>></span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include <<a class="code" href="option_8hpp.html">stout/option.hpp</a>></span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include <<a class="code" href="os_8hpp.html">stout/os.hpp</a>></span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include <<a class="code" href="shell_8hpp.html">stout/os/shell.hpp</a>></span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include <<a class="code" href="try_8hpp.html">stout/try.hpp</a>></span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#include <<a
class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html">stout/windows.hpp</a>></span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> </div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#include <<a class="code" href="close_8hpp.html">stout/os/close.hpp</a>></span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include <<a class="code" href="3rdparty_2stout_2include_2stout_2os_2environment_8hpp.html">stout/os/environment.hpp</a>></span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> </div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#include <userEnv.h></span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div><div class="line"><a name="l00039"></a><span class
="lineno"> 39</span> <span class="keyword">namespace </span><a class="code" href="namespaceprocess.html">process</a> {</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="keyword">namespace </span><a class="code" href="namespaceinternal.html">internal</a> {</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> </div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="comment">// NOTE: We are expecting that components of `argv` that need to be quoted</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="comment">// (for example, paths with spaces in them like `C:\"Program Files"\foo.exe`)</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="comment">// to have been already quoted correctly before we generate `command`.</span></div><div class="line"><a name="l0
0045"></a><span class="lineno"> 45</span> <span class="comment">// Incorrectly-quoted command arguments will probably lead the child process</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="comment">// to terminate with an error. See also NOTE on `process::subprocess`.</span></div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="namespaceprocess_1_1internal.html#a32020f2bbbcc116f2e055e209b4b8ce7"> 47</a></span> <span class="keyword">inline</span> <a class="code" href="classTry.html">Try<::internal::windows::ProcessData></a> <a class="code" href="namespaceprocess_1_1internal.html#a32020f2bbbcc116f2e055e209b4b8ce7">createChildProcess</a>(</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <span class="keyword">const</span> std::string& <a class="code" href="namespacepath.html">path</a>,</div><div class="line"><a name="l00049"></a><span clas
s="lineno"> 49</span>  <span class="keyword">const</span> std::vector<std::string>& argv,</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option</a><std::map<std::string, std::string>>& <a class="code" href="namespacemesos_1_1internal_1_1tests.html#a1396c5e3b0a179220de2792d74770ec2">environment</a>,</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <span class="keyword">const</span> std::vector<Subprocess::ParentHook>& parent_hooks,</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <span class="keyword">const</span> <a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors.html">InputFileDescriptors</a>& stdinfds,</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="keyword">const<
/span> <a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html">OutputFileDescriptors</a>& stdoutfds,</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="keyword">const</span> <a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html">OutputFileDescriptors</a>& stderrfds,</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="keyword">const</span> std::vector<int_fd>& whitelist_fds = {})</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span> {</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <span class="keyword">const</span> std::array<int_fd, 3> fds{</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  stdinfds.<a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors.html#a0a3f315345ef7b7ee
6f3f1d4d337854d">read</a>, stdoutfds.<a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html#a5dabb8e3008efd61ce42478f260b54ac">write</a>, stderrfds.<a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html#a5dabb8e3008efd61ce42478f260b54ac">write</a>};</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <a class="code" href="classTry.html">Try<::internal::windows::ProcessData></a> process_data =</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <a class="code" href="namespaceinternal_1_1windows.html#a039d5edd816cadff59dd60549c70aa41">::internal::windows::create_process</a>(</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  path,</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  argv,</di
v><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <a class="code" href="namespacemesos_1_1internal_1_1tests.html#a1396c5e3b0a179220de2792d74770ec2">environment</a>,</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <span class="keyword">true</span>, <span class="comment">// Create suspended.</span></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  fds,</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  whitelist_fds);</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span> </div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="comment">// Close the child-ends of the file descriptors that are created</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <span class="comment">// by this function.</span></div><div class="
line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="keywordflow">foreach</span> (<span class="keyword">const</span> <a class="code" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a>& fd, fds) {</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <span class="keywordflow">if</span> (fd.is_valid()) {</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <a class="code" href="classTry.html">Try<Nothing></a> result = <a class="code" href="namespaceos.html#a8df77ec6d6b8d32d9b287a41bc74cfdc">os::close</a>(fd);</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="keywordflow">if</span> (result.<a class="code" href="classTry.html#a0b98f95163b8a38daafd1651b043a276">isError</a>()) {</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <span class="keywordflow">return</span> <a cla
ss="code" href="classError.html">Error</a>(result.<a class="code" href="classTry.html#aec4a11ddd3c036e889d90b7eb6258ba7">error</a>());</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  }</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  }</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  }</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span> </div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="keywordflow">if</span> (process_data.<a class="code" href="classTry.html#a0b98f95163b8a38daafd1651b043a276">isError</a>()) {</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <span class="keywordflow">return</span> <a class="code" href="classError.html">Error</a>(process_data.<a class="code" href="classTry.html#aec4a11ddd3c036e889d90b7eb6258ba7">error</a>());</div><div clas
s="line"><a name="l00082"></a><span class="lineno"> 82</span>  }</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span> </div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <span class="comment">// Run the parent hooks.</span></div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="keyword">const</span> <a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ab03ced250ed239bc3b50b669493997f9">pid_t</a> pid = process_data-><a class="code" href="structinternal_1_1windows_1_1ProcessData.html#a65a4a4aba5450087363bfffdb30eea25">pid</a>;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <span class="keywordflow">foreach</span> (<span class="keyword">const</span> <a class="code" href="structprocess_1_1Subprocess_1_1ParentHook.html">Subprocess::ParentHook</a>& hook, parent_hooks) {</div><div class="line"><a name="l00087"></
a><span class="lineno"> 87</span>  <a class="code" href="classTry.html">Try<Nothing></a> parent_setup = hook.<a class="code" href="structprocess_1_1Subprocess_1_1ParentHook.html#aaf9ff141314d619cd65cd8ec9320fb7d">parent_setup</a>(pid);</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span> </div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <span class="comment">// If the hook callback fails, we shouldn't proceed with the</span></div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <span class="comment">// execution and hence the child process should be killed.</span></div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <span class="keywordflow">if</span> (parent_setup.<a class="code" href="classTry.html#a0b98f95163b8a38daafd1651b043a276">isError</a>()) {</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>
60; <span class="comment">// Attempt to kill the process. Since it is still in suspended state, we</span></div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <span class="comment">// do not need to kill any descendents. We also can't use `os::kill_job`</span></div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <span class="comment">// because this process is not in a Job Object unless one of the parent</span></div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <span class="comment">// hooks added it.</span></div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  ::TerminateProcess(process_data-><a class="code" href="structinternal_1_1windows_1_1ProcessData.html#a96c76121644bd430e9ca67cf57636c0d">process_handle</a>.<a class="code" href="classSharedHandle.html#a800385e17e17cb826147968e748fd8fa">get_handle</a>(), 1);</div><div class
="line"><a name="l00097"></a><span class="lineno"> 97</span> </div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <span class="keywordflow">return</span> <a class="code" href="classError.html">Error</a>(</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <span class="stringliteral">"Failed to execute Parent Hook in child '"</span> + <a class="code" href="namespacens.html#a28116b46e6543597a11733424cd1aa20">stringify</a>(pid) +</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <span class="stringliteral">"' with command '"</span> + <a class="code" href="namespacens.html#a28116b46e6543597a11733424cd1aa20">stringify</a>(argv) + <span class="stringliteral">"': "</span> +</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  parent_setup.<a class="code" href="classTry.html#aec4a
11ddd3c036e889d90b7eb6258ba7">error</a>());</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  }</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  }</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span> </div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <span class="comment">// Start child process.</span></div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <span class="keywordflow">if</span> (::ResumeThread(process_data-><a class="code" href="structinternal_1_1windows_1_1ProcessData.html#a7160cf48fc6e70d9390233b246b93bee">thread_handle</a>.<a class="code" href="classSharedHandle.html#a800385e17e17cb826147968e748fd8fa">get_handle</a>()) == -1) {</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <span class="keywordflow">return</span> <a class="code" href="classWindowsError.html">
WindowsError</a>(</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <span class="stringliteral">"Failed to resume child process with command '"</span> +</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <a class="code" href="namespacens.html#a28116b46e6543597a11733424cd1aa20">stringify</a>(argv) + <span class="stringliteral">"'"</span>);</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  }</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span> </div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <span class="keywordflow">return</span> process_data;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span> }</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span> </div><div class="line"><a name="l00115"></a><span class="lineno"> 1
15</span> } <span class="comment">// namespace internal {</span></div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span> } <span class="comment">// namespace process {</span></div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span> </div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span> <span class="preprocessor">#endif // __PROCESS_WINDOWS_SUBPROCESS_HPP__</span></div><div class="ttc" id="namespacepath_html"><div class="ttname"><a href="namespacepath.html">path</a></div><div class="ttdef"><b>Definition:</b> path.hpp:26</div></div>
-<div class="ttc" id="classError_html"><div class="ttname"><a href="classError.html">Error</a></div><div class="ttdef"><b>Definition:</b> errorbase.hpp:36</div></div>
-<div class="ttc" id="classOption_html"><div class="ttname"><a href="classOption.html">Option</a></div><div class="ttdef"><b>Definition:</b> option.hpp:28</div></div>
-<div class="ttc" id="namespaceinternal_1_1windows_html_a039d5edd816cadff59dd60549c70aa41"><div class="ttname"><a href="namespaceinternal_1_1windows.html#a039d5edd816cadff59dd60549c70aa41">internal::windows::create_process</a></div><div class="ttdeci">Try< ProcessData > create_process(const std::string &command, const std::vector< std::string > &argv, const Option< std::map< std::string, std::string >> &environment, const bool create_suspended=false, const Option< std::array< int_fd, 3 >> &pipes=None(), const std::vector< int_fd > &whitelist_fds={})</div><div class="ttdef"><b>Definition:</b> shell.hpp:240</div></div>
-<div class="ttc" id="classSharedHandle_html_a800385e17e17cb826147968e748fd8fa"><div class="ttname"><a href="classSharedHandle.html#a800385e17e17cb826147968e748fd8fa">SharedHandle::get_handle</a></div><div class="ttdeci">HANDLE get_handle() const </div><div class="ttdef"><b>Definition:</b> windows.hpp:90</div></div>
-<div class="ttc" id="classTry_html"><div class="ttname"><a href="classTry.html">Try</a></div><div class="ttdef"><b>Definition:</b> check.hpp:33</div></div>
-<div class="ttc" id="subprocess_8hpp_html"><div class="ttname"><a href="subprocess_8hpp.html">subprocess.hpp</a></div></div>
-<div class="ttc" id="os_8hpp_html"><div class="ttname"><a href="os_8hpp.html">os.hpp</a></div></div>
-<div class="ttc" id="classWindowsError_html"><div class="ttname"><a href="classWindowsError.html">WindowsError</a></div><div class="ttdef"><b>Definition:</b> error.hpp:108</div></div>
-<div class="ttc" id="3rdparty_2stout_2include_2stout_2os_2environment_8hpp_html"><div class="ttname"><a href="3rdparty_2stout_2include_2stout_2os_2environment_8hpp.html">environment.hpp</a></div></div>
-<div class="ttc" id="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors_html_a0a3f315345ef7b7ee6f3f1d4d337854d"><div class="ttname"><a href="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors.html#a0a3f315345ef7b7ee6f3f1d4d337854d">process::Subprocess::IO::InputFileDescriptors::read</a></div><div class="ttdeci">int_fd read</div><div class="ttdef"><b>Definition:</b> subprocess.hpp:75</div></div>
-<div class="ttc" id="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors_html"><div class="ttname"><a href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html">process::Subprocess::IO::OutputFileDescriptors</a></div><div class="ttdoc">For output file descriptors a child writes to the write file descriptor and a parent may read from th...</div><div class="ttdef"><b>Definition:</b> subprocess.hpp:88</div></div>
-<div class="ttc" id="3rdparty_2stout_2include_2stout_2windows_8hpp_html"><div class="ttname"><a href="3rdparty_2stout_2include_2stout_2windows_8hpp.html">windows.hpp</a></div></div>
-<div class="ttc" id="namespaceprocess_1_1internal_html_a32020f2bbbcc116f2e055e209b4b8ce7"><div class="ttname"><a href="namespaceprocess_1_1internal.html#a32020f2bbbcc116f2e055e209b4b8ce7">process::internal::createChildProcess</a></div><div class="ttdeci">Try<::internal::windows::ProcessData > createChildProcess(const std::string &path, const std::vector< std::string > &argv, const Option< std::map< std::string, std::string >> &environment, const std::vector< Subprocess::ParentHook > &parent_hooks, const InputFileDescriptors &stdinfds, const OutputFileDescriptors &stdoutfds, const OutputFileDescriptors &stderrfds, const std::vector< int_fd > &whitelist_fds={})</div><div class="ttdef"><b>Definition:</b> subprocess_windows.hpp:47</div></div>
-<div class="ttc" id="close_8hpp_html"><div class="ttname"><a href="close_8hpp.html">close.hpp</a></div></div>
-<div class="ttc" id="namespacemesos_1_1internal_1_1tests_html_a1396c5e3b0a179220de2792d74770ec2"><div class="ttname"><a href="namespacemesos_1_1internal_1_1tests.html#a1396c5e3b0a179220de2792d74770ec2">mesos::internal::tests::environment</a></div><div class="ttdeci">Environment * environment</div></div>
-<div class="ttc" id="3rdparty_2stout_2include_2stout_2windows_8hpp_html_ab03ced250ed239bc3b50b669493997f9"><div class="ttname"><a href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ab03ced250ed239bc3b50b669493997f9">pid_t</a></div><div class="ttdeci">DWORD pid_t</div><div class="ttdef"><b>Definition:</b> windows.hpp:181</div></div>
-<div class="ttc" id="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors_html_a5dabb8e3008efd61ce42478f260b54ac"><div class="ttname"><a href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html#a5dabb8e3008efd61ce42478f260b54ac">process::Subprocess::IO::OutputFileDescriptors::write</a></div><div class="ttdeci">int_fd write</div><div class="ttdef"><b>Definition:</b> subprocess.hpp:91</div></div>
-<div class="ttc" id="namespaceos_html_a8df77ec6d6b8d32d9b287a41bc74cfdc"><div class="ttname"><a href="namespaceos.html#a8df77ec6d6b8d32d9b287a41bc74cfdc">os::close</a></div><div class="ttdeci">Try< Nothing > close(int fd)</div><div class="ttdef"><b>Definition:</b> close.hpp:24</div></div>
-<div class="ttc" id="structinternal_1_1windows_1_1ProcessData_html_a96c76121644bd430e9ca67cf57636c0d"><div class="ttname"><a href="structinternal_1_1windows_1_1ProcessData.html#a96c76121644bd430e9ca67cf57636c0d">internal::windows::ProcessData::process_handle</a></div><div class="ttdeci">SharedHandle process_handle</div><div class="ttdef"><b>Definition:</b> shell.hpp:214</div></div>
-<div class="ttc" id="structinternal_1_1windows_1_1ProcessData_html_a7160cf48fc6e70d9390233b246b93bee"><div class="ttname"><a href="structinternal_1_1windows_1_1ProcessData.html#a7160cf48fc6e70d9390233b246b93bee">internal::windows::ProcessData::thread_handle</a></div><div class="ttdeci">SharedHandle thread_handle</div><div class="ttdef"><b>Definition:</b> shell.hpp:215</div></div>
-<div class="ttc" id="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors_html"><div class="ttname"><a href="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors.html">process::Subprocess::IO::InputFileDescriptors</a></div><div class="ttdoc">For input file descriptors a child reads from the read file descriptor and a parent may write to the ...</div><div class="ttdef"><b>Definition:</b> subprocess.hpp:73</div></div>
-<div class="ttc" id="option_8hpp_html"><div class="ttname"><a href="option_8hpp.html">option.hpp</a></div></div>
-<div class="ttc" id="classTry_html_aec4a11ddd3c036e889d90b7eb6258ba7"><div class="ttname"><a href="classTry.html#aec4a11ddd3c036e889d90b7eb6258ba7">Try::error</a></div><div class="ttdeci">static Try error(const E &e)</div><div class="ttdef"><b>Definition:</b> try.hpp:42</div></div>
-<div class="ttc" id="structprocess_1_1Subprocess_1_1ParentHook_html_aaf9ff141314d619cd65cd8ec9320fb7d"><div class="ttname"><a href="structprocess_1_1Subprocess_1_1ParentHook.html#aaf9ff141314d619cd65cd8ec9320fb7d">process::Subprocess::ParentHook::parent_setup</a></div><div class="ttdeci">const lambda::function< Try< Nothing >pid_t)> parent_setup</div><div class="ttdoc">The callback that must be specified for execution after the child has been cloned, but before it starts executing the new process. </div><div class="ttdef"><b>Definition:</b> subprocess.hpp:163</div></div>
-<div class="ttc" id="foreach_8hpp_html"><div class="ttname"><a href="foreach_8hpp.html">foreach.hpp</a></div></div>
-<div class="ttc" id="error_8hpp_html"><div class="ttname"><a href="error_8hpp.html">error.hpp</a></div></div>
-<div class="ttc" id="namespaceinternal_html"><div class="ttname"><a href="namespaceinternal.html">internal</a></div><div class="ttdef"><b>Definition:</b> attributes.hpp:24</div></div>
-<div class="ttc" id="classTry_html_a0b98f95163b8a38daafd1651b043a276"><div class="ttname"><a href="classTry.html#a0b98f95163b8a38daafd1651b043a276">Try::isError</a></div><div class="ttdeci">bool isError() const </div><div class="ttdef"><b>Definition:</b> try.hpp:71</div></div>
-<div class="ttc" id="namespaceprocess_html"><div class="ttname"><a href="namespaceprocess.html">process</a></div><div class="ttdef"><b>Definition:</b> executor.hpp:48</div></div>
-<div class="ttc" id="try_8hpp_html"><div class="ttname"><a href="try_8hpp.html">try.hpp</a></div></div>
-<div class="ttc" id="hashset_8hpp_html"><div class="ttname"><a href="hashset_8hpp.html">hashset.hpp</a></div></div>
-<div class="ttc" id="structinternal_1_1windows_1_1ProcessData_html_a65a4a4aba5450087363bfffdb30eea25"><div class="ttname"><a href="structinternal_1_1windows_1_1ProcessData.html#a65a4a4aba5450087363bfffdb30eea25">internal::windows::ProcessData::pid</a></div><div class="ttdeci">pid_t pid</div><div class="ttdef"><b>Definition:</b> shell.hpp:216</div></div>
-<div class="ttc" id="shell_8hpp_html"><div class="ttname"><a href="shell_8hpp.html">shell.hpp</a></div></div>
-<div class="ttc" id="structprocess_1_1Subprocess_1_1ParentHook_html"><div class="ttname"><a href="structprocess_1_1Subprocess_1_1ParentHook.html">process::Subprocess::ParentHook</a></div><div class="ttdoc">A hook can be passed to a subprocess call. </div><div class="ttdef"><b>Definition:</b> subprocess.hpp:152</div></div>
-<div class="ttc" id="int__fd_8hpp_html_aea4dbda01c90455f158ffa9b924c2f07"><div class="ttname"><a href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a></div><div class="ttdeci">int int_fd</div><div class="ttdef"><b>Definition:</b> int_fd.hpp:35</div></div>
-<div class="ttc" id="namespacens_html_a28116b46e6543597a11733424cd1aa20"><div class="ttname"><a href="namespacens.html#a28116b46e6543597a11733424cd1aa20">ns::stringify</a></div><div class="ttdeci">std::string stringify(int flags)</div></div>
-</div><!-- fragment --></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.11
-</small></address>
-</body>
-</html>
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/systemd_8hpp.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/systemd_8hpp.html b/content/api/latest/c++/systemd_8hpp.html
index e91d66a..c2c9467 100644
--- a/content/api/latest/c++/systemd_8hpp.html
+++ b/content/api/latest/c++/systemd_8hpp.html
@@ -56,7 +56,7 @@
<div class="title">systemd.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
-<div class="textblock"><code>#include <<a class="el" href="subprocess_8hpp_source.html">process/subprocess.hpp</a>></code><br />
+<div class="textblock"><code>#include <<a class="el" href="include_2process_2subprocess_8hpp_source.html">process/subprocess.hpp</a>></code><br />
<code>#include <<a class="el" href="3rdparty_2stout_2include_2stout_2flags_8hpp_source.html">stout/flags.hpp</a>></code><br />
<code>#include <<a class="el" href="nothing_8hpp_source.html">stout/nothing.hpp</a>></code><br />
<code>#include <<a class="el" href="path_8hpp_source.html">stout/path.hpp</a>></code><br />
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/systemd_8hpp_source.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/systemd_8hpp_source.html b/content/api/latest/c++/systemd_8hpp_source.html
index d21f544..799affb 100644
--- a/content/api/latest/c++/systemd_8hpp_source.html
+++ b/content/api/latest/c++/systemd_8hpp_source.html
@@ -52,12 +52,12 @@
<div class="title">systemd.hpp</div> </div>
</div><!--header-->
<div class="contents">
-<a href="systemd_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// or more contributor license agreements. See the NOTICE file</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// distributed with this work for additional information</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">// regarding copyright ownership. The ASF licenses this file</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00006"></a><span cla
ss="lineno"> 6</span> <span class="comment">// "License"); you may not use this file except in compliance</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// with the License. You may obtain a copy of the License at</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">//</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// Unless required by applicable law or agreed to in writing, software</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment">// distribut
ed under the License is distributed on an "AS IS" BASIS,</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">// See the License for the specific language governing permissions and</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// limitations under the License.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#ifndef __SYSTEMD_HPP__</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#define __SYSTEMD_HPP__</span></div><div class="line"><a name="l00019">
</a><span class="lineno"> 19</span> </div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include <<a class="code" href="subprocess_8hpp.html">process/subprocess.hpp</a>></span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <<a class="code" href="3rdparty_2stout_2include_2stout_2flags_8hpp.html">stout/flags.hpp</a>></span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <<a class="code" href="nothing_8hpp.html">stout/nothing.hpp</a>></span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <<a class="code" href="path_8hpp.html">stout/path.hpp</a>></span></div><div class="line"><a name="l00025"></a><span
class="lineno"> 25</span> <span class="preprocessor">#include <<a class="code" href="try_8hpp.html">stout/try.hpp</a>></span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div><div class="line"><a name="l00027"></a><span class="lineno"><a class="line" href="namespacesystemd.html"> 27</a></span> <span class="keyword">namespace </span><a class="code" href="namespacesystemd.html">systemd</a> {</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> </div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="comment">// TODO(jmlvanre): Consider moving the generic systemd behaviour into</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="comment">// stout, and leaving the mesos specific behavior here.</span></div><div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="namespacesystemd_1_1mes
os.html"> 31</a></span> <span class="keyword">namespace </span><a class="code" href="namespacemesos.html">mesos</a> {</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="comment">// TODO(jmlvanre): We may want to allow this to be configured.</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span> MESOS_EXECUTORS_SLICE[] = <span class="stringliteral">"mesos_executors.slice"</span>;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <a class="code" href="classTry.html">Try<Nothing></a> <a class="code
" href="namespacesystemd_1_1mesos.html#a9b82bb47ab116583d017a024db8a9e9c">extendLifetime</a>(<a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ab03ced250ed239bc3b50b669493997f9">pid_t</a> child);</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span> } <span class="comment">// namespace mesos {</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span> </div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="classsystemd_1_1Flags.html"> 59</a></span> <span class="keyword">class </span><a class="code" href="classsystemd_1_1Flags.html">Flags</a> : <span class="keyword">public</span> <span class="keyword">virtual</span> <a class="code" href="classflags_1_1FlagsBase.html">flags::FlagsBase</a></div><div c
lass="line"><a name="l00060"></a><span class="lineno"> 60</span> {</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <a class="code" href="classsystemd_1_1Flags.html">Flags</a>();</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span> </div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="classsystemd_1_1Flags.html#a0f517a5cfeb4f12a088febaf9c3ae583"> 64</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classsystemd_1_1Flags.html#a0f517a5cfeb4f12a088febaf9c3ae583">enabled</a>;</div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="classsystemd_1_1Flags.html#a228737cce3b3e4f722819d49bc4d18a4"> 65</a></span>  std::string <a class="code" href="classsystemd_1_1Flags.html#a228737cce3b3e4f722819d49bc4d
18a4">runtime_directory</a>;</div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="classsystemd_1_1Flags.html#a58cb80fd14bab9d5b8b74d0393c5d26b"> 66</a></span>  std::string <a class="code" href="classsystemd_1_1Flags.html#a58cb80fd14bab9d5b8b74d0393c5d26b">cgroups_hierarchy</a>;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span> };</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span> </div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span> </div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="keyword">const</span> <a class="code" href="classsystemd_1_1Flags.html">Flags</a>& <a class="code" href="namespacesystemd.html#a15e9043febc72cc13ad6a9bc90c99dd7">flags</a>();</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span> </div><div class="line"><a name="l00072"></a><span class="lineno
"> 72</span> </div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <a class="code" href="classTry.html">Try<Nothing></a> <a class="code" href="namespacesystemd.html#a4e45b8163baf6d307c9884d624472402">initialize</a>(<span class="keyword">const</span> <a class="code" href="classsystemd_1_1Flags.html">Flags</a>& <a class="code" href="namespaceflags.html">flags</a>);</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span> </div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span> </div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="keywordtype">bool</span> <a class="code" href="namespacesystemd.html#aafb563d63243f59f6deaa9a4259ac3ac">exists</a>();</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span> </div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span> </div><div class="line"><a name="l0
0099"></a><span class="lineno"> 99</span> <span class="keywordtype">bool</span> <a class="code" href="namespacesystemd.html#a6f348a1cb08d5b6ec1a833054114c3eb">enabled</a>();</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span> </div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span> </div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <a class="code" href="classPath.html">Path</a> <a class="code" href="namespacesystemd.html#a91c5f8a92a1e0e61f807c2eb3c011bc9">runtimeDirectory</a>();</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span> </div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span> </div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span> <a class="code" href="classPath.html">Path</a> <a class="code" href="namespacesystemd.html#a98eb9defbb13574737632e5438aac8e9">hierarchy</a>();</div><div class="line
"><a name="l00112"></a><span class="lineno"> 112</span> </div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span> </div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span> <a class="code" href="classTry.html">Try<Nothing></a> <a class="code" href="namespacesystemd.html#ad81f682c314645587d28506bcec18489">daemonReload</a>();</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span> </div><div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="namespacesystemd_1_1slices.html"> 123</a></span> <span class="keyword">namespace </span>slices {</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span> </div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span> <span class="keywordtype">bool</span> <a class="code" href="namespacesystemd.html#aafb563d63243f59f6deaa9a4259ac3ac">exists</a>(<span class="keyword">const</span> <a c
lass="code" href="classPath.html">Path</a>& <a class="code" href="namespacepath.html">path</a>);</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span> </div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span> </div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span> <a class="code" href="classTry.html">Try<Nothing></a> <a class="code" href="namespacesystemd_1_1slices.html#a0931fc5806ba560602cb355395671ae2">create</a>(<span class="keyword">const</span> <a class="code" href="classPath.html">Path</a>& path, <span class="keyword">const</span> std::string& data);</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span> </div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span> </div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span> <a class="code" href="classTry.html">Try<Nothing></a> <a class="code" href="
namespacesystemd_1_1slices.html#a95aa197d8eed9f20dacb44f433b15f01">start</a>(<span class="keyword">const</span> std::string& <a class="code" href="namespaceos_1_1Shell.html#acfe16ef2b1146ad49a8651c0a457ce46">name</a>);</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span> </div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span> } <span class="comment">// namespace slices {</span></div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span> </div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span> } <span class="comment">// namespace systemd {</span></div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span> </div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span> <span class="preprocessor">#endif // __SYSTEMD_HPP__</span></div><div class="ttc" id="namespacesystemd_html_a6f348a1cb08d5b6ec1a833054114c3eb"><div class="ttname"><a
href="namespacesystemd.html#a6f348a1cb08d5b6ec1a833054114c3eb">systemd::enabled</a></div><div class="ttdeci">bool enabled()</div><div class="ttdoc">Check if systemd exists, and whether we have initialized it. </div></div>
+<a href="systemd_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// or more contributor license agreements. See the NOTICE file</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// distributed with this work for additional information</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">// regarding copyright ownership. The ASF licenses this file</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00006"></a><span cla
ss="lineno"> 6</span> <span class="comment">// "License"); you may not use this file except in compliance</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// with the License. You may obtain a copy of the License at</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">//</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// Unless required by applicable law or agreed to in writing, software</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment">// distribut
ed under the License is distributed on an "AS IS" BASIS,</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">// See the License for the specific language governing permissions and</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// limitations under the License.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#ifndef __SYSTEMD_HPP__</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#define __SYSTEMD_HPP__</span></div><div class="line"><a name="l00019">
</a><span class="lineno"> 19</span> </div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include <<a class="code" href="include_2process_2subprocess_8hpp.html">process/subprocess.hpp</a>></span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <<a class="code" href="3rdparty_2stout_2include_2stout_2flags_8hpp.html">stout/flags.hpp</a>></span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <<a class="code" href="nothing_8hpp.html">stout/nothing.hpp</a>></span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <<a class="code" href="path_8hpp.html">stout/path.hpp</a>></span></div><div class="line"><a name="
l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <<a class="code" href="try_8hpp.html">stout/try.hpp</a>></span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div><div class="line"><a name="l00027"></a><span class="lineno"><a class="line" href="namespacesystemd.html"> 27</a></span> <span class="keyword">namespace </span><a class="code" href="namespacesystemd.html">systemd</a> {</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> </div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="comment">// TODO(jmlvanre): Consider moving the generic systemd behaviour into</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="comment">// stout, and leaving the mesos specific behavior here.</span></div><div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="names
pacesystemd_1_1mesos.html"> 31</a></span> <span class="keyword">namespace </span><a class="code" href="namespacemesos.html">mesos</a> {</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="comment">// TODO(jmlvanre): We may want to allow this to be configured.</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span> MESOS_EXECUTORS_SLICE[] = <span class="stringliteral">"mesos_executors.slice"</span>;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <a class="code" href="classTry.html">Try<Nothing><
/a> <a class="code" href="namespacesystemd_1_1mesos.html#a9b82bb47ab116583d017a024db8a9e9c">extendLifetime</a>(<a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ab03ced250ed239bc3b50b669493997f9">pid_t</a> child);</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span> } <span class="comment">// namespace mesos {</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span> </div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="classsystemd_1_1Flags.html"> 59</a></span> <span class="keyword">class </span><a class="code" href="classsystemd_1_1Flags.html">Flags</a> : <span class="keyword">public</span> <span class="keyword">virtual</span> <a class="code" href="classflags_1_1FlagsBase.html">flags::FlagsBa
se</a></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span> {</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <a class="code" href="classsystemd_1_1Flags.html">Flags</a>();</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span> </div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="classsystemd_1_1Flags.html#a0f517a5cfeb4f12a088febaf9c3ae583"> 64</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classsystemd_1_1Flags.html#a0f517a5cfeb4f12a088febaf9c3ae583">enabled</a>;</div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="classsystemd_1_1Flags.html#a228737cce3b3e4f722819d49bc4d18a4"> 65</a></span>  std::string <a class="code" href="classsystemd_1_1Flags.html#a228737cce3
b3e4f722819d49bc4d18a4">runtime_directory</a>;</div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="classsystemd_1_1Flags.html#a58cb80fd14bab9d5b8b74d0393c5d26b"> 66</a></span>  std::string <a class="code" href="classsystemd_1_1Flags.html#a58cb80fd14bab9d5b8b74d0393c5d26b">cgroups_hierarchy</a>;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span> };</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span> </div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span> </div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="keyword">const</span> <a class="code" href="classsystemd_1_1Flags.html">Flags</a>& <a class="code" href="namespacesystemd.html#a15e9043febc72cc13ad6a9bc90c99dd7">flags</a>();</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span> </div><div class="line"><a name="l00072"></a><
span class="lineno"> 72</span> </div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <a class="code" href="classTry.html">Try<Nothing></a> <a class="code" href="namespacesystemd.html#a4e45b8163baf6d307c9884d624472402">initialize</a>(<span class="keyword">const</span> <a class="code" href="classsystemd_1_1Flags.html">Flags</a>& <a class="code" href="namespaceflags.html">flags</a>);</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span> </div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span> </div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="keywordtype">bool</span> <a class="code" href="namespacesystemd.html#aafb563d63243f59f6deaa9a4259ac3ac">exists</a>();</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span> </div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span> </div><div class=
"line"><a name="l00099"></a><span class="lineno"> 99</span> <span class="keywordtype">bool</span> <a class="code" href="namespacesystemd.html#a6f348a1cb08d5b6ec1a833054114c3eb">enabled</a>();</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span> </div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span> </div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <a class="code" href="classPath.html">Path</a> <a class="code" href="namespacesystemd.html#a91c5f8a92a1e0e61f807c2eb3c011bc9">runtimeDirectory</a>();</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span> </div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span> </div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span> <a class="code" href="classPath.html">Path</a> <a class="code" href="namespacesystemd.html#a98eb9defbb13574737632e5438aac8e9">hierarchy</a>();</di
v><div class="line"><a name="l00112"></a><span class="lineno"> 112</span> </div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span> </div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span> <a class="code" href="classTry.html">Try<Nothing></a> <a class="code" href="namespacesystemd.html#ad81f682c314645587d28506bcec18489">daemonReload</a>();</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span> </div><div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="namespacesystemd_1_1slices.html"> 123</a></span> <span class="keyword">namespace </span>slices {</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span> </div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span> <span class="keywordtype">bool</span> <a class="code" href="namespacesystemd.html#aafb563d63243f59f6deaa9a4259ac3ac">exists</a>(<span class="keyword"
>const</span> <a class="code" href="classPath.html">Path</a>& <a class="code" href="namespacepath.html">path</a>);</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span> </div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span> </div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span> <a class="code" href="classTry.html">Try<Nothing></a> <a class="code" href="namespacesystemd_1_1slices.html#a0931fc5806ba560602cb355395671ae2">create</a>(<span class="keyword">const</span> <a class="code" href="classPath.html">Path</a>& path, <span class="keyword">const</span> std::string& data);</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span> </div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span> </div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span> <a class="code" href="classTry.html">Try<Nothing></a> <a c
lass="code" href="namespacesystemd_1_1slices.html#a95aa197d8eed9f20dacb44f433b15f01">start</a>(<span class="keyword">const</span> std::string& <a class="code" href="namespaceos_1_1Shell.html#acfe16ef2b1146ad49a8651c0a457ce46">name</a>);</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span> </div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span> } <span class="comment">// namespace slices {</span></div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span> </div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span> } <span class="comment">// namespace systemd {</span></div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span> </div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span> <span class="preprocessor">#endif // __SYSTEMD_HPP__</span></div><div class="ttc" id="namespacesystemd_html_a6f348a1cb08d5b6ec1a833054114c3eb"><div
class="ttname"><a href="namespacesystemd.html#a6f348a1cb08d5b6ec1a833054114c3eb">systemd::enabled</a></div><div class="ttdeci">bool enabled()</div><div class="ttdoc">Check if systemd exists, and whether we have initialized it. </div></div>
<div class="ttc" id="namespacepath_html"><div class="ttname"><a href="namespacepath.html">path</a></div><div class="ttdef"><b>Definition:</b> path.hpp:26</div></div>
<div class="ttc" id="namespacesystemd_1_1mesos_html_a9b82bb47ab116583d017a024db8a9e9c"><div class="ttname"><a href="namespacesystemd_1_1mesos.html#a9b82bb47ab116583d017a024db8a9e9c">systemd::mesos::extendLifetime</a></div><div class="ttdeci">Try< Nothing > extendLifetime(pid_t child)</div><div class="ttdoc">A hook that is executed in the parent process. </div></div>
<div class="ttc" id="namespacesystemd_1_1slices_html_a0931fc5806ba560602cb355395671ae2"><div class="ttname"><a href="namespacesystemd_1_1slices.html#a0931fc5806ba560602cb355395671ae2">systemd::slices::create</a></div><div class="ttdeci">Try< Nothing > create(const Path &path, const std::string &data)</div><div class="ttdoc">Creates a slice configuration with the provided contents at the given path. </div></div>
<div class="ttc" id="classTry_html"><div class="ttname"><a href="classTry.html">Try</a></div><div class="ttdef"><b>Definition:</b> check.hpp:33</div></div>
-<div class="ttc" id="subprocess_8hpp_html"><div class="ttname"><a href="subprocess_8hpp.html">subprocess.hpp</a></div></div>
+<div class="ttc" id="include_2process_2subprocess_8hpp_html"><div class="ttname"><a href="include_2process_2subprocess_8hpp.html">subprocess.hpp</a></div></div>
<div class="ttc" id="classsystemd_1_1Flags_html_a228737cce3b3e4f722819d49bc4d18a4"><div class="ttname"><a href="classsystemd_1_1Flags.html#a228737cce3b3e4f722819d49bc4d18a4">systemd::Flags::runtime_directory</a></div><div class="ttdeci">std::string runtime_directory</div><div class="ttdef"><b>Definition:</b> systemd.hpp:65</div></div>
<div class="ttc" id="namespacesystemd_1_1slices_html_a95aa197d8eed9f20dacb44f433b15f01"><div class="ttname"><a href="namespacesystemd_1_1slices.html#a95aa197d8eed9f20dacb44f433b15f01">systemd::slices::start</a></div><div class="ttdeci">Try< Nothing > start(const std::string &name)</div><div class="ttdoc">Starts the slice with the given name (via &#39;systemctl start <name>&#39;). </div></div>
<div class="ttc" id="namespacesystemd_html"><div class="ttname"><a href="namespacesystemd.html">systemd</a></div><div class="ttdef"><b>Definition:</b> systemd.hpp:27</div></div>
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/tests_2containerizer_2launcher_8hpp.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/tests_2containerizer_2launcher_8hpp.html b/content/api/latest/c++/tests_2containerizer_2launcher_8hpp.html
index dd3582d..c4b15bc 100644
--- a/content/api/latest/c++/tests_2containerizer_2launcher_8hpp.html
+++ b/content/api/latest/c++/tests_2containerizer_2launcher_8hpp.html
@@ -63,7 +63,7 @@
<code>#include <<a class="el" href="include_2mesos_2slave_2isolator_8hpp_source.html">mesos/slave/isolator.hpp</a>></code><br />
<code>#include <<a class="el" href="future_8hpp_source.html">process/future.hpp</a>></code><br />
<code>#include <<a class="el" href="owned_8hpp_source.html">process/owned.hpp</a>></code><br />
-<code>#include <<a class="el" href="subprocess_8hpp_source.html">process/subprocess.hpp</a>></code><br />
+<code>#include <<a class="el" href="include_2process_2subprocess_8hpp_source.html">process/subprocess.hpp</a>></code><br />
<code>#include <<a class="el" href="3rdparty_2stout_2include_2stout_2flags_8hpp_source.html">stout/flags.hpp</a>></code><br />
<code>#include <<a class="el" href="lambda_8hpp_source.html">stout/lambda.hpp</a>></code><br />
<code>#include <<a class="el" href="nothing_8hpp_source.html">stout/nothing.hpp</a>></code><br />
[34/50] mesos-site git commit: Updated the website built from mesos
SHA: 7c9c72d.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/grpc_8hpp_source.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/grpc_8hpp_source.html b/content/api/latest/c++/grpc_8hpp_source.html
index e91ddfa..cb5194f 100644
--- a/content/api/latest/c++/grpc_8hpp_source.html
+++ b/content/api/latest/c++/grpc_8hpp_source.html
@@ -52,7 +52,7 @@
<div class="title">grpc.hpp</div> </div>
</div><!--header-->
<div class="contents">
-<a href="grpc_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// Licensed under the Apache License, Version 2.0 (the "License");</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// you may not use this file except in compliance with the License.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// You may obtain a copy of the License at</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">//</span
></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// Unless required by applicable law or agreed to in writing, software</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">// distributed under the License is distributed on an "AS IS" BASIS,</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">// See the License for the specific language governing permissions and</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// limitations under the License</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> </div><div class="line
"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#ifndef __PROCESS_GRPC_HPP__</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#define __PROCESS_GRPC_HPP__</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include <chrono></span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include <memory></span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include <string></span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include <thread></span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&
#160;<span class="preprocessor">#include <type_traits></span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <utility></span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <google/protobuf/message.h></span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> </div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <grpcpp/grpcpp.h></span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <<a class="code" href="libprocess_2include_2process_2check_8hpp.html">process/check.hpp</a>></span><
/div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include <<a class="code" href="dispatch_8hpp.html">process/dispatch.hpp</a>></span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include <<a class="code" href="future_8hpp.html">process/future.hpp</a>></span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include <<a class="code" href="3rdparty_2libprocess_2include_2process_2pid_8hpp.html">process/pid.hpp</a>></span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include <<a class="code" href="libprocess_2include_2process_2process_8hpp.html">process/process.hpp</a>></span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div><div class="line"><a name="l00033"></a><span class
="lineno"> 33</span> <span class="preprocessor">#include <<a class="code" href="error_8hpp.html">stout/error.hpp</a>></span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#include <<a class="code" href="lambda_8hpp.html">stout/lambda.hpp</a>></span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include <<a class="code" href="nothing_8hpp.html">stout/nothing.hpp</a>></span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#include <<a class="code" href="try_8hpp.html">stout/try.hpp</a>></span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> </div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="comment">// Th
is file provides libprocess "support" for using gRPC. In particular, it</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="comment">// defines two wrapper classes: `client::Connection` which represents a</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="comment">// connection to a gRPC server, and `client::Runtime` which integrates an event</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="comment">// loop waiting for gRPC responses and provides the `call` interface to create</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="comment">// an asynchronous gRPC call and return a `Future`.</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div><div
class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="grpc_8hpp.html#af26d5c763831ad955bb9742db25c5f75"> 46</a></span> <span class="preprocessor">#define GRPC_CLIENT_METHOD(service, rpc) \</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor"> (&service::Stub::PrepareAsync##rpc)</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> </div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="keyword">namespace </span><a class="code" href="namespaceprocess.html">process</a> {</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="namespaceprocess_1_1grpc.html"> 50</a></span> <span class="keyword">namespace </span>grpc {</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div><div class="line"><a name="l00056"></a><span class="lineno"><a class="l
ine" href="classprocess_1_1grpc_1_1StatusError.html"> 56</a></span> <span class="keyword">class </span><a class="code" href="classprocess_1_1grpc_1_1StatusError.html">StatusError</a> : <span class="keyword">public</span> <a class="code" href="classError.html">Error</a></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span> {</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="classprocess_1_1grpc_1_1StatusError.html#af8b12349660968c3171d71d48d82111b"> 59</a></span>  <a class="code" href="classprocess_1_1grpc_1_1StatusError.html#af8b12349660968c3171d71d48d82111b">StatusError</a>(::grpc::Status _status)</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  : <a class="code" href="classError.html">Error</a>(_status.error_message()), <a class="code" href="clas
sprocess_1_1grpc_1_1StatusError.html#a7182af947b263c08393be3c9420199b5">status</a>(<a class="code" href="namespacestd.html">std</a>::move(_status))</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  {</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  CHECK(!<a class="code" href="classprocess_1_1grpc_1_1StatusError.html#a7182af947b263c08393be3c9420199b5">status</a>.ok());</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  }</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span> </div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="classprocess_1_1grpc_1_1StatusError.html#a7182af947b263c08393be3c9420199b5"> 65</a></span>  const ::grpc::Status <a class="code" href="classprocess_1_1grpc_1_1StatusError.html#a7182af947b263c08393be3c9420199b5">status</a>;</div><div class="line"><a name="l00066"></a><span class="lineno
"> 66</span> };</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span> </div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span> </div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="namespaceprocess_1_1grpc_1_1client.html"> 69</a></span> <span class="keyword">namespace </span>client {</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span> </div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="comment">// Internal helper utilities.</span></div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="namespaceprocess_1_1grpc_1_1client_1_1internal.html"> 72</a></span> <span class="keyword">namespace </span><a class="code" href="namespaceinternal.html">internal</a> {</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div><div class="line"><a name="l000
74"></a><span class="lineno"> 74</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="structprocess_1_1grpc_1_1client_1_1internal_1_1MethodTraits.html"> 75</a></span> <span class="keyword">struct </span><a class="code" href="structprocess_1_1grpc_1_1client_1_1internal_1_1MethodTraits.html">MethodTraits</a>; <span class="comment">// Undefined.</span></div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span> </div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span> </div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Stub, <span class="keyword">typename</span> Request, <span class="keyword">typename</span> Response></div><div class="line"><a name="l00079"></a><span class="lineno"><a c
lass="line" href="structprocess_1_1grpc_1_1client_1_1internal_1_1MethodTraits_3_01std_1_1unique__ptr_3_1_1grpc_1_1b922a69900827d65b241714130bc07ca.html"> 79</a></span> <span class="keyword">struct </span><a class="code" href="structprocess_1_1grpc_1_1client_1_1internal_1_1MethodTraits.html">MethodTraits</a><</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <a class="code" href="namespacestd.html">std</a>::unique_ptr<::grpc::ClientAsyncResponseReader<Response>>(Stub::*)(</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  ::grpc::ClientContext*,</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  const Request&,</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  ::grpc::CompletionQueue*)></div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span> {</div><div class="line"><a name
="l00085"></a><span class="lineno"><a class="line" href="structprocess_1_1grpc_1_1client_1_1internal_1_1MethodTraits_3_01std_1_1unique__ptr_3_1_1grpc_1_1b922a69900827d65b241714130bc07ca.html#af96bd68c2ee624f2bade6bb587726897"> 85</a></span>  <span class="keyword">typedef</span> Stub <a class="code" href="structprocess_1_1grpc_1_1client_1_1internal_1_1MethodTraits_3_01std_1_1unique__ptr_3_1_1grpc_1_1b922a69900827d65b241714130bc07ca.html#af96bd68c2ee624f2bade6bb587726897">stub_type</a>;</div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="structprocess_1_1grpc_1_1client_1_1internal_1_1MethodTraits_3_01std_1_1unique__ptr_3_1_1grpc_1_1b922a69900827d65b241714130bc07ca.html#adcf2f58a91926bbfbbf3f9aa4979cd38"> 86</a></span>  <span class="keyword">typedef</span> Request <a class="code" href="structprocess_1_1grpc_1_1client_1_1internal_1_1MethodTraits_3_01std_1_1unique__ptr_3_1_1grpc_1_1b922a69900827d65b241714130bc07ca.html#adcf2f58a91926bbfb
bf3f9aa4979cd38">request_type</a>;</div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="structprocess_1_1grpc_1_1client_1_1internal_1_1MethodTraits_3_01std_1_1unique__ptr_3_1_1grpc_1_1b922a69900827d65b241714130bc07ca.html#a39b26e8b5b508708af0b6468a31dcab5"> 87</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespacemesos_1_1internal_1_1tests_1_1v1_1_1scheduler.html#a4e7892daaddcb4dd2e4ebb1266715316">Response</a> <a class="code" href="structprocess_1_1grpc_1_1client_1_1internal_1_1MethodTraits_3_01std_1_1unique__ptr_3_1_1grpc_1_1b922a69900827d65b241714130bc07ca.html#a39b26e8b5b508708af0b6468a31dcab5">response_type</a>;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span> };</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span> </div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span> } <span class="comment">// namespace internal {</spa
n></div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span> </div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span> </div><div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="classprocess_1_1grpc_1_1client_1_1Connection.html"> 99</a></span> <span class="keyword">class </span><a class="code" href="classprocess_1_1grpc_1_1client_1_1Connection.html">Connection</a></div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span> {</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="classprocess_1_1grpc_1_1client_1_1Connection.html#a60863492f258db095f4ce19c45d4fed5"> 102</a></span>  <a class="code" href="classprocess_1_1grpc_1_1client_1_1Connection.html#a60863492f258db095f4ce19c45d4fed5">Connection</a>(</div><div class="li
ne"><a name="l00103"></a><span class="lineno"> 103</span>  <span class="keyword">const</span> std::string& <a class="code" href="namespaceuri.html">uri</a>,</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <span class="keyword">const</span> std::shared_ptr<::grpc::ChannelCredentials>& credentials =</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  ::grpc::InsecureChannelCredentials())</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  : channel(::grpc::CreateChannel(uri, credentials)) {}</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span> </div><div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="classprocess_1_1grpc_1_1client_1_1Connection.html#abe61ce221a6e43836ea28d97e6b2db94"> 108</a></span>  <span class="keyword">explicit</span> <a class="code" href="classprocess_1_1grpc_1
_1client_1_1Connection.html#abe61ce221a6e43836ea28d97e6b2db94">Connection</a>(std::shared_ptr<::grpc::Channel> _channel)</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  : channel(<a class="code" href="namespacestd.html">std</a>::move(_channel)) {}</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span> </div><div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="classprocess_1_1grpc_1_1client_1_1Connection.html#a2ee6f5abf57c66128bb1c5a4751880f8"> 111</a></span>  <span class="keyword">const</span> std::shared_ptr<::grpc::Channel> <a class="code" href="classprocess_1_1grpc_1_1client_1_1Connection.html#a2ee6f5abf57c66128bb1c5a4751880f8">channel</a>;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span> };</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span> </div><div class="line"><a name="l00114"></a><span class="lin
eno"> 114</span> </div><div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="classprocess_1_1grpc_1_1client_1_1Runtime.html"> 127</a></span> <span class="keyword">class </span><a class="code" href="classprocess_1_1grpc_1_1client_1_1Runtime.html">Runtime</a></div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span> {</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="classprocess_1_1grpc_1_1client_1_1Runtime.html#a5f7e56d9ebb540a9dbc52c5fb816a024"> 130</a></span>  <a class="code" href="classprocess_1_1grpc_1_1client_1_1Runtime.html#a5f7e56d9ebb540a9dbc52c5fb816a024">Runtime</a>() : data(new Data()) {}</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span> </div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>
  <span class="keyword">template</span> <</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  <span class="keyword">typename</span> Method,</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  <span class="keyword">typename</span> Request =</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <span class="keyword">typename</span> <a class="code" href="structprocess_1_1grpc_1_1client_1_1internal_1_1MethodTraits.html">internal::MethodTraits<Method>::request_type</a>,</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <span class="keyword">typename</span> <a class="code" href="namespacemesos_1_1internal_1_1tests_1_1v1_1_1scheduler.html#a4e7892daaddcb4dd2e4ebb1266715316">Response</a> =</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  <span class="keyword">typename</span> <a class="cod
e" href="structprocess_1_1grpc_1_1client_1_1internal_1_1MethodTraits.html">internal::MethodTraits<Method>::response_type</a>,</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <span class="keyword">typename</span> std::enable_if<</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  std::is_convertible<</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <span class="keyword">typename</span> <a class="code" href="namespacemesos_1_1internal_1_1fs.html#a2343e2642db514496ba8380776487fba">std::decay<Request>::type</a>*,</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  google::protobuf::Message*>::value,</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <span class="keywordtype">int</span>><a class="code" href="namespacemesos_1_1internal_1_1fs.html#a2343
e2642db514496ba8380776487fba">::type</a> = 0></div><div class="line"><a name="l00158"></a><span class="lineno"><a class="line" href="classprocess_1_1grpc_1_1client_1_1Runtime.html#a09983451181cdf4c19dd5231e8dfaa86"> 158</a></span>  <a class="code" href="classprocess_1_1Future.html">Future<Try<Response, StatusError></a>> <a class="code" href="classprocess_1_1grpc_1_1client_1_1Runtime.html#a09983451181cdf4c19dd5231e8dfaa86">call</a>(</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <span class="keyword">const</span> <a class="code" href="classprocess_1_1grpc_1_1client_1_1Connection.html">Connection</a>& connection,</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  Method&& method,</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  Request&& <a class="code" href="namespaceprocess_1_1http.html#ad8f400b5e54038df7e5662ec35da05fa">re
quest</a>)</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  {</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  <span class="comment">// Create a `Promise` that will be set upon receiving a response.</span></div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  <span class="comment">// TODO(chhsiao): The `Promise` in the `shared_ptr` is not shared, but only</span></div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <span class="comment">// to be captured by the lambda below. Use a `unique_ptr` once we get C++14.</span></div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  std::shared_ptr<Promise<Try<Response, StatusError>>> <a class="code" href="namespacemesos_1_1internal_1_1log_1_1protocol.html#a3b1f8bd7b18c51af9d1f58842950b545">promise</a>(</div><div class="line"><a name="l00167"></a><span cla
ss="lineno"> 167</span>  <span class="keyword">new</span> <a class="code" href="classprocess_1_1Promise.html">Promise</a><<a class="code" href="classTry.html">Try<Response, StatusError></a>>);</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  <a class="code" href="classprocess_1_1Future.html">Future<Try<Response, StatusError></a>> future = promise->future();</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span> </div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <span class="comment">// Send the request in the internal runtime process.</span></div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <span class="comment">// TODO(chhsiao): We use `std::bind` here to forward `request` to avoid an</span></div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  <span class="comment">// ext
ra copy. We should capture it by forwarding once we get C++14.</span></div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  <a class="code" href="namespaceprocess.html#acfbc29404bc653268289691b0dd59e22">dispatch</a>(data->pid, &<a class="code" href="namespacenet.html#aa0a46766b4aca53ea50e1921567ddb40">RuntimeProcess::send</a>, <a class="code" href="namespaceprocess_1_1network.html#ad067110a4b38cc83785a43f49bf6c8e2">std::bind</a>(</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  [connection, method, promise](</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  <span class="keyword">const</span> Request& <a class="code" href="namespaceprocess_1_1http.html#ad8f400b5e54038df7e5662ec35da05fa">request</a>,</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  <span class="keywordtype">bool</span> terminating,</div><div cl
ass="line"><a name="l00177"></a><span class="lineno"> 177</span>  ::grpc::CompletionQueue* queue) {</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  if (terminating) {</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  promise->fail(<span class="stringliteral">"Runtime has been terminated"</span>);</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  return;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  }</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span> </div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <span class="comment">// TODO(chhsiao): The `shared_ptr`s here aren't shared, but only to be</span></div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <span c
lass="comment">// captured by the lambda below. Use `unique_ptr`s once we get C++14.</span></div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  std::shared_ptr<::grpc::ClientContext> <a class="code" href="namespaceprocess_1_1network_1_1openssl.html#a9ea7f1e144d9731d6fb4e4a0d80a7c56">context</a>(</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  new ::grpc::ClientContext());</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span> </div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  <span class="comment">// TODO(chhsiao): Allow the caller to specify a timeout.</span></div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  <a class="code" href="namespaceprocess_1_1network_1_1openssl.html#a9ea7f1e144d9731d6fb4e4a0d80a7c56">context</a>->set_deadline(</div><div class="line"><a name="l00190"
></a><span class="lineno"> 190</span>  std::chrono::system_clock::now() + std::chrono::seconds(5));</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span> </div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  <span class="comment">// Enable the gRPC wait-for-ready semantics by default. See:</span></div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  <span class="comment">// https://github.com/grpc/grpc/blob/master/doc/wait-for-ready.md</span></div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <span class="comment">// TODO(chhsiao): Allow the caller to set the option.</span></div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  <a class="code" href="namespaceprocess_1_1network_1_1openssl.html#a9ea7f1e144d9731d6fb4e4a0d80a7c56">context</a>->set_wait_for_ready(<span class="keywo
rd">true</span>);</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span> </div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  promise->future().onDiscard([=] { <a class="code" href="namespaceprocess_1_1network_1_1openssl.html#a9ea7f1e144d9731d6fb4e4a0d80a7c56">context</a>->TryCancel(); });</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span> </div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  std::shared_ptr<Response> response(<span class="keyword">new</span> <a class="code" href="namespacemesos_1_1internal_1_1tests_1_1v1_1_1scheduler.html#a4e7892daaddcb4dd2e4ebb1266715316">Response</a>());</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  std::shared_ptr<::grpc::Status> <a class="code" href="classprocess_1_1grpc_1_1StatusError.html#a7182af947b263c08393be3c9420199b5">status</a>(new ::
grpc::Status());</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span> </div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  std::shared_ptr<::grpc::ClientAsyncResponseReader<Response>> reader =</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  (<span class="keyword">typename</span> <a class="code" href="structprocess_1_1grpc_1_1client_1_1internal_1_1MethodTraits.html">internal::MethodTraits<Method>::stub_type</a>(</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  connection.<a class="code" href="classprocess_1_1grpc_1_1client_1_1Connection.html#a2ee6f5abf57c66128bb1c5a4751880f8">channel</a>).*method)(<a class="code" href="namespaceprocess_1_1network_1_1openssl.html#a9ea7f1e144d9731d6fb4e4a0d80a7c56">context</a>.get(), <a class="code" href="namespaceprocess_1_1http.html#ad8f400b5e54038df7e5662ec35da05fa">
request</a>, queue);</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span> </div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  reader->StartCall();</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span> </div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  <span class="comment">// Create a `ReceiveCallback` as a tag in the `CompletionQueue` for</span></div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  <span class="comment">// the current asynchronous gRPC call. The callback will set up the</span></div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  <span class="comment">// above `Promise` upon receiving a response.</span></div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  <span class="comment">// NOTE: `context` and `read
er` need to be held on in order to get</span></div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  <span class="comment">// updates for the ongoing RPC, and thus are captured here. The</span></div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  <span class="comment">// callback itself will later be retrieved and managed in the</span></div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  <span class="comment">// looper thread.</span></div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  <span class="keywordtype">void</span>* tag = <span class="keyword">new</span> <a class="code" href="classlambda_1_1CallableOnce.html">ReceiveCallback</a>(</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  [<a class="code" href="namespaceprocess_1_1network_1_1openssl.html#a9ea7f1e144d9731d6fb4e4a0d80a
7c56">context</a>, reader, response, status, promise]() {</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  <a class="code" href="libprocess_2include_2process_2check_8hpp.html#a3e2ba5c8589f7f5799251a12409e142c">CHECK_PENDING</a>(promise->future());</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  <span class="keywordflow">if</span> (promise->future().hasDiscard()) {</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  promise->discard();</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  promise->set(status->ok()</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  ? std::move(*response)
</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  : <a class="code" href="classTry.html#abb21343eabcba0eb0d88f13c4fbdf1f7">Try<Response, StatusError>::error</a>(std::move(*status)));</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  }</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  });</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span> </div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  reader->Finish(response.get(), status.get(), tag);</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  },</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  std::forward<Request>(<a class="code" href="namespaceprocess_1_1http.html#ad8f400b5e54038df7e5662ec35da05fa">request</a>),</div><d
iv class="line"><a name="l00230"></a><span class="lineno"> 230</span>  lambda::_1,</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  lambda::_2));</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span> </div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  <span class="keywordflow">return</span> future;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  }</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span> </div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  <span class="keywordtype">void</span> <a class="code" href="namespaceprocess.html#a20443908afa3212215166e26065349e5">terminate</a>();</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span> </div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  <a class="code" hr
ef="classprocess_1_1Future.html">Future<Nothing></a> <a class="code" href="namespaceprocess.html#a07833fb41a8b0c1f18fa5485ca8c18d4">wait</a>();</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span> </div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  <span class="comment">// Type of the callback functions that can get invoked when sending a request</span></div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  <span class="comment">// or receiving a response.</span></div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  <span class="keyword">typedef</span> <a class="code" href="classlambda_1_1CallableOnce.html">lambda::CallableOnce</a><</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  void(<span c
lass="keywordtype">bool</span>, ::grpc::CompletionQueue*)> <a class="code" href="classlambda_1_1CallableOnce.html">SendCallback</a>;</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  <span class="keyword">typedef</span> <a class="code" href="classlambda_1_1CallableOnce.html">lambda::CallableOnce<void()></a> <a class="code" href="classlambda_1_1CallableOnce.html">ReceiveCallback</a>;</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span> </div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  <span class="keyword">class </span>RuntimeProcess : <span class="keyword">public</span> <a class="code" href="classprocess_1_1Process.html">Process</a><RuntimeProcess></div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  {</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  <span class="keyword">public</span>:</div><div class
="line"><a name="l00260"></a><span class="lineno"> 260</span>  RuntimeProcess();</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  <span class="keyword">virtual</span> ~RuntimeProcess();</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span> </div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  <span class="keywordtype">void</span> <a class="code" href="namespacenet.html#aa0a46766b4aca53ea50e1921567ddb40">send</a>(SendCallback callback);</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  <span class="keywordtype">void</span> receive(ReceiveCallback callback);</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  <span class="keywordtype">void</span> <a class="code" href="namespaceprocess.html#a20443908afa3212215166e26065349e5">terminate</a>();</div><div class="line"><a name="l00266"></a><span class="lineno">
266</span>  <a class="code" href="classprocess_1_1Future.html">Future<Nothing></a> <a class="code" href="namespaceprocess.html#a07833fb41a8b0c1f18fa5485ca8c18d4">wait</a>();</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span> </div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  <span class="keyword">private</span>:</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  <span class="keywordtype">void</span> <a class="code" href="namespaceprocess.html#a6c9cd01950a98038b2a6df3e5066418f">initialize</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  <span class="keywordtype">void</span> <a class="code" href="namespaceprocess.html#a238371634a6637198c58ea740b0890ca">finalize</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span> 
</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  <span class="keywordtype">void</span> <a class="code" href="namespaceprocess.html#a59c192ee8ea5abbbee1642957f47c92a">loop</a>();</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span> </div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  ::grpc::CompletionQueue queue;</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  std::unique_ptr<std::thread> looper;</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  <span class="keywordtype">bool</span> terminating;</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  <a class="code" href="classprocess_1_1Promise.html">Promise<Nothing></a> terminated;</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  };</div><div class="line"><a name="l00279"></a>
<span class="lineno"> 279</span> </div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  <span class="keyword">struct </span>Data</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  {</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  Data();</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  ~Data();</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span> </div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  <a class="code" href="structprocess_1_1PID.html">PID<RuntimeProcess></a> pid;</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  <a class="code" href="classprocess_1_1Future.html">Future<Nothing></a> terminated;</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  };</div><div class="line"><a name
="l00288"></a><span class="lineno"> 288</span> </div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  std::shared_ptr<Data> data;</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span> };</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span> </div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span> } <span class="comment">// namespace client {</span></div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span> </div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span> } <span class="comment">// namespace grpc {</span></div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span> } <span class="comment">// namespace process {</span></div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span> </div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#
160;<span class="preprocessor">#endif // __PROCESS_GRPC_HPP__</span></div><div class="ttc" id="classError_html"><div class="ttname"><a href="classError.html">Error</a></div><div class="ttdef"><b>Definition:</b> errorbase.hpp:36</div></div>
+<a href="grpc_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// Licensed under the Apache License, Version 2.0 (the "License");</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// you may not use this file except in compliance with the License.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// You may obtain a copy of the License at</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">//</span
></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// Unless required by applicable law or agreed to in writing, software</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">// distributed under the License is distributed on an "AS IS" BASIS,</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">// See the License for the specific language governing permissions and</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// limitations under the License</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> </div><div class="line
"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#ifndef __PROCESS_GRPC_HPP__</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#define __PROCESS_GRPC_HPP__</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include <chrono></span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include <memory></span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include <string></span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include <thread></span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&
#160;<span class="preprocessor">#include <type_traits></span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <utility></span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <google/protobuf/message.h></span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> </div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <grpcpp/grpcpp.h></span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <<a class="code" href="libprocess_2include_2process_2check_8hpp.html">process/check.hpp</a>></span><
/div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include <<a class="code" href="dispatch_8hpp.html">process/dispatch.hpp</a>></span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include <<a class="code" href="future_8hpp.html">process/future.hpp</a>></span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include <<a class="code" href="3rdparty_2libprocess_2include_2process_2pid_8hpp.html">process/pid.hpp</a>></span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include <<a class="code" href="libprocess_2include_2process_2process_8hpp.html">process/process.hpp</a>></span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div><div class="line"><a name="l00033"></a><span class
="lineno"> 33</span> <span class="preprocessor">#include <<a class="code" href="error_8hpp.html">stout/error.hpp</a>></span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#include <<a class="code" href="lambda_8hpp.html">stout/lambda.hpp</a>></span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include <<a class="code" href="nothing_8hpp.html">stout/nothing.hpp</a>></span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#include <<a class="code" href="try_8hpp.html">stout/try.hpp</a>></span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> </div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="comment">// Th
is file provides libprocess "support" for using gRPC. In particular, it</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="comment">// defines two wrapper classes: `client::Connection` which represents a</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="comment">// connection to a gRPC server, and `client::Runtime` which integrates an event</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="comment">// loop waiting for gRPC responses and provides the `call` interface to create</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="comment">// an asynchronous gRPC call and return a `Future`.</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div><div
class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="grpc_8hpp.html#af26d5c763831ad955bb9742db25c5f75"> 46</a></span> <span class="preprocessor">#define GRPC_CLIENT_METHOD(service, rpc) \</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor"> (&service::Stub::PrepareAsync##rpc)</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> </div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="keyword">namespace </span><a class="code" href="namespaceprocess.html">process</a> {</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="namespaceprocess_1_1grpc.html"> 50</a></span> <span class="keyword">namespace </span>grpc {</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div><div class="line"><a name="l00056"></a><span class="lineno"><a class="l
ine" href="classprocess_1_1grpc_1_1StatusError.html"> 56</a></span> <span class="keyword">class </span><a class="code" href="classprocess_1_1grpc_1_1StatusError.html">StatusError</a> : <span class="keyword">public</span> <a class="code" href="classError.html">Error</a></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span> {</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="classprocess_1_1grpc_1_1StatusError.html#af8b12349660968c3171d71d48d82111b"> 59</a></span>  <a class="code" href="classprocess_1_1grpc_1_1StatusError.html#af8b12349660968c3171d71d48d82111b">StatusError</a>(::grpc::Status _status)</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  : <a class="code" href="classError.html">Error</a>(_status.error_message()), <a class="code" href="clas
sprocess_1_1grpc_1_1StatusError.html#a7182af947b263c08393be3c9420199b5">status</a>(<a class="code" href="namespacestd.html">std</a>::move(_status))</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  {</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  CHECK(!<a class="code" href="classprocess_1_1grpc_1_1StatusError.html#a7182af947b263c08393be3c9420199b5">status</a>.ok());</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  }</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span> </div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="classprocess_1_1grpc_1_1StatusError.html#a7182af947b263c08393be3c9420199b5"> 65</a></span>  const ::grpc::Status <a class="code" href="classprocess_1_1grpc_1_1StatusError.html#a7182af947b263c08393be3c9420199b5">status</a>;</div><div class="line"><a name="l00066"></a><span class="lineno
"> 66</span> };</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span> </div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span> </div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="namespaceprocess_1_1grpc_1_1client.html"> 69</a></span> <span class="keyword">namespace </span>client {</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span> </div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="comment">// Internal helper utilities.</span></div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="namespaceprocess_1_1grpc_1_1client_1_1internal.html"> 72</a></span> <span class="keyword">namespace </span><a class="code" href="namespaceinternal.html">internal</a> {</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div><div class="line"><a name="l000
74"></a><span class="lineno"> 74</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="structprocess_1_1grpc_1_1client_1_1internal_1_1MethodTraits.html"> 75</a></span> <span class="keyword">struct </span><a class="code" href="structprocess_1_1grpc_1_1client_1_1internal_1_1MethodTraits.html">MethodTraits</a>; <span class="comment">// Undefined.</span></div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span> </div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span> </div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Stub, <span class="keyword">typename</span> Request, <span class="keyword">typename</span> Response></div><div class="line"><a name="l00079"></a><span class="lineno"><a c
lass="line" href="structprocess_1_1grpc_1_1client_1_1internal_1_1MethodTraits_3_01std_1_1unique__ptr_3_1_1grpc_1_1b922a69900827d65b241714130bc07ca.html"> 79</a></span> <span class="keyword">struct </span><a class="code" href="structprocess_1_1grpc_1_1client_1_1internal_1_1MethodTraits.html">MethodTraits</a><</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <a class="code" href="namespacestd.html">std</a>::unique_ptr<::grpc::ClientAsyncResponseReader<Response>>(Stub::*)(</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  ::grpc::ClientContext*,</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  const Request&,</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  ::grpc::CompletionQueue*)></div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span> {</div><div class="line"><a name
="l00085"></a><span class="lineno"><a class="line" href="structprocess_1_1grpc_1_1client_1_1internal_1_1MethodTraits_3_01std_1_1unique__ptr_3_1_1grpc_1_1b922a69900827d65b241714130bc07ca.html#af96bd68c2ee624f2bade6bb587726897"> 85</a></span>  <span class="keyword">typedef</span> Stub <a class="code" href="structprocess_1_1grpc_1_1client_1_1internal_1_1MethodTraits_3_01std_1_1unique__ptr_3_1_1grpc_1_1b922a69900827d65b241714130bc07ca.html#af96bd68c2ee624f2bade6bb587726897">stub_type</a>;</div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="structprocess_1_1grpc_1_1client_1_1internal_1_1MethodTraits_3_01std_1_1unique__ptr_3_1_1grpc_1_1b922a69900827d65b241714130bc07ca.html#adcf2f58a91926bbfbbf3f9aa4979cd38"> 86</a></span>  <span class="keyword">typedef</span> Request <a class="code" href="structprocess_1_1grpc_1_1client_1_1internal_1_1MethodTraits_3_01std_1_1unique__ptr_3_1_1grpc_1_1b922a69900827d65b241714130bc07ca.html#adcf2f58a91926bbfb
bf3f9aa4979cd38">request_type</a>;</div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="structprocess_1_1grpc_1_1client_1_1internal_1_1MethodTraits_3_01std_1_1unique__ptr_3_1_1grpc_1_1b922a69900827d65b241714130bc07ca.html#a39b26e8b5b508708af0b6468a31dcab5"> 87</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespacemesos_1_1internal_1_1tests_1_1v1_1_1scheduler.html#a4e7892daaddcb4dd2e4ebb1266715316">Response</a> <a class="code" href="structprocess_1_1grpc_1_1client_1_1internal_1_1MethodTraits_3_01std_1_1unique__ptr_3_1_1grpc_1_1b922a69900827d65b241714130bc07ca.html#a39b26e8b5b508708af0b6468a31dcab5">response_type</a>;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span> };</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span> </div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span> } <span class="comment">// namespace internal {</spa
n></div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span> </div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span> </div><div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="classprocess_1_1grpc_1_1client_1_1Connection.html"> 99</a></span> <span class="keyword">class </span><a class="code" href="classprocess_1_1grpc_1_1client_1_1Connection.html">Connection</a></div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span> {</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="classprocess_1_1grpc_1_1client_1_1Connection.html#a60863492f258db095f4ce19c45d4fed5"> 102</a></span>  <a class="code" href="classprocess_1_1grpc_1_1client_1_1Connection.html#a60863492f258db095f4ce19c45d4fed5">Connection</a>(</div><div class="li
ne"><a name="l00103"></a><span class="lineno"> 103</span>  <span class="keyword">const</span> std::string& <a class="code" href="namespaceuri.html">uri</a>,</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <span class="keyword">const</span> std::shared_ptr<::grpc::ChannelCredentials>& credentials =</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  ::grpc::InsecureChannelCredentials())</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  : channel(::grpc::CreateChannel(uri, credentials)) {}</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span> </div><div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="classprocess_1_1grpc_1_1client_1_1Connection.html#abe61ce221a6e43836ea28d97e6b2db94"> 108</a></span>  <span class="keyword">explicit</span> <a class="code" href="classprocess_1_1grpc_1
_1client_1_1Connection.html#abe61ce221a6e43836ea28d97e6b2db94">Connection</a>(std::shared_ptr<::grpc::Channel> _channel)</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  : channel(<a class="code" href="namespacestd.html">std</a>::move(_channel)) {}</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span> </div><div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="classprocess_1_1grpc_1_1client_1_1Connection.html#a2ee6f5abf57c66128bb1c5a4751880f8"> 111</a></span>  <span class="keyword">const</span> std::shared_ptr<::grpc::Channel> <a class="code" href="classprocess_1_1grpc_1_1client_1_1Connection.html#a2ee6f5abf57c66128bb1c5a4751880f8">channel</a>;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span> };</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span> </div><div class="line"><a name="l00114"></a><span class="lin
eno"> 114</span> </div><div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="classprocess_1_1grpc_1_1client_1_1Runtime.html"> 127</a></span> <span class="keyword">class </span><a class="code" href="classprocess_1_1grpc_1_1client_1_1Runtime.html">Runtime</a></div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span> {</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="classprocess_1_1grpc_1_1client_1_1Runtime.html#a5f7e56d9ebb540a9dbc52c5fb816a024"> 130</a></span>  <a class="code" href="classprocess_1_1grpc_1_1client_1_1Runtime.html#a5f7e56d9ebb540a9dbc52c5fb816a024">Runtime</a>() : data(new Data()) {}</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span> </div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>
  <span class="keyword">template</span> <</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  <span class="keyword">typename</span> Method,</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  <span class="keyword">typename</span> Request =</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <span class="keyword">typename</span> <a class="code" href="structprocess_1_1grpc_1_1client_1_1internal_1_1MethodTraits.html">internal::MethodTraits<Method>::request_type</a>,</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <span class="keyword">typename</span> <a class="code" href="namespacemesos_1_1internal_1_1tests_1_1v1_1_1scheduler.html#a4e7892daaddcb4dd2e4ebb1266715316">Response</a> =</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  <span class="keyword">typename</span> <a class="cod
e" href="structprocess_1_1grpc_1_1client_1_1internal_1_1MethodTraits.html">internal::MethodTraits<Method>::response_type</a>,</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <span class="keyword">typename</span> std::enable_if<</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  std::is_convertible<</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <span class="keyword">typename</span> <a class="code" href="namespacemesos_1_1internal_1_1fs.html#a2343e2642db514496ba8380776487fba">std::decay<Request>::type</a>*,</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  google::protobuf::Message*>::value,</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <span class="keywordtype">int</span>><a class="code" href="namespacemesos_1_1internal_1_1fs.html#a2343
e2642db514496ba8380776487fba">::type</a> = 0></div><div class="line"><a name="l00158"></a><span class="lineno"><a class="line" href="classprocess_1_1grpc_1_1client_1_1Runtime.html#a09983451181cdf4c19dd5231e8dfaa86"> 158</a></span>  <a class="code" href="classprocess_1_1Future.html">Future<Try<Response, StatusError></a>> <a class="code" href="classprocess_1_1grpc_1_1client_1_1Runtime.html#a09983451181cdf4c19dd5231e8dfaa86">call</a>(</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <span class="keyword">const</span> <a class="code" href="classprocess_1_1grpc_1_1client_1_1Connection.html">Connection</a>& connection,</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  Method&& method,</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  Request&& <a class="code" href="namespaceprocess_1_1http.html#ad8f400b5e54038df7e5662ec35da05fa">re
quest</a>)</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  {</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  <span class="comment">// Create a `Promise` that will be set upon receiving a response.</span></div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  <span class="comment">// TODO(chhsiao): The `Promise` in the `shared_ptr` is not shared, but only</span></div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <span class="comment">// to be captured by the lambda below. Use a `unique_ptr` once we get C++14.</span></div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  std::shared_ptr<Promise<Try<Response, StatusError>>> <a class="code" href="namespacemesos_1_1internal_1_1log_1_1protocol.html#a3b1f8bd7b18c51af9d1f58842950b545">promise</a>(</div><div class="line"><a name="l00167"></a><span cla
ss="lineno"> 167</span>  <span class="keyword">new</span> <a class="code" href="classprocess_1_1Promise.html">Promise</a><<a class="code" href="classTry.html">Try<Response, StatusError></a>>);</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  <a class="code" href="classprocess_1_1Future.html">Future<Try<Response, StatusError></a>> future = promise->future();</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span> </div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <span class="comment">// Send the request in the internal runtime process.</span></div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <span class="comment">// TODO(chhsiao): We use `std::bind` here to forward `request` to avoid an</span></div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  <span class="comment">// ext
ra copy. We should capture it by forwarding once we get C++14.</span></div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  <a class="code" href="namespaceprocess.html#acfbc29404bc653268289691b0dd59e22">dispatch</a>(data->pid, &<a class="code" href="namespaceprocess_1_1windows.html#a04c64346155d34517acdf8b587162868">RuntimeProcess::send</a>, <a class="code" href="namespaceprocess_1_1network.html#ad067110a4b38cc83785a43f49bf6c8e2">std::bind</a>(</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  [connection, method, promise](</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  <span class="keyword">const</span> Request& <a class="code" href="namespaceprocess_1_1http.html#ad8f400b5e54038df7e5662ec35da05fa">request</a>,</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  <span class="keywordtype">bool</span> terminatin
g,</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  ::grpc::CompletionQueue* queue) {</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  if (terminating) {</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  promise->fail(<span class="stringliteral">"Runtime has been terminated"</span>);</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  return;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  }</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span> </div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <span class="comment">// TODO(chhsiao): The `shared_ptr`s here aren't shared, but only to be</span></div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span> 
<span class="comment">// captured by the lambda below. Use `unique_ptr`s once we get C++14.</span></div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  std::shared_ptr<::grpc::ClientContext> <a class="code" href="namespaceprocess_1_1network_1_1openssl.html#a9ea7f1e144d9731d6fb4e4a0d80a7c56">context</a>(</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  new ::grpc::ClientContext());</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span> </div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  <span class="comment">// TODO(chhsiao): Allow the caller to specify a timeout.</span></div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  <a class="code" href="namespaceprocess_1_1network_1_1openssl.html#a9ea7f1e144d9731d6fb4e4a0d80a7c56">context</a>->set_deadline(</div><div class="line"><
a name="l00190"></a><span class="lineno"> 190</span>  std::chrono::system_clock::now() + std::chrono::seconds(5));</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span> </div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  <span class="comment">// Enable the gRPC wait-for-ready semantics by default. See:</span></div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  <span class="comment">// https://github.com/grpc/grpc/blob/master/doc/wait-for-ready.md</span></div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <span class="comment">// TODO(chhsiao): Allow the caller to set the option.</span></div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  <a class="code" href="namespaceprocess_1_1network_1_1openssl.html#a9ea7f1e144d9731d6fb4e4a0d80a7c56">context</a>->set_wait_for_ready(<sp
an class="keyword">true</span>);</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span> </div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  promise->future().onDiscard([=] { <a class="code" href="namespaceprocess_1_1network_1_1openssl.html#a9ea7f1e144d9731d6fb4e4a0d80a7c56">context</a>->TryCancel(); });</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span> </div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  std::shared_ptr<Response> response(<span class="keyword">new</span> <a class="code" href="namespacemesos_1_1internal_1_1tests_1_1v1_1_1scheduler.html#a4e7892daaddcb4dd2e4ebb1266715316">Response</a>());</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  std::shared_ptr<::grpc::Status> <a class="code" href="classprocess_1_1grpc_1_1StatusError.html#a7182af947b263c08393be3c9420199b5">st
atus</a>(new ::grpc::Status());</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span> </div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  std::shared_ptr<::grpc::ClientAsyncResponseReader<Response>> reader =</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  (<span class="keyword">typename</span> <a class="code" href="structprocess_1_1grpc_1_1client_1_1internal_1_1MethodTraits.html">internal::MethodTraits<Method>::stub_type</a>(</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  connection.<a class="code" href="classprocess_1_1grpc_1_1client_1_1Connection.html#a2ee6f5abf57c66128bb1c5a4751880f8">channel</a>).*method)(<a class="code" href="namespaceprocess_1_1network_1_1openssl.html#a9ea7f1e144d9731d6fb4e4a0d80a7c56">context</a>.get(), <a class="code" href="namespaceprocess_1_1http.html#ad8f400b5e54038df7e5
662ec35da05fa">request</a>, queue);</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span> </div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  reader->StartCall();</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span> </div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  <span class="comment">// Create a `ReceiveCallback` as a tag in the `CompletionQueue` for</span></div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  <span class="comment">// the current asynchronous gRPC call. The callback will set up the</span></div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  <span class="comment">// above `Promise` upon receiving a response.</span></div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  <span class="comment">// NOTE: `con
text` and `reader` need to be held on in order to get</span></div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  <span class="comment">// updates for the ongoing RPC, and thus are captured here. The</span></div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  <span class="comment">// callback itself will later be retrieved and managed in the</span></div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  <span class="comment">// looper thread.</span></div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  <span class="keywordtype">void</span>* tag = <span class="keyword">new</span> <a class="code" href="classlambda_1_1CallableOnce.html">ReceiveCallback</a>(</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  [<a class="code" href="namespaceprocess_1_1network_1_1openssl.html#a9ea7f1e144d97
31d6fb4e4a0d80a7c56">context</a>, reader, response, status, promise]() {</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  <a class="code" href="libprocess_2include_2process_2check_8hpp.html#a3e2ba5c8589f7f5799251a12409e142c">CHECK_PENDING</a>(promise->future());</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  <span class="keywordflow">if</span> (promise->future().hasDiscard()) {</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  promise->discard();</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  promise->set(status->ok()</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  ? std::
move(*response)</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  : <a class="code" href="classTry.html#abb21343eabcba0eb0d88f13c4fbdf1f7">Try<Response, StatusError>::error</a>(std::move(*status)));</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  }</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  });</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span> </div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  reader->Finish(response.get(), status.get(), tag);</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  },</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  std::forward<Request>(<a class="code" href="namespaceprocess_1_1http.html#ad8f400b5e54038df7e5662ec35da05fa">reques
t</a>),</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  lambda::_1,</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  lambda::_2));</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span> </div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  <span class="keywordflow">return</span> future;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  }</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span> </div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  <span class="keywordtype">void</span> <a class="code" href="namespaceprocess.html#a20443908afa3212215166e26065349e5">terminate</a>();</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span> </div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  <a
class="code" href="classprocess_1_1Future.html">Future<Nothing></a> <a class="code" href="namespaceprocess.html#a07833fb41a8b0c1f18fa5485ca8c18d4">wait</a>();</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span> </div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  <span class="comment">// Type of the callback functions that can get invoked when sending a request</span></div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  <span class="comment">// or receiving a response.</span></div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  <span class="keyword">typedef</span> <a class="code" href="classlambda_1_1CallableOnce.html">lambda::CallableOnce</a><</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span> 
void(<span class="keywordtype">bool</span>, ::grpc::CompletionQueue*)> <a class="code" href="classlambda_1_1CallableOnce.html">SendCallback</a>;</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  <span class="keyword">typedef</span> <a class="code" href="classlambda_1_1CallableOnce.html">lambda::CallableOnce<void()></a> <a class="code" href="classlambda_1_1CallableOnce.html">ReceiveCallback</a>;</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span> </div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  <span class="keyword">class </span>RuntimeProcess : <span class="keyword">public</span> <a class="code" href="classprocess_1_1Process.html">Process</a><RuntimeProcess></div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  {</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  <span class="keyword">public</span>:<
/div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  RuntimeProcess();</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  <span class="keyword">virtual</span> ~RuntimeProcess();</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span> </div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  <span class="keywordtype">void</span> <a class="code" href="namespaceprocess_1_1windows.html#a04c64346155d34517acdf8b587162868">send</a>(SendCallback callback);</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  <span class="keywordtype">void</span> receive(ReceiveCallback callback);</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  <span class="keywordtype">void</span> <a class="code" href="namespaceprocess.html#a20443908afa3212215166e26065349e5">terminate</a>();</div><div class="line"><a name="l002
66"></a><span class="lineno"> 266</span>  <a class="code" href="classprocess_1_1Future.html">Future<Nothing></a> <a class="code" href="namespaceprocess.html#a07833fb41a8b0c1f18fa5485ca8c18d4">wait</a>();</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span> </div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  <span class="keyword">private</span>:</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  <span class="keywordtype">void</span> <a class="code" href="namespaceprocess.html#a6c9cd01950a98038b2a6df3e5066418f">initialize</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  <span class="keywordtype">void</span> <a class="code" href="namespaceprocess.html#a238371634a6637198c58ea740b0890ca">finalize</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00271"></a><span cla
ss="lineno"> 271</span> </div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  <span class="keywordtype">void</span> <a class="code" href="namespaceprocess.html#a59c192ee8ea5abbbee1642957f47c92a">loop</a>();</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span> </div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  ::grpc::CompletionQueue queue;</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  std::unique_ptr<std::thread> looper;</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  <span class="keywordtype">bool</span> terminating;</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  <a class="code" href="classprocess_1_1Promise.html">Promise<Nothing></a> terminated;</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  };</div><div clas
s="line"><a name="l00279"></a><span class="lineno"> 279</span> </div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  <span class="keyword">struct </span>Data</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  {</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  Data();</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  ~Data();</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span> </div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  <a class="code" href="structprocess_1_1PID.html">PID<RuntimeProcess></a> pid;</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  <a class="code" href="classprocess_1_1Future.html">Future<Nothing></a> terminated;</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  };<
/div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span> </div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  std::shared_ptr<Data> data;</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span> };</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span> </div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span> } <span class="comment">// namespace client {</span></div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span> </div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span> } <span class="comment">// namespace grpc {</span></div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span> } <span class="comment">// namespace process {</span></div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span> </div><div class="line"><a name="l00297"></a><span
class="lineno"> 297</span> <span class="preprocessor">#endif // __PROCESS_GRPC_HPP__</span></div><div class="ttc" id="classError_html"><div class="ttname"><a href="classError.html">Error</a></div><div class="ttdef"><b>Definition:</b> errorbase.hpp:36</div></div>
<div class="ttc" id="libprocess_2include_2process_2check_8hpp_html_a3e2ba5c8589f7f5799251a12409e142c"><div class="ttname"><a href="libprocess_2include_2process_2check_8hpp.html#a3e2ba5c8589f7f5799251a12409e142c">CHECK_PENDING</a></div><div class="ttdeci">#define CHECK_PENDING(expression)</div><div class="ttdef"><b>Definition:</b> check.hpp:26</div></div>
<div class="ttc" id="namespaceprocess_html_a238371634a6637198c58ea740b0890ca"><div class="ttname"><a href="namespaceprocess.html#a238371634a6637198c58ea740b0890ca">process::finalize</a></div><div class="ttdeci">void finalize(bool finalize_wsa=false)</div><div class="ttdoc">Clean up the library. </div></div>
<div class="ttc" id="structprocess_1_1grpc_1_1client_1_1internal_1_1MethodTraits_html"><div class="ttname"><a href="structprocess_1_1grpc_1_1client_1_1internal_1_1MethodTraits.html">process::grpc::client::internal::MethodTraits</a></div><div class="ttdef"><b>Definition:</b> grpc.hpp:75</div></div>
@@ -69,7 +69,6 @@
<div class="ttc" id="namespaceprocess_1_1network_1_1openssl_html_a9ea7f1e144d9731d6fb4e4a0d80a7c56"><div class="ttname"><a href="namespaceprocess_1_1network_1_1openssl.html#a9ea7f1e144d9731d6fb4e4a0d80a7c56">process::network::openssl::context</a></div><div class="ttdeci">SSL_CTX * context()</div></div>
<div class="ttc" id="namespaceprocess_html_acfbc29404bc653268289691b0dd59e22"><div class="ttname"><a href="namespaceprocess.html#acfbc29404bc653268289691b0dd59e22">process::dispatch</a></div><div class="ttdeci">void dispatch(const PID< T > &pid, void(T::*method)())</div><div class="ttdef"><b>Definition:</b> dispatch.hpp:174</div></div>
<div class="ttc" id="structprocess_1_1grpc_1_1client_1_1internal_1_1MethodTraits_3_01std_1_1unique__ptr_3_1_1grpc_1_1b922a69900827d65b241714130bc07ca_html_af96bd68c2ee624f2bade6bb587726897"><div class="ttname"><a href="structprocess_1_1grpc_1_1client_1_1internal_1_1MethodTraits_3_01std_1_1unique__ptr_3_1_1grpc_1_1b922a69900827d65b241714130bc07ca.html#af96bd68c2ee624f2bade6bb587726897">process::grpc::client::internal::MethodTraits< std::unique_ptr<::grpc::ClientAsyncResponseReader< Response > >(Stub::*)(::grpc::ClientContext *, const Request &,::grpc::CompletionQueue *)>::stub_type</a></div><div class="ttdeci">Stub stub_type</div><div class="ttdef"><b>Definition:</b> grpc.hpp:85</div></div>
-<div class="ttc" id="namespacenet_html_aa0a46766b4aca53ea50e1921567ddb40"><div class="ttname"><a href="namespacenet.html#aa0a46766b4aca53ea50e1921567ddb40">net::send</a></div><div class="ttdeci">ssize_t send(const int_fd &fd, const void *buf, size_t len, int flags)</div><div class="ttdef"><b>Definition:</b> socket.hpp:159</div></div>
<div class="ttc" id="classprocess_1_1grpc_1_1client_1_1Connection_html_abe61ce221a6e43836ea28d97e6b2db94"><div class="ttname"><a href="classprocess_1_1grpc_1_1client_1_1Connection.html#abe61ce221a6e43836ea28d97e6b2db94">process::grpc::client::Connection::Connection</a></div><div class="ttdeci">Connection(std::shared_ptr<::grpc::Channel > _channel)</div><div class="ttdef"><b>Definition:</b> grpc.hpp:108</div></div>
<div class="ttc" id="nothing_8hpp_html"><div class="ttname"><a href="nothing_8hpp.html">nothing.hpp</a></div></div>
<div class="ttc" id="structprocess_1_1grpc_1_1client_1_1internal_1_1MethodTraits_3_01std_1_1unique__ptr_3_1_1grpc_1_1b922a69900827d65b241714130bc07ca_html_adcf2f58a91926bbfbbf3f9aa4979cd38"><div class="ttname"><a href="structprocess_1_1grpc_1_1client_1_1internal_1_1MethodTraits_3_01std_1_1unique__ptr_3_1_1grpc_1_1b922a69900827d65b241714130bc07ca.html#adcf2f58a91926bbfbbf3f9aa4979cd38">process::grpc::client::internal::MethodTraits< std::unique_ptr<::grpc::ClientAsyncResponseReader< Response > >(Stub::*)(::grpc::ClientContext *, const Request &,::grpc::CompletionQueue *)>::request_type</a></div><div class="ttdeci">Request request_type</div><div class="ttdef"><b>Definition:</b> grpc.hpp:86</div></div>
@@ -101,6 +100,7 @@
<div class="ttc" id="libprocess_2include_2process_2process_8hpp_html"><div class="ttname"><a href="libprocess_2include_2process_2process_8hpp.html">process.hpp</a></div></div>
<div class="ttc" id="classlambda_1_1CallableOnce_html"><div class="ttname"><a href="classlambda_1_1CallableOnce.html">lambda::CallableOnce</a></div><div class="ttdef"><b>Definition:</b> lambda.hpp:414</div></div>
<div class="ttc" id="classprocess_1_1Future_html"><div class="ttname"><a href="classprocess_1_1Future.html">process::Future</a></div><div class="ttdef"><b>Definition:</b> future.hpp:58</div></div>
+<div class="ttc" id="namespaceprocess_1_1windows_html_a04c64346155d34517acdf8b587162868"><div class="ttname"><a href="n
<TRUNCATED>
[44/50] mesos-site git commit: Updated the website built from mesos
SHA: 7c9c72d.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/annotated.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/annotated.html b/content/api/latest/c++/annotated.html
index 36bfb74..97a561d 100644
--- a/content/api/latest/c++/annotated.html
+++ b/content/api/latest/c++/annotated.html
@@ -786,114 +786,117 @@
<tr id="row_23_3_10_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structprocess_1_1internal_1_1unwrap_3_01Future_3_01X_01_4_01_4.html" target="_self">unwrap< Future< X > ></a></td><td class="desc"></td></tr>
<tr id="row_23_3_11_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structprocess_1_1internal_1_1wrap.html" target="_self">wrap</a></td><td class="desc"></td></tr>
<tr id="row_23_3_12_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structprocess_1_1internal_1_1wrap_3_01Future_3_01X_01_4_01_4.html" target="_self">wrap< Future< X > ></a></td><td class="desc"></td></tr>
-<tr id="row_23_4_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span id="arr_23_4_" class="arrow" onclick="toggleFolder('23_4_')">►</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespaceprocess_1_1metrics.html" target="_self">metrics</a></td><td class="desc"></td></tr>
-<tr id="row_23_4_0_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span id="arr_23_4_0_" class="arrow" onclick="toggleFolder('23_4_0_')">►</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespaceprocess_1_1metrics_1_1internal.html" target="_self">internal</a></td><td class="desc"></td></tr>
-<tr id="row_23_4_0_0_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1metrics_1_1internal_1_1MetricsProcess.html" target="_self">MetricsProcess</a></td><td class="desc"></td></tr>
-<tr id="row_23_4_1_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1metrics_1_1Counter.html" target="_self">Counter</a></td><td class="desc"></td></tr>
-<tr id="row_23_4_2_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1metrics_1_1Metric.html" target="_self">Metric</a></td><td class="desc"></td></tr>
-<tr id="row_23_4_3_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1metrics_1_1PullGauge.html" target="_self">PullGauge</a></td><td class="desc"></td></tr>
-<tr id="row_23_4_4_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1metrics_1_1PushGauge.html" target="_self">PushGauge</a></td><td class="desc"></td></tr>
-<tr id="row_23_4_5_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1metrics_1_1Timer.html" target="_self">Timer</a></td><td class="desc"></td></tr>
-<tr id="row_23_5_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span id="arr_23_5_" class="arrow" onclick="toggleFolder('23_5_')">►</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespaceprocess_1_1network.html" target="_self">network</a></td><td class="desc"></td></tr>
-<tr id="row_23_5_0_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span id="arr_23_5_0_" class="arrow" onclick="toggleFolder('23_5_0_')">►</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespaceprocess_1_1network_1_1inet.html" target="_self">inet</a></td><td class="desc"></td></tr>
-<tr id="row_23_5_0_0_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1network_1_1inet_1_1Address.html" target="_self">Address</a></td><td class="desc"></td></tr>
-<tr id="row_23_5_1_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span id="arr_23_5_1_" class="arrow" onclick="toggleFolder('23_5_1_')">►</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespaceprocess_1_1network_1_1inet4.html" target="_self">inet4</a></td><td class="desc"></td></tr>
-<tr id="row_23_5_1_0_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1network_1_1inet4_1_1Address.html" target="_self">Address</a></td><td class="desc"></td></tr>
-<tr id="row_23_5_2_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span id="arr_23_5_2_" class="arrow" onclick="toggleFolder('23_5_2_')">►</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespaceprocess_1_1network_1_1inet6.html" target="_self">inet6</a></td><td class="desc"></td></tr>
-<tr id="row_23_5_2_0_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1network_1_1inet6_1_1Address.html" target="_self">Address</a></td><td class="desc"></td></tr>
-<tr id="row_23_5_3_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span id="arr_23_5_3_" class="arrow" onclick="toggleFolder('23_5_3_')">►</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespaceprocess_1_1network_1_1internal.html" target="_self">internal</a></td><td class="desc"></td></tr>
-<tr id="row_23_5_3_0_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1network_1_1internal_1_1LibeventSSLSocketImpl.html" target="_self">LibeventSSLSocketImpl</a></td><td class="desc"></td></tr>
-<tr id="row_23_5_3_1_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1network_1_1internal_1_1PollSocketImpl.html" target="_self">PollSocketImpl</a></td><td class="desc"></td></tr>
-<tr id="row_23_5_3_2_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html" target="_self">Socket</a></td><td class="desc">An abstraction around a socket (file descriptor) </td></tr>
-<tr id="row_23_5_3_3_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html" target="_self">SocketImpl</a></td><td class="desc">Implementation interface for a <code><a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html" title="An abstraction around a socket (file descriptor). ">Socket</a></code> </td></tr>
-<tr id="row_23_5_4_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span id="arr_23_5_4_" class="arrow" onclick="toggleFolder('23_5_4_')">►</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespaceprocess_1_1network_1_1unix.html" target="_self">unix</a></td><td class="desc"></td></tr>
-<tr id="row_23_5_4_0_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1network_1_1unix_1_1Address.html" target="_self">Address</a></td><td class="desc"></td></tr>
-<tr id="row_23_5_5_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1network_1_1Address.html" target="_self">Address</a></td><td class="desc"></td></tr>
-<tr id="row_23_6_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structprocess_1_1__Deferred.html" target="_self">_Deferred</a></td><td class="desc"></td></tr>
-<tr id="row_23_7_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1AsyncExecutor.html" target="_self">AsyncExecutor</a></td><td class="desc"></td></tr>
-<tr id="row_23_8_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1Clock.html" target="_self">Clock</a></td><td class="desc">Provides timers </td></tr>
-<tr id="row_23_9_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1ClockTestEventListener.html" target="_self">ClockTestEventListener</a></td><td class="desc"></td></tr>
-<tr id="row_23_10_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structprocess_1_1Continue.html" target="_self">Continue</a></td><td class="desc"></td></tr>
-<tr id="row_23_11_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span id="arr_23_11_" class="arrow" onclick="toggleFolder('23_11_')">►</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1ControlFlow.html" target="_self">ControlFlow</a></td><td class="desc"></td></tr>
-<tr id="row_23_11_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1ControlFlow_1_1Break.html" target="_self">Break</a></td><td class="desc"></td></tr>
-<tr id="row_23_11_1_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1ControlFlow_1_1Continue.html" target="_self">Continue</a></td><td class="desc"></td></tr>
-<tr id="row_23_12_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1CountDownLatch.html" target="_self">CountDownLatch</a></td><td class="desc"></td></tr>
-<tr id="row_23_13_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1DataDecoder.html" target="_self">DataDecoder</a></td><td class="desc"></td></tr>
-<tr id="row_23_14_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1DataEncoder.html" target="_self">DataEncoder</a></td><td class="desc"></td></tr>
-<tr id="row_23_15_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structprocess_1_1Deferred.html" target="_self">Deferred</a></td><td class="desc"></td></tr>
-<tr id="row_23_16_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structprocess_1_1DispatchEvent.html" target="_self">DispatchEvent</a></td><td class="desc"></td></tr>
-<tr id="row_23_17_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1Encoder.html" target="_self">Encoder</a></td><td class="desc"></td></tr>
-<tr id="row_23_18_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structprocess_1_1ErrnoFailure.html" target="_self">ErrnoFailure</a></td><td class="desc"></td></tr>
-<tr id="row_23_19_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structprocess_1_1Event.html" target="_self">Event</a></td><td class="desc"></td></tr>
-<tr id="row_23_20_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structprocess_1_1EventConsumer.html" target="_self">EventConsumer</a></td><td class="desc"></td></tr>
-<tr id="row_23_21_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1EventLoop.html" target="_self">EventLoop</a></td><td class="desc"></td></tr>
-<tr id="row_23_22_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span id="arr_23_22_" class="arrow" onclick="toggleFolder('23_22_')">►</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1EventQueue.html" target="_self">EventQueue</a></td><td class="desc"></td></tr>
-<tr id="row_23_22_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1EventQueue_1_1Consumer.html" target="_self">Consumer</a></td><td class="desc"></td></tr>
-<tr id="row_23_22_1_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1EventQueue_1_1Producer.html" target="_self">Producer</a></td><td class="desc"></td></tr>
-<tr id="row_23_23_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structprocess_1_1EventVisitor.html" target="_self">EventVisitor</a></td><td class="desc"></td></tr>
-<tr id="row_23_24_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1Executor.html" target="_self">Executor</a></td><td class="desc"></td></tr>
-<tr id="row_23_25_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structprocess_1_1ExitedEvent.html" target="_self">ExitedEvent</a></td><td class="desc"></td></tr>
-<tr id="row_23_26_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structprocess_1_1Failure.html" target="_self">Failure</a></td><td class="desc"></td></tr>
-<tr id="row_23_27_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1FileEncoder.html" target="_self">FileEncoder</a></td><td class="desc"></td></tr>
-<tr id="row_23_28_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1Filter.html" target="_self">Filter</a></td><td class="desc"></td></tr>
-<tr id="row_23_29_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1FilterTestEventListener.html" target="_self">FilterTestEventListener</a></td><td class="desc"></td></tr>
-<tr id="row_23_30_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1Future.html" target="_self">Future</a></td><td class="desc"></td></tr>
-<tr id="row_23_31_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1Gate.html" target="_self">Gate</a></td><td class="desc"></td></tr>
-<tr id="row_23_32_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1Help.html" target="_self">Help</a></td><td class="desc"></td></tr>
-<tr id="row_23_33_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structprocess_1_1HttpEvent.html" target="_self">HttpEvent</a></td><td class="desc"></td></tr>
-<tr id="row_23_34_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1HttpProxy.html" target="_self">HttpProxy</a></td><td class="desc"></td></tr>
-<tr id="row_23_35_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1HttpResponseEncoder.html" target="_self">HttpResponseEncoder</a></td><td class="desc"></td></tr>
-<tr id="row_23_36_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1Latch.html" target="_self">Latch</a></td><td class="desc"></td></tr>
-<tr id="row_23_37_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1Logging.html" target="_self">Logging</a></td><td class="desc"></td></tr>
-<tr id="row_23_38_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1MemoryProfiler.html" target="_self">MemoryProfiler</a></td><td class="desc"></td></tr>
-<tr id="row_23_39_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structprocess_1_1Message.html" target="_self">Message</a></td><td class="desc"></td></tr>
-<tr id="row_23_40_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1MessageEncoder.html" target="_self">MessageEncoder</a></td><td class="desc"></td></tr>
-<tr id="row_23_41_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structprocess_1_1MessageEvent.html" target="_self">MessageEvent</a></td><td class="desc"></td></tr>
-<tr id="row_23_42_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1MockFilter.html" target="_self">MockFilter</a></td><td class="desc"></td></tr>
-<tr id="row_23_43_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1Mutex.html" target="_self">Mutex</a></td><td class="desc"></td></tr>
-<tr id="row_23_44_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1Once.html" target="_self">Once</a></td><td class="desc"></td></tr>
-<tr id="row_23_45_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1Owned.html" target="_self">Owned</a></td><td class="desc"></td></tr>
-<tr id="row_23_46_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structprocess_1_1PID.html" target="_self">PID</a></td><td class="desc">A "process identifier" used to uniquely identify a process when dispatching messages </td></tr>
-<tr id="row_23_47_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1Process.html" target="_self">Process</a></td><td class="desc"></td></tr>
-<tr id="row_23_48_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span id="arr_23_48_" class="arrow" onclick="toggleFolder('23_48_')">►</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1ProcessBase.html" target="_self">ProcessBase</a></td><td class="desc"></td></tr>
-<tr id="row_23_48_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structprocess_1_1ProcessBase_1_1RouteOptions.html" target="_self">RouteOptions</a></td><td class="desc"></td></tr>
-<tr id="row_23_49_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1ProcessReference.html" target="_self">ProcessReference</a></td><td class="desc"></td></tr>
-<tr id="row_23_50_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1Profiler.html" target="_self">Profiler</a></td><td class="desc"></td></tr>
-<tr id="row_23_51_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1Promise.html" target="_self">Promise</a></td><td class="desc"></td></tr>
-<tr id="row_23_52_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1Queue.html" target="_self">Queue</a></td><td class="desc"></td></tr>
-<tr id="row_23_53_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1RateLimiter.html" target="_self">RateLimiter</a></td><td class="desc"></td></tr>
-<tr id="row_23_54_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1RateLimiterProcess.html" target="_self">RateLimiterProcess</a></td><td class="desc"></td></tr>
-<tr id="row_23_55_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1ReadWriteLock.html" target="_self">ReadWriteLock</a></td><td class="desc"><a class="el" href="classprocess_1_1ReadWriteLock.html" title="ReadWriteLock is a lock that allows concurrent reads and exclusive writes. ">ReadWriteLock</a> is a lock that allows concurrent reads and exclusive writes </td></tr>
-<tr id="row_23_56_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1ResponseDecoder.html" target="_self">ResponseDecoder</a></td><td class="desc"></td></tr>
-<tr id="row_23_57_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1RFC1123.html" target="_self">RFC1123</a></td><td class="desc"></td></tr>
-<tr id="row_23_58_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1RFC3339.html" target="_self">RFC3339</a></td><td class="desc"></td></tr>
-<tr id="row_23_59_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1RunQueue.html" target="_self">RunQueue</a></td><td class="desc"></td></tr>
-<tr id="row_23_60_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1Sequence.html" target="_self">Sequence</a></td><td class="desc"></td></tr>
-<tr id="row_23_61_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1SequenceProcess.html" target="_self">SequenceProcess</a></td><td class="desc"></td></tr>
-<tr id="row_23_62_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1Shared.html" target="_self">Shared</a></td><td class="desc"></td></tr>
-<tr id="row_23_63_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1SocketManager.html" target="_self">SocketManager</a></td><td class="desc"></td></tr>
-<tr id="row_23_64_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1StateMachine.html" target="_self">StateMachine</a></td><td class="desc"></td></tr>
-<tr id="row_23_65_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structprocess_1_1Statistics.html" target="_self">Statistics</a></td><td class="desc"></td></tr>
-<tr id="row_23_66_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1StreamingRequestDecoder.html" target="_self">StreamingRequestDecoder</a></td><td class="desc"></td></tr>
-<tr id="row_23_67_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1StreamingResponseDecoder.html" target="_self">StreamingResponseDecoder</a></td><td class="desc"></td></tr>
-<tr id="row_23_68_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span id="arr_23_68_" class="arrow" onclick="toggleFolder('23_68_')">►</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1Subprocess.html" target="_self">Subprocess</a></td><td class="desc">Represents a fork() exec()ed subprocess </td></tr>
-<tr id="row_23_68_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1Subprocess_1_1ChildHook.html" target="_self">ChildHook</a></td><td class="desc">A <code><a class="el" href="classprocess_1_1Subprocess_1_1ChildHook.html" title="A ChildHook can be passed to a subprocess call. ">ChildHook</a></code> can be passed to a <code>subprocess</code> call </td></tr>
-<tr id="row_23_68_1_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span id="arr_23_68_1_" class="arrow" onclick="toggleFolder('23_68_1_')">►</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1Subprocess_1_1IO.html" target="_self">IO</a></td><td class="desc">Describes how the I/O is redirected for stdin/stdout/stderr </td></tr>
-<tr id="row_23_68_1_0_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors.html" target="_self">InputFileDescriptors</a></td><td class="desc">For input file descriptors a child reads from the <code>read</code> file descriptor and a parent may write to the <code>write</code> file descriptor if one is present </td></tr>
-<tr id="row_23_68_1_1_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html" target="_self">OutputFileDescriptors</a></td><td class="desc">For output file descriptors a child writes to the <code>write</code> file descriptor and a parent may read from the <code>read</code> file descriptor if one is present </td></tr>
-<tr id="row_23_68_2_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structprocess_1_1Subprocess_1_1ParentHook.html" target="_self">ParentHook</a></td><td class="desc">A hook can be passed to a <code>subprocess</code> call </td></tr>
-<tr id="row_23_69_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1System.html" target="_self">System</a></td><td class="desc"></td></tr>
-<tr id="row_23_70_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structprocess_1_1TerminateEvent.html" target="_self">TerminateEvent</a></td><td class="desc"></td></tr>
-<tr id="row_23_71_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1TestsFilter.html" target="_self">TestsFilter</a></td><td class="desc"></td></tr>
-<tr id="row_23_72_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1Time.html" target="_self">Time</a></td><td class="desc"></td></tr>
-<tr id="row_23_73_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1Timeout.html" target="_self">Timeout</a></td><td class="desc"></td></tr>
-<tr id="row_23_74_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1Timer.html" target="_self">Timer</a></td><td class="desc"></td></tr>
-<tr id="row_23_75_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span id="arr_23_75_" class="arrow" onclick="toggleFolder('23_75_')">►</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structprocess_1_1TimeSeries.html" target="_self">TimeSeries</a></td><td class="desc"></td></tr>
-<tr id="row_23_75_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structprocess_1_1TimeSeries_1_1Value.html" target="_self">Value</a></td><td class="desc"></td></tr>
-<tr id="row_23_76_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structprocess_1_1UndiscardableDecorator.html" target="_self">UndiscardableDecorator</a></td><td class="desc"></td></tr>
-<tr id="row_23_77_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span id="arr_23_77_" class="arrow" onclick="toggleFolder('23_77_')">►</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structprocess_1_1UPID.html" target="_self">UPID</a></td><td class="desc">An "untyped" <code><a class="el" href="structprocess_1_1PID.html" title="A "process identifier" used to uniquely identify a process when dispatching messages. ">PID</a></code>, used to encapsulate the process <a class="el" href="structprocess_1_1UPID_1_1ID.html">ID</a> for lower-layer abstractions (eg, when receiving incoming requests) in the dispatching mechanism </td></tr>
-<tr id="row_23_77_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structprocess_1_1UPID_1_1ID.html" target="_self">ID</a></td><td class="desc"></td></tr>
-<tr id="row_23_78_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1WeakFuture.html" target="_self">WeakFuture</a></td><td class="desc"></td></tr>
+<tr id="row_23_4_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span id="arr_23_4_" class="arrow" onclick="toggleFolder('23_4_')">►</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespaceprocess_1_1io.html" target="_self">io</a></td><td class="desc"></td></tr>
+<tr id="row_23_5_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span id="arr_23_5_" class="arrow" onclick="toggleFolder('23_5_')">►</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespaceprocess_1_1metrics.html" target="_self">metrics</a></td><td class="desc"></td></tr>
+<tr id="row_23_5_0_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span id="arr_23_5_0_" class="arrow" onclick="toggleFolder('23_5_0_')">►</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespaceprocess_1_1metrics_1_1internal.html" target="_self">internal</a></td><td class="desc"></td></tr>
+<tr id="row_23_5_0_0_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1metrics_1_1internal_1_1MetricsProcess.html" target="_self">MetricsProcess</a></td><td class="desc"></td></tr>
+<tr id="row_23_5_1_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1metrics_1_1Counter.html" target="_self">Counter</a></td><td class="desc"></td></tr>
+<tr id="row_23_5_2_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1metrics_1_1Metric.html" target="_self">Metric</a></td><td class="desc"></td></tr>
+<tr id="row_23_5_3_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1metrics_1_1PullGauge.html" target="_self">PullGauge</a></td><td class="desc"></td></tr>
+<tr id="row_23_5_4_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1metrics_1_1PushGauge.html" target="_self">PushGauge</a></td><td class="desc"></td></tr>
+<tr id="row_23_5_5_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1metrics_1_1Timer.html" target="_self">Timer</a></td><td class="desc"></td></tr>
+<tr id="row_23_6_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span id="arr_23_6_" class="arrow" onclick="toggleFolder('23_6_')">►</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespaceprocess_1_1network.html" target="_self">network</a></td><td class="desc"></td></tr>
+<tr id="row_23_6_0_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span id="arr_23_6_0_" class="arrow" onclick="toggleFolder('23_6_0_')">►</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespaceprocess_1_1network_1_1inet.html" target="_self">inet</a></td><td class="desc"></td></tr>
+<tr id="row_23_6_0_0_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1network_1_1inet_1_1Address.html" target="_self">Address</a></td><td class="desc"></td></tr>
+<tr id="row_23_6_1_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span id="arr_23_6_1_" class="arrow" onclick="toggleFolder('23_6_1_')">►</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespaceprocess_1_1network_1_1inet4.html" target="_self">inet4</a></td><td class="desc"></td></tr>
+<tr id="row_23_6_1_0_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1network_1_1inet4_1_1Address.html" target="_self">Address</a></td><td class="desc"></td></tr>
+<tr id="row_23_6_2_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span id="arr_23_6_2_" class="arrow" onclick="toggleFolder('23_6_2_')">►</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespaceprocess_1_1network_1_1inet6.html" target="_self">inet6</a></td><td class="desc"></td></tr>
+<tr id="row_23_6_2_0_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1network_1_1inet6_1_1Address.html" target="_self">Address</a></td><td class="desc"></td></tr>
+<tr id="row_23_6_3_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span id="arr_23_6_3_" class="arrow" onclick="toggleFolder('23_6_3_')">►</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespaceprocess_1_1network_1_1internal.html" target="_self">internal</a></td><td class="desc"></td></tr>
+<tr id="row_23_6_3_0_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1network_1_1internal_1_1LibeventSSLSocketImpl.html" target="_self">LibeventSSLSocketImpl</a></td><td class="desc"></td></tr>
+<tr id="row_23_6_3_1_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1network_1_1internal_1_1PollSocketImpl.html" target="_self">PollSocketImpl</a></td><td class="desc"></td></tr>
+<tr id="row_23_6_3_2_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html" target="_self">Socket</a></td><td class="desc">An abstraction around a socket (file descriptor) </td></tr>
+<tr id="row_23_6_3_3_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html" target="_self">SocketImpl</a></td><td class="desc">Implementation interface for a <code><a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html" title="An abstraction around a socket (file descriptor). ">Socket</a></code> </td></tr>
+<tr id="row_23_6_4_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span id="arr_23_6_4_" class="arrow" onclick="toggleFolder('23_6_4_')">►</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespaceprocess_1_1network_1_1unix.html" target="_self">unix</a></td><td class="desc"></td></tr>
+<tr id="row_23_6_4_0_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1network_1_1unix_1_1Address.html" target="_self">Address</a></td><td class="desc"></td></tr>
+<tr id="row_23_6_5_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1network_1_1Address.html" target="_self">Address</a></td><td class="desc"></td></tr>
+<tr id="row_23_7_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span id="arr_23_7_" class="arrow" onclick="toggleFolder('23_7_')">►</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespaceprocess_1_1windows.html" target="_self">windows</a></td><td class="desc"></td></tr>
+<tr id="row_23_7_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1windows_1_1EventLoop.html" target="_self">EventLoop</a></td><td class="desc"></td></tr>
+<tr id="row_23_8_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structprocess_1_1__Deferred.html" target="_self">_Deferred</a></td><td class="desc"></td></tr>
+<tr id="row_23_9_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1AsyncExecutor.html" target="_self">AsyncExecutor</a></td><td class="desc"></td></tr>
+<tr id="row_23_10_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1Clock.html" target="_self">Clock</a></td><td class="desc">Provides timers </td></tr>
+<tr id="row_23_11_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1ClockTestEventListener.html" target="_self">ClockTestEventListener</a></td><td class="desc"></td></tr>
+<tr id="row_23_12_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structprocess_1_1Continue.html" target="_self">Continue</a></td><td class="desc"></td></tr>
+<tr id="row_23_13_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span id="arr_23_13_" class="arrow" onclick="toggleFolder('23_13_')">►</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1ControlFlow.html" target="_self">ControlFlow</a></td><td class="desc"></td></tr>
+<tr id="row_23_13_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1ControlFlow_1_1Break.html" target="_self">Break</a></td><td class="desc"></td></tr>
+<tr id="row_23_13_1_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1ControlFlow_1_1Continue.html" target="_self">Continue</a></td><td class="desc"></td></tr>
+<tr id="row_23_14_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1CountDownLatch.html" target="_self">CountDownLatch</a></td><td class="desc"></td></tr>
+<tr id="row_23_15_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1DataDecoder.html" target="_self">DataDecoder</a></td><td class="desc"></td></tr>
+<tr id="row_23_16_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1DataEncoder.html" target="_self">DataEncoder</a></td><td class="desc"></td></tr>
+<tr id="row_23_17_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structprocess_1_1Deferred.html" target="_self">Deferred</a></td><td class="desc"></td></tr>
+<tr id="row_23_18_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structprocess_1_1DispatchEvent.html" target="_self">DispatchEvent</a></td><td class="desc"></td></tr>
+<tr id="row_23_19_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1Encoder.html" target="_self">Encoder</a></td><td class="desc"></td></tr>
+<tr id="row_23_20_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structprocess_1_1ErrnoFailure.html" target="_self">ErrnoFailure</a></td><td class="desc"></td></tr>
+<tr id="row_23_21_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structprocess_1_1Event.html" target="_self">Event</a></td><td class="desc"></td></tr>
+<tr id="row_23_22_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structprocess_1_1EventConsumer.html" target="_self">EventConsumer</a></td><td class="desc"></td></tr>
+<tr id="row_23_23_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1EventLoop.html" target="_self">EventLoop</a></td><td class="desc"></td></tr>
+<tr id="row_23_24_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span id="arr_23_24_" class="arrow" onclick="toggleFolder('23_24_')">►</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1EventQueue.html" target="_self">EventQueue</a></td><td class="desc"></td></tr>
+<tr id="row_23_24_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1EventQueue_1_1Consumer.html" target="_self">Consumer</a></td><td class="desc"></td></tr>
+<tr id="row_23_24_1_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1EventQueue_1_1Producer.html" target="_self">Producer</a></td><td class="desc"></td></tr>
+<tr id="row_23_25_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structprocess_1_1EventVisitor.html" target="_self">EventVisitor</a></td><td class="desc"></td></tr>
+<tr id="row_23_26_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1Executor.html" target="_self">Executor</a></td><td class="desc"></td></tr>
+<tr id="row_23_27_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structprocess_1_1ExitedEvent.html" target="_self">ExitedEvent</a></td><td class="desc"></td></tr>
+<tr id="row_23_28_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structprocess_1_1Failure.html" target="_self">Failure</a></td><td class="desc"></td></tr>
+<tr id="row_23_29_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1FileEncoder.html" target="_self">FileEncoder</a></td><td class="desc"></td></tr>
+<tr id="row_23_30_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1Filter.html" target="_self">Filter</a></td><td class="desc"></td></tr>
+<tr id="row_23_31_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1FilterTestEventListener.html" target="_self">FilterTestEventListener</a></td><td class="desc"></td></tr>
+<tr id="row_23_32_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1Future.html" target="_self">Future</a></td><td class="desc"></td></tr>
+<tr id="row_23_33_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1Gate.html" target="_self">Gate</a></td><td class="desc"></td></tr>
+<tr id="row_23_34_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1Help.html" target="_self">Help</a></td><td class="desc"></td></tr>
+<tr id="row_23_35_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structprocess_1_1HttpEvent.html" target="_self">HttpEvent</a></td><td class="desc"></td></tr>
+<tr id="row_23_36_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1HttpProxy.html" target="_self">HttpProxy</a></td><td class="desc"></td></tr>
+<tr id="row_23_37_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1HttpResponseEncoder.html" target="_self">HttpResponseEncoder</a></td><td class="desc"></td></tr>
+<tr id="row_23_38_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1Latch.html" target="_self">Latch</a></td><td class="desc"></td></tr>
+<tr id="row_23_39_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1Logging.html" target="_self">Logging</a></td><td class="desc"></td></tr>
+<tr id="row_23_40_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1MemoryProfiler.html" target="_self">MemoryProfiler</a></td><td class="desc"></td></tr>
+<tr id="row_23_41_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structprocess_1_1Message.html" target="_self">Message</a></td><td class="desc"></td></tr>
+<tr id="row_23_42_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1MessageEncoder.html" target="_self">MessageEncoder</a></td><td class="desc"></td></tr>
+<tr id="row_23_43_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structprocess_1_1MessageEvent.html" target="_self">MessageEvent</a></td><td class="desc"></td></tr>
+<tr id="row_23_44_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1MockFilter.html" target="_self">MockFilter</a></td><td class="desc"></td></tr>
+<tr id="row_23_45_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1Mutex.html" target="_self">Mutex</a></td><td class="desc"></td></tr>
+<tr id="row_23_46_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1Once.html" target="_self">Once</a></td><td class="desc"></td></tr>
+<tr id="row_23_47_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1Owned.html" target="_self">Owned</a></td><td class="desc"></td></tr>
+<tr id="row_23_48_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structprocess_1_1PID.html" target="_self">PID</a></td><td class="desc">A "process identifier" used to uniquely identify a process when dispatching messages </td></tr>
+<tr id="row_23_49_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1Process.html" target="_self">Process</a></td><td class="desc"></td></tr>
+<tr id="row_23_50_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span id="arr_23_50_" class="arrow" onclick="toggleFolder('23_50_')">►</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1ProcessBase.html" target="_self">ProcessBase</a></td><td class="desc"></td></tr>
+<tr id="row_23_50_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structprocess_1_1ProcessBase_1_1RouteOptions.html" target="_self">RouteOptions</a></td><td class="desc"></td></tr>
+<tr id="row_23_51_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1ProcessReference.html" target="_self">ProcessReference</a></td><td class="desc"></td></tr>
+<tr id="row_23_52_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1Profiler.html" target="_self">Profiler</a></td><td class="desc"></td></tr>
+<tr id="row_23_53_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1Promise.html" target="_self">Promise</a></td><td class="desc"></td></tr>
+<tr id="row_23_54_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1Queue.html" target="_self">Queue</a></td><td class="desc"></td></tr>
+<tr id="row_23_55_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1RateLimiter.html" target="_self">RateLimiter</a></td><td class="desc"></td></tr>
+<tr id="row_23_56_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1RateLimiterProcess.html" target="_self">RateLimiterProcess</a></td><td class="desc"></td></tr>
+<tr id="row_23_57_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1ReadWriteLock.html" target="_self">ReadWriteLock</a></td><td class="desc"><a class="el" href="classprocess_1_1ReadWriteLock.html" title="ReadWriteLock is a lock that allows concurrent reads and exclusive writes. ">ReadWriteLock</a> is a lock that allows concurrent reads and exclusive writes </td></tr>
+<tr id="row_23_58_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1ResponseDecoder.html" target="_self">ResponseDecoder</a></td><td class="desc"></td></tr>
+<tr id="row_23_59_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1RFC1123.html" target="_self">RFC1123</a></td><td class="desc"></td></tr>
+<tr id="row_23_60_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1RFC3339.html" target="_self">RFC3339</a></td><td class="desc"></td></tr>
+<tr id="row_23_61_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1RunQueue.html" target="_self">RunQueue</a></td><td class="desc"></td></tr>
+<tr id="row_23_62_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1Sequence.html" target="_self">Sequence</a></td><td class="desc"></td></tr>
+<tr id="row_23_63_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1SequenceProcess.html" target="_self">SequenceProcess</a></td><td class="desc"></td></tr>
+<tr id="row_23_64_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1Shared.html" target="_self">Shared</a></td><td class="desc"></td></tr>
+<tr id="row_23_65_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1SocketManager.html" target="_self">SocketManager</a></td><td class="desc"></td></tr>
+<tr id="row_23_66_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1StateMachine.html" target="_self">StateMachine</a></td><td class="desc"></td></tr>
+<tr id="row_23_67_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structprocess_1_1Statistics.html" target="_self">Statistics</a></td><td class="desc"></td></tr>
+<tr id="row_23_68_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1StreamingRequestDecoder.html" target="_self">StreamingRequestDecoder</a></td><td class="desc"></td></tr>
+<tr id="row_23_69_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1StreamingResponseDecoder.html" target="_self">StreamingResponseDecoder</a></td><td class="desc"></td></tr>
+<tr id="row_23_70_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span id="arr_23_70_" class="arrow" onclick="toggleFolder('23_70_')">►</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1Subprocess.html" target="_self">Subprocess</a></td><td class="desc">Represents a fork() exec()ed subprocess </td></tr>
+<tr id="row_23_70_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1Subprocess_1_1ChildHook.html" target="_self">ChildHook</a></td><td class="desc">A <code><a class="el" href="classprocess_1_1Subprocess_1_1ChildHook.html" title="A ChildHook can be passed to a subprocess call. ">ChildHook</a></code> can be passed to a <code>subprocess</code> call </td></tr>
+<tr id="row_23_70_1_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span id="arr_23_70_1_" class="arrow" onclick="toggleFolder('23_70_1_')">►</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1Subprocess_1_1IO.html" target="_self">IO</a></td><td class="desc">Describes how the I/O is redirected for stdin/stdout/stderr </td></tr>
+<tr id="row_23_70_1_0_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors.html" target="_self">InputFileDescriptors</a></td><td class="desc">For input file descriptors a child reads from the <code>read</code> file descriptor and a parent may write to the <code>write</code> file descriptor if one is present </td></tr>
+<tr id="row_23_70_1_1_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html" target="_self">OutputFileDescriptors</a></td><td class="desc">For output file descriptors a child writes to the <code>write</code> file descriptor and a parent may read from the <code>read</code> file descriptor if one is present </td></tr>
+<tr id="row_23_70_2_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structprocess_1_1Subprocess_1_1ParentHook.html" target="_self">ParentHook</a></td><td class="desc">A hook can be passed to a <code>subprocess</code> call </td></tr>
+<tr id="row_23_71_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1System.html" target="_self">System</a></td><td class="desc"></td></tr>
+<tr id="row_23_72_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structprocess_1_1TerminateEvent.html" target="_self">TerminateEvent</a></td><td class="desc"></td></tr>
+<tr id="row_23_73_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1TestsFilter.html" target="_self">TestsFilter</a></td><td class="desc"></td></tr>
+<tr id="row_23_74_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1Time.html" target="_self">Time</a></td><td class="desc"></td></tr>
+<tr id="row_23_75_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1Timeout.html" target="_self">Timeout</a></td><td class="desc"></td></tr>
+<tr id="row_23_76_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1Timer.html" target="_self">Timer</a></td><td class="desc"></td></tr>
+<tr id="row_23_77_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span id="arr_23_77_" class="arrow" onclick="toggleFolder('23_77_')">►</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structprocess_1_1TimeSeries.html" target="_self">TimeSeries</a></td><td class="desc"></td></tr>
+<tr id="row_23_77_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structprocess_1_1TimeSeries_1_1Value.html" target="_self">Value</a></td><td class="desc"></td></tr>
+<tr id="row_23_78_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structprocess_1_1UndiscardableDecorator.html" target="_self">UndiscardableDecorator</a></td><td class="desc"></td></tr>
+<tr id="row_23_79_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span id="arr_23_79_" class="arrow" onclick="toggleFolder('23_79_')">►</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structprocess_1_1UPID.html" target="_self">UPID</a></td><td class="desc">An "untyped" <code><a class="el" href="structprocess_1_1PID.html" title="A "process identifier" used to uniquely identify a process when dispatching messages. ">PID</a></code>, used to encapsulate the process <a class="el" href="structprocess_1_1UPID_1_1ID.html">ID</a> for lower-layer abstractions (eg, when receiving incoming requests) in the dispatching mechanism </td></tr>
+<tr id="row_23_79_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structprocess_1_1UPID_1_1ID.html" target="_self">ID</a></td><td class="desc"></td></tr>
+<tr id="row_23_80_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1WeakFuture.html" target="_self">WeakFuture</a></td><td class="desc"></td></tr>
<tr id="row_24_" class="even"><td class="entry"><span style="width:0px;display:inline-block;"> </span><span id="arr_24_" class="arrow" onclick="toggleFolder('24_')">►</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespaceprotobuf.html" target="_self">protobuf</a></td><td class="desc"></td></tr>
<tr id="row_24_0_" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span id="arr_24_0_" class="arrow" onclick="toggleFolder('24_0_')">►</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespaceprotobuf_1_1internal.html" target="_self">internal</a></td><td class="desc"></td></tr>
<tr id="row_24_0_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structprotobuf_1_1internal_1_1Parse.html" target="_self">Parse</a></td><td class="desc"></td></tr>
[03/50] mesos-site git commit: Updated the website built from mesos
SHA: 7c9c72d.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/windows_2stat_8hpp.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/windows_2stat_8hpp.html b/content/api/latest/c++/windows_2stat_8hpp.html
index 3c1089f..a0b4d14 100644
--- a/content/api/latest/c++/windows_2stat_8hpp.html
+++ b/content/api/latest/c++/windows_2stat_8hpp.html
@@ -62,6 +62,7 @@
<code>#include <<a class="el" href="unreachable_8hpp_source.html">stout/unreachable.hpp</a>></code><br />
<code>#include <<a class="el" href="3rdparty_2stout_2include_2stout_2windows_8hpp_source.html">stout/windows.hpp</a>></code><br />
<code>#include <<a class="el" href="int__fd_8hpp_source.html">stout/os/int_fd.hpp</a>></code><br />
+<code>#include <<a class="el" href="windows_2os_8hpp_source.html">stout/windows/os.hpp</a>></code><br />
<code>#include <<a class="el" href="3rdparty_2stout_2include_2stout_2internal_2windows_2attributes_8hpp_source.html">stout/internal/windows/attributes.hpp</a>></code><br />
<code>#include <<a class="el" href="longpath_8hpp_source.html">stout/internal/windows/longpath.hpp</a>></code><br />
<code>#include <<a class="el" href="reparsepoint_8hpp_source.html">stout/internal/windows/reparsepoint.hpp</a>></code><br />
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/windows_2stat_8hpp_source.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/windows_2stat_8hpp_source.html b/content/api/latest/c++/windows_2stat_8hpp_source.html
index 894f0e6..7fe39ba 100644
--- a/content/api/latest/c++/windows_2stat_8hpp_source.html
+++ b/content/api/latest/c++/windows_2stat_8hpp_source.html
@@ -52,7 +52,7 @@
<div class="title">stat.hpp</div> </div>
</div><!--header-->
<div class="contents">
-<a href="windows_2stat_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// Licensed under the Apache License, Version 2.0 (the "License");</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// you may not use this file except in compliance with the License.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// You may obtain a copy of the License at</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">//
</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// Unless required by applicable law or agreed to in writing, software</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">// distributed under the License is distributed on an "AS IS" BASIS,</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">// See the License for the specific language governing permissions and</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// limitations under the License.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> </div><div clas
s="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#ifndef __STOUT_OS_WINDOWS_STAT_HPP__</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#define __STOUT_OS_WINDOWS_STAT_HPP__</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include <string></span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include <type_traits></span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> </div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include <<a class="code" href="bytes_8hpp.html">stout/bytes.hpp</a>></span></div><div class="line"><a name="l00020"></a><span cla
ss="lineno"> 20</span> <span class="preprocessor">#include <<a class="code" href="try_8hpp.html">stout/try.hpp</a>></span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <<a class="code" href="unreachable_8hpp.html">stout/unreachable.hpp</a>></span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <<a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html">stout/windows.hpp</a>></span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> </div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <<a class="code" href="int__fd_8hpp.html">stout/os/int_fd.hpp</a>></span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </div><div class="line"><a name="l00026"></a><span class="li
neno"> 26</span> <span class="preprocessor">#include <<a class="code" href="3rdparty_2stout_2include_2stout_2internal_2windows_2attributes_8hpp.html">stout/internal/windows/attributes.hpp</a>></span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <<a class="code" href="longpath_8hpp.html">stout/internal/windows/longpath.hpp</a>></span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include <<a class="code" href="reparsepoint_8hpp.html">stout/internal/windows/reparsepoint.hpp</a>></span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include <<a class="code" href="symlink_8hpp.html">stout/internal/windows/symlink.hpp</a>></span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> </div><div class="line"><a name="l00031"></a><s
pan class="lineno"> 31</span> <span class="keyword">namespace </span><a class="code" href="namespaceos.html">os</a> {</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="keyword">namespace </span><a class="code" href="namespaceos_1_1stat_1_1internal.html#a1e8d1b1fd61d53e84b399c10bb67520d">stat</a> {</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> </div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="comment">// Forward declaration.</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceos_1_1stat.html#a0ba4d272b938da76e404648103077480">islink</a>(<span class="keyword">const</span> std::string& <a class="code" href="namespacepath.html">path</a>);</div><div class="line"><a name="l00036"></a><span class="lineno"> 36
</span> </div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceos_1_1stat.html#aa86aaa21fefc0e9cab89050b60aeca40">isdir</a>(</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  <span class="keyword">const</span> std::string& <a class="code" href="namespacepath.html">path</a>,</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <span class="keyword">const</span> <a class="code" href="namespaceos_1_1stat.html#a305c82e6d53ccd82665b4b3648afcd1c">FollowSymlink</a> follow = <a class="code" href="namespaceos_1_1stat.html#a305c82e6d53ccd82665b4b3648afcd1ca52881123108233bc671c71041ff852c5">FollowSymlink::FOLLOW_SYMLINK</a>)</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> {</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span
>  <span class="comment">// A symlink itself is not a directory.</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <span class="comment">// If it's not a link, we ignore `follow`.</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <span class="keywordflow">if</span> (follow == <a class="code" href="namespaceos_1_1stat.html#a305c82e6d53ccd82665b4b3648afcd1ca884cbffa48c7e5b804161fdc71389c7e">FollowSymlink::DO_NOT_FOLLOW_SYMLINK</a> && <a class="code" href="namespaceos_1_1stat.html#a0ba4d272b938da76e404648103077480">islink</a>(path)) {</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  }</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> </div><div class="line">
<a name="l00047"></a><span class="lineno"> 47</span>  <span class="keyword">const</span> <a class="code" href="classTry.html">Try<DWORD></a> attributes = <a class="code" href="namespaceinternal_1_1windows.html#adb5b8a8afe285eb66a0a551f2382d113">::internal::windows::get_file_attributes</a>(</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  ::<a class="code" href="namespaceinternal_1_1windows.html#abd7dbdbc8d95626d0c66455078380aa1">internal::windows::longpath</a>(path));</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span> </div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <span class="keywordflow">if</span> (attributes.<a class="code" href="classTry.html#a0b98f95163b8a38daafd1651b043a276">isError</a>()) {</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</d
iv><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  }</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span> </div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="keywordflow">return</span> attributes.<a class="code" href="classTry.html#a8bc7f43e75a47111ea18e9c83b007be5">get</a>() & FILE_ATTRIBUTE_DIRECTORY;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span> }</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span> </div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span> </div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="comment">// TODO(andschwa): Refactor `GetFileInformationByHandle` into its own function.</span></div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="namespaceos_1_1stat.html#a7946f1ee7757462c01876
054429a67b5"> 59</a></span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceos_1_1stat.html#aa86aaa21fefc0e9cab89050b60aeca40">isdir</a>(<span class="keyword">const</span> <a class="code" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a>& fd)</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span> {</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  BY_HANDLE_FILE_INFORMATION info;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="keyword">const</span> BOOL result = ::GetFileInformationByHandle(fd, &info);</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="keywordflow">if</span> (result == FALSE) {</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <span class="keywordflow">return</span> <span class="key
word">false</span>;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  }</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span> </div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <span class="keywordflow">return</span> info.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span> }</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span> </div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span> </div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceos_1_1stat.html#a178d1c99fc88dae58f9a5fc4fc3167d5">isfile</a>(</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <span class="keyword">const</span> s
td::string& path,</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <span class="keyword">const</span> <a class="code" href="namespaceos_1_1stat.html#a305c82e6d53ccd82665b4b3648afcd1c">FollowSymlink</a> follow = <a class="code" href="namespaceos_1_1stat.html#a305c82e6d53ccd82665b4b3648afcd1ca52881123108233bc671c71041ff852c5">FollowSymlink::FOLLOW_SYMLINK</a>)</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span> {</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <span class="comment">// A symlink itself is a file, but not a regular file.</span></div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <span class="comment">// On POSIX, this check is done with `S_IFREG`, which</span></div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="comment">// returns false for symbolic links.</span></div><div class="line
"><a name="l00078"></a><span class="lineno"> 78</span>  <span class="comment">// If it's not a link, we ignore `follow`.</span></div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <span class="keywordflow">if</span> (follow == <a class="code" href="namespaceos_1_1stat.html#a305c82e6d53ccd82665b4b3648afcd1ca884cbffa48c7e5b804161fdc71389c7e">FollowSymlink::DO_NOT_FOLLOW_SYMLINK</a> && <a class="code" href="namespaceos_1_1stat.html#a0ba4d272b938da76e404648103077480">islink</a>(path)) {</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  }</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span> </div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <span class="keyword">const</span> <a
class="code" href="classTry.html">Try<DWORD></a> attributes = <a class="code" href="namespaceinternal_1_1windows.html#adb5b8a8afe285eb66a0a551f2382d113">::internal::windows::get_file_attributes</a>(</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  ::<a class="code" href="namespaceinternal_1_1windows.html#abd7dbdbc8d95626d0c66455078380aa1">internal::windows::longpath</a>(path));</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span> </div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <span class="keywordflow">if</span> (attributes.<a class="code" href="classTry.html#a0b98f95163b8a38daafd1651b043a276">isError</a>()) {</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  }</div><div clas
s="line"><a name="l00089"></a><span class="lineno"> 89</span> </div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <span class="comment">// NOTE: Windows files attributes do not define a flag for "regular"</span></div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <span class="comment">// files. Instead, this call will only return successfully iff the</span></div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  <span class="comment">// given file or directory exists. Checking against the directory</span></div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <span class="comment">// flag determines if the path is a file or directory.</span></div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <span class="keywordflow">return</span> !(attributes.<a class="code" href="classTry.html#a8bc7f43e75a47111ea18e9c83b007
be5">get</a>() & FILE_ATTRIBUTE_DIRECTORY);</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span> }</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span> </div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span> </div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceos_1_1stat.html#a0ba4d272b938da76e404648103077480">islink</a>(<span class="keyword">const</span> std::string& path)</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span> {</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <a class="code" href="classTry.html">Try<::internal::windows::SymbolicLink></a> <a class="code" href="namespacefs.html#a68279f7514744bb2af74dfce8bb0bbc7">symlink</a> =</div><div class="line"><a name="l00101"></a>
<span class="lineno"> 101</span>  <a class="code" href="namespaceinternal_1_1windows.html#a39ca8fa0643b489f6bef951bef207c92">::internal::windows::query_symbolic_link_data</a>(path);</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span> </div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <span class="keywordflow">return</span> symlink.<a class="code" href="classTry.html#a6543d7d5db4f298bcd673bf3cd509acc">isSome</a>();</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span> }</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span> </div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span> </div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <span class="comment">// Returns the size in Bytes of a given file system entry. When applied to a</span></div><div class="line"><a name="l00108"></a><span class="linen
o"> 108</span> <span class="comment">// symbolic link with `follow` set to `DO_NOT_FOLLOW_SYMLINK`, this will return</span></div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <span class="comment">// zero because that's what Windows says.</span></div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="keyword">inline</span> <a class="code" href="classTry.html">Try<Bytes></a> <a class="code" href="namespaceos_1_1stat.html#a7a116891923bc8b5d8c50f78da8657be">size</a>(</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <span class="keyword">const</span> std::string& path,</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <span class="keyword">const</span> <a class="code" href="namespaceos_1_1stat.html#a305c82e6d53ccd82665b4b3648afcd1c">FollowSymlink</a> follow = <a class="code" href="namespaceos_1_1stat.html#a305c82e6d53ccd82
665b4b3648afcd1ca52881123108233bc671c71041ff852c5">FollowSymlink::FOLLOW_SYMLINK</a>)</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span> {</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <span class="keyword">const</span> <a class="code" href="classTry.html">Try<SharedHandle></a> handle = (follow == <a class="code" href="namespaceos_1_1stat.html#a305c82e6d53ccd82665b4b3648afcd1ca52881123108233bc671c71041ff852c5">FollowSymlink::FOLLOW_SYMLINK</a>)</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  ? ::<a class="code" href="namespaceinternal_1_1windows.html#a5b261c85683d489b859236063e979e98">internal::windows::get_handle_follow</a>(path)</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  : <a class="code" href="namespaceinternal_1_1windows.html#a8ee4f75d803d8ed56ce760d8e1dfac14">::internal::windows::get_handle_no_follow</a>(path);</div><div
class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <span class="keywordflow">if</span> (handle.<a class="code" href="classTry.html#a0b98f95163b8a38daafd1651b043a276">isError</a>()) {</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <span class="keywordflow">return</span> <a class="code" href="classError.html">Error</a>(<span class="stringliteral">"Error obtaining handle to file: "</span> + handle.<a class="code" href="classTry.html#aec4a11ddd3c036e889d90b7eb6258ba7">error</a>());</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  }</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span> </div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  LARGE_INTEGER file_size;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span> </div><div class="line"><a name="l00123"></a><span class="lineno"> 123</sp
an>  <span class="keywordflow">if</span> (::GetFileSizeEx(handle-><a class="code" href="classSharedHandle.html#a800385e17e17cb826147968e748fd8fa">get_handle</a>(), &file_size) == 0) {</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <span class="keywordflow">return</span> <a class="code" href="classWindowsError.html">WindowsError</a>();</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  }</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span> </div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <span class="keywordflow">return</span> <a class="code" href="classBytes.html">Bytes</a>(file_size.QuadPart);</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span> }</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span> </div><div class="line"><a name="l00130"></a><span class="lineno"> 130</
span> </div><div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="namespaceos_1_1stat.html#af7fab12f2f4bf8ec51d5791202d41abc"> 131</a></span> <span class="keyword">inline</span> <a class="code" href="classTry.html">Try<Bytes></a> <a class="code" href="namespaceos_1_1stat.html#a7a116891923bc8b5d8c50f78da8657be">size</a>(<span class="keyword">const</span> <a class="code" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a>& fd)</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span> {</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  LARGE_INTEGER file_size;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span> </div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <span class="keywordflow">if</span> (::GetFileSizeEx(fd, &file_size) == 0) {</div><div class="line"><a name="l00136"></a><span class=
"lineno"> 136</span>  <span class="keywordflow">return</span> <a class="code" href="classWindowsError.html">WindowsError</a>();</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  }</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span> </div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  <span class="keywordflow">return</span> <a class="code" href="classBytes.html">Bytes</a>(file_size.QuadPart);</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span> }</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span> </div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span> </div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span> <span class="keyword">inline</span> <a class="code" href="classTry.html">Try<long></a> <a class="code" href="namespaceos_1_1stat.html#a7305d671adaae193b
8c158bf058180ee">mtime</a>(</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <span class="keyword">const</span> std::string& path,</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <span class="keyword">const</span> <a class="code" href="namespaceos_1_1stat.html#a305c82e6d53ccd82665b4b3648afcd1c">FollowSymlink</a> follow = <a class="code" href="namespaceos_1_1stat.html#a305c82e6d53ccd82665b4b3648afcd1ca52881123108233bc671c71041ff852c5">FollowSymlink::FOLLOW_SYMLINK</a>)</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span> {</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <span class="keywordflow">if</span> (follow == <a class="code" href="namespaceos_1_1stat.html#a305c82e6d53ccd82665b4b3648afcd1ca884cbffa48c7e5b804161fdc71389c7e">FollowSymlink::DO_NOT_FOLLOW_SYMLINK</a> && <a class="code" href="namespaceos_1_1stat.html#a0ba4d272b93
8da76e404648103077480">islink</a>(path)) {</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  <span class="keywordflow">return</span> <a class="code" href="classError.html">Error</a>(</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  <span class="stringliteral">"Requested mtime for '"</span> + path +</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <span class="stringliteral">"', but symbolic links don't have an mtime on Windows"</span>);</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  }</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span> </div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <a class="code" href="classTry.html">Try<SharedHandle></a> handle =</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</s
pan>  (follow == <a class="code" href="namespaceos_1_1stat.html#a305c82e6d53ccd82665b4b3648afcd1ca52881123108233bc671c71041ff852c5">FollowSymlink::FOLLOW_SYMLINK</a>)</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  ? ::<a class="code" href="namespaceinternal_1_1windows.html#a5b261c85683d489b859236063e979e98">internal::windows::get_handle_follow</a>(path)</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  : <a class="code" href="namespaceinternal_1_1windows.html#a8ee4f75d803d8ed56ce760d8e1dfac14">::internal::windows::get_handle_no_follow</a>(path);</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <span class="keywordflow">if</span> (handle.<a class="code" href="classTry.html#a0b98f95163b8a38daafd1651b043a276">isError</a>()) {</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <span class="keywordflow">return</span> <a class="co
de" href="classError.html">Error</a>(handle.<a class="code" href="classTry.html#aec4a11ddd3c036e889d90b7eb6258ba7">error</a>());</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  }</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span> </div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  FILETIME filetime;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  <span class="comment">// The last argument is file write time, AKA modification time.</span></div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  <span class="keyword">const</span> BOOL result =</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  ::GetFileTime(handle-><a class="code" href="classSharedHandle.html#a800385e17e17cb826147968e748fd8fa">get_handle</a>(), <span class="keyword">nullptr</span>, <span class="keyword">nullptr</sp
an>, &filetime);</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <span class="keywordflow">if</span> (result == FALSE) {</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <span class="keywordflow">return</span> <a class="code" href="classWindowsError.html">WindowsError</a>();</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  }</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span> </div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <span class="comment">// Convert to 64-bit integer using Windows magic.</span></div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  ULARGE_INTEGER largetime;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  largetime.LowPart = filetime.dwLowDateTime;</div><div class="line"><a name="l00172"></a><span class="lineno">
172</span>  largetime.HighPart = filetime.dwHighDateTime;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  <span class="comment">// Now the `QuadPart` field is the 64-bit representation due to the</span></div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  <span class="comment">// layout of the `ULARGE_INTEGER` struct.</span></div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  static_assert(</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  <span class="keyword">sizeof</span>(largetime.QuadPart) == <span class="keyword">sizeof</span>(__int64),</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  <span class="stringliteral">"Expected `QuadPart` to be of type `__int64`"</span>);</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  <span class="keyword">const</span>
__int64 windowstime = largetime.QuadPart;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  <span class="comment">// A file time is a 64-bit value that represents the number of</span></div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  <span class="comment">// 100-nanosecond intervals that have elapsed since 1601-01-01</span></div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  <span class="comment">// 00:00:00 +0000. However, users of this function expect UNIX time,</span></div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  <span class="comment">// which is seconds elapsed since the Epoch, 1970-01-01 00:00:00</span></div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <span class="comment">// +0000.</span></div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <span class="comment">//</spa
n></div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <span class="comment">// So first we convert 100-nanosecond intervals into seconds by</span></div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  <span class="comment">// doing `(x * 100) / (1,000^3)`, or `x / 10,000,000`, and then</span></div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  <span class="comment">// substracting the number of seconds between 1601-01-01 and</span></div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  <span class="comment">// 1970-01-01, or `11,644,473,600`.</span></div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  <span class="keyword">const</span> __int64 unixtime = (windowstime / 10000000) - 11644473600;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  <span class="comment">// We choose to make this c
onversion explicit because we expect the</span></div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  <span class="comment">// truncation to not cause information loss.</span></div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  <span class="keywordflow">return</span> <span class="keyword">static_cast<</span><span class="keywordtype">long</span><span class="keyword">></span>(unixtime);</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span> }</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span> </div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span> </div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span> <span class="comment">// NOTE: The following are deleted because implementing them would use</span></div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span> <span class="comment
">// the CRT API `_stat`, which we want to avoid, and they're not</span></div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span> <span class="comment">// currently used on Windows.</span></div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span> <span class="keyword">inline</span> <a class="code" href="classTry.html">Try<mode_t></a> <a class="code" href="namespaceos_1_1stat.html#afc51654ad486693167c300612bf8ebfa">mode</a>(</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  <span class="keyword">const</span> std::string& path,</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  <span class="keyword">const</span> <a class="code" href="namespaceos_1_1stat.html#a305c82e6d53ccd82665b4b3648afcd1c">FollowSymlink</a> follow) = <span class="keyword">delete</span>;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span> </div><div clas
s="line"><a name="l00203"></a><span class="lineno"> 203</span> </div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span> <span class="keyword">inline</span> <a class="code" href="classTry.html">Try<dev_t></a> <a class="code" href="namespaceos_1_1stat.html#a083c9ff4aefeba1a75a27e6a6d6e2a71">dev</a>(</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  <span class="keyword">const</span> std::string& path,</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  <span class="keyword">const</span> <a class="code" href="namespaceos_1_1stat.html#a305c82e6d53ccd82665b4b3648afcd1c">FollowSymlink</a> follow) = <span class="keyword">delete</span>;</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span> </div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span> </div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>
0;<span class="keyword">inline</span> <a class="code" href="classTry.html">Try<ino_t></a> <a class="code" href="namespaceos_1_1stat.html#ac48383be68af20ef17fe5b87177636b8">inode</a>(</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  <span class="keyword">const</span> std::string& path,</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  <span class="keyword">const</span> <a class="code" href="namespaceos_1_1stat.html#a305c82e6d53ccd82665b4b3648afcd1c">FollowSymlink</a> follow) = <span class="keyword">delete</span>;</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span> </div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span> } <span class="comment">// namespace stat {</span></div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span> } <span class="comment">// namespace os {</span></div><div class="line"><a name="l00215"></a><spa
n class="lineno"> 215</span> </div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span> <span class="preprocessor">#endif // __STOUT_OS_WINDOWS_STAT_HPP__</span></div><div class="ttc" id="namespacepath_html"><div class="ttname"><a href="namespacepath.html">path</a></div><div class="ttdef"><b>Definition:</b> path.hpp:26</div></div>
+<a href="windows_2stat_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// Licensed under the Apache License, Version 2.0 (the "License");</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// you may not use this file except in compliance with the License.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// You may obtain a copy of the License at</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">//
</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// Unless required by applicable law or agreed to in writing, software</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">// distributed under the License is distributed on an "AS IS" BASIS,</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">// See the License for the specific language governing permissions and</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// limitations under the License.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> </div><div clas
s="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#ifndef __STOUT_OS_WINDOWS_STAT_HPP__</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#define __STOUT_OS_WINDOWS_STAT_HPP__</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include <string></span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include <type_traits></span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> </div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include <<a class="code" href="bytes_8hpp.html">stout/bytes.hpp</a>></span></div><div class="line"><a name="l00020"></a><span cla
ss="lineno"> 20</span> <span class="preprocessor">#include <<a class="code" href="try_8hpp.html">stout/try.hpp</a>></span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <<a class="code" href="unreachable_8hpp.html">stout/unreachable.hpp</a>></span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <<a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html">stout/windows.hpp</a>></span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> </div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <<a class="code" href="int__fd_8hpp.html">stout/os/int_fd.hpp</a>></span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </div><div class="line"><a name="l00026"></a><span class="li
neno"> 26</span> <span class="preprocessor">#include <<a class="code" href="windows_2os_8hpp.html">stout/windows/os.hpp</a>></span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include <<a class="code" href="3rdparty_2stout_2include_2stout_2internal_2windows_2attributes_8hpp.html">stout/internal/windows/attributes.hpp</a>></span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include <<a class="code" href="longpath_8hpp.html">stout/internal/windows/longpath.hpp</a>></span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include <<a class="code" href="reparsepoint_8hpp.html">stout/internal/windows/reparsepoint.hpp</a>></span></div><div class="line"><a name="l00031"></a><span class=
"lineno"> 31</span> <span class="preprocessor">#include <<a class="code" href="symlink_8hpp.html">stout/internal/windows/symlink.hpp</a>></span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="keyword">namespace </span><a class="code" href="namespaceos.html">os</a> {</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="keyword">namespace </span><a class="code" href="namespaceos_1_1stat_1_1internal.html#a1e8d1b1fd61d53e84b399c10bb67520d">stat</a> {</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> </div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="comment">// Forward declaration.</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="keyword">inline</span> <span class="keywo
rdtype">bool</span> <a class="code" href="namespaceos_1_1stat.html#a0ba4d272b938da76e404648103077480">islink</a>(<span class="keyword">const</span> std::string& <a class="code" href="namespacepath.html">path</a>);</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceos_1_1stat.html#aa86aaa21fefc0e9cab89050b60aeca40">isdir</a>(</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  <span class="keyword">const</span> std::string& <a class="code" href="namespacepath.html">path</a>,</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <span class="keyword">const</span> <a class="code" href="namespaceos_1_1stat.html#a305c82e6d53ccd82665b4b3648afcd1c">FollowSymlink</a> follow = <a class="code" href="n
amespaceos_1_1stat.html#a305c82e6d53ccd82665b4b3648afcd1ca52881123108233bc671c71041ff852c5">FollowSymlink::FOLLOW_SYMLINK</a>)</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> {</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <span class="comment">// A symlink itself is not a directory.</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <span class="comment">// If it's not a link, we ignore `follow`.</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <span class="keywordflow">if</span> (follow == <a class="code" href="namespaceos_1_1stat.html#a305c82e6d53ccd82665b4b3648afcd1ca884cbffa48c7e5b804161fdc71389c7e">FollowSymlink::DO_NOT_FOLLOW_SYMLINK</a> && <a class="code" href="namespaceos_1_1stat.html#a0ba4d272b938da76e404648103077480">islink</a>(path)) {</div><div class="line"><a name="l00046"></a><span class="lineno"> 4
6</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  }</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> </div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <span class="keyword">const</span> <a class="code" href="classTry.html">Try<DWORD></a> attributes = <a class="code" href="namespaceinternal_1_1windows.html#adb5b8a8afe285eb66a0a551f2382d113">::internal::windows::get_file_attributes</a>(</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  ::<a class="code" href="namespaceinternal_1_1windows.html#abd7dbdbc8d95626d0c66455078380aa1">internal::windows::longpath</a>(path));</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <span class="
keywordflow">if</span> (attributes.<a class="code" href="classTry.html#a0b98f95163b8a38daafd1651b043a276">isError</a>()) {</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  }</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <span class="keywordflow">return</span> attributes.<a class="code" href="classTry.html#a8bc7f43e75a47111ea18e9c83b007be5">get</a>() & FILE_ATTRIBUTE_DIRECTORY;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span> }</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span> </div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div><div class="line"><a name="l00060
"></a><span class="lineno"> 60</span> <span class="comment">// TODO(andschwa): Refactor `GetFileInformationByHandle` into its own function.</span></div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="namespaceos_1_1stat.html#a7946f1ee7757462c01876054429a67b5"> 61</a></span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceos_1_1stat.html#aa86aaa21fefc0e9cab89050b60aeca40">isdir</a>(<span class="keyword">const</span> <a class="code" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a>& fd)</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span> {</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  BY_HANDLE_FILE_INFORMATION info;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <span class="keyword">const</span> BOOL result = ::GetFileInformationByHandle(fd, &inf
o);</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <span class="keywordflow">if</span> (result == FALSE) {</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  }</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span> </div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="keywordflow">return</span> info.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span> }</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span> </div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span> </div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <sp
an class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceos_1_1stat.html#a178d1c99fc88dae58f9a5fc4fc3167d5">isfile</a>(</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="keyword">const</span> std::string& path,</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <span class="keyword">const</span> <a class="code" href="namespaceos_1_1stat.html#a305c82e6d53ccd82665b4b3648afcd1c">FollowSymlink</a> follow = <a class="code" href="namespaceos_1_1stat.html#a305c82e6d53ccd82665b4b3648afcd1ca52881123108233bc671c71041ff852c5">FollowSymlink::FOLLOW_SYMLINK</a>)</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span> {</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="comment">// A symlink itself is a file, but not a regular file.</span></div><div class="line"><a name="l00078"></a><span cl
ass="lineno"> 78</span>  <span class="comment">// On POSIX, this check is done with `S_IFREG`, which</span></div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <span class="comment">// returns false for symbolic links.</span></div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="comment">// If it's not a link, we ignore `follow`.</span></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <span class="keywordflow">if</span> (follow == <a class="code" href="namespaceos_1_1stat.html#a305c82e6d53ccd82665b4b3648afcd1ca884cbffa48c7e5b804161fdc71389c7e">FollowSymlink::DO_NOT_FOLLOW_SYMLINK</a> && <a class="code" href="namespaceos_1_1stat.html#a0ba4d272b938da76e404648103077480">islink</a>(path)) {</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  }</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span> </div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="keyword">const</span> <a class="code" href="classTry.html">Try<DWORD></a> attributes = <a class="code" href="namespaceinternal_1_1windows.html#adb5b8a8afe285eb66a0a551f2382d113">::internal::windows::get_file_attributes</a>(</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  ::<a class="code" href="namespaceinternal_1_1windows.html#abd7dbdbc8d95626d0c66455078380aa1">internal::windows::longpath</a>(path));</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span> </div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <span class="keywordflow">if</span> (attributes.<a class="code" href="classTry.html#a0b98f95163b8a38daafd1651b04
3a276">isError</a>()) {</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  }</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span> </div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  <span class="comment">// NOTE: Windows files attributes do not define a flag for "regular"</span></div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <span class="comment">// files. Instead, this call will only return successfully iff the</span></div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <span class="comment">// given file or directory exists. Checking against the directory</span></div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span> 
<span class="comment">// flag determines if the path is a file or directory.</span></div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <span class="keywordflow">return</span> !(attributes.<a class="code" href="classTry.html#a8bc7f43e75a47111ea18e9c83b007be5">get</a>() & FILE_ATTRIBUTE_DIRECTORY);</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span> }</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span> </div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span> </div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceos_1_1stat.html#a0ba4d272b938da76e404648103077480">islink</a>(<span class="keyword">const</span> std::string& path)</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span> {</div><div class
="line"><a name="l00102"></a><span class="lineno"> 102</span>  <a class="code" href="classTry.html">Try<::internal::windows::SymbolicLink></a> <a class="code" href="namespacefs.html#a68279f7514744bb2af74dfce8bb0bbc7">symlink</a> =</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <a class="code" href="namespaceinternal_1_1windows.html#a39ca8fa0643b489f6bef951bef207c92">::internal::windows::query_symbolic_link_data</a>(path);</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span> </div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <span class="keywordflow">return</span> symlink.<a class="code" href="classTry.html#a6543d7d5db4f298bcd673bf3cd509acc">isSome</a>();</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span> }</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span> </div><div class="line"><a name="l00108"></a><sp
an class="lineno"> 108</span> </div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <span class="comment">// Returns the size in Bytes of a given file system entry. When applied to a</span></div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="comment">// symbolic link with `follow` set to `DO_NOT_FOLLOW_SYMLINK`, this will return</span></div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span> <span class="comment">// zero because that's what Windows says.</span></div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span> <span class="keyword">inline</span> <a class="code" href="classTry.html">Try<Bytes></a> <a class="code" href="namespaceos_1_1stat.html#a7a116891923bc8b5d8c50f78da8657be">size</a>(</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <span class="keyword">const</span> std::string& path,</div><d
iv class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <span class="keyword">const</span> <a class="code" href="namespaceos_1_1stat.html#a305c82e6d53ccd82665b4b3648afcd1c">FollowSymlink</a> follow = <a class="code" href="namespaceos_1_1stat.html#a305c82e6d53ccd82665b4b3648afcd1ca52881123108233bc671c71041ff852c5">FollowSymlink::FOLLOW_SYMLINK</a>)</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span> {</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <span class="keyword">const</span> <a class="code" href="classTry.html">Try<SharedHandle></a> handle = (follow == <a class="code" href="namespaceos_1_1stat.html#a305c82e6d53ccd82665b4b3648afcd1ca52881123108233bc671c71041ff852c5">FollowSymlink::FOLLOW_SYMLINK</a>)</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  ? ::<a class="code" href="namespaceinternal_1_1windows.html#a5b261c85683d489b859236063e979e98">i
nternal::windows::get_handle_follow</a>(path)</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  : <a class="code" href="namespaceinternal_1_1windows.html#a8ee4f75d803d8ed56ce760d8e1dfac14">::internal::windows::get_handle_no_follow</a>(path);</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <span class="keywordflow">if</span> (handle.<a class="code" href="classTry.html#a0b98f95163b8a38daafd1651b043a276">isError</a>()) {</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <span class="keywordflow">return</span> <a class="code" href="classError.html">Error</a>(<span class="stringliteral">"Error obtaining handle to file: "</span> + handle.<a class="code" href="classTry.html#aec4a11ddd3c036e889d90b7eb6258ba7">error</a>());</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  }</div><div class="line"><a name="l00122"></a><span class="lineno"
> 122</span> </div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  LARGE_INTEGER file_size;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span> </div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <span class="keywordflow">if</span> (::GetFileSizeEx(handle-><a class="code" href="classSharedHandle.html#a800385e17e17cb826147968e748fd8fa">get_handle</a>(), &file_size) == 0) {</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <span class="keywordflow">return</span> <a class="code" href="classWindowsError.html">WindowsError</a>();</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  }</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span> </div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <span class="keywordflow">return</span> <a class="code" href="c
lassBytes.html">Bytes</a>(file_size.QuadPart);</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span> }</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span> </div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span> </div><div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="namespaceos_1_1stat.html#af7fab12f2f4bf8ec51d5791202d41abc"> 133</a></span> <span class="keyword">inline</span> <a class="code" href="classTry.html">Try<Bytes></a> <a class="code" href="namespaceos_1_1stat.html#a7a116891923bc8b5d8c50f78da8657be">size</a>(<span class="keyword">const</span> <a class="code" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a>& fd)</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span> {</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  LARGE_INTEGER file_size;</div><div class="l
ine"><a name="l00136"></a><span class="lineno"> 136</span> </div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <span class="keywordflow">if</span> (::GetFileSizeEx(fd, &file_size) == 0) {</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <span class="keywordflow">return</span> <a class="code" href="classWindowsError.html">WindowsError</a>();</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  }</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span> </div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <span class="keywordflow">return</span> <a class="code" href="classBytes.html">Bytes</a>(file_size.QuadPart);</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span> }</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span> </div><div class="line"><a name="l0014
4"></a><span class="lineno"> 144</span> </div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span> <span class="keyword">inline</span> <a class="code" href="classTry.html">Try<long></a> <a class="code" href="namespaceos_1_1stat.html#a7305d671adaae193b8c158bf058180ee">mtime</a>(</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  <span class="keyword">const</span> std::string& path,</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <span class="keyword">const</span> <a class="code" href="namespaceos_1_1stat.html#a305c82e6d53ccd82665b4b3648afcd1c">FollowSymlink</a> follow = <a class="code" href="namespaceos_1_1stat.html#a305c82e6d53ccd82665b4b3648afcd1ca52881123108233bc671c71041ff852c5">FollowSymlink::FOLLOW_SYMLINK</a>)</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span> {</div><div class="line"><a name="l00149"></a><span class="lineno"> 149
</span>  <span class="keywordflow">if</span> (follow == <a class="code" href="namespaceos_1_1stat.html#a305c82e6d53ccd82665b4b3648afcd1ca884cbffa48c7e5b804161fdc71389c7e">FollowSymlink::DO_NOT_FOLLOW_SYMLINK</a> && <a class="code" href="namespaceos_1_1stat.html#a0ba4d272b938da76e404648103077480">islink</a>(path)) {</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <span class="keywordflow">return</span> <a class="code" href="classError.html">Error</a>(</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <span class="stringliteral">"Requested mtime for '"</span> + path +</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  <span class="stringliteral">"', but symbolic links don't have an mtime on Windows"</span>);</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  }</div><div class="line"><a na
me="l00154"></a><span class="lineno"> 154</span> </div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <a class="code" href="classTry.html">Try<SharedHandle></a> handle =</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  (follow == <a class="code" href="namespaceos_1_1stat.html#a305c82e6d53ccd82665b4b3648afcd1ca52881123108233bc671c71041ff852c5">FollowSymlink::FOLLOW_SYMLINK</a>)</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  ? ::<a class="code" href="namespaceinternal_1_1windows.html#a5b261c85683d489b859236063e979e98">internal::windows::get_handle_follow</a>(path)</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  : <a class="code" href="namespaceinternal_1_1windows.html#a8ee4f75d803d8ed56ce760d8e1dfac14">::internal::windows::get_handle_no_follow</a>(path);</div><div class="line"><a name="l00159"></a><span class="lineno"> 1
59</span>  <span class="keywordflow">if</span> (handle.<a class="code" href="classTry.html#a0b98f95163b8a38daafd1651b043a276">isError</a>()) {</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  <span class="keywordflow">return</span> <a class="code" href="classError.html">Error</a>(handle.<a class="code" href="classTry.html#aec4a11ddd3c036e889d90b7eb6258ba7">error</a>());</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  }</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span> </div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  FILETIME filetime;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  <span class="comment">// The last argument is file write time, AKA modification time.</span></div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <span class="keyword">const</span> BOOL re
sult =</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  ::GetFileTime(handle-><a class="code" href="classSharedHandle.html#a800385e17e17cb826147968e748fd8fa">get_handle</a>(), <span class="keyword">nullptr</span>, <span class="keyword">nullptr</span>, &filetime);</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  <span class="keywordflow">if</span> (result == FALSE) {</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  <span class="keywordflow">return</span> <a class="code" href="classWindowsError.html">WindowsError</a>();</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  }</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span> </div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <span class="keyword">const</span> uint64_t unixtime = <a class="code" href="namespaceos_1_1intern
al.html#a1493e5fcc92753702d08b36881ee8f97">os::internal::windows_to_unix_epoch</a>(filetime);</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span> </div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  <span class="comment">// We choose to make this conversion explicit because we expect the</span></div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  <span class="comment">// truncation to not cause information loss.</span></div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  <span class="keywordflow">return</span> <span class="keyword">static_cast<</span><span class="keywordtype">long</span><span class="keyword">></span>(unixtime);</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span> }</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span> </div><div class="line"><a name="l00178"></a><span class="l
ineno"> 178</span> </div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span> <span class="comment">// NOTE: The following are deleted because implementing them would use</span></div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span> <span class="comment">// the CRT API `_stat`, which we want to avoid, and they're not</span></div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span> <span class="comment">// currently used on Windows.</span></div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span> <span class="keyword">inline</span> <a class="code" href="classTry.html">Try<mode_t></a> <a class="code" href="namespaceos_1_1stat.html#afc51654ad486693167c300612bf8ebfa">mode</a>(</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <span class="keyword">const</span> std::string& path,</div><div class="line"><a name="l00184"></a><span cla
ss="lineno"> 184</span>  <span class="keyword">const</span> <a class="code" href="namespaceos_1_1stat.html#a305c82e6d53ccd82665b4b3648afcd1c">FollowSymlink</a> follow) = <span class="keyword">delete</span>;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span> </div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span> </div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span> <span class="keyword">inline</span> <a class="code" href="classTry.html">Try<dev_t></a> <a class="code" href="namespaceos_1_1stat.html#a083c9ff4aefeba1a75a27e6a6d6e2a71">dev</a>(</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  <span class="keyword">const</span> std::string& path,</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  <span class="keyword">const</span> <a class="code" href="namespaceos_1_1stat.html#a305c82e6d53ccd82665b4b3648afcd1c">Fo
llowSymlink</a> follow) = <span class="keyword">delete</span>;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span> </div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span> </div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span> <span class="keyword">inline</span> <a class="code" href="classTry.html">Try<ino_t></a> <a class="code" href="namespaceos_1_1stat.html#ac48383be68af20ef17fe5b87177636b8">inode</a>(</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  <span class="keyword">const</span> std::string& path,</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <span class="keyword">const</span> <a class="code" href="namespaceos_1_1stat.html#a305c82e6d53ccd82665b4b3648afcd1c">FollowSymlink</a> follow) = <span class="keyword">delete</span>;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span> </d
iv><div class="line"><a name="l00196"></a><span class="lineno"> 196</span> } <span class="comment">// namespace stat {</span></div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span> } <span class="comment">// namespace os {</span></div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span> </div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span> <span class="preprocessor">#endif // __STOUT_OS_WINDOWS_STAT_HPP__</span></div><div class="ttc" id="namespacepath_html"><div class="ttname"><a href="namespacepath.html">path</a></div><div class="ttdef"><b>Definition:</b> path.hpp:26</div></div>
<div class="ttc" id="namespaceinternal_1_1windows_html_a8ee4f75d803d8ed56ce760d8e1dfac14"><div class="ttname"><a href="namespaceinternal_1_1windows.html#a8ee4f75d803d8ed56ce760d8e1dfac14">internal::windows::get_handle_no_follow</a></div><div class="ttdeci">Try< SharedHandle > get_handle_no_follow(const std::string &absolute_path)</div><div class="ttdef"><b>Definition:</b> reparsepoint.hpp:215</div></div>
<div class="ttc" id="namespaceos_1_1stat_html_a178d1c99fc88dae58f9a5fc4fc3167d5"><div class="ttname"><a href="namespaceos_1_1stat.html#a178d1c99fc88dae58f9a5fc4fc3167d5">os::stat::isfile</a></div><div class="ttdeci">bool isfile(const std::string &path, const FollowSymlink follow=FollowSymlink::FOLLOW_SYMLINK)</div><div class="ttdef"><b>Definition:</b> stat.hpp:108</div></div>
<div class="ttc" id="classError_html"><div class="ttname"><a href="classError.html">Error</a></div><div class="ttdef"><b>Definition:</b> errorbase.hpp:36</div></div>
@@ -75,6 +75,7 @@
<div class="ttc" id="reparsepoint_8hpp_html"><div class="ttname"><a href="reparsepoint_8hpp.html">reparsepoint.hpp</a></div></div>
<div class="ttc" id="namespaceos_1_1stat_html_a083c9ff4aefeba1a75a27e6a6d6e2a71"><div class="ttname"><a href="namespaceos_1_1stat.html#a083c9ff4aefeba1a75a27e6a6d6e2a71">os::stat::dev</a></div><div class="ttdeci">Try< dev_t > dev(const std::string &path, const FollowSymlink follow=FollowSymlink::FOLLOW_SYMLINK)</div><div class="ttdef"><b>Definition:</b> stat.hpp:172</div></div>
<div class="ttc" id="bytes_8hpp_html"><div class="ttname"><a href="bytes_8hpp.html">bytes.hpp</a></div></div>
+<div class="ttc" id="namespaceos_1_1internal_html_a1493e5fcc92753702d08b36881ee8f97"><div class="ttname"><a href="namespaceos_1_1internal.html#a1493e5fcc92753702d08b36881ee8f97">os::internal::windows_to_unix_epoch</a></div><div class="ttdeci">double windows_to_unix_epoch(const FILETIME &filetime)</div><div class="ttdef"><b>Definition:</b> os.hpp:87</div></div>
<div class="ttc" id="longpath_8hpp_html"><div class="ttname"><a href="longpath_8hpp.html">longpath.hpp</a></div></div>
<div class="ttc" id="classTry_html_a6543d7d5db4f298bcd673bf3cd509acc"><div class="ttname"><a href="classTry.html#a6543d7d5db4f298bcd673bf3cd509acc">Try::isSome</a></div><div class="ttdeci">bool isSome() const </div><div class="ttdef"><b>Definition:</b> try.hpp:70</div></div>
<div class="ttc" id="namespaceos_1_1stat_1_1internal_html_a1e8d1b1fd61d53e84b399c10bb67520d"><div class="ttname"><a href="namespaceos_1_1stat_1_1internal.html#a1e8d1b1fd61d53e84b399c10bb67520d">os::stat::internal::stat</a></div><div class="ttdeci">Try< struct::stat > stat(const int_fd fd)</div><div class="ttdef"><b>Definition:</b> stat.hpp:68</div></div>
@@ -86,6 +87,7 @@
<div class="ttc" id="try_8hpp_html"><div class="ttname"><a href="try_8hpp.html">try.hpp</a></div></div>
<div class="ttc" id="int__fd_8hpp_html"><div class="ttname"><a href="int__fd_8hpp.html">int_fd.hpp</a></div></div>
<div class="ttc" id="namespaceos_1_1stat_html_aa86aaa21fefc0e9cab89050b60aeca40"><div class="ttname"><a href="namespaceos_1_1stat.html#aa86aaa21fefc0e9cab89050b60aeca40">os::stat::isdir</a></div><div class="ttdeci">bool isdir(const std::string &path, const FollowSymlink follow=FollowSymlink::FOLLOW_SYMLINK)</div><div class="ttdef"><b>Definition:</b> stat.hpp:91</div></div>
+<div class="ttc" id="windows_2os_8hpp_html"><div class="ttname"><a href="windows_2os_8hpp.html">os.hpp</a></div></div>
<div class="ttc" id="namespaceos_1_1stat_html_afc51654ad486693167c300612bf8ebfa"><div class="ttname"><a href="namespaceos_1_1stat.html#afc51654ad486693167c300612bf8ebfa">os::stat::mode</a></div><div class="ttdeci">Try< mode_t > mode(const std::string &path, const FollowSymlink follow=FollowSymlink::FOLLOW_SYMLINK)</div><div class="ttdef"><b>Definition:</b> stat.hpp:159</div></div>
<div class="ttc" id="namespaceinternal_1_1windows_html_abd7dbdbc8d95626d0c66455078380aa1"><div class="ttname"><a href="namespaceinternal_1_1windows.html#abd7dbdbc8d95626d0c66455078380aa1">internal::windows::longpath</a></div><div class="ttdeci">std::wstring longpath(const std::string &path)</div><div class="ttdef"><b>Definition:</b> longpath.hpp:38</div></div>
<div class="ttc" id="classBytes_html"><div class="ttname"><a href="classBytes.html">Bytes</a></div><div class="ttdef"><b>Definition:</b> bytes.hpp:30</div></div>
[50/50] mesos-site git commit: Updated the website built from mesos
SHA: 7c9c72d.
Posted by gi...@apache.org.
Updated the website built from mesos SHA: 7c9c72d.
Project: http://git-wip-us.apache.org/repos/asf/mesos-site/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos-site/commit/09fd0301
Tree: http://git-wip-us.apache.org/repos/asf/mesos-site/tree/09fd0301
Diff: http://git-wip-us.apache.org/repos/asf/mesos-site/diff/09fd0301
Branch: refs/heads/asf-site
Commit: 09fd030180ff9ca6cca38b94de3d3b649994bb67
Parents: 9812c25
Author: jenkins <bu...@apache.org>
Authored: Thu Jun 28 18:44:41 2018 +0000
Committer: jenkins <bu...@apache.org>
Committed: Thu Jun 28 18:44:41 2018 +0000
----------------------------------------------------------------------
...ess_2include_2process_2http_8hpp_source.html | 4 +-
..._2libprocess_2include_2process_2io_8hpp.html | 6 +
...ocess_2include_2process_2io_8hpp_source.html | 9 +-
...2include_2process_2protobuf_8hpp_source.html | 4 +-
..._2include_2stout_2os_2linux_8hpp_source.html | 2 +-
...e_2stout_2os_2windows_2read_8hpp_source.html | 4 +-
content/api/latest/c++/Nodes.xml | 673 +-
content/api/latest/c++/Tokens.xml | 576 +-
content/api/latest/c++/annotated.html | 219 +-
content/api/latest/c++/classes.html | 373 +-
.../c++/classos_1_1WindowsFD-members.html | 67 +-
.../api/latest/c++/classos_1_1WindowsFD.html | 88 +
.../latest/c++/classprocess_1_1Subprocess.html | 4 +-
...classprocess_1_1Subprocess_1_1ChildHook.html | 4 +-
.../c++/classprocess_1_1Subprocess_1_1IO.html | 4 +-
...rk_1_1internal_1_1LibeventSSLSocketImpl.html | 2 +-
...process_1_1windows_1_1EventLoop-members.html | 73 +
.../classprocess_1_1windows_1_1EventLoop.html | 188 +
content/api/latest/c++/cni_8hpp.html | 2 +-
content/api/latest/c++/cni_8hpp_source.html | 4 +-
.../dir_01cbbd8dcbf9de3825992568658f467e.html | 17 +-
.../dir_0ac73505685689cb4a842e520ca4cca6.html | 76 +
.../dir_1894286df79cf582d947dbc4268b06cf.html | 2 +-
.../dir_4f303781ded361ff602a549327c53cc9.html | 73 +
.../dir_b2935a02400d93f2f95b894ab5508ef6.html | 71 +
.../dir_ecbc207ab261ae6376e9b7d1e9eba3c1.html | 69 +
content/api/latest/c++/docker_2docker_8hpp.html | 2 +-
.../latest/c++/docker_2docker_8hpp_source.html | 4 +-
content/api/latest/c++/docker__common_8hpp.html | 2 +-
.../latest/c++/docker__common_8hpp_source.html | 4 +-
content/api/latest/c++/encoder_8hpp_source.html | 2 +-
content/api/latest/c++/fd_8hpp.html | 2 +
content/api/latest/c++/fd_8hpp_source.html | 48 +-
content/api/latest/c++/files.html | 35 +-
content/api/latest/c++/functions_a.html | 9 +-
content/api/latest/c++/functions_c.html | 31 +-
content/api/latest/c++/functions_d.html | 11 +-
content/api/latest/c++/functions_e.html | 2 +-
content/api/latest/c++/functions_func_a.html | 11 +-
content/api/latest/c++/functions_func_c.html | 15 +-
content/api/latest/c++/functions_func_g.html | 9 +-
content/api/latest/c++/functions_func_l.html | 9 +-
content/api/latest/c++/functions_func_p.html | 2 +-
content/api/latest/c++/functions_func_r.html | 22 +-
content/api/latest/c++/functions_func_s.html | 9 +-
content/api/latest/c++/functions_func_v.html | 8 +-
content/api/latest/c++/functions_g.html | 9 +-
content/api/latest/c++/functions_l.html | 7 +-
content/api/latest/c++/functions_m.html | 6 +-
content/api/latest/c++/functions_n.html | 12 +-
content/api/latest/c++/functions_o.html | 5 +-
content/api/latest/c++/functions_p.html | 2 +-
content/api/latest/c++/functions_r.html | 16 +-
content/api/latest/c++/functions_rela.html | 3 +
content/api/latest/c++/functions_s.html | 29 +-
content/api/latest/c++/functions_t.html | 20 +-
content/api/latest/c++/functions_u.html | 12 +-
content/api/latest/c++/functions_v.html | 6 +-
content/api/latest/c++/functions_w.html | 6 +-
content/api/latest/c++/globals_u.html | 6 +-
content/api/latest/c++/grpc_8hpp_source.html | 4 +-
content/api/latest/c++/hierarchy.html | 2215 ++---
...clude_2mesos_2slave_2containerizer_8hpp.html | 2 +-
...mesos_2slave_2containerizer_8hpp_source.html | 4 +-
.../c++/include_2process_2subprocess_8hpp.html | 125 +
...nclude_2process_2subprocess_8hpp_source.html | 115 +
content/api/latest/c++/index.hhc | 201 +-
content/api/latest/c++/index.hhk | 348 +-
content/api/latest/c++/index.hhp | 38 +-
content/api/latest/c++/int__fd_8hpp_source.html | 2 +-
content/api/latest/c++/io__internal_8hpp.html | 91 +
.../latest/c++/io__internal_8hpp_source.html | 75 +
content/api/latest/c++/libev_8hpp.html | 4 +-
content/api/latest/c++/libev_8hpp_source.html | 4 +-
content/api/latest/c++/libevent_8hpp.html | 4 +-
.../api/latest/c++/libevent_8hpp_source.html | 4 +-
.../latest/c++/libevent__ssl__socket_8hpp.html | 4 +-
.../c++/libevent__ssl__socket_8hpp_source.html | 4 +-
..._2include_2process_2process_8hpp_source.html | 4 +-
...s_2include_2process_2socket_8hpp_source.html | 4 +-
...nclude_2process_2ssl_2gtest_8hpp_source.html | 4 +-
...clude_2process_2windows_2jobobject_8hpp.html | 2 +-
...process_2windows_2jobobject_8hpp_source.html | 4 +-
content/api/latest/c++/libwinio_8hpp.html | 105 +
.../api/latest/c++/libwinio_8hpp_source.html | 91 +
.../latest/c++/linux_2cgroups_8hpp_source.html | 4 +-
.../latest/c++/memory__test__helper_8hpp.html | 2 +-
.../c++/memory__test__helper_8hpp_source.html | 4 +-
content/api/latest/c++/namespacemembers_a.html | 9 +-
content/api/latest/c++/namespacemembers_c.html | 11 +-
.../api/latest/c++/namespacemembers_func_a.html | 11 +-
.../api/latest/c++/namespacemembers_func_c.html | 13 +-
.../api/latest/c++/namespacemembers_func_i.html | 6 +-
.../api/latest/c++/namespacemembers_func_p.html | 8 +-
.../api/latest/c++/namespacemembers_func_r.html | 5 +-
.../api/latest/c++/namespacemembers_func_s.html | 18 +-
.../api/latest/c++/namespacemembers_func_w.html | 13 +-
content/api/latest/c++/namespacemembers_i.html | 6 +-
content/api/latest/c++/namespacemembers_l.html | 7 +-
content/api/latest/c++/namespacemembers_m.html | 2 +-
content/api/latest/c++/namespacemembers_p.html | 12 +-
content/api/latest/c++/namespacemembers_r.html | 9 +-
content/api/latest/c++/namespacemembers_s.html | 8 +-
.../api/latest/c++/namespacemembers_vars_l.html | 3 +
content/api/latest/c++/namespacemembers_w.html | 12 +-
.../api/latest/c++/namespaceos_1_1internal.html | 26 +
content/api/latest/c++/namespaceprocess.html | 16 +
.../api/latest/c++/namespaceprocess_1_1io.html | 54 +
.../c++/namespaceprocess_1_1io_1_1internal.html | 174 +
.../latest/c++/namespaceprocess_1_1windows.html | 332 +
content/api/latest/c++/namespaces.html | 4 +-
content/api/latest/c++/port__mapping_8hpp.html | 2 +-
.../latest/c++/port__mapping_8hpp_source.html | 4 +-
.../api/latest/c++/posix_2os_8hpp_source.html | 4 +-
content/api/latest/c++/rwlock_8hpp_source.html | 4 +-
content/api/latest/c++/sandbox_8hpp.html | 2 +-
content/api/latest/c++/sandbox_8hpp_source.html | 4 +-
.../c++/slave_2container__logger_8hpp.html | 2 +-
.../slave_2container__logger_8hpp_source.html | 4 +-
...ve_2containerizer_2mesos_2launcher_8hpp.html | 2 +-
...tainerizer_2mesos_2launcher_8hpp_source.html | 4 +-
.../c++/src_2log_2network_8hpp_source.html | 4 +-
...ator_2sorter_2random_2utils_8hpp_source.html | 2 +-
.../c++/src_2master_2master_8hpp_source.html | 4 +-
.../latest/c++/src_2posix_2subprocess_8hpp.html | 108 +
.../c++/src_2posix_2subprocess_8hpp_source.html | 137 +
.../api/latest/c++/src_2tests_2mesos_8hpp.html | 2 +-
.../c++/src_2tests_2mesos_8hpp_source.html | 4 +-
.../c++/src_2windows_2subprocess_8hpp.html | 97 +
.../src_2windows_2subprocess_8hpp_source.html | 100 +
...ubprocess_1_1IO_1_1InputFileDescriptors.html | 4 +-
...bprocess_1_1IO_1_1OutputFileDescriptors.html | 4 +-
...ructprocess_1_1Subprocess_1_1ParentHook.html | 4 +-
content/api/latest/c++/subprocess_8hpp.html | 125 -
.../api/latest/c++/subprocess_8hpp_source.html | 115 -
.../api/latest/c++/subprocess__posix_8hpp.html | 108 -
.../c++/subprocess__posix_8hpp_source.html | 137 -
.../latest/c++/subprocess__windows_8hpp.html | 97 -
.../c++/subprocess__windows_8hpp_source.html | 100 -
content/api/latest/c++/systemd_8hpp.html | 2 +-
content/api/latest/c++/systemd_8hpp_source.html | 4 +-
.../tests_2containerizer_2launcher_8hpp.html | 2 +-
...ts_2containerizer_2launcher_8hpp_source.html | 4 +-
.../c++/v1_2resource__provider_8hpp_source.html | 4 +-
.../latest/c++/v1_2scheduler_8hpp_source.html | 4 +-
.../latest/c++/windows_2dup_8hpp_source.html | 6 +-
.../latest/c++/windows_2event__loop_8hpp.html | 80 +
.../c++/windows_2event__loop_8hpp_source.html | 66 +
content/api/latest/c++/windows_2os_8hpp.html | 2 +
.../api/latest/c++/windows_2os_8hpp_source.html | 10 +-
content/api/latest/c++/windows_2stat_8hpp.html | 1 +
.../latest/c++/windows_2stat_8hpp_source.html | 4 +-
.../latest/c++/windows_2write_8hpp_source.html | 4 +-
content/sitemap.xml | 9394 +++++++++---------
154 files changed, 10389 insertions(+), 7599 deletions(-)
----------------------------------------------------------------------
[37/50] mesos-site git commit: Updated the website built from mesos
SHA: 7c9c72d.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/fd_8hpp_source.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/fd_8hpp_source.html b/content/api/latest/c++/fd_8hpp_source.html
index d858606..edcadb7 100644
--- a/content/api/latest/c++/fd_8hpp_source.html
+++ b/content/api/latest/c++/fd_8hpp_source.html
@@ -52,41 +52,47 @@
<div class="title">fd.hpp</div> </div>
</div><!--header-->
<div class="contents">
-<a href="fd_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// Licensed under the Apache License, Version 2.0 (the "License");</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// you may not use this file except in compliance with the License.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// You may obtain a copy of the License at</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">//</span></di
v><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// Unless required by applicable law or agreed to in writing, software</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">// distributed under the License is distributed on an "AS IS" BASIS,</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">// See the License for the specific language governing permissions and</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// limitations under the License.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> </div><div class="line"><a
name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#ifndef __STOUT_OS_WINDOWS_FD_HPP__</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#define __STOUT_OS_WINDOWS_FD_HPP__</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include <fcntl.h></span> <span class="comment">// For `O_RDWR`.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include <io.h></span> <span class="comment">// For `_open_osfhandle`.</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> </div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include <array></span></div><div class="line"><a
name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include <memory></span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <ostream></span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <type_traits></span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> </div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <<a class="code" href="stout_2include_2stout_2check_8hpp.html">stout/check.hpp</a>></span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <<a class="code" href="nothing_8hpp.html">stout/nothing.hpp</a>></span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="p
reprocessor">#include <<a class="code" href="try_8hpp.html">stout/try.hpp</a>></span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <<a class="code" href="unreachable_8hpp.html">stout/unreachable.hpp</a>></span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include <<a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html">stout/windows.hpp</a>></span> <span class="comment">// For `WinSock2.h`.</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> </div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="keyword">namespace </span><a class="code" href="namespaceos.html">os</a> {</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> </div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>
0;<span class="comment">// The `WindowsFD` class exists to provide an common interface with the POSIX</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="comment">// file descriptor. While the bare `int` representation of the POSIX file</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="comment">// descriptor API is undesirable, we rendezvous there in order to maintain the</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="comment">// existing code in Mesos.</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="comment">//</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="comment">// In the platform-agnostic code paths, the `int_fd` type is aliased to</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</s
pan> <span class="comment">// `WindowsFD`. The `os::*` functions return a type appropriate to the platform,</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="comment">// which allows us to write code like this:</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="comment">//</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="comment">// Try<int_fd> fd = os::open(...);</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="comment">//</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="comment">// The `WindowsFD` constructs off one of:</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="comment">// (1) `HANDLE` - from the Win32 API</span></div><div class="line"><a name=
"l00045"></a><span class="lineno"> 45</span> <span class="comment">// (2) `SOCKET` - from the WinSock API</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="comment">//</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="comment">// The `os::*` functions then take an instance of `WindowsFD`, examines</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="comment">// the state and dispatches to the appropriate API.</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span> </div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="classos_1_1WindowsFD.html"> 50</a></span> <span class="keyword">class </span><a class="code" href="classos_1_1WindowsFD.html">WindowsFD</a></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span> {</div><div
class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="classos_1_1WindowsFD.html#ac0377db41e1c167339c97dbd69c79ae5"> 53</a></span>  <span class="keyword">enum class</span> <a class="code" href="classos_1_1WindowsFD.html#ac0377db41e1c167339c97dbd69c79ae5">Type</a></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  {</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <a class="code" href="classos_1_1WindowsFD.html#ac0377db41e1c167339c97dbd69c79ae5ad09c4cb1265f1772bb757a7af277b49f">HANDLE</a>,</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <a class="code" href="classos_1_1WindowsFD.html#ac0377db41e1c167339c97dbd69c79ae5a75fbea08c09e684e6b3f3961761354fa">SOCKET</a></div><div class="line"><a name="l00057"></a><span class="lineno">
57</span>  };</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span> </div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="comment">// The `HANDLE` here is expected to be file handles. Specifically,</span></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <span class="comment">// `HANDLE`s returned by file API such as `CreateFile`. There are</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="comment">// APIs that return `HANDLE`s with different error values, and</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="comment">// therefore must be handled accordingly. For example, a thread API</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="comment">// such as `CreateThread` returns `NULL` as the error value, rat
her</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <span class="comment">// than `INVALID_HANDLE_VALUE`.</span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <span class="comment">//</span></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <span class="comment">// TODO(mpark): Consider adding a second parameter which tells us</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <span class="comment">// what the error values are.</span></div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  static_assert(</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  std::is_same<HANDLE, void*>::value,</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <span class="stringliteral">"Expected `HANDLE` to be of type
`void*`."</span>);</div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="classos_1_1WindowsFD.html#a421497a56ee02f01dd4f0773d07eaa76"> 71</a></span>  <span class="keyword">explicit</span> <a class="code" href="classos_1_1WindowsFD.html#a421497a56ee02f01dd4f0773d07eaa76">WindowsFD</a>(<a class="code" href="classos_1_1WindowsFD.html#ac0377db41e1c167339c97dbd69c79ae5ad09c4cb1265f1772bb757a7af277b49f">HANDLE</a> handle, <span class="keywordtype">bool</span> overlapped = <span class="keyword">false</span>)</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  : type_(<a class="code" href="classos_1_1WindowsFD.html#ac0377db41e1c167339c97dbd69c79ae5">Type</a>::<a class="code" href="classos_1_1WindowsFD.html#ac0377db41e1c167339c97dbd69c79ae5ad09c4cb1265f1772bb757a7af277b49f">HANDLE</a>), <a class="code" href="classos_1_1WindowsFD.html#afcf316b6f5178ce1b9002c4202aebcf6">handle_</a>(handle), overlapped_(overlapped)
</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  {}</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span> </div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <span class="comment">// The `SOCKET` here is expected to be Windows sockets, such as that</span></div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <span class="comment">// used by the Windows Sockets 2 library. The only expected error</span></div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="comment">// value is `INVALID_SOCKET`.</span></div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <span class="comment">//</span></div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <span class="comment">// Note that sockets should almost always be overlapped. We do provide</span></div><div class
="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="comment">// a way in stout to create non-overlapped sockets, so for completeness, we</span></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <span class="comment">// have an overlapped parameter in the constructor.</span></div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  static_assert(</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  std::is_same<SOCKET, unsigned __int64>::value,</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <span class="stringliteral">"Expected `SOCKET` to be of type `unsigned __int64`."</span>);</div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="classos_1_1WindowsFD.html#a33cd936b5641a029b1ea2da80d71c748"> 85</a></span>  <span class="keyword">explicit</span> <a class="code
" href="classos_1_1WindowsFD.html#a33cd936b5641a029b1ea2da80d71c748">WindowsFD</a>(SOCKET <a class="code" href="namespacerouting.html#aee51d4e36a57bab7d6ada56e15467370">socket</a>, <span class="keywordtype">bool</span> overlapped = <span class="keyword">true</span>)</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  : type_(<a class="code" href="classos_1_1WindowsFD.html#ac0377db41e1c167339c97dbd69c79ae5">Type</a>::SOCKET), <a class="code" href="classos_1_1WindowsFD.html#a05016bee9531c79ce4576c9b8d9c9922">socket_</a>(socket), overlapped_(overlapped)</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  {}</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span> </div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <span class="comment">// On Windows, libevent's `evutil_socket_t` is set to `intptr_t`.</span></div><div class="line"><a name="l00090"></a><span
class="lineno"><a class="line" href="classos_1_1WindowsFD.html#a43994eeb484a426990af657f691f66e0"> 90</a></span>  <span class="keyword">explicit</span> <a class="code" href="classos_1_1WindowsFD.html#a43994eeb484a426990af657f691f66e0">WindowsFD</a>(intptr_t <a class="code" href="namespacerouting.html#aee51d4e36a57bab7d6ada56e15467370">socket</a>) : <a class="code" href="classos_1_1WindowsFD.html">WindowsFD</a>(static_cast<SOCKET>(socket))</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  {}</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span> </div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <span class="comment">// This constructor is provided in so that the canonical integer</span></div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <span class="comment">// file descriptors representing `stdin` (0), `stdout` (1), and</span></div><div
class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <span class="comment">// `stderr` (2), and the invalid value of -1 can be used.</span></div><div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="classos_1_1WindowsFD.html#a278285643f263655c5f64f45451fc6e6"> 96</a></span>  <a class="code" href="classos_1_1WindowsFD.html#a278285643f263655c5f64f45451fc6e6">WindowsFD</a>(<span class="keywordtype">int</span> <a class="code" href="classos_1_1WindowsFD.html#a94b69cae4edb8f3549845fbfa0355b7c">crt</a>) : <a class="code" href="classos_1_1WindowsFD.html">WindowsFD</a>(INVALID_HANDLE_VALUE)</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  {</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <span class="keywordflow">if</span> (crt == -1) {</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <span class="comment">// No-op, alrea
dy `INVALID_HANDLE_VALUE`.</span></div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (crt == 0) {</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <a class="code" href="classos_1_1WindowsFD.html#afcf316b6f5178ce1b9002c4202aebcf6">handle_</a> = ::GetStdHandle(STD_INPUT_HANDLE);</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (crt == 1) {</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <a class="code" href="classos_1_1WindowsFD.html#afcf316b6f5178ce1b9002c4202aebcf6">handle_</a> = ::GetStdHandle(STD_OUTPUT_HANDLE);</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (crt ==
2) {</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <a class="code" href="classos_1_1WindowsFD.html#afcf316b6f5178ce1b9002c4202aebcf6">handle_</a> = ::GetStdHandle(STD_ERROR_HANDLE);</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <span class="comment">// This would be better enforced at compile-time, but not</span></div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <span class="comment">// currently possible, so this is a sanity check.</span></div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  LOG(FATAL) << <span class="stringliteral">"Unexpected construction of `WindowsFD`"</span>;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  }</div><div cla
ss="line"><a name="l00111"></a><span class="lineno"> 111</span>  }</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span> </div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <span class="comment">// Default construct with invalid handle semantics.</span></div><div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="classos_1_1WindowsFD.html#a68733e16ee25fe8602557e6e9f534bc9"> 114</a></span>  <a class="code" href="classos_1_1WindowsFD.html#a68733e16ee25fe8602557e6e9f534bc9">WindowsFD</a>() : <a class="code" href="classos_1_1WindowsFD.html">WindowsFD</a>(INVALID_HANDLE_VALUE) {}</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span> </div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <a class="code" href="classos_1_1WindowsFD.html#a68733e16ee25fe8602557e6e9f534bc9">WindowsFD</a>(<span class="keyword">const</span> <a class="c
ode" href="classos_1_1WindowsFD.html">WindowsFD</a>&) = <span class="keywordflow">default</span>;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <a class="code" href="classos_1_1WindowsFD.html#a68733e16ee25fe8602557e6e9f534bc9">WindowsFD</a>(<a class="code" href="classos_1_1WindowsFD.html">WindowsFD</a>&&) = <span class="keywordflow">default</span>;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span> </div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <a class="code" href="classos_1_1WindowsFD.html">WindowsFD</a>& <a class="code" href="classos_1_1WindowsFD.html#ab780d87119c772425aa855260056d1a1">operator=</a>(<span class="keyword">const</span> <a class="code" href="classos_1_1WindowsFD.html">WindowsFD</a>&) = <span class="keywordflow">default</span>;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <a class="code" href="classo
s_1_1WindowsFD.html">WindowsFD</a>& <a class="code" href="classos_1_1WindowsFD.html#ab780d87119c772425aa855260056d1a1">operator=</a>(<a class="code" href="classos_1_1WindowsFD.html">WindowsFD</a>&&) = <span class="keywordflow">default</span>;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span> </div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <a class="code" href="classos_1_1WindowsFD.html#ad2ce21d9f77710472e19843e3e86343e">~WindowsFD</a>() = <span class="keywordflow">default</span>;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span> </div><div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="classos_1_1WindowsFD.html#ab961444eec07c587c9a67122daf4fd33"> 124</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classos_1_1WindowsFD.html#ab961444eec07c587c9a67122daf4fd33">is_valid</a>()<span class="keyword"> const</span></d
iv><div class="line"><a name="l00125"></a><span class="lineno"> 125</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <span class="keywordflow">switch</span> (<a class="code" href="classos_1_1WindowsFD.html#a3ce17a730ace5352a1fc6d49f8336d52">type</a>()) {</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <span class="keywordflow">case</span> <a class="code" href="classos_1_1WindowsFD.html#ac0377db41e1c167339c97dbd69c79ae5ad09c4cb1265f1772bb757a7af277b49f">Type::HANDLE</a>: {</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <span class="comment">// Remember that both of these values can represent an invalid</span></div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <span class="comment">// handle.</span></div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>
0; <span class="keywordflow">return</span> <a class="code" href="classos_1_1WindowsFD.html#afcf316b6f5178ce1b9002c4202aebcf6">handle_</a> != <span class="keyword">nullptr</span> && <a class="code" href="classos_1_1WindowsFD.html#afcf316b6f5178ce1b9002c4202aebcf6">handle_</a> != INVALID_HANDLE_VALUE;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  }</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <span class="keywordflow">case</span> <a class="code" href="classos_1_1WindowsFD.html#ac0377db41e1c167339c97dbd69c79ae5a75fbea08c09e684e6b3f3961761354fa">Type::SOCKET</a>: {</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <span class="comment">// Only this value is used for an invalid socket.</span></div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <span class="keywordflow">return</span> <a class="code" href="clas
sos_1_1WindowsFD.html#a05016bee9531c79ce4576c9b8d9c9922">socket_</a> != INVALID_SOCKET;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  }</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <span class="keywordflow">default</span>: {</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  }</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  }</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  }</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span> </div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <span class="comment">// NOTE: This allocates a C run-time file descriptor and ass
ociates</span></div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <span class="comment">// it with the handle. At this point, the `HANDLE` should no longer</span></div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <span class="comment">// be closed via `CloseHandle`, but instead close the returned `int`</span></div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <span class="comment">// with `_close`. This method should almost never be used, and</span></div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  <span class="comment">// exists only for compatibility with 3rdparty dependencies.</span></div><div class="line"><a name="l00147"></a><span class="lineno"><a class="line" href="classos_1_1WindowsFD.html#a94b69cae4edb8f3549845fbfa0355b7c"> 147</a></span>  <span class="keywordtype">int</span> <a class="code" href="classos_1_1WindowsFD.html#a94b69ca
e4edb8f3549845fbfa0355b7c">crt</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  CHECK_EQ(<a class="code" href="classos_1_1WindowsFD.html#ac0377db41e1c167339c97dbd69c79ae5ad09c4cb1265f1772bb757a7af277b49f">Type::HANDLE</a>, <a class="code" href="classos_1_1WindowsFD.html#a3ce17a730ace5352a1fc6d49f8336d52">type</a>());</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <span class="comment">// TODO(andschwa): Consider if we should overwrite `handle_`.</span></div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  return ::_open_osfhandle(reinterpret_cast<intptr_t>(<a class="code" href="classos_1_1WindowsFD.html#afcf316b6f5178ce1b9002c4202aebcf6">handle_</a>), O_RDWR);</div><div class="line"><a name="l00152"></a><span clas
s="lineno"> 152</span>  }</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span> </div><div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="classos_1_1WindowsFD.html#a8ba56c5251264ab13aeaaa34cde39bdb"> 154</a></span>  <span class="keyword">operator</span> <a class="code" href="classos_1_1WindowsFD.html#ac0377db41e1c167339c97dbd69c79ae5ad09c4cb1265f1772bb757a7af277b49f">HANDLE</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  CHECK_EQ(<a class="code" href="classos_1_1WindowsFD.html#ac0377db41e1c167339c97dbd69c79ae5ad09c4cb1265f1772bb757a7af277b49f">Type::HANDLE</a>, <a class="code" href="classos_1_1WindowsFD.html#a3ce17a730ace5352a1fc6d49f8336d52">type</a>());</div><div class="line"><a name="l00157"></a><span class="lineno"
> 157</span>  <span class="keywordflow">return</span> <a class="code" href="classos_1_1WindowsFD.html#afcf316b6f5178ce1b9002c4202aebcf6">handle_</a>;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  }</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span> </div><div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="classos_1_1WindowsFD.html#a0826bf646e11186502039fcf869b2afc"> 160</a></span>  <span class="keyword">operator</span> <a class="code" href="classos_1_1WindowsFD.html#ac0377db41e1c167339c97dbd69c79ae5a75fbea08c09e684e6b3f3961761354fa">SOCKET</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  CHECK_EQ(<a class="code" href="classos_1_1WindowsFD.html#ac0377db41e1c167339c97dbd69c79ae5
a75fbea08c09e684e6b3f3961761354fa">Type::SOCKET</a>, <a class="code" href="classos_1_1WindowsFD.html#a3ce17a730ace5352a1fc6d49f8336d52">type</a>());</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  <span class="keywordflow">return</span> <a class="code" href="classos_1_1WindowsFD.html#a05016bee9531c79ce4576c9b8d9c9922">socket_</a>;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  }</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span> </div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <span class="comment">// On Windows, libevent's `evutil_socket_t` is set to `intptr_t`.</span></div><div class="line"><a name="l00167"></a><span class="lineno"><a class="line" href="classos_1_1WindowsFD.html#aa58f87561c2785c34ae7f34ce59abfe2"> 167</a></span>  <span class="keyword">operator</span> intptr_t()<span class="keyword"> const</span></div><div clas
s="line"><a name="l00168"></a><span class="lineno"> 168</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  CHECK_EQ(<a class="code" href="classos_1_1WindowsFD.html#ac0377db41e1c167339c97dbd69c79ae5a75fbea08c09e684e6b3f3961761354fa">Type::SOCKET</a>, <a class="code" href="classos_1_1WindowsFD.html#a3ce17a730ace5352a1fc6d49f8336d52">type</a>());</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <span class="keywordflow">return</span> <span class="keyword">static_cast<</span>intptr_t<span class="keyword">></span>(<a class="code" href="classos_1_1WindowsFD.html#a05016bee9531c79ce4576c9b8d9c9922">socket_</a>);</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  }</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span> </div><div class="line"><a name="l00173"></a><span class="lineno"><a class="line" href="c
lassos_1_1WindowsFD.html#a3ce17a730ace5352a1fc6d49f8336d52"> 173</a></span>  <a class="code" href="classos_1_1WindowsFD.html#ac0377db41e1c167339c97dbd69c79ae5">Type</a> <a class="code" href="classos_1_1WindowsFD.html#a3ce17a730ace5352a1fc6d49f8336d52">type</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> type_; }</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span> </div><div class="line"><a name="l00175"></a><span class="lineno"><a class="line" href="classos_1_1WindowsFD.html#a4dce5dbc3d019589b4b61d6d17e1da45"> 175</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classos_1_1WindowsFD.html#a4dce5dbc3d019589b4b61d6d17e1da45">is_overlapped</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> overlapped_; }</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span> </div><div class="line"><a name="l00177"></a><span class="lineno"> 1
77</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  <a class="code" href="classos_1_1WindowsFD.html#ac0377db41e1c167339c97dbd69c79ae5">Type</a> type_;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span> </div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  <span class="keyword">union</span></div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  {</div><div class="line"><a name="l00182"></a><span class="lineno"><a class="line" href="classos_1_1WindowsFD.html#afcf316b6f5178ce1b9002c4202aebcf6"> 182</a></span>  <a class="code" href="classos_1_1WindowsFD.html#ac0377db41e1c167339c97dbd69c79ae5ad09c4cb1265f1772bb757a7af277b49f">HANDLE</a> <a class="code" href="classos_1_1WindowsFD.html#afcf316b6f5178ce1b9002c4202aebcf6">handle_</a>;</div><div class="line"><a name="l00183"></a><span class="lineno"><a clas
s="line" href="classos_1_1WindowsFD.html#a05016bee9531c79ce4576c9b8d9c9922"> 183</a></span>  SOCKET <a class="code" href="classos_1_1WindowsFD.html#a05016bee9531c79ce4576c9b8d9c9922">socket_</a>;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  };</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span> </div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  <span class="keywordtype">bool</span> overlapped_;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span> </div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  <span class="comment">// NOTE: This function is provided only for checking validity, thus</span></div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  <span class="comment">// it is private. It provides a view of a `WindowsFD` as an `int`.</span></div><div class="line"><a name="l0019
0"></a><span class="lineno"> 190</span>  <span class="comment">//</span></div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  <span class="comment">// TODO(andschwa): Fix all uses of this conversion to use `is_valid`</span></div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  <span class="comment">// directly instead, then remove the comparison operators. This</span></div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  <span class="comment">// would require writing an `int_fd` class for POSIX too, instead of</span></div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <span class="comment">// just using `int`.</span></div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  <span class="keywordtype">int</span> get_valid()<span class="keyword"> const</span></div><div class="line"><a name="l00196"></a><span class="lineno"> 19
6</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  <span class="keywordflow">if</span> (<a class="code" href="classos_1_1WindowsFD.html#ab961444eec07c587c9a67122daf4fd33">is_valid</a>()) {</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  <span class="keywordflow">return</span> -1;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  }</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  }</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span> </div><div class="line"><a name="l00204"></a><span class="lineno"> 204<
/span>  <span class="comment">// NOTE: These operators are used solely to support checking a</span></div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  <span class="comment">// `WindowsFD` against e.g. -1 or 0 for validity. Nothing else</span></div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  <span class="comment">// should have access to `get_valid()`.</span></div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  <span class="keyword">friend</span> <span class="keywordtype">bool</span> <a class="code" href="classos_1_1WindowsFD.html#a64a9d1d43e26808ec565056c183ae56f">operator<</a>(<span class="keywordtype">int</span> left, <span class="keyword">const</span> <a class="code" href="classos_1_1WindowsFD.html">WindowsFD</a>& right);</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  <span class="keyword">friend</span> <span class="keywordtype">
bool</span> <a class="code" href="classos_1_1WindowsFD.html#a64a9d1d43e26808ec565056c183ae56f">operator<</a>(<span class="keyword">const</span> <a class="code" href="classos_1_1WindowsFD.html">WindowsFD</a>& left, <span class="keywordtype">int</span> right);</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  <span class="keyword">friend</span> <span class="keywordtype">bool</span> <a class="code" href="classos_1_1WindowsFD.html#aabdbd9806af44043dfff1cf9aeeee869">operator></a>(<span class="keywordtype">int</span> left, <span class="keyword">const</span> <a class="code" href="classos_1_1WindowsFD.html">WindowsFD</a>& right);</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  <span class="keyword">friend</span> <span class="keywordtype">bool</span> <a class="code" href="classos_1_1WindowsFD.html#aabdbd9806af44043dfff1cf9aeeee869">operator></a>(<span class="keyword">const</span> <a class="code" href="cl
assos_1_1WindowsFD.html">WindowsFD</a>& left, <span class="keywordtype">int</span> right);</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  <span class="keyword">friend</span> <span class="keywordtype">bool</span> <a class="code" href="classos_1_1WindowsFD.html#afd05a43697b99aa8b7da8d56155b1a49">operator<=</a>(<span class="keywordtype">int</span> left, <span class="keyword">const</span> <a class="code" href="classos_1_1WindowsFD.html">WindowsFD</a>& right);</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  <span class="keyword">friend</span> <span class="keywordtype">bool</span> <a class="code" href="classos_1_1WindowsFD.html#afd05a43697b99aa8b7da8d56155b1a49">operator<=</a>(<span class="keyword">const</span> <a class="code" href="classos_1_1WindowsFD.html">WindowsFD</a>& left, <span class="keywordtype">int</span> right);</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</sp
an>  <span class="keyword">friend</span> <span class="keywordtype">bool</span> <a class="code" href="classos_1_1WindowsFD.html#a23d70e92fe2ee8da692f4e9b1b9e1e43">operator>=</a>(<span class="keywordtype">int</span> left, <span class="keyword">const</span> <a class="code" href="classos_1_1WindowsFD.html">WindowsFD</a>& right);</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  <span class="keyword">friend</span> <span class="keywordtype">bool</span> <a class="code" href="classos_1_1WindowsFD.html#a23d70e92fe2ee8da692f4e9b1b9e1e43">operator>=</a>(<span class="keyword">const</span> <a class="code" href="classos_1_1WindowsFD.html">WindowsFD</a>& left, <span class="keywordtype">int</span> right);</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  <span class="keyword">friend</span> <span class="keywordtype">bool</span> <a class="code" href="classos_1_1WindowsFD.html#a833e23bea1f10420bbd7139d1e8539ad">o
perator==</a>(<span class="keywordtype">int</span> left, <span class="keyword">const</span> <a class="code" href="classos_1_1WindowsFD.html">WindowsFD</a>& right);</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  <span class="keyword">friend</span> <span class="keywordtype">bool</span> <a class="code" href="classos_1_1WindowsFD.html#a833e23bea1f10420bbd7139d1e8539ad">operator==</a>(<span class="keyword">const</span> <a class="code" href="classos_1_1WindowsFD.html">WindowsFD</a>& left, <span class="keywordtype">int</span> right);</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  <span class="keyword">friend</span> <span class="keywordtype">bool</span> <a class="code" href="classos_1_1WindowsFD.html#a342803d2a16f81ca20f0e0c1c2e598d0">operator!=</a>(<span class="keywordtype">int</span> left, <span class="keyword">const</span> <a class="code" href="classos_1_1WindowsFD.html">WindowsFD</a>& right);</div><d
iv class="line"><a name="l00218"></a><span class="lineno"> 218</span>  <span class="keyword">friend</span> <span class="keywordtype">bool</span> <a class="code" href="classos_1_1WindowsFD.html#a342803d2a16f81ca20f0e0c1c2e598d0">operator!=</a>(<span class="keyword">const</span> <a class="code" href="classos_1_1WindowsFD.html">WindowsFD</a>& left, <span class="keywordtype">int</span> right);</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span> };</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span> </div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span> </div><div class="line"><a name="l00222"></a><span class="lineno"><a class="line" href="namespaceos.html#abc0226f448b014a39a8113f06482d6c9"> 222</a></span> <span class="keyword">inline</span> std::ostream& <a class="code" href="namespaceos.html#adf8abf607ec106e38317de03bcdda834">operator<<</a>(std::ostream& stream, <sp
an class="keyword">const</span> <a class="code" href="classos_1_1WindowsFD.html#ac0377db41e1c167339c97dbd69c79ae5">WindowsFD::Type</a>& fd)</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span> {</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  <span class="keywordflow">switch</span> (fd) {</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  <span class="keywordflow">case</span> <a class="code" href="classos_1_1WindowsFD.html#ac0377db41e1c167339c97dbd69c79ae5ad09c4cb1265f1772bb757a7af277b49f">WindowsFD::Type::HANDLE</a>: {</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  stream << <span class="stringliteral">"WindowsFD::Type::HANDLE"</span>;</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  <span class="keywordflow">return</span> stream;</div><div class="line"><a name="l00228"></a><span
class="lineno"> 228</span>  }</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  <span class="keywordflow">case</span> <a class="code" href="classos_1_1WindowsFD.html#ac0377db41e1c167339c97dbd69c79ae5a75fbea08c09e684e6b3f3961761354fa">WindowsFD::Type::SOCKET</a>: {</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  stream << <span class="stringliteral">"WindowsFD::Type::SOCKET"</span>;</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  <span class="keywordflow">return</span> stream;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  }</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  <span class="keywordflow">default</span>: {</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  stream << <span class="stringliteral">"WindowsFD::Ty
pe::UNKNOWN"</span>;</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  <span class="keywordflow">return</span> stream;</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  }</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  }</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span> }</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span> </div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span> </div><div class="line"><a name="l00241"></a><span class="lineno"><a class="line" href="namespaceos.html#ae7cfc38dfd6783b8d347893cb1dd6b8f"> 241</a></span> <span class="keyword">inline</span> std::ostream& <a class="code" href="namespaceos.html#adf8abf607ec106e38317de03bcdda834">operator<<</a>(std::ostream& stream, <span class="keyword">const</span> <a class="code" href="classos_1_1W
indowsFD.html">WindowsFD</a>& fd)</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span> {</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  stream << fd.<a class="code" href="classos_1_1WindowsFD.html#a3ce17a730ace5352a1fc6d49f8336d52">type</a>() << <span class="stringliteral">"="</span>;</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  <span class="keywordflow">switch</span> (fd.<a class="code" href="classos_1_1WindowsFD.html#a3ce17a730ace5352a1fc6d49f8336d52">type</a>()) {</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  <span class="keywordflow">case</span> <a class="code" href="classos_1_1WindowsFD.html#ac0377db41e1c167339c97dbd69c79ae5ad09c4cb1265f1772bb757a7af277b49f">WindowsFD::Type::HANDLE</a>: {</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  stream << static_cast<
;HANDLE>(fd);</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  <span class="keywordflow">return</span> stream;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  }</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  <span class="keywordflow">case</span> <a class="code" href="classos_1_1WindowsFD.html#ac0377db41e1c167339c97dbd69c79ae5a75fbea08c09e684e6b3f3961761354fa">WindowsFD::Type::SOCKET</a>: {</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  stream << static_cast<SOCKET>(fd);</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  <span class="keywordflow">return</span> stream;</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  }</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  <span class="keywordflow">default
</span>: {</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  stream << <span class="stringliteral">"UNKNOWN"</span>;</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  <span class="keywordflow">return</span> stream;</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  }</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  }</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span> }</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span> </div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span> </div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span> <span class="comment">// NOTE: The following operators implement all the comparisons</span></div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span> <
span class="comment">// possible a `WindowsFD` type and an `int`. The point of this is that</span></div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span> <span class="comment">// the `WindowsFD` type must act like an `int` for compatibility</span></div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span> <span class="comment">// reasons (e.g. checking validity through `fd < 0`), without actually</span></div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span> <span class="comment">// being castable to an `int` to avoid ambiguous types.</span></div><div class="line"><a name="l00266"></a><span class="lineno"><a class="line" href="namespaceos.html#a50365c5112577886332b1072de202c5f"> 266</a></span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classos_1_1WindowsFD.html#a64a9d1d43e26808ec565056c183ae56f">operator<</a>(<span class="keywordtype">int</s
pan> left, <span class="keyword">const</span> <a class="code" href="classos_1_1WindowsFD.html">WindowsFD</a>& right)</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span> {</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  <span class="keywordflow">return</span> left < right.get_valid();</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span> }</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span> </div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span> </div><div class="line"><a name="l00272"></a><span class="lineno"><a class="line" href="namespaceos.html#a3d7a472710fa4652c0074074fec9973d"> 272</a></span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classos_1_1WindowsFD.html#a64a9d1d43e26808ec565056c183ae56f">operator<</a>(<span class="keyword">const</span> <a class="code
" href="classos_1_1WindowsFD.html">WindowsFD</a>& left, <span class="keywordtype">int</span> right)</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span> {</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  <span class="keywordflow">return</span> left.get_valid() < right;</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span> }</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span> </div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span> </div><div class="line"><a name="l00278"></a><span class="lineno"><a class="line" href="namespaceos.html#a01c61a529abd402f5c7e1307d24f5378"> 278</a></span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classos_1_1WindowsFD.html#aabdbd9806af44043dfff1cf9aeeee869">operator></a>(<span class="keywordtype">int</span> left, <span class="keyword">c
onst</span> <a class="code" href="classos_1_1WindowsFD.html">WindowsFD</a>& right)</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span> {</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  <span class="keywordflow">return</span> left > right.get_valid();</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span> }</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span> </div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span> </div><div class="line"><a name="l00284"></a><span class="lineno"><a class="line" href="namespaceos.html#a9b3ec4a9596510ae4f5147b50d50178b"> 284</a></span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classos_1_1WindowsFD.html#aabdbd9806af44043dfff1cf9aeeee869">operator></a>(<span class="keyword">const</span> <a class="code" href="classos_1_1WindowsFD.html"
>WindowsFD</a>& left, <span class="keywordtype">int</span> right)</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span> {</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  <span class="keywordflow">return</span> left.get_valid() > right;</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span> }</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span> </div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span> </div><div class="line"><a name="l00290"></a><span class="lineno"><a class="line" href="namespaceos.html#ae0567bbfde960caa1f0e7282ebba1129"> 290</a></span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classos_1_1WindowsFD.html#afd05a43697b99aa8b7da8d56155b1a49">operator<=</a>(<span class="keywordtype">int</span> left, <span class="keyword">const</span> <a class="code" href=
"classos_1_1WindowsFD.html">WindowsFD</a>& right)</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span> {</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  <span class="keywordflow">return</span> left <= right.get_valid();</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span> }</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span> </div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span> </div><div class="line"><a name="l00296"></a><span class="lineno"><a class="line" href="namespaceos.html#a4a0677e666a295e048cf4c65100a9e19"> 296</a></span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classos_1_1WindowsFD.html#afd05a43697b99aa8b7da8d56155b1a49">operator<=</a>(<span class="keyword">const</span> <a class="code" href="classos_1_1WindowsFD.html">WindowsFD</a>& left, <span
class="keywordtype">int</span> right)</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span> {</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  <span class="keywordflow">return</span> left.get_valid() <= right;</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span> }</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span> </div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span> </div><div class="line"><a name="l00302"></a><span class="lineno"><a class="line" href="namespaceos.html#aff40faf624abae939675cdfff558570b"> 302</a></span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classos_1_1WindowsFD.html#a23d70e92fe2ee8da692f4e9b1b9e1e43">operator>=</a>(<span class="keywordtype">int</span> left, <span class="keyword">const</span> <a class="code" href="classos_1_1WindowsFD.html">Wi
ndowsFD</a>& right)</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span> {</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  <span class="keywordflow">return</span> left >= right.get_valid();</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span> }</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span> </div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span> </div><div class="line"><a name="l00308"></a><span class="lineno"><a class="line" href="namespaceos.html#a7212150e865b156fdae90c1052407042"> 308</a></span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classos_1_1WindowsFD.html#a23d70e92fe2ee8da692f4e9b1b9e1e43">operator>=</a>(<span class="keyword">const</span> <a class="code" href="classos_1_1WindowsFD.html">WindowsFD</a>& left, <span class="keywordtype">int</span
> right)</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span> {</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  <span class="keywordflow">return</span> left.get_valid() >= right;</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span> }</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span> </div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span> </div><div class="line"><a name="l00314"></a><span class="lineno"><a class="line" href="namespaceos.html#a964a363626326ed56a030b26813124a7"> 314</a></span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classos_1_1WindowsFD.html#a833e23bea1f10420bbd7139d1e8539ad">operator==</a>(<span class="keywordtype">int</span> left, <span class="keyword">const</span> <a class="code" href="classos_1_1WindowsFD.html">WindowsFD</a>& right)</div><div
class="line"><a name="l00315"></a><span class="lineno"> 315</span> {</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  <span class="keywordflow">return</span> left == right.get_valid();</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span> }</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span> </div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span> </div><div class="line"><a name="l00320"></a><span class="lineno"><a class="line" href="namespaceos.html#a5c6de77e356412060c38c5e41cdd5ba1"> 320</a></span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classos_1_1WindowsFD.html#a833e23bea1f10420bbd7139d1e8539ad">operator==</a>(<span class="keyword">const</span> <a class="code" href="classos_1_1WindowsFD.html">WindowsFD</a>& left, <span class="keywordtype">int</span> right)</div><div class="line"><a name
="l00321"></a><span class="lineno"> 321</span> {</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  <span class="keywordflow">return</span> left.get_valid() == right;</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span> }</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span> </div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span> </div><div class="line"><a name="l00326"></a><span class="lineno"><a class="line" href="namespaceos.html#ab3f13e530d689c5eb2d15b921a55c2df"> 326</a></span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classos_1_1WindowsFD.html#a342803d2a16f81ca20f0e0c1c2e598d0">operator!=</a>(<span class="keywordtype">int</span> left, <span class="keyword">const</span> <a class="code" href="classos_1_1WindowsFD.html">WindowsFD</a>& right)</div><div class="line"><a name="l00327"></a><span c
lass="lineno"> 327</span> {</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  <span class="keywordflow">return</span> left != right.get_valid();</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span> }</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span> </div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span> </div><div class="line"><a name="l00332"></a><span class="lineno"><a class="line" href="namespaceos.html#adfa6e9183e6bc24e95a45fa3f095ea37"> 332</a></span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classos_1_1WindowsFD.html#a342803d2a16f81ca20f0e0c1c2e598d0">operator!=</a>(<span class="keyword">const</span> <a class="code" href="classos_1_1WindowsFD.html">WindowsFD</a>& left, <span class="keywordtype">int</span> right)</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</
span> {</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  <span class="keywordflow">return</span> left.get_valid() != right;</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span> }</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span> </div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span> </div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span> <span class="comment">// NOTE: This operator exists so that `WindowsFD` can be used in an</span></div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span> <span class="comment">// `unordered_map` (and other STL containers requiring equality).</span></div><div class="line"><a name="l00340"></a><span class="lineno"><a class="line" href="namespaceos.html#a233ee9ab58e9c214bb9dada3b4cde87a"> 340</a></span> <span class="keyword">inline</span> <span class="keywordtype
">bool</span> <a class="code" href="classos_1_1WindowsFD.html#a833e23bea1f10420bbd7139d1e8539ad">operator==</a>(<span class="keyword">const</span> <a class="code" href="classos_1_1WindowsFD.html">WindowsFD</a>& left, <span class="keyword">const</span> <a class="code" href="classos_1_1WindowsFD.html">WindowsFD</a>& right)</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span> {</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  <span class="comment">// This is `true` even if the types mismatch because we want</span></div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  <span class="comment">// `WindowsFD(-1)` to compare as equivalent to an invalid `HANDLE`</span></div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  <span class="comment">// or `SOCKET`, even though it is technically of type `HANDLE`.</span></div><div class="line"><a name="l00345"></a><sp
an class="lineno"> 345</span>  <span class="keywordflow">if</span> (!left.<a class="code" href="classos_1_1WindowsFD.html#ab961444eec07c587c9a67122daf4fd33">is_valid</a>() && !right.<a class="code" href="classos_1_1WindowsFD.html#ab961444eec07c587c9a67122daf4fd33">is_valid</a>()) {</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>  }</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span> </div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  <span class="comment">// Otherwise mismatched types are not equivalent.</span></div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>  <span class="keywordflow">if</span> (left.<a class="code" href="classos_1_1WindowsFD.html#a3ce17a730ace5352a1fc6d49f8
336d52">type</a>() != right.<a class="code" href="classos_1_1WindowsFD.html#a3ce17a730ace5352a1fc6d49f8336d52">type</a>()) {</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>  }</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span> </div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  <span class="keywordflow">switch</span> (left.<a class="code" href="classos_1_1WindowsFD.html#a3ce17a730ace5352a1fc6d49f8336d52">type</a>()) {</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  <span class="keywordflow">case</span> <a class="code" href="classos_1_1WindowsFD.html#ac0377db41e1c167339c97dbd69c79ae5ad09c4cb1265f1772bb757a7af277b49f">WindowsFD::Type::HANDLE</a>: {</div><div class="line"><a name="l00356
"></a><span class="lineno"> 356</span>  <span class="keywordflow">return</span> <span class="keyword">static_cast<</span><a class="code" href="classos_1_1WindowsFD.html#ac0377db41e1c167339c97dbd69c79ae5ad09c4cb1265f1772bb757a7af277b49f">HANDLE</a><span class="keyword">></span>(left) == static_cast<HANDLE>(right);</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  }</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  <span class="keywordflow">case</span> <a class="code" href="classos_1_1WindowsFD.html#ac0377db41e1c167339c97dbd69c79ae5a75fbea08c09e684e6b3f3961761354fa">WindowsFD::Type::SOCKET</a>: {</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>  <span class="keywordflow">return</span> <span class="keyword">static_cast<</span><a class="code" href="classos_1_1WindowsFD.html#ac0377db41e1c167339c97dbd69c79ae5a75fbea08c09e684e6b3f3961761354fa">SOCKET</a
><span class="keyword">></span>(left) == static_cast<SOCKET>(right);</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  }</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>  }</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span> </div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>  <a class="code" href="unreachable_8hpp.html#a0bc63b24b654ca433be7b97a3edde132">UNREACHABLE</a>();</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span> }</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span> </div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span> } <span class="comment">// namespace os {</span></div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span> </div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span> <span cl
ass="keyword">namespace </span><a class="code" href="namespacestd.html">std</a> {</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span> </div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span> <span class="comment">// NOTE: This specialization exists so that `WindowsFD` can be used in</span></div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span> <span class="comment">// an `unordered_map` (and other STL containers requiring a hash).</span></div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span> <span class="keyword">template</span> <></div><div class="line"><a name="l00373"></a><span class="lineno"><a class="line" href="structstd_1_1hash_3_01os_1_1WindowsFD_01_4.html"> 373</a></span> <span class="keyword">struct </span>hash<<a class="code" href="namespaceos.html">os</a>::<a class="code" href="classos_1_1WindowsFD.html#a68733e16ee25fe8602557e6e9f534bc9">Window
sFD</a>></div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span> {</div><div class="line"><a name="l00375"></a><span class="lineno"><a class="line" href="structstd_1_1hash_3_01os_1_1WindowsFD_01_4.html#a2a5618e5e307b2d36c98f14d1600636c"> 375</a></span>  <span class="keyword">using</span> <a class="code" href="classos_1_1WindowsFD.html">argument_type</a> = <a class="code" href="classos_1_1WindowsFD.html">os::WindowsFD</a>;</div><div class="line"><a name="l00376"></a><span class="lineno"><a class="line" href="structstd_1_1hash_3_01os_1_1WindowsFD_01_4.html#a784a468593b723beb6be44656cc9f67a"> 376</a></span>  <span class="keyword">using</span> <a class="code" href="structstd_1_1hash_3_01os_1_1WindowsFD_01_4.html#a784a468593b723beb6be44656cc9f67a">result_type</a> = size_t;</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span> </div><div class="line"><a name="l00378"></a><span class="lineno"><a class="line" href="str
uctstd_1_1hash_3_01os_1_1WindowsFD_01_4.html#ace282835b0ca66ecf2753a5671449f4e"> 378</a></span>  <a class="code" href="structstd_1_1hash_3_01os_1_1WindowsFD_01_4.html#a784a468593b723beb6be44656cc9f67a">result_type</a> <a class="code" href="structstd_1_1hash_3_01os_1_1WindowsFD_01_4.html#ace282835b0ca66ecf2753a5671449f4e">operator()</a>(<span class="keyword">const</span> <a class="code" href="classos_1_1WindowsFD.html">argument_type</a>& fd) <span class="keyword">const</span> noexcept</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  {</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>  <span class="keywordflow">switch</span> (fd.type()) {</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>  <span class="keywordflow">case</span> <a class="code" href="classos_1_1WindowsFD.html#ac0377db41e1c167339c97dbd69c79ae5ad09c4cb1265f1772bb757a7af277b49f">os::WindowsFD::Type::HANDL
E</a>: {</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  <span class="keywordflow">return</span> std::hash<HANDLE>{}(<span class="keyword">static_cast<</span><a class="code" href="classos_1_1WindowsFD.html#ac0377db41e1c167339c97dbd69c79ae5ad09c4cb1265f1772bb757a7af277b49f">HANDLE</a><span class="keyword">></span>(fd));</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>  }</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>  <span class="keywordflow">case</span> <a class="code" href="classos_1_1WindowsFD.html#ac0377db41e1c167339c97dbd69c79ae5a75fbea08c09e684e6b3f3961761354fa">os::WindowsFD::Type::SOCKET</a>: {</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>  <span class="keywordflow">return</span> std::hash<SOCKET>{}(<span class="keyword">static_cast<</span><a class="code" href="classos_1_1WindowsFD.html#ac0
377db41e1c167339c97dbd69c79ae5a75fbea08c09e684e6b3f3961761354fa">SOCKET</a><span class="keyword">></span>(fd));</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  }</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  }</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span> </div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  <a class="code" href="unreachable_8hpp.html#a0bc63b24b654ca433be7b97a3edde132">UNREACHABLE</a>();</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  }</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span> };</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span> </div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span> } <span class="comment">// namespace std {</span></div><div class="line"><a name="l00394"></a
><span class="lineno"> 394</span> </div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span> <span class="preprocessor">#endif // __STOUT_OS_WINDOWS_FD_HPP__</span></div><div class="ttc" id="classos_1_1WindowsFD_html_ab961444eec07c587c9a67122daf4fd33"><div class="ttname"><a href="classos_1_1WindowsFD.html#ab961444eec07c587c9a67122daf4fd33">os::WindowsFD::is_valid</a></div><div class="ttdeci">bool is_valid() const </div><div class="ttdef"><b>Definition:</b> fd.hpp:124</div></div>
-<div class="ttc" id="classos_1_1WindowsFD_html_a33cd936b5641a029b1ea2da80d71c748"><div class="ttname"><a href="classos_1_1WindowsFD.html#a33cd936b5641a029b1ea2da80d71c748">os::WindowsFD::WindowsFD</a></div><div class="ttdeci">WindowsFD(SOCKET socket, bool overlapped=true)</div><div class="ttdef"><b>Definition:</b> fd.hpp:85</div></div>
-<div class="ttc" id="classos_1_1WindowsFD_html_a3ce17a730ace5352a1fc6d49f8336d52"><div class="ttname"><a href="classos_1_1WindowsFD.html#a3ce17a730ace5352a1fc6d49f8336d52">os::WindowsFD::type</a></div><div class="ttdeci">Type type() const </div><div class="ttdef"><b>Definition:</b> fd.hpp:173</div></div>
-<div class="ttc" id="classos_1_1WindowsFD_html_a05016bee9531c79ce4576c9b8d9c9922"><div class="ttname"><a href="classos_1_1WindowsFD.html#a05016bee9531c79ce4576c9b8d9c9922">os::WindowsFD::socket_</a></div><div class="ttdeci">SOCKET socket_</div><div class="ttdef"><b>Definition:</b> fd.hpp:183</div></div>
-<div class="ttc" id="classos_1_1WindowsFD_html_a421497a56ee02f01dd4f0773d07eaa76"><div class="ttname"><a href="classos_1_1WindowsFD.html#a421497a56ee02f01dd4f0773d07eaa76">os::WindowsFD::WindowsFD</a></div><div class="ttdeci">WindowsFD(HANDLE handle, bool overlapped=false)</div><div class="ttdef"><b>Definition:</b> fd.hpp:71</div></div>
-<div class="ttc" id="classos_1_1WindowsFD_html"><div class="ttname"><a href="classos_1_1WindowsFD.html">os::WindowsFD</a></div><div class="ttdef"><b>Definition:</b> fd.hpp:50</div></div>
+<a href="fd_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// Licensed under the Apache License, Version 2.0 (the "License");</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// you may not use this file except in compliance with the License.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// You may obtain a copy of the License at</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">//</span></di
v><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// Unless required by applicable law or agreed to in writing, software</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">// distributed under the License is distributed on an "AS IS" BASIS,</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">// See the License for the specific language governing permissions and</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// limitations under the License.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> </div><div class="line"><a
name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#ifndef __STOUT_OS_WINDOWS_FD_HPP__</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#define __STOUT_OS_WINDOWS_FD_HPP__</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include <fcntl.h></span> <span class="comment">// For `O_RDWR`.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include <io.h></span> <span class="comment">// For `_open_osfhandle`.</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> </div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include <array></span></div><div class="line"><a
name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include <atomic></span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <memory></span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <ostream></span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <type_traits></span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> </div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <<a class="code" href="stout_2include_2stout_2check_8hpp.html">stout/check.hpp</a>></span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include <<a class="code" href="nothing_
8hpp.html">stout/nothing.hpp</a>></span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <<a class="code" href="synchronized_8hpp.html">stout/synchronized.hpp</a>></span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include <<a class="code" href="try_8hpp.html">stout/try.hpp</a>></span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include <<a class="code" href="unreachable_8hpp.html">stout/unreachable.hpp</a>></span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include <<a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html">stout/windows.hpp</a>></span> <span class="comment">// For `WinSock2.h`.</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</
span> </div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="keyword">namespace </span><a class="code" href="namespaceos.html">os</a> {</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> </div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="comment">// The `WindowsFD` class exists to provide an common interface with the POSIX</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="comment">// file descriptor. While the bare `int` representation of the POSIX file</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="comment">// descriptor API is undesirable, we rendezvous there in order to maintain the</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="comment">// existing code in Mesos.</span></div><div class="line"><
a name="l00038"></a><span class="lineno"> 38</span> <span class="comment">//</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="comment">// In the platform-agnostic code paths, the `int_fd` type is aliased to</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="comment">// `WindowsFD`. The `os::*` functions return a type appropriate to the platform,</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="comment">// which allows us to write code like this:</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="comment">//</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="comment">// Try<int_fd> fd = os::open(...);</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="comment
">//</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="comment">// The `WindowsFD` constructs off one of:</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="comment">// (1) `HANDLE` - from the Win32 API</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="comment">// (2) `SOCKET` - from the WinSock API</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="comment">//</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="comment">// The `os::*` functions then take an instance of `WindowsFD`, examines</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="comment">// the state and dispatches to the appropriate API.</span></div><div class="line"><a name="l00051"></a><span class="lineno"
> 51</span> </div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="classos_1_1WindowsFD.html"> 52</a></span> <span class="keyword">class </span><a class="code" href="classos_1_1WindowsFD.html">WindowsFD</a></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span> {</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="classos_1_1WindowsFD.html#ac0377db41e1c167339c97dbd69c79ae5"> 55</a></span>  <span class="keyword">enum class</span> <a class="code" href="classos_1_1WindowsFD.html#ac0377db41e1c167339c97dbd69c79ae5">Type</a></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  {</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <a class="code" href="classos_1_1WindowsFD.html#ac0377db41e1
c167339c97dbd69c79ae5ad09c4cb1265f1772bb757a7af277b49f">HANDLE</a>,</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <a class="code" href="classos_1_1WindowsFD.html#ac0377db41e1c167339c97dbd69c79ae5a75fbea08c09e684e6b3f3961761354fa">SOCKET</a></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  };</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span> </div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="comment">// The `HANDLE` here is expected to be file handles. Specifically,</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="comment">// `HANDLE`s returned by file API such as `CreateFile`. There are</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="comment">// APIs that return `HANDLE`s with different error values, and</span></div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <span class="comment">// therefore must be handled accordingly. For example, a thread API</span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <span class="comment">// such as `CreateThread` returns `NULL` as the error value, rather</span></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <span class="comment">// than `INVALID_HANDLE_VALUE`.</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <span class="comment">//</span></div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <span class="comment">// TODO(mpark): Consider adding a second parameter which tells us</span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="comment">// what the error values are.</span></div><div class="line"><a name="l00070
"></a><span class="lineno"> 70</span>  static_assert(</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  std::is_same<HANDLE, void*>::value,</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <span class="stringliteral">"Expected `HANDLE` to be of type `void*`."</span>);</div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="classos_1_1WindowsFD.html#a421497a56ee02f01dd4f0773d07eaa76"> 73</a></span>  <span class="keyword">explicit</span> <a class="code" href="classos_1_1WindowsFD.html#a421497a56ee02f01dd4f0773d07eaa76">WindowsFD</a>(<a class="code" href="classos_1_1WindowsFD.html#ac0377db41e1c167339c97dbd69c79ae5ad09c4cb1265f1772bb757a7af277b49f">HANDLE</a> handle, <span class="keywordtype">bool</span> overlapped = <span class="keyword">false</span>)</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  : type_(<
a class="code" href="classos_1_1WindowsFD.html#ac0377db41e1c167339c97dbd69c79ae5">Type</a>::<a class="code" href="classos_1_1WindowsFD.html#ac0377db41e1c167339c97dbd69c79ae5ad09c4cb1265f1772bb757a7af277b49f">HANDLE</a>),</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <a class="code" href="classos_1_1WindowsFD.html#afcf316b6f5178ce1b9002c4202aebcf6">handle_</a>(handle),</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  overlapped_(overlapped),</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  iocp_(<a class="code" href="namespacestd.html">std</a>::make_shared<IOCPData>())</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  {}</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span> </div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="comment">// The `SOCKET
` here is expected to be Windows sockets, such as that</span></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <span class="comment">// used by the Windows Sockets 2 library. The only expected error</span></div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <span class="comment">// value is `INVALID_SOCKET`.</span></div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <span class="comment">//</span></div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <span class="comment">// Note that sockets should almost always be overlapped. We do provide</span></div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="comment">// a way in stout to create non-overlapped sockets, so for completeness, we</span></div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <span class="comment">// have an o
verlapped parameter in the constructor.</span></div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  static_assert(</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  std::is_same<SOCKET, unsigned __int64>::value,</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <span class="stringliteral">"Expected `SOCKET` to be of type `unsigned __int64`."</span>);</div><div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="classos_1_1WindowsFD.html#a33cd936b5641a029b1ea2da80d71c748"> 90</a></span>  <span class="keyword">explicit</span> <a class="code" href="classos_1_1WindowsFD.html#a33cd936b5641a029b1ea2da80d71c748">WindowsFD</a>(SOCKET <a class="code" href="namespacerouting.html#aee51d4e36a57bab7d6ada56e15467370">socket</a>, <span class="keywordtype">bool</span> overlapped = <span class="keyword">true</span>)</div><div class="line"><a n
ame="l00091"></a><span class="lineno"> 91</span>  : type_(<a class="code" href="classos_1_1WindowsFD.html#ac0377db41e1c167339c97dbd69c79ae5">Type</a>::SOCKET),</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  <a class="code" href="classos_1_1WindowsFD.html#a05016bee9531c79ce4576c9b8d9c9922">socket_</a>(socket),</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  overlapped_(overlapped),</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  iocp_(<a class="code" href="namespacestd.html">std</a>::make_shared<IOCPData>())</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  {}</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span> </div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <span class="comment">// On Windows, libevent's `evutil_socket_t` is set to `intptr
_t`.</span></div><div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="classos_1_1WindowsFD.html#a43994eeb484a426990af657f691f66e0"> 98</a></span>  <span class="keyword">explicit</span> <a class="code" h
<TRUNCATED>
[29/50] mesos-site git commit: Updated the website built from mesos
SHA: 7c9c72d.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/index.hhk
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/index.hhk b/content/api/latest/c++/index.hhk
index 0665be3..b21e2dc 100644
--- a/content/api/latest/c++/index.hhk
+++ b/content/api/latest/c++/index.hhk
@@ -35,12 +35,14 @@
<LI><OBJECT type="text/sitemap"><param name="Local" value="3rdparty_2libprocess_2include_2process_2io_8hpp.html"><param name="Name" value="3rdparty/libprocess/include/process/io.hpp"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="3rdparty_2libprocess_2include_2process_2io_8hpp.html#a34d62916736c1dfebd1585cf51f19d0c"><param name="Name" value="BUFFERED_READ_SIZE"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="3rdparty_2libprocess_2include_2process_2io_8hpp.html#ada6541d78cad2ecc225be8a26662c748"><param name="Name" value="is_async"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="3rdparty_2libprocess_2include_2process_2io_8hpp.html#af71c45e0a85e21f6b39060f4e716cebf"><param name="Name" value="poll"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="3rdparty_2libprocess_2include_2process_2io_8hpp.html#a9db94d84fb44b21fb669ade7c6a82114"><param name="Name" value="prepare_async"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="3rdparty_2libprocess_2include_2process_2io_8hpp.html#a4c34d22e475e29f12ac739921dcc580f"><param name="Name" value="read"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="3rdparty_2libprocess_2include_2process_2io_8hpp.html#aca1f059ca9f0d7360631c621debeb879"><param name="Name" value="READ"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="3rdparty_2libprocess_2include_2process_2io_8hpp.html#ab9c4a52a88fcc9983438e391643424ca"><param name="Name" value="redirect"></OBJECT>
- <LI><OBJECT type="text/sitemap"><param name="Local" value="3rdparty_2libprocess_2include_2process_2io_8hpp.html#a49105dc036ad04225c92bd673da5ce39"><param name="Name" value="write"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="3rdparty_2libprocess_2include_2process_2io_8hpp.html#ab005316d71b45c5b05de0a6234c6f8fc"><param name="Name" value="WRITE"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="3rdparty_2libprocess_2include_2process_2io_8hpp.html#a49105dc036ad04225c92bd673da5ce39"><param name="Name" value="write"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="3rdparty_2libprocess_2include_2process_2metrics_2metrics_8hpp.html"><param name="Name" value="3rdparty/libprocess/include/process/metrics/metrics.hpp"></OBJECT>
<UL>
@@ -382,6 +384,7 @@
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess_1_1network.html#aa05dd9eea0c1e4d3d49e2fc049c1a446"><param name="Name" value="accept"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess_1_1network.html#aa05dd9eea0c1e4d3d49e2fc049c1a446"><param name="Name" value="3rdparty/libprocess/include/process/network.hpp"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess_1_1windows.html#a1f34e4ee3092afe93c37c170430c03f5"><param name="Name" value="libwinio.hpp"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classmesos_1_1IDAcceptor.html#a758835e0c0b24fac0cd9c6f40ef42ba4"><param name="Name" value="mesos::IDAcceptor"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structmesos_1_1internal_1_1RequestMediaTypes.html#abfa2dddc4420615fa93f72ffa6bc44e6"><param name="Name" value="mesos::internal::RequestMediaTypes"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespacenet.html#ae830b749f06b2b6d2ed9c42ecb1763d7"><param name="Name" value="net"></OBJECT>
@@ -390,6 +393,7 @@
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1network_1_1internal_1_1PollSocketImpl.html#a26188c98728621ed4bdabc7087c46064"><param name="Name" value="process::network::internal::PollSocketImpl"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1network_1_1internal_1_1Socket.html#a710758874ebc05acdc9bee369254aa13"><param name="Name" value="process::network::internal::Socket"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1network_1_1internal_1_1SocketImpl.html#a736f79aaed2572670aab9eda08cc4efa"><param name="Name" value="process::network::internal::SocketImpl"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess_1_1windows.html#a1f34e4ee3092afe93c37c170430c03f5"><param name="Name" value="process::windows"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespacenet.html#ae830b749f06b2b6d2ed9c42ecb1763d7"><param name="Name" value="stout/include/stout/os/windows/socket.hpp"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structprocess_1_1http_1_1Accepted.html#a44ee87e5b1bda7e30f5afbd709a0c25f"><param name="Name" value="Accepted"></OBJECT>
@@ -979,6 +983,7 @@
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespacecgroups.html#a60fe712940bfb345dc346c1dbc622cf5"><param name="Name" value="cgroups"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespacecgroups.html#a60fe712940bfb345dc346c1dbc622cf5"><param name="Name" value="linux/cgroups.hpp"></OBJECT>
</UL>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="classos_1_1WindowsFD.html#a1a9c96c20213e1b94ba8dcc1bb059163"><param name="Name" value="assign_iocp"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceos.html#a706dc9d1287978f358a9a23b77037fb0"><param name="Name" value="assign_job"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceos.html#a706dc9d1287978f358a9a23b77037fb0"><param name="Name" value="os"></OBJECT>
@@ -1515,10 +1520,10 @@
<LI><OBJECT type="text/sitemap"><param name="Local" value="classBytes.html#a1a2e9277ebe7d227a21f111898c49a8c"><param name="Name" value="bytes"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classBytes.html#a1a2e9277ebe7d227a21f111898c49a8c"><param name="Name" value="bytes"></OBJECT>
- <LI><OBJECT type="text/sitemap"><param name="Local" value="classBytes.html"><param name="Name" value="Bytes"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classBytes.html#a2ad35f92122a5afcb731d6568879482f"><param name="Name" value="BYTES"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classBytes.html"><param name="Name" value="Bytes"></OBJECT>
<UL>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="classBytes.html#a2ad35f92122a5afcb731d6568879482f"><param name="Name" value="BYTES"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classBytes.html#af715f3fd536e251db7e71e9d94fbcf9a"><param name="Name" value="GIGABYTES"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classBytes.html#a66a1678fb3e923ee9cb48025d4c3c871"><param name="Name" value="KILOBYTES"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classBytes.html#aea64a730637e49bd81fbbb10d146e8f1"><param name="Name" value="MEGABYTES"></OBJECT>
@@ -1951,7 +1956,7 @@
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess_1_1internal.html#a902e2646d88c41ce674a3009cafe0aad"><param name="Name" value="childMain"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess_1_1internal.html#a902e2646d88c41ce674a3009cafe0aad"><param name="Name" value="process::internal"></OBJECT>
- <LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess_1_1internal.html#a902e2646d88c41ce674a3009cafe0aad"><param name="Name" value="subprocess_posix.hpp"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess_1_1internal.html#a902e2646d88c41ce674a3009cafe0aad"><param name="Name" value="src/posix/subprocess.hpp"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structmesos_1_1internal_1_1master_1_1allocator_1_1DRFSorter_1_1Node.html#a4a4cee57ee80c001f04eee39b11d75ea"><param name="Name" value="children"></OBJECT>
<UL>
@@ -2084,7 +2089,7 @@
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceos.html#a7d71bda07a41304403b0e13aa47f0764"><param name="Name" value="os"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceos.html#a7d71bda07a41304403b0e13aa47f0764"><param name="Name" value="posix/fcntl.hpp"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess_1_1internal.html#a345a534b82b79bf20333fb6faef43e93"><param name="Name" value="process::internal"></OBJECT>
- <LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess_1_1internal.html#a345a534b82b79bf20333fb6faef43e93"><param name="Name" value="subprocess_posix.hpp"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess_1_1internal.html#a345a534b82b79bf20333fb6faef43e93"><param name="Name" value="src/posix/subprocess.hpp"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceos.html#a5a4254462f48e5b268065b862c97bf93"><param name="Name" value="windows/fcntl.hpp"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceos_1_1signal__safe.html#a0f7ad48cdb581ef66ce15257f0e8947a"><param name="Name" value="clone"></OBJECT>
@@ -2105,7 +2110,7 @@
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess_1_1internal.html#afe2c3a3ffdd0ee6fda82e198ece80a37"><param name="Name" value="cloneChild"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess_1_1internal.html#afe2c3a3ffdd0ee6fda82e198ece80a37"><param name="Name" value="process::internal"></OBJECT>
- <LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess_1_1internal.html#afe2c3a3ffdd0ee6fda82e198ece80a37"><param name="Name" value="subprocess_posix.hpp"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess_1_1internal.html#afe2c3a3ffdd0ee6fda82e198ece80a37"><param name="Name" value="src/posix/subprocess.hpp"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespacerouting_1_1diagnosis_1_1socket_1_1state.html#adfaf971c4f87f39a233f73a1ba434759"><param name="Name" value="CLOSE"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classDynamicLibrary.html#a4c65d79591c7fb3173916dec0a1ddd8e"><param name="Name" value="close"></OBJECT>
@@ -2294,6 +2299,7 @@
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess_1_1http.html#a54e53c8006298fe99e3fb5f55c0e8c41"><param name="Name" value="3rdparty/libprocess/include/process/http.hpp"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess_1_1network.html#a502d62f6f908591b8677c90341af28cc"><param name="Name" value="3rdparty/libprocess/include/process/network.hpp"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess_1_1windows.html#a5afdaeaeb57343d0aca728b74dcd3f71"><param name="Name" value="libwinio.hpp"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classmesos_1_1internal_1_1HttpConnectionProcess.html#a0e32a05c88072b7db23e87a384ffa1ea"><param name="Name" value="mesos::internal::HttpConnectionProcess"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classmesos_1_1internal_1_1slave_1_1IOSwitchboard.html#acd44076631fa55207e19b315a13cbdd3"><param name="Name" value="mesos::internal::slave::IOSwitchboard"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespacenet.html#ad810412a39640d3db31448c8ce7b280b"><param name="Name" value="net"></OBJECT>
@@ -2304,6 +2310,7 @@
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1network_1_1internal_1_1PollSocketImpl.html#a217849468a99bd63d10a8f8acfb2e496"><param name="Name" value="process::network::internal::PollSocketImpl"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1network_1_1internal_1_1Socket.html#aa441e29328f4f4416a07689de4040022"><param name="Name" value="process::network::internal::Socket"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1network_1_1internal_1_1SocketImpl.html#a54ff5817c8e53085c47d8df7e6f5ffd9"><param name="Name" value="process::network::internal::SocketImpl"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess_1_1windows.html#a5afdaeaeb57343d0aca728b74dcd3f71"><param name="Name" value="process::windows"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespacenet.html#ad810412a39640d3db31448c8ce7b280b"><param name="Name" value="stout/include/stout/os/windows/socket.hpp"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classmesos_1_1internal_1_1HttpConnectionProcess.html#a6205fa14f66139a8c54ad3c3619fba1b"><param name="Name" value="connected"></OBJECT>
@@ -2798,6 +2805,7 @@
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1network_1_1internal_1_1SocketImpl.html#a5a00f792b5055241fea9f1fc81b2c4c6"><param name="Name" value="process::network::internal::SocketImpl"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1network_1_1unix_1_1Address.html#af91b88086c6c1385e61b42b20510bdd4"><param name="Name" value="process::network::unix::Address"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Time.html#a7fa791510b349cfadefe26460730cc2a"><param name="Name" value="process::Time"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1windows_1_1EventLoop.html#a3bd3da5d721cf2c4db9c5551bdccc3a4"><param name="Name" value="process::windows::EventLoop"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespacerouting_1_1queueing_1_1internal.html#ad758dd14190e35694010d8975d39e24c"><param name="Name" value="queueing/internal.hpp"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespacerouting_1_1filter_1_1basic.html#a35b72778ac9c32776fdbdda05a74cf70"><param name="Name" value="routing::filter::basic"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespacerouting_1_1filter_1_1icmp.html#a0f804ac0e7638b661235541ce9ecdfa8"><param name="Name" value="routing::filter::icmp"></OBJECT>
@@ -2930,7 +2938,7 @@
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess_1_1internal.html#a32020f2bbbcc116f2e055e209b4b8ce7"><param name="Name" value="createChildProcess"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess_1_1internal.html#a32020f2bbbcc116f2e055e209b4b8ce7"><param name="Name" value="process::internal"></OBJECT>
- <LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess_1_1internal.html#a32020f2bbbcc116f2e055e209b4b8ce7"><param name="Name" value="subprocess_windows.hpp"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess_1_1internal.html#a32020f2bbbcc116f2e055e209b4b8ce7"><param name="Name" value="src/windows/subprocess.hpp"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespacemesos_1_1internal_1_1tests_1_1common.html#a5100f2f8019ea6e27f1d14fc33429d72"><param name="Name" value="createCommandInfo"></OBJECT>
<UL>
@@ -3700,7 +3708,7 @@
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess_1_1internal.html#af2f19b6f367cddc0c8283560a9cd9215"><param name="Name" value="defaultClone"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess_1_1internal.html#af2f19b6f367cddc0c8283560a9cd9215"><param name="Name" value="process::internal"></OBJECT>
- <LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess_1_1internal.html#af2f19b6f367cddc0c8283560a9cd9215"><param name="Name" value="subprocess_posix.hpp"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess_1_1internal.html#af2f19b6f367cddc0c8283560a9cd9215"><param name="Name" value="src/posix/subprocess.hpp"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespacemesos_1_1internal_1_1tests_1_1internal.html#a44cfa85fa3dc7119765112250095f094"><param name="Name" value="DefaultCredential2"></OBJECT>
<UL>
@@ -4053,8 +4061,8 @@
<LI><OBJECT type="text/sitemap"><param name="Local" value="classDocker_1_1RunOptions.html#a63a9cb71e8f2d710c2fa42d8ba40c819"><param name="Name" value="Docker::RunOptions"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceos_1_1stat.html#a305c82e6d53ccd82665b4b3648afcd1ca884cbffa48c7e5b804161fdc71389c7e"><param name="Name" value="DO_NOT_FOLLOW_SYMLINK"></OBJECT>
- <LI><OBJECT type="text/sitemap"><param name="Local" value="namespacedocker.html"><param name="Name" value="docker"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classDocker.html"><param name="Name" value="Docker"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="namespacedocker.html"><param name="Name" value="docker"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="docker_2docker_8hpp.html"><param name="Name" value="docker/docker.hpp"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classDocker_1_1Container.html"><param name="Name" value="Docker::Container"></OBJECT>
<UL>
@@ -4374,6 +4382,7 @@
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceos.html#a622be738276833e635a7db06cff31a35"><param name="Name" value="dup"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceos.html#a622be738276833e635a7db06cff31a35"><param name="Name" value="os"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="classos_1_1WindowsFD.html#ae8d4fd38b52ea9f38605f46195fd040b"><param name="Name" value="os::WindowsFD"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceos.html#a622be738276833e635a7db06cff31a35"><param name="Name" value="posix/dup.hpp"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceos.html#ac6a52f61ab8f31856757007b4be7f5e6"><param name="Name" value="windows/dup.hpp"></OBJECT>
</UL>
@@ -5848,6 +5857,7 @@
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceinternal_1_1windows.html#a8ee4f75d803d8ed56ce760d8e1dfac14"><param name="Name" value="reparsepoint.hpp"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="clasself_1_1File.html#a2a4f93c734087be5acbd3788dd276f78"><param name="Name" value="get_interpreter"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="classos_1_1WindowsFD.html#a380eb8d9b7bc0e6b3bfae0e8e9c6bb0f"><param name="Name" value="get_iocp"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceos.html#ade6490bdde78aaec7d3ffec9396e1018"><param name="Name" value="get_job_info"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceos.html#ade6490bdde78aaec7d3ffec9396e1018"><param name="Name" value="os"></OBJECT>
@@ -7299,6 +7309,12 @@
<LI><OBJECT type="text/sitemap"><param name="Local" value="include_2mesos_2values_8hpp.html#a3f0be1a44db72a579bd0785ae5f0f5f7"><param name="Name" value="operator=="></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="include_2mesos_2values_8hpp.html#a0f4a31f0728bc6226c7d200cb73be0bd"><param name="Name" value="parse"></OBJECT>
</UL>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="include_2process_2subprocess_8hpp.html"><param name="Name" value="include/process/subprocess.hpp"></OBJECT>
+ <UL>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="include_2process_2subprocess_8hpp.html#afc6611c4913642642277b44447a16e55"><param name="Name" value="InputFileDescriptors"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="include_2process_2subprocess_8hpp.html#a882829822afa4f33b90aafc9c4ffa9af"><param name="Name" value="OutputFileDescriptors"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="include_2process_2subprocess_8hpp.html#a2d7e0a283bc0c9eca8a8b0532e026269"><param name="Name" value="subprocess"></OBJECT>
+ </UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classmesos_1_1internal_1_1slave_1_1Executor.html#a79093461e7bc35f4b4b9c7a796b88e2e"><param name="Name" value="incompleteTasks"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classmesos_1_1internal_1_1tests_1_1MemoryTestHelper.html#a49cb28aaf92bfdcfe17320735214451b"><param name="Name" value="increasePageCache"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classmesos_1_1internal_1_1tests_1_1MemoryTestHelper.html#ab33a4ec1bdc197fca39d2a8285e868f2"><param name="Name" value="increaseRSS"></OBJECT>
@@ -7480,8 +7496,8 @@
<LI><OBJECT type="text/sitemap"><param name="Local" value="classmesos_1_1internal_1_1log_1_1tool_1_1Benchmark_1_1Flags.html#a380cb9956d9600e23e23990170f2b8b0"><param name="Name" value="input"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess.html#afc6611c4913642642277b44447a16e55"><param name="Name" value="InputFileDescriptors"></OBJECT>
<UL>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess.html#afc6611c4913642642277b44447a16e55"><param name="Name" value="include/process/subprocess.hpp"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess.html#afc6611c4913642642277b44447a16e55"><param name="Name" value="process"></OBJECT>
- <LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess.html#afc6611c4913642642277b44447a16e55"><param name="Name" value="subprocess.hpp"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="subcommand_8hpp.html#ac2e7e3d5ad8dee9c2a4a513b3bb7d10d"><param name="Name" value="INSERT"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classDocker.html#a3be28ab0231c0fefaf839661b790c457"><param name="Name" value="inspect"></OBJECT>
@@ -7652,6 +7668,13 @@
<LI><OBJECT type="text/sitemap"><param name="Local" value="classmesos_1_1internal_1_1master_1_1Master.html#ab3b08c310b38fab6b4ad8d3666abf60b"><param name="Name" value="inverseOfferTimeout"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classJvm.html#a2684939a9539b25dd08aa969c6d6afba"><param name="Name" value="invoke"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classJvm.html#a0c08d2480d97fdbdefa52f5ad506a5f5"><param name="Name" value="invokeStatic"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="io__internal_8hpp.html"><param name="Name" value="io_internal.hpp"></OBJECT>
+ <UL>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="io__internal_8hpp.html#a2291f1f69f4bdf80f3b114c493eb1e37"><param name="Name" value="is_async"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="io__internal_8hpp.html#a9458b24220892124c2112b3fe85e585e"><param name="Name" value="prepare_async"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="io__internal_8hpp.html#ac0a90b8abf47098e5a57d90e744a42a8"><param name="Name" value="read"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="io__internal_8hpp.html#ab4ecbbe96ef3c0600060e16c47988798"><param name="Name" value="write"></OBJECT>
+ </UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespacecgroups_1_1blkio_1_1cfq.html#aadb0e71d712040f776c17f46ae932f1e"><param name="Name" value="io_merged"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespacecgroups_1_1blkio_1_1cfq.html#aadb0e71d712040f776c17f46ae932f1e"><param name="Name" value="cgroups::blkio::cfq"></OBJECT>
@@ -7750,6 +7773,13 @@
<LI><OBJECT type="text/sitemap"><param name="Local" value="structprocess_1_1Event.html#ac2d1b2d710b1b3002da0116239787517"><param name="Name" value="process::Event"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1StateMachine.html#a6f0830360e0999fdb3803b31dbd016ea"><param name="Name" value="process::StateMachine"></OBJECT>
</UL>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess_1_1io.html#ada6541d78cad2ecc225be8a26662c748"><param name="Name" value="is_async"></OBJECT>
+ <UL>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess_1_1io.html#ada6541d78cad2ecc225be8a26662c748"><param name="Name" value="3rdparty/libprocess/include/process/io.hpp"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess_1_1io_1_1internal.html#a2291f1f69f4bdf80f3b114c493eb1e37"><param name="Name" value="io_internal.hpp"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess_1_1io.html#ada6541d78cad2ecc225be8a26662c748"><param name="Name" value="process::io"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess_1_1io_1_1internal.html#a2291f1f69f4bdf80f3b114c493eb1e37"><param name="Name" value="process::io::internal"></OBJECT>
+ </UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespacenet.html#a6d996e15b39630257af8d8a0379c7f7a"><param name="Name" value="is_inprogress_error"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespacenet.html#a6d996e15b39630257af8d8a0379c7f7a"><param name="Name" value="net"></OBJECT>
@@ -8285,8 +8315,8 @@
<LI><OBJECT type="text/sitemap"><param name="Local" value="classJvm_1_1Object.html"><param name="Name" value="Jvm::Object"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classJvm_1_1Object.html#abfabfb01075e88d34e15c89153dc231e"><param name="Name" value="Jvm"></OBJECT>
- <LI><OBJECT type="text/sitemap"><param name="Local" value="classJvm_1_1Object.html#a3c338f2867b29b7868472a714014ca76"><param name="Name" value="object"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classJvm_1_1Object.html#ace2b910d3838c7ad2ed5f67d872d9bd9"><param name="Name" value="Object"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="classJvm_1_1Object.html#a3c338f2867b29b7868472a714014ca76"><param name="Name" value="object"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classJvm_1_1Object.html#ac0d9d73c04b0977fcd51ac2a58150387"><param name="Name" value="operator jobject"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classJvm_1_1Object.html#ab6c5a893c5492b2f6e8ef828ddbdac65"><param name="Name" value="operator="></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classJvm_1_1Object.html#a1a5694b40e2d4f114e39623aca6bbbf1"><param name="Name" value="~Object"></OBJECT>
@@ -8645,6 +8675,7 @@
<LI><OBJECT type="text/sitemap"><param name="Local" value="classmesos_1_1MesosSchedulerDriver.html#aeecb18557c3d94f8c8cc46513f770945"><param name="Name" value="mesos::MesosSchedulerDriver"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classmesos_1_1SchedulerDriver.html#a63257236eb2943883cf4a88ab2abb851"><param name="Name" value="mesos::SchedulerDriver"></OBJECT>
</UL>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1windows_1_1EventLoop.html#a006cb0c8efb7aaadadf0a692d9c2659a"><param name="Name" value="launchTimer"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structmesos_1_1internal_1_1slave_1_1ImageInfo.html#a00b3bbd185c4191172c69aca4202529a"><param name="Name" value="layers"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespacemesos_1_1internal_1_1slave_1_1provisioner_1_1paths.html#ae4816154edb25f9ff364540496fed9e6"><param name="Name" value="LAYERS_FILE"></OBJECT>
<UL>
@@ -8850,6 +8881,21 @@
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespacemesos_1_1internal_1_1slave_1_1paths.html#a0eb6a5b0180c943374211289e1d4a312"><param name="Name" value="slave/paths.hpp"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structmesos_1_1internal_1_1slave_1_1state_1_1RunState.html#af5bbb78d5d870816bed066dc4d55c8ea"><param name="Name" value="libprocessPid"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="libwinio_8hpp.html"><param name="Name" value="libwinio.hpp"></OBJECT>
+ <UL>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="libwinio_8hpp.html#a1f34e4ee3092afe93c37c170430c03f5"><param name="Name" value="accept"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="libwinio_8hpp.html#a5afdaeaeb57343d0aca728b74dcd3f71"><param name="Name" value="connect"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="libwinio_8hpp.html#a7436ed89e84ff3415987de0ca9428d08"><param name="Name" value="read"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="libwinio_8hpp.html#a37fde6f31c2f9838a18cf83c2c865134"><param name="Name" value="recv"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="libwinio_8hpp.html#a04c64346155d34517acdf8b587162868"><param name="Name" value="send"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="libwinio_8hpp.html#afc59f27e725b5feb12f76e1c008ba767"><param name="Name" value="sendfile"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="libwinio_8hpp.html#a69a29846581bb7bb1084e9ee90cbe8e6"><param name="Name" value="write"></OBJECT>
+ </UL>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess.html#a3b1f9b3719ea6358ad426ae31bc8eae6"><param name="Name" value="libwinio_loop"></OBJECT>
+ <UL>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess.html#a3b1f9b3719ea6358ad426ae31bc8eae6"><param name="Name" value="process"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess.html#a3b1f9b3719ea6358ad426ae31bc8eae6"><param name="Name" value="windows/event_loop.hpp"></OBJECT>
+ </UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespacecgroups_1_1memory.html#abcf50b175fea5a521400f6b9e5574e90"><param name="Name" value="limit_in_bytes"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespacecgroups_1_1memory.html#abcf50b175fea5a521400f6b9e5574e90"><param name="Name" value="cgroups::memory"></OBJECT>
@@ -11256,8 +11302,8 @@
<LI><OBJECT type="text/sitemap"><param name="Local" value="structmesos_1_1internal_1_1master_1_1Role.html#a38054bb4be46d987910ea84f6c21bdf5"><param name="Name" value="allocatedResources"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structmesos_1_1internal_1_1master_1_1Role.html#a6cbb8b2d545779d9fefba998cbb103d1"><param name="Name" value="frameworks"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structmesos_1_1internal_1_1master_1_1Role.html#a406f032bfbc577ec6dd1275e48fe48cf"><param name="Name" value="removeFramework"></OBJECT>
- <LI><OBJECT type="text/sitemap"><param name="Local" value="structmesos_1_1internal_1_1master_1_1Role.html#ae229ba3fea46929a5a6f5819e3c318cc"><param name="Name" value="role"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structmesos_1_1internal_1_1master_1_1Role.html#accf0d5437cf11da50c674ecd6c19c7ce"><param name="Name" value="Role"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="structmesos_1_1internal_1_1master_1_1Role.html#ae229ba3fea46929a5a6f5819e3c318cc"><param name="Name" value="role"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structmesos_1_1internal_1_1master_1_1Slave.html"><param name="Name" value="mesos::internal::master::Slave"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structmesos_1_1internal_1_1master_1_1Slave_1_1ResourceProvider.html"><param name="Name" value="mesos::internal::master::Slave::ResourceProvider"></OBJECT>
@@ -14608,8 +14654,8 @@
<LI><OBJECT type="text/sitemap"><param name="Local" value="classmesos_1_1ResourceConversion.html#adb691cdd12b7af7db52284b0a1737533"><param name="Name" value="apply"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classmesos_1_1ResourceConversion.html#afa8d5fe5c9c3f6f1588d7df710262080"><param name="Name" value="consumed"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classmesos_1_1ResourceConversion.html#a5a8038920d7a88ed4c0b5b096f6fce83"><param name="Name" value="converted"></OBJECT>
- <LI><OBJECT type="text/sitemap"><param name="Local" value="classmesos_1_1ResourceConversion.html#aa9039c86575590f50e1e03cc3f42e9e6"><param name="Name" value="PostValidation"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classmesos_1_1ResourceConversion.html#a08a56bacb82357b13c8fa3f03e999781"><param name="Name" value="postValidation"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="classmesos_1_1ResourceConversion.html#aa9039c86575590f50e1e03cc3f42e9e6"><param name="Name" value="PostValidation"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classmesos_1_1ResourceConversion.html#aad98a62b2681ff5a4b77f9dc20e9140b"><param name="Name" value="ResourceConversion"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classmesos_1_1Resources.html"><param name="Name" value="mesos::Resources"></OBJECT>
@@ -15038,8 +15084,8 @@
<LI><OBJECT type="text/sitemap"><param name="Local" value="classmesos_1_1v1_1_1ResourceConversion.html#a9b5fd5798c8e81bbef5f686b09432c5d"><param name="Name" value="apply"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classmesos_1_1v1_1_1ResourceConversion.html#a143d22da9ef8e68799b35478bb4e22fe"><param name="Name" value="consumed"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classmesos_1_1v1_1_1ResourceConversion.html#aa45d29dae28bcc977661fd541714ce64"><param name="Name" value="converted"></OBJECT>
- <LI><OBJECT type="text/sitemap"><param name="Local" value="classmesos_1_1v1_1_1ResourceConversion.html#a29997789326dfb76ccd866cbb00cbf7d"><param name="Name" value="PostValidation"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classmesos_1_1v1_1_1ResourceConversion.html#a2c8c762596677cbf622fb4dadd922c43"><param name="Name" value="postValidation"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="classmesos_1_1v1_1_1ResourceConversion.html#a29997789326dfb76ccd866cbb00cbf7d"><param name="Name" value="PostValidation"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classmesos_1_1v1_1_1ResourceConversion.html#a35eb7b515597e4fed518448d857bb7cc"><param name="Name" value="ResourceConversion"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classmesos_1_1v1_1_1Resources.html"><param name="Name" value="mesos::v1::Resources"></OBJECT>
@@ -16017,10 +16063,13 @@
<LI><OBJECT type="text/sitemap"><param name="Local" value="classmesos_1_1internal_1_1tests_1_1KillPolicyTestHelper.html#a10eecc0ec13819b8117167b4a349034d"><param name="Name" value="mesos::internal::tests::KillPolicyTestHelper"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classmesos_1_1internal_1_1tests_1_1MemoryTestHelper.html#aa5dad9a209f238aa7d65dde34d8e5c2d"><param name="Name" value="mesos::internal::tests::MemoryTestHelper"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classmesos_1_1internal_1_1tests_1_1SetnsTestHelper.html#a10f7ff24e377e39c6c01dab68bfc2ede"><param name="Name" value="mesos::internal::tests::SetnsTestHelper"></OBJECT>
- <LI><OBJECT type="text/sitemap"><param name="Local" value="classmesos_1_1uri_1_1CopyFetcherPlugin.html#ae6ff1cef4e490fa372960bf17f8446a9"><param name="Name" value="mesos::uri::CopyFetcherPlugin"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classmesos_1_1uri_1_1CopyFetcherPlugin.html#ab183d70e36bb66b5f55c543637488881"><param name="Name" value="name"></OBJECT>
- <LI><OBJECT type="text/sitemap"><param name="Local" value="classmesos_1_1uri_1_1CurlFetcherPlugin.html#a899fab81e86817aad545389c3cc5b535"><param name="Name" value="NAME"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="classmesos_1_1uri_1_1CopyFetcherPlugin.html#ae6ff1cef4e490fa372960bf17f8446a9"><param name="Name" value="NAME"></OBJECT>
+ <UL>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="classmesos_1_1uri_1_1CopyFetcherPlugin.html#ae6ff1cef4e490fa372960bf17f8446a9"><param name="Name" value="mesos::uri::CopyFetcherPlugin"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="classmesos_1_1uri_1_1CurlFetcherPlugin.html#a899fab81e86817aad545389c3cc5b535"><param name="Name" value="mesos::uri::CurlFetcherPlugin"></OBJECT>
+ </UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classmesos_1_1uri_1_1CurlFetcherPlugin.html#a3797f96a62adbc485e54c139cb967d3b"><param name="Name" value="name"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classmesos_1_1uri_1_1CurlFetcherPlugin.html#a3797f96a62adbc485e54c139cb967d3b"><param name="Name" value="mesos::uri::CurlFetcherPlugin"></OBJECT>
@@ -17288,6 +17337,7 @@
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceos_1_1internal.html#a1f75643e24051d2b8d98244abf0b9ece"><param name="Name" value="recursive_remove_directory"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceos_1_1internal.html#a637592b0315b2f8c779ab681177f911a"><param name="Name" value="signaledWrapper"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceos_1_1internal.html#a8c0f383d0ce4a337b2076fab2df49221"><param name="Name" value="signalHandler"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceos_1_1internal.html#a1493e5fcc92753702d08b36881ee8f97"><param name="Name" value="windows_to_unix_epoch"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceos_1_1libraries.html"><param name="Name" value="os::libraries"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceos_1_1libraries_1_1Library.html"><param name="Name" value="os::libraries::Library"></OBJECT>
@@ -17454,7 +17504,10 @@
<LI><OBJECT type="text/sitemap"><param name="Local" value="structos_1_1Wait.html"><param name="Name" value="os::Wait"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classos_1_1WindowsFD.html"><param name="Name" value="os::WindowsFD"></OBJECT>
<UL>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="classos_1_1WindowsFD.html#a1a9c96c20213e1b94ba8dcc1bb059163"><param name="Name" value="assign_iocp"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classos_1_1WindowsFD.html#a94b69cae4edb8f3549845fbfa0355b7c"><param name="Name" value="crt"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="classos_1_1WindowsFD.html#ae8d4fd38b52ea9f38605f46195fd040b"><param name="Name" value="dup"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="classos_1_1WindowsFD.html#a380eb8d9b7bc0e6b3bfae0e8e9c6bb0f"><param name="Name" value="get_iocp"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classos_1_1WindowsFD.html#ac0377db41e1c167339c97dbd69c79ae5ad09c4cb1265f1772bb757a7af277b49f"><param name="Name" value="HANDLE"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classos_1_1WindowsFD.html#a4dce5dbc3d019589b4b61d6d17e1da45"><param name="Name" value="is_overlapped"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classos_1_1WindowsFD.html#ab961444eec07c587c9a67122daf4fd33"><param name="Name" value="is_valid"></OBJECT>
@@ -17618,8 +17671,8 @@
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess.html#a882829822afa4f33b90aafc9c4ffa9af"><param name="Name" value="OutputFileDescriptors"></OBJECT>
<UL>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess.html#a882829822afa4f33b90aafc9c4ffa9af"><param name="Name" value="include/process/subprocess.hpp"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess.html#a882829822afa4f33b90aafc9c4ffa9af"><param name="Name" value="process"></OBJECT>
- <LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess.html#a882829822afa4f33b90aafc9c4ffa9af"><param name="Name" value="subprocess.hpp"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structmesos_1_1internal_1_1master_1_1Metrics.html#a6481c3e2a31f2fac641d7426b4486671"><param name="Name" value="outstanding_offers"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="overlapped_8hpp.html"><param name="Name" value="overlapped.hpp"></OBJECT>
@@ -17873,10 +17926,10 @@
<LI><OBJECT type="text/sitemap"><param name="Local" value="path_8hpp.html#a222005a87c0bb37fbabdc8effe38aed1"><param name="Name" value="operator>"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="path_8hpp.html#a0a79d7788a7f0189a4a5b69b73dce859"><param name="Name" value="operator>="></OBJECT>
</UL>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="classPath.html"><param name="Name" value="Path"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespacepath.html"><param name="Name" value="path"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classPath.html"><param name="Name" value="Path"></OBJECT>
<UL>
- <LI><OBJECT type="text/sitemap"><param name="Local" value="classPath.html#a240c7b71a23c8e97b5490dbae75cc948"><param name="Name" value="absolute"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classPath.html#a11c34646ac636526f1b28b61057f3b1f"><param name="Name" value="basename"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classPath.html#a0449e93ffb615ef7fd198ef03dd1100c"><param name="Name" value="dirname"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classPath.html#a46e804f0daca3c3a0fef137364aca5ea"><param name="Name" value="extension"></OBJECT>
@@ -18373,6 +18426,13 @@
<LI><OBJECT type="text/sitemap"><param name="Local" value="classmesos_1_1slave_1_1Isolator.html#a35cb3afae3f941fd4450a763eb123d6d"><param name="Name" value="mesos::slave::Isolator"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespacemesos_1_1internal_1_1fs_1_1chroot.html#a3c224bd1aaafda45a323c3d84f8cc85a"><param name="Name" value="src/linux/fs.hpp"></OBJECT>
</UL>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess_1_1io.html#a9db94d84fb44b21fb669ade7c6a82114"><param name="Name" value="prepare_async"></OBJECT>
+ <UL>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess_1_1io.html#a9db94d84fb44b21fb669ade7c6a82114"><param name="Name" value="3rdparty/libprocess/include/process/io.hpp"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess_1_1io_1_1internal.html#a9458b24220892124c2112b3fe85e585e"><param name="Name" value="io_internal.hpp"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess_1_1io.html#a9db94d84fb44b21fb669ade7c6a82114"><param name="Name" value="process::io"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess_1_1io_1_1internal.html#a9458b24220892124c2112b3fe85e585e"><param name="Name" value="process::io::internal"></OBJECT>
+ </UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="preprocessor_8hpp.html"><param name="Name" value="preprocessor.hpp"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="preprocessor_8hpp.html#a90e1b5ab607f3428668e5dd9a014ecb0"><param name="Name" value="CAT"></OBJECT>
@@ -18641,8 +18701,8 @@
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1EventQueue.html"><param name="Name" value="process::EventQueue"></OBJECT>
<UL>
- <LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1EventQueue.html#a73f44b10f6d09ead6bdf3ab11cba4d06"><param name="Name" value="consumer"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1EventQueue.html#a11390aaa07bced511a5b7fe4c94e97fd"><param name="Name" value="Consumer"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1EventQueue.html#a73f44b10f6d09ead6bdf3ab11cba4d06"><param name="Name" value="consumer"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1EventQueue.html#ad2d51d8a2a80f473de0bcf2e08e48d90"><param name="Name" value="EventQueue"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1EventQueue.html#aa95046266e731af49ccfb9d689cb1eca"><param name="Name" value="producer"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1EventQueue.html#aaf00b363e56ec3a72a6f775a3814d6a0"><param name="Name" value="Producer"></OBJECT>
@@ -18985,8 +19045,8 @@
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structprocess_1_1http_1_1Request.html#ab73883ea45426022ec851b2069f8ed21"><param name="Name" value="acceptsEncoding"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structprocess_1_1http_1_1Request.html#aa944870ad568bea5f0d0ce28763d0cef"><param name="Name" value="acceptsMediaType"></OBJECT>
- <LI><OBJECT type="text/sitemap"><param name="Local" value="structprocess_1_1http_1_1Request.html#a78dfcfa785afc80e221d92543ff617f1"><param name="Name" value="body"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structprocess_1_1http_1_1Request.html#a2498f3dfc1ebe743f650e72f147c7887a25d7d2e078ea5bd01283be7cc227e071"><param name="Name" value="BODY"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="structprocess_1_1http_1_1Request.html#a78dfcfa785afc80e221d92543ff617f1"><param name="Name" value="body"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structprocess_1_1http_1_1Request.html#ad0493ac04e37acf41127dfff3625c0f5"><param name="Name" value="client"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structprocess_1_1http_1_1Request.html#a53555a597f9376d2dd71daa799a90494"><param name="Name" value="headers"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structprocess_1_1http_1_1Request.html#a3a459e9dbce042511e6359533f6925d4"><param name="Name" value="keepAlive"></OBJECT>
@@ -18999,13 +19059,13 @@
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structprocess_1_1http_1_1Response.html"><param name="Name" value="process::http::Response"></OBJECT>
<UL>
- <LI><OBJECT type="text/sitemap"><param name="Local" value="structprocess_1_1http_1_1Response.html#a5f6d23dd77e1eeb0737dc728e0109905"><param name="Name" value="body"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structprocess_1_1http_1_1Response.html#a6dd5881e0450540a106e37257434eaada7d2a4db1b1426c6caab18fa8b484f4f5"><param name="Name" value="BODY"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="structprocess_1_1http_1_1Response.html#a5f6d23dd77e1eeb0737dc728e0109905"><param name="Name" value="body"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structprocess_1_1http_1_1Response.html#ad6530fddd03380dbb3b23b17523cb242"><param name="Name" value="code"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structprocess_1_1http_1_1Response.html#ae463c5c7a083aea98a89cf9b675b59ab"><param name="Name" value="headers"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structprocess_1_1http_1_1Response.html#a6dd5881e0450540a106e37257434eaadaa49acb0a3f416b805cb49ec1a4549b14"><param name="Name" value="NONE"></OBJECT>
- <LI><OBJECT type="text/sitemap"><param name="Local" value="structprocess_1_1http_1_1Response.html#aad42d5f8c85b81742de9f3f1a0f6d328"><param name="Name" value="path"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structprocess_1_1http_1_1Response.html#a6dd5881e0450540a106e37257434eaada069715e7afa526f4f971dcf3d704b5c8"><param name="Name" value="PATH"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="structprocess_1_1http_1_1Response.html#aad42d5f8c85b81742de9f3f1a0f6d328"><param name="Name" value="path"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structprocess_1_1http_1_1Response.html#a6dd5881e0450540a106e37257434eaada8d713d3c6326b2c6f5730c5f46f3e3f0"><param name="Name" value="PIPE"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structprocess_1_1http_1_1Response.html#aa3543eb8ecd36f5d6d91b2640d471359"><param name="Name" value="reader"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structprocess_1_1http_1_1Response.html#ac7ac8132a8d8772335efd5a55d9ebb4f"><param name="Name" value="Response"></OBJECT>
@@ -19252,14 +19312,24 @@
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess_1_1internal.html#a6ddcc193edfcb094fd22fb8e77bfb541"><param name="Name" value="thenf"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess_1_1io.html"><param name="Name" value="process::io"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess_1_1io_1_1internal.html"><param name="Name" value="process::io::internal"></OBJECT>
+ <UL>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess_1_1io_1_1internal.html#a2291f1f69f4bdf80f3b114c493eb1e37"><param name="Name" value="is_async"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess_1_1io_1_1internal.html#a9458b24220892124c2112b3fe85e585e"><param name="Name" value="prepare_async"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess_1_1io_1_1internal.html#ac0a90b8abf47098e5a57d90e744a42a8"><param name="Name" value="read"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess_1_1io_1_1internal.html#ab4ecbbe96ef3c0600060e16c47988798"><param name="Name" value="write"></OBJECT>
+ </UL>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess_1_1io.html"><param name="Name" value="process::io"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess_1_1io.html#a34d62916736c1dfebd1585cf51f19d0c"><param name="Name" value="BUFFERED_READ_SIZE"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess_1_1io.html#ada6541d78cad2ecc225be8a26662c748"><param name="Name" value="is_async"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess_1_1io.html#af71c45e0a85e21f6b39060f4e716cebf"><param name="Name" value="poll"></OBJECT>
- <LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess_1_1io.html#aca1f059ca9f0d7360631c621debeb879"><param name="Name" value="READ"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess_1_1io.html#a9db94d84fb44b21fb669ade7c6a82114"><param name="Name" value="prepare_async"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess_1_1io.html#a4c34d22e475e29f12ac739921dcc580f"><param name="Name" value="read"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess_1_1io.html#aca1f059ca9f0d7360631c621debeb879"><param name="Name" value="READ"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess_1_1io.html#ab9c4a52a88fcc9983438e391643424ca"><param name="Name" value="redirect"></OBJECT>
- <LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess_1_1io.html#a49105dc036ad04225c92bd673da5ce39"><param name="Name" value="write"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess_1_1io.html#ab005316d71b45c5b05de0a6234c6f8fc"><param name="Name" value="WRITE"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess_1_1io.html#a49105dc036ad04225c92bd673da5ce39"><param name="Name" value="write"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Latch.html"><param name="Name" value="process::Latch"></OBJECT>
<UL>
@@ -19613,8 +19683,8 @@
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Promise.html#aa70c825f2b107eac5f393db03d2dd6ec"><param name="Name" value="associate"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Promise.html#a8f50fcfd7ddb6dd39ec2cd468377cd5d"><param name="Name" value="discard"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Promise.html#a2fc569c8bf99acb3e53a68ff3b266667"><param name="Name" value="fail"></OBJECT>
- <LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Promise.html#ab033f7626ddfc7f1d62cb3d3952d166e"><param name="Name" value="Future"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Promise.html#a8aef752d6c90cb11e58e3166b7592ef1"><param name="Name" value="future"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Promise.html#ab033f7626ddfc7f1d62cb3d3952d166e"><param name="Name" value="Future"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Promise.html#a6d293d289666af0adec11f68f9fede9c"><param name="Name" value="internal::discarded"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Promise.html#ad96eae1c1003a896e34b6a4c66e23c39"><param name="Name" value="Promise"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Promise.html#a989b8dfa7eb2633de3f0f25ac2b87943"><param name="Name" value="set"></OBJECT>
@@ -19916,24 +19986,43 @@
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1WeakFuture.html#a46a914af79e5b1fb309866a6288a4217"><param name="Name" value="get"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1WeakFuture.html#abc498bf35827627ae815540181e073a9"><param name="Name" value="WeakFuture"></OBJECT>
</UL>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess_1_1windows.html"><param name="Name" value="process::windows"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1windows_1_1EventLoop.html"><param name="Name" value="process::windows::EventLoop"></OBJECT>
+ <UL>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1windows_1_1EventLoop.html#a3bd3da5d721cf2c4db9c5551bdccc3a4"><param name="Name" value="create"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1windows_1_1EventLoop.html#a006cb0c8efb7aaadadf0a692d9c2659a"><param name="Name" value="launchTimer"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1windows_1_1EventLoop.html#a832a73998bb3b26b7caa770ceef38827"><param name="Name" value="registerHandle"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1windows_1_1EventLoop.html#a2578b5fad0eb039f995955c798310c86"><param name="Name" value="run"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1windows_1_1EventLoop.html#a8a07fc602e31875e6cbcaeac8008f09a"><param name="Name" value="stop"></OBJECT>
+ </UL>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess_1_1windows.html"><param name="Name" value="process::windows"></OBJECT>
+ <UL>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess_1_1windows.html#a1f34e4ee3092afe93c37c170430c03f5"><param name="Name" value="accept"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess_1_1windows.html#a5afdaeaeb57343d0aca728b74dcd3f71"><param name="Name" value="connect"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess_1_1windows.html#a7436ed89e84ff3415987de0ca9428d08"><param name="Name" value="read"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess_1_1windows.html#a37fde6f31c2f9838a18cf83c2c865134"><param name="Name" value="recv"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess_1_1windows.html#a04c64346155d34517acdf8b587162868"><param name="Name" value="send"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess_1_1windows.html#afc59f27e725b5feb12f76e1c008ba767"><param name="Name" value="sendfile"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess_1_1windows.html#a69a29846581bb7bb1084e9ee90cbe8e6"><param name="Name" value="write"></OBJECT>
+ </UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html"><param name="Name" value="Process< AwaitProcess< T > >"></OBJECT>
<UL>
- <LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html#a0ff94db0ab3ccea7ba6fd8cba68b6b9e"><param name="Name" value="Self"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html#abef2d54388c5262af19b057b1a6eee8e"><param name="Name" value="self"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html#a0ff94db0ab3ccea7ba6fd8cba68b6b9e"><param name="Name" value="Self"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html#a1e9980d5d873c695d4a1749971e18cd9"><param name="Name" value="This"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html#a919f2834843f8620784c58aee7db2371"><param name="Name" value="~Process"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html"><param name="Name" value="Process< CheckerProcess >"></OBJECT>
<UL>
- <LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html#abef2d54388c5262af19b057b1a6eee8e"><param name="Name" value="self"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html#a0ff94db0ab3ccea7ba6fd8cba68b6b9e"><param name="Name" value="Self"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html#abef2d54388c5262af19b057b1a6eee8e"><param name="Name" value="self"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html#a1e9980d5d873c695d4a1749971e18cd9"><param name="Name" value="This"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html#a919f2834843f8620784c58aee7db2371"><param name="Name" value="~Process"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html"><param name="Name" value="Process< CollectProcess< T > >"></OBJECT>
<UL>
- <LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html#abef2d54388c5262af19b057b1a6eee8e"><param name="Name" value="self"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html#a0ff94db0ab3ccea7ba6fd8cba68b6b9e"><param name="Name" value="Self"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html#abef2d54388c5262af19b057b1a6eee8e"><param name="Name" value="self"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html#a1e9980d5d873c695d4a1749971e18cd9"><param name="Name" value="This"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html#a919f2834843f8620784c58aee7db2371"><param name="Name" value="~Process"></OBJECT>
</UL>
@@ -19974,8 +20063,8 @@
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html"><param name="Name" value="Process< Heartbeater< Message, Event > >"></OBJECT>
<UL>
- <LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html#abef2d54388c5262af19b057b1a6eee8e"><param name="Name" value="self"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html#a0ff94db0ab3ccea7ba6fd8cba68b6b9e"><param name="Name" value="Self"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html#abef2d54388c5262af19b057b1a6eee8e"><param name="Name" value="self"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html#a1e9980d5d873c695d4a1749971e18cd9"><param name="Name" value="This"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html#a919f2834843f8620784c58aee7db2371"><param name="Name" value="~Process"></OBJECT>
</UL>
@@ -19995,8 +20084,8 @@
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html"><param name="Name" value="Process< HttpProxy >"></OBJECT>
<UL>
- <LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html#abef2d54388c5262af19b057b1a6eee8e"><param name="Name" value="self"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html#a0ff94db0ab3ccea7ba6fd8cba68b6b9e"><param name="Name" value="Self"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html#abef2d54388c5262af19b057b1a6eee8e"><param name="Name" value="self"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html#a1e9980d5d873c695d4a1749971e18cd9"><param name="Name" value="This"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html#a919f2834843f8620784c58aee7db2371"><param name="Name" value="~Process"></OBJECT>
</UL>
@@ -20009,8 +20098,8 @@
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html"><param name="Name" value="Process< Logging >"></OBJECT>
<UL>
- <LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html#a0ff94db0ab3ccea7ba6fd8cba68b6b9e"><param name="Name" value="Self"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html#abef2d54388c5262af19b057b1a6eee8e"><param name="Name" value="self"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html#a0ff94db0ab3ccea7ba6fd8cba68b6b9e"><param name="Name" value="Self"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html#a1e9980d5d873c695d4a1749971e18cd9"><param name="Name" value="This"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html#a919f2834843f8620784c58aee7db2371"><param name="Name" value="~Process"></OBJECT>
</UL>
@@ -20030,22 +20119,22 @@
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html"><param name="Name" value="Process< LogWriterProcess >"></OBJECT>
<UL>
- <LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html#abef2d54388c5262af19b057b1a6eee8e"><param name="Name" value="self"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html#a0ff94db0ab3ccea7ba6fd8cba68b6b9e"><param name="Name" value="Self"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html#abef2d54388c5262af19b057b1a6eee8e"><param name="Name" value="self"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html#a1e9980d5d873c695d4a1749971e18cd9"><param name="Name" value="This"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html#a919f2834843f8620784c58aee7db2371"><param name="Name" value="~Process"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html"><param name="Name" value="Process< Master >"></OBJECT>
<UL>
- <LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html#a0ff94db0ab3ccea7ba6fd8cba68b6b9e"><param name="Name" value="Self"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html#abef2d54388c5262af19b057b1a6eee8e"><param name="Name" value="self"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html#a0ff94db0ab3ccea7ba6fd8cba68b6b9e"><param name="Name" value="Self"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html#a1e9980d5d873c695d4a1749971e18cd9"><param name="Name" value="This"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html#a919f2834843f8620784c58aee7db2371"><param name="Name" value="~Process"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html"><param name="Name" value="Process< MemoryProfiler >"></OBJECT>
<UL>
- <LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html#abef2d54388c5262af19b057b1a6eee8e"><param name="Name" value="self"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html#a0ff94db0ab3ccea7ba6fd8cba68b6b9e"><param name="Name" value="Self"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html#abef2d54388c5262af19b057b1a6eee8e"><param name="Name" value="self"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html#a1e9980d5d873c695d4a1749971e18cd9"><param name="Name" value="This"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html#a919f2834843f8620784c58aee7db2371"><param name="Name" value="~Process"></OBJECT>
</UL>
@@ -20072,8 +20161,8 @@
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html"><param name="Name" value="Process< MetricsProcess >"></OBJECT>
<UL>
- <LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html#abef2d54388c5262af19b057b1a6eee8e"><param name="Name" value="self"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html#a0ff94db0ab3ccea7ba6fd8cba68b6b9e"><param name="Name" value="Self"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html#abef2d54388c5262af19b057b1a6eee8e"><param name="Name" value="self"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html#a1e9980d5d873c695d4a1749971e18cd9"><param name="Name" value="This"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html#a919f2834843f8620784c58aee7db2371"><param name="Name" value="~Process"></OBJECT>
</UL>
@@ -20086,8 +20175,8 @@
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html"><param name="Name" value="Process< Profiler >"></OBJECT>
<UL>
- <LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html#a0ff94db0ab3ccea7ba6fd8cba68b6b9e"><param name="Name" value="Self"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html#abef2d54388c5262af19b057b1a6eee8e"><param name="Name" value="self"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html#a0ff94db0ab3ccea7ba6fd8cba68b6b9e"><param name="Name" value="Self"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html#a1e9980d5d873c695d4a1749971e18cd9"><param name="Name" value="This"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html#a919f2834843f8620784c58aee7db2371"><param name="Name" value="~Process"></OBJECT>
</UL>
@@ -20100,8 +20189,8 @@
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html"><param name="Name" value="Process< RateLimiterProcess >"></OBJECT>
<UL>
- <LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html#a0ff94db0ab3ccea7ba6fd8cba68b6b9e"><param name="Name" value="Self"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html#abef2d54388c5262af19b057b1a6eee8e"><param name="Name" value="self"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html#a0ff94db0ab3ccea7ba6fd8cba68b6b9e"><param name="Name" value="Self"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html#a1e9980d5d873c695d4a1749971e18cd9"><param name="Name" value="This"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html#a919f2834843f8620784c58aee7db2371"><param name="Name" value="~Process"></OBJECT>
</UL>
@@ -20128,8 +20217,8 @@
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html"><param name="Name" value="Process< SequenceProcess >"></OBJECT>
<UL>
- <LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html#a0ff94db0ab3ccea7ba6fd8cba68b6b9e"><param name="Name" value="Self"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html#abef2d54388c5262af19b057b1a6eee8e"><param name="Name" value="self"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html#a0ff94db0ab3ccea7ba6fd8cba68b6b9e"><param name="Name" value="Self"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html#a1e9980d5d873c695d4a1749971e18cd9"><param name="Name" value="This"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html#a919f2834843f8620784c58aee7db2371"><param name="Name" value="~Process"></OBJECT>
</UL>
@@ -20156,15 +20245,15 @@
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html"><param name="Name" value="Process< System >"></OBJECT>
<UL>
- <LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html#a0ff94db0ab3ccea7ba6fd8cba68b6b9e"><param name="Name" value="Self"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html#abef2d54388c5262af19b057b1a6eee8e"><param name="Name" value="self"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html#a0ff94db0ab3ccea7ba6fd8cba68b6b9e"><param name="Name" value="Self"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html#a1e9980d5d873c695d4a1749971e18cd9"><param name="Name" value="This"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html#a919f2834843f8620784c58aee7db2371"><param name="Name" value="~Process"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html"><param name="Name" value="Process< ThunkProcess< R > >"></OBJECT>
<UL>
- <LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html#abef2d54388c5262af19b057b1a6eee8e"><param name="Name" value="self"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html#a0ff94db0ab3ccea7ba6fd8cba68b6b9e"><param name="Name" value="Self"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html#abef2d54388c5262af19b057b1a6eee8e"><param name="Name" value="self"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html#a1e9980d5d873c695d4a1749971e18cd9"><param name="Name" value="This"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html#a919f2834843f8620784c58aee7db2371"><param name="Name" value="~Process"></OBJECT>
</UL>
@@ -20177,15 +20266,15 @@
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html"><param name="Name" value="Process< VersionProcess >"></OBJECT>
<UL>
- <LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html#abef2d54388c5262af19b057b1a6eee8e"><param name="Name" value="self"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html#a0ff94db0ab3ccea7ba6fd8cba68b6b9e"><param name="Name" value="Self"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html#abef2d54388c5262af19b057b1a6eee8e"><param name="Name" value="self"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html#a1e9980d5d873c695d4a1749971e18cd9"><param name="Name" value="This"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html#a919f2834843f8620784c58aee7db2371"><param name="Name" value="~Process"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html"><param name="Name" value="Process< WhitelistWatcher >"></OBJECT>
<UL>
- <LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html#abef2d54388c5262af19b057b1a6eee8e"><param name="Name" value="self"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html#a0ff94db0ab3ccea7ba6fd8cba68b6b9e"><param name="Name" value="Self"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html#abef2d54388c5262af19b057b1a6eee8e"><param name="Name" value="self"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html#a1e9980d5d873c695d4a1749971e18cd9"><param name="Name" value="This"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Process.html#a919f2834843f8620784c58aee7db2371"><param name="Name" value="~Process"></OBJECT>
</UL>
@@ -20240,6 +20329,7 @@
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess.html#a61f0548459d8e5a950dd91cfc2bd4aa7"><param name="Name" value="HELP"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess.html#a6c9cd01950a98038b2a6df3e5066418f"><param name="Name" value="initialize"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess.html#afc6611c4913642642277b44447a16e55"><param name="Name" value="InputFileDescriptors"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess.html#a3b1f9b3719ea6358ad426ae31bc8eae6"><param name="Name" value="libwinio_loop"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess.html#a283af87525d9611f5d27b9a7dd6b967e"><param name="Name" value="logging"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess.html#a852052836f10e7c11a19320e846d472e"><param name="Name" value="loop"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess.html#ab21ff1f8b6c033414c6cdfb0eb2e7b99"><param name="Name" value="MATCHER_P2"></OBJECT>
@@ -20337,8 +20427,8 @@
<LI><OBJECT type="text/sitemap"><param name="Local" value="classProcessWatcher.html#a8858c74f313c22f72836beabb73e7c27"><param name="Name" value="process"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classProcessWatcher.html#ae6f5acc4af4d936adca882e2274e6491"><param name="Name" value="ProcessWatcher"></OBJECT>
</UL>
- <LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1EventQueue.html#aa95046266e731af49ccfb9d689cb1eca"><param name="Name" value="producer"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1EventQueue.html#aaf00b363e56ec3a72a6f775a3814d6a0"><param name="Name" value="Producer"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1EventQueue.html#aa95046266e731af49ccfb9d689cb1eca"><param name="Name" value="producer"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1Profiler.html#ac3603ac30749c5f0bc2321769b9bb9a8"><param name="Name" value="Profiler"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceelf.html#a5e0f37b29d2d9500fe43653adefc1022ac94c37334a8660ad8e5c05176a2b3853"><param name="Name" value="PROGBITS"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classflags_1_1FlagsBase.html#a88f899fbf20a712e8bb7236284b41bf4"><param name="Name" value="programName_"></OBJECT>
@@ -20714,10 +20804,10 @@
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespacemesos_1_1internal_1_1slave_1_1state.html#a19c92fe2f0998dbbc281938ca636b3ca"><param name="Name" value="mesos::internal::slave::state"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespacemesos_1_1internal_1_1slave_1_1state.html#a19c92fe2f0998dbbc281938ca636b3ca"><param name="Name" value="src/slave/state.hpp"></OBJECT>
</UL>
- <LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess_1_1io.html#aca1f059ca9f0d7360631c621debeb879"><param name="Name" value="READ"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess_1_1io.html#a4c34d22e475e29f12ac739921dcc580f"><param name="Name" value="read"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess_1_1io.html#aca1f059ca9f0d7360631c621debeb879"><param name="Name" value="READ"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceos.html#aa1d97ff0a93229e1fe6b33e3e2d567f7"><param name="Name" value="read"></OBJECT>
<UL>
- <LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess_1_1io.html#a4c34d22e475e29f12ac739921dcc580f"><param name="Name" value="3rdparty/libprocess/include/process/io.hpp"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceos.html#aa1d97ff0a93229e1fe6b33e3e2d567f7"><param name="Name" value="3rdparty/stout/include/stout/os/read.hpp"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceos.html#a7e99bac0fb06315c051358c7916fe692"><param name="Name" value="3rdparty/stout/include/stout/os/windows/read.hpp"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprotobuf.html#a2120146c620b72d4e1e3ae47bdacb1b3"><param name="Name" value="3rdparty/stout/include/stout/protobuf.hpp"></OBJECT>
@@ -20729,6 +20819,8 @@
<LI><OBJECT type="text/sitemap"><param name="Local" value="structcgroups_1_1devices_1_1Entry_1_1Access.html#a2e0ee4dedc591ab4084fa5b18c534622"><param name="Name" value="cgroups::devices::Entry::Access"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespacemesos_1_1internal_1_1credentials.html#a137c93d60149616181a10e9f39986f7f"><param name="Name" value="credentials.hpp"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDocker_1_1Device_1_1Access.html#ab4a1a1a34181c1b542803ba637b3640b"><param name="Name" value="Docker::Device::Access"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess_1_1io_1_1internal.html#ac0a90b8abf47098e5a57d90e744a42a8"><param name="Name" value="io_internal.hpp"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess_1_1windows.html#a7436ed89e84ff3415987de0ca9428d08"><param name="Name" value="libwinio.hpp"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespacecgroups.html#aa696e42fa4a13e922dee2d1f869146d2"><param name="Name" value="linux/cgroups.hpp"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespacemesos_1_1internal_1_1credentials.html#a137c93d60149616181a10e9f39986f7f"><param name="Name" value="mesos::internal::credentials"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classmesos_1_1internal_1_1Files.html#a3317f5bd0a0b60f331d74b01bb478d13"><param name="Name" value="mesos::internal::Files"></OBJECT>
@@ -20745,17 +20837,19 @@
<LI><OBJECT type="text/sitemap"><param name="Local" value="classmesos_1_1log_1_1Log_1_1Reader.html#a5588979f3c9608bed2ac45328b85b4f3"><param name="Name" value="mesos::log::Log::Reader"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceos.html#aa1d97ff0a93229e1fe6b33e3e2d567f7"><param name="Name" value="os"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1http_1_1Pipe_1_1Reader.html#a0b20318ac77b65b16e30d552b6c0ae91"><param name="Name" value="process::http::Pipe::Reader"></OBJECT>
- <LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess_1_1io.html#a4c34d22e475e29f12ac739921dcc580f"><param name="Name" value="process::io"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess_1_1io.html#aca1f059ca9f0d7360631c621debeb879"><param name="Name" value="READ"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess_1_1io.html#a4c34d22e475e29f12ac739921dcc580f"><param name="Name" value="read"></OBJECT>
<UL>
- <LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess_1_1io.html#aca1f059ca9f0d7360631c621debeb879"><param name="Name" value="process::io"></OBJECT>
- <LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1network_1_1internal_1_1Socket.html#ac5a52929658fbe1ed19b4b03bdd63904a3466fab4975481651940ed328aa990e4"><param name="Name" value="process::network::internal::Socket"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess_1_1io.html#a4c34d22e475e29f12ac739921dcc580f"><param name="Name" value="process::io"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess_1_1io_1_1internal.html#ac0a90b8abf47098e5a57d90e744a42a8"><param name="Name" value="process::io::internal"></OBJECT>
</UL>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1network_1_1internal_1_1Socket.html#ac5a52929658fbe1ed19b4b03bdd63904a3466fab4975481651940ed328aa990e4"><param name="Name" value="READ"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors.html#a0a3f315345ef7b7ee6f3f1d4d337854d"><param name="Name" value="read"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors.html#a0a3f315345ef7b7ee6f3f1d4d337854d"><param name="Name" value="process::Subprocess::IO::InputFileDescriptors"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html#ac4af678c631a700d4be4410a250e3bce"><param name="Name" value="process::Subprocess::IO::OutputFileDescriptors"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess_1_1windows.html#a7436ed89e84ff3415987de0ca9428d08"><param name="Name" value="process::windows"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprotobuf.html#a2120146c620b72d4e1e3ae47bdacb1b3"><param name="Name" value="protobuf"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespacemesos_1_1internal_1_1slave_1_1state.html#adeb89c1623e8d5af457b5b130aceac1d"><param name="Name" value="src/slave/state.hpp"></OBJECT>
</UL>
@@ -20999,13 +21093,15 @@
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceos_1_1internal.html#a1f75643e24051d2b8d98244abf0b9ece"><param name="Name" value="os::internal"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceos_1_1internal.html#a1f75643e24051d2b8d98244abf0b9ece"><param name="Name" value="windows/rmdir.hpp"></OBJECT>
</UL>
- <LI><OBJECT type="text/sitemap"><param name="Local" value="namespacenet.html#ae1804e10c81f5743b459eeae1f6a701a"><param name="Name" value="recv"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess_1_1windows.html#a37fde6f31c2f9838a18cf83c2c865134"><param name="Name" value="recv"></OBJECT>
<UL>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess_1_1windows.html#a37fde6f31c2f9838a18cf83c2c865134"><param name="Name" value="libwinio.hpp"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespacenet.html#ae1804e10c81f5743b459eeae1f6a701a"><param name="Name" value="net"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1network_1_1internal_1_1LibeventSSLSocketImpl.html#a25118017aa15a1ee25039e69fdfd8ea4"><param name="Name" value="process::network::internal::LibeventSSLSocketImpl"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1network_1_1internal_1_1PollSocketImpl.html#a25882be4a54fbd7040e8a2ea707d5a33"><param name="Name" value="process::network::internal::PollSocketImpl"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1network_1_1internal_1_1Socket.html#ae81929b2f51bb910ed4ae1504284bffa"><param name="Name" value="process::network::internal::Socket"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1network_1_1internal_1_1SocketImpl.html#a3cea7f644d4b0bab527a7b93bf892607"><param name="Name" value="process::network::internal::SocketImpl"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess_1_1windows.html#a37fde6f31c2f9838a18cf83c2c865134"><param name="Name" value="process::windows"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespacenet.html#ae1804e10c81f5743b459eeae1f6a701a"><param name="Name" value="stout/include/stout/os/windows/socket.hpp"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceprocess_1_1io.html#ab9c4a52a88fcc9983438e391643424ca"><param name="Name" value="redirect"></OBJECT>
@@ -21050,6 +21146,7 @@
<LI><OBJECT type="text/sitemap"><param name="Local" value="classmesos_1_1internal_1_1slave_1_1Slave.html#accb925947118625aa974fe887268b90a"><param name="Name" value="registerExecutor"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classmesos_1_1internal_1_1slave_1_1Slave.html#aeaef3f8ca707a6ddf0cd9692835b7f50"><param name="Name" value="registerExecutorTimeout"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classmesos_1_1internal_1_1master_1_1Master.html#a65522e77d9f6b6587b7a72e5651d4093"><param name="Name" value="registerFramework"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Local" value="classprocess_1_1windows_1_1EventLoop.html#a832a73998bb3b26b7caa770ceef38827"><param name="Name" value="registerHandle"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classmesos_1_1internal_1_1slave_1_1Executor.html#a3b2abbbd9f9e9ca5c08b75329ac426c0a47f27688eed5f4b7b8fae1fe60e35d0d"><param name="Name" value="REGISTERING"></OBJECT>
<LI><OBJECT type="text/sitema
<TRUNCATED>
[43/50] mesos-site git commit: Updated the website built from mesos
SHA: 7c9c72d.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/classes.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/classes.html b/content/api/latest/c++/classes.html
index c796262..6db50ae 100644
--- a/content/api/latest/c++/classes.html
+++ b/content/api/latest/c++/classes.html
@@ -53,222 +53,223 @@
<div class="qindex"><a class="qindex" href="#letter_A">A</a> | <a class="qindex" href="#letter_B">B</a> | <a class="qindex" href="#letter_C">C</a> | <a class="qindex" href="#letter_D">D</a> | <a class="qindex" href="#letter_E">E</a> | <a class="qindex" href="#letter_F">F</a> | <a class="qindex" href="#letter_G">G</a> | <a class="qindex" href="#letter_H">H</a> | <a class="qindex" href="#letter_I">I</a> | <a class="qindex" href="#letter_J">J</a> | <a class="qindex" href="#letter_K">K</a> | <a class="qindex" href="#letter_L">L</a> | <a class="qindex" href="#letter_M">M</a> | <a class="qindex" href="#letter_N">N</a> | <a class="qindex" href="#letter_O">O</a> | <a class="qindex" href="#letter_P">P</a> | <a class="qindex" href="#letter_Q">Q</a> | <a class="qindex" href="#letter_R">R</a> | <a class="qindex" href=
"#letter_S">S</a> | <a class="qindex" href="#letter_T">T</a> | <a class="qindex" href="#letter_U">U</a> | <a class="qindex" href="#letter_V">V</a> | <a class="qindex" href="#letter_W">W</a> | <a class="qindex" href="#letter_X">X</a> | <a class="qindex" href="#letter_Z">Z</a> | <a class="qindex" href="#letter__">_</a></div>
<table class="classindex">
<tr><td rowspan="2" valign="bottom"><a name="letter_A"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  A  </div></td></tr></table>
-</td><td valign="top"><a class="el" href="structprocess_1_1EventConsumer.html">EventConsumer</a> (<a class="el" href="namespaceprocess.html">process</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1logger_1_1LogrotateContainerLogger.html">LogrotateContainerLogger</a> (<a class="el" href="namespacemesos_1_1internal_1_1logger.html">mesos::internal::logger</a>)   </td><td valign="top"><a class="el" href="structDocker_1_1PortMapping.html">Docker::PortMapping</a>   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1slave_1_1Subsystem.html">Subsystem</a> (<a class="el" href="namespacemesos_1_1internal_1_1slave.html">mesos::internal::slave</a>)   </td></tr>
-<tr><td valign="top"><a class="el" href="classprocess_1_1EventLoop.html">EventLoop</a> (<a class="el" href="namespaceprocess.html">process</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1state_1_1LogStorage.html">LogStorage</a> (<a class="el" href="namespacemesos_1_1state.html">mesos::state</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1slave_1_1PortMappingIsolatorProcess.html">PortMappingIsolatorProcess</a> (<a class="el" href="namespacemesos_1_1internal_1_1slave.html">mesos::internal::slave</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1slave_1_1SubsystemProcess.html">SubsystemProcess</a> (<a class="el" href="namespacemesos_1_1internal_1_1slave.html">mesos::internal::slave</a>)   </td></tr>
-<tr><td valign="top"><a class="el" href="structprocess_1_1http_1_1Accepted.html">Accepted</a> (<a class="el" href="namespaceprocess_1_1http.html">process::http</a>)   </td><td valign="top"><a class="el" href="classprocess_1_1EventQueue.html">EventQueue</a> (<a class="el" href="namespaceprocess.html">process</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1log_1_1LogWriterProcess.html">LogWriterProcess</a> (<a class="el" href="namespacemesos_1_1internal_1_1log.html">mesos::internal::log</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1slave_1_1PortMappingStatistics.html">PortMappingStatistics</a> (<a class="el" href="namespacemesos_1_1internal_1_1slave.html">mesos::internal::slave</a>)   </td><td valign="top"><a class="el" href="structos_1_1signals_1_1internal_1_1Suppressor.html">Suppressor</a> (<a class="el" href="namespaceos_1_1signals_1_1internal.html">os::signals::inter
nal</a>)   </td></tr>
-<tr><td valign="top"><a class="el" href="classmesos_1_1AcceptingObjectApprover.html">AcceptingObjectApprover</a> (<a class="el" href="namespacemesos.html">mesos</a>)   </td><td valign="top"><a class="el" href="structprocess_1_1EventVisitor.html">EventVisitor</a> (<a class="el" href="namespaceprocess.html">process</a>)   </td><td valign="top"><a class="el" href="classprocess_1_1internal_1_1Loop.html">Loop</a> (<a class="el" href="namespaceprocess_1_1internal.html">process::internal</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1slave_1_1PortMappingUpdate.html">PortMappingUpdate</a> (<a class="el" href="namespacemesos_1_1internal_1_1slave.html">mesos::internal::slave</a>)   </td><td valign="top"><a class="el" href="structinternal_1_1windows_1_1SymbolicLink.html">SymbolicLink</a> (<a class="el" href="namespaceinternal_1_1windows.html">internal::windows</a>)   </td></tr>
-<tr><td valign="top"><a class="el" href="structDocker_1_1Device_1_1Access.html">Docker::Device::Access</a>   </td><td valign="top"><a class="el" href="structos_1_1Exec.html">Exec</a> (<a class="el" href="namespaceos.html">os</a>)   </td><td rowspan="2" valign="bottom"><a name="letter_M"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  M  </div></td></tr></table>
+</td><td valign="top"><a class="el" href="structprocess_1_1EventConsumer.html">EventConsumer</a> (<a class="el" href="namespaceprocess.html">process</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1log_1_1LogReaderProcess.html">LogReaderProcess</a> (<a class="el" href="namespacemesos_1_1internal_1_1log.html">mesos::internal::log</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1slave_1_1cni_1_1PortMapper.html">PortMapper</a> (<a class="el" href="namespacemesos_1_1internal_1_1slave_1_1cni.html">mesos::internal::slave::cni</a>)   </td><td valign="top"><a class="el" href="structmesos_1_1internal_1_1master_1_1Master_1_1Subscribers_1_1Subscriber.html">Master::Subscribers::Subscriber</a> (<a class="el" href="namespacemesos_1_1internal_1_1master.html">mesos::internal::master</a>)   </td></tr>
+<tr><td valign="top"><a class="el" href="classprocess_1_1EventLoop.html">EventLoop</a> (<a class="el" href="namespaceprocess.html">process</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1logger_1_1LogrotateContainerLogger.html">LogrotateContainerLogger</a> (<a class="el" href="namespacemesos_1_1internal_1_1logger.html">mesos::internal::logger</a>)   </td><td valign="top"><a class="el" href="structDocker_1_1PortMapping.html">Docker::PortMapping</a>   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1slave_1_1Subsystem.html">Subsystem</a> (<a class="el" href="namespacemesos_1_1internal_1_1slave.html">mesos::internal::slave</a>)   </td></tr>
+<tr><td valign="top"><a class="el" href="structprocess_1_1http_1_1Accepted.html">Accepted</a> (<a class="el" href="namespaceprocess_1_1http.html">process::http</a>)   </td><td valign="top"><a class="el" href="classprocess_1_1windows_1_1EventLoop.html">EventLoop</a> (<a class="el" href="namespaceprocess_1_1windows.html">process::windows</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1state_1_1LogStorage.html">LogStorage</a> (<a class="el" href="namespacemesos_1_1state.html">mesos::state</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1slave_1_1PortMappingIsolatorProcess.html">PortMappingIsolatorProcess</a> (<a class="el" href="namespacemesos_1_1internal_1_1slave.html">mesos::internal::slave</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1slave_1_1SubsystemProcess.html">SubsystemProcess</a> (<a class="el" href="namespacemesos_1_1internal_1_1slave.html">mesos:
:internal::slave</a>)   </td></tr>
+<tr><td valign="top"><a class="el" href="classmesos_1_1AcceptingObjectApprover.html">AcceptingObjectApprover</a> (<a class="el" href="namespacemesos.html">mesos</a>)   </td><td valign="top"><a class="el" href="classprocess_1_1EventQueue.html">EventQueue</a> (<a class="el" href="namespaceprocess.html">process</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1log_1_1LogWriterProcess.html">LogWriterProcess</a> (<a class="el" href="namespacemesos_1_1internal_1_1log.html">mesos::internal::log</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1slave_1_1PortMappingStatistics.html">PortMappingStatistics</a> (<a class="el" href="namespacemesos_1_1internal_1_1slave.html">mesos::internal::slave</a>)   </td><td valign="top"><a class="el" href="structos_1_1signals_1_1internal_1_1Suppressor.html">Suppressor</a> (<a class="el" href="namespaceos_1_1signals_1_1internal.html">os::signals::inte
rnal</a>)   </td></tr>
+<tr><td valign="top"><a class="el" href="structDocker_1_1Device_1_1Access.html">Docker::Device::Access</a>   </td><td valign="top"><a class="el" href="structprocess_1_1EventVisitor.html">EventVisitor</a> (<a class="el" href="namespaceprocess.html">process</a>)   </td><td valign="top"><a class="el" href="classprocess_1_1internal_1_1Loop.html">Loop</a> (<a class="el" href="namespaceprocess_1_1internal.html">process::internal</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1slave_1_1PortMappingUpdate.html">PortMappingUpdate</a> (<a class="el" href="namespacemesos_1_1internal_1_1slave.html">mesos::internal::slave</a>)   </td><td valign="top"><a class="el" href="structinternal_1_1windows_1_1SymbolicLink.html">SymbolicLink</a> (<a class="el" href="namespaceinternal_1_1windows.html">internal::windows</a>)   </td></tr>
+<tr><td valign="top"><a class="el" href="structcgroups_1_1devices_1_1Entry_1_1Access.html">Entry::Access</a> (<a class="el" href="namespacecgroups_1_1devices.html">cgroups::devices</a>)   </td><td valign="top"><a class="el" href="structos_1_1Exec.html">Exec</a> (<a class="el" href="namespaceos.html">os</a>)   </td><td rowspan="2" valign="bottom"><a name="letter_M"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  M  </div></td></tr></table>
</td><td valign="top"><a class="el" href="classrouting_1_1filter_1_1ip_1_1PortRange.html">PortRange</a> (<a class="el" href="namespacerouting_1_1filter_1_1ip.html">routing::filter::ip</a>)   </td><td valign="top"><a class="el" href="classSynchronized.html">Synchronized</a>   </td></tr>
-<tr><td valign="top"><a class="el" href="structcgroups_1_1devices_1_1Entry_1_1Access.html">Entry::Access</a> (<a class="el" href="namespacecgroups_1_1devices.html">cgroups::devices</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1slave_1_1Executor.html">Executor</a> (<a class="el" href="namespacemesos_1_1internal_1_1slave.html">mesos::internal::slave</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1log_1_1Log_1_1Position.html">Log::Position</a> (<a class="el" href="namespacemesos_1_1log.html">mesos::log</a>)   </td><td valign="top"><a class="el" href="classprocess_1_1System.html">System</a> (<a class="el" href="namespaceprocess.html">process</a>)   </td></tr>
-<tr><td valign="top"><a class="el" href="classrouting_1_1action_1_1Action.html">Action</a> (<a class="el" href="namespacerouting_1_1action.html">routing::action</a>)   </td><td valign="top"><a class="el" href="classprocess_1_1Executor.html">Executor</a> (<a class="el" href="namespaceprocess.html">process</a>)   </td><td valign="top"><a class="el" href="classnet_1_1MAC.html">MAC</a> (<a class="el" href="namespacenet.html">net</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1slave_1_1PosixCpuIsolatorProcess.html">PosixCpuIsolatorProcess</a> (<a class="el" href="namespacemesos_1_1internal_1_1slave.html">mesos::internal::slave</a>)   </td><td valign="top"><a class="el" href="structproc_1_1SystemStatus.html">SystemStatus</a> (<a class="el" href="namespaceproc.html">proc</a>)   </td></tr>
-<tr><td valign="top"><a class="el" href="classmesos_1_1internal_1_1tests_1_1ActiveUserTestHelper.html">ActiveUserTestHelper</a> (<a class="el" href="namespacemesos_1_1internal_1_1tests.html">mesos::internal::tests</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1Executor.html">Executor</a> (<a class="el" href="namespacemesos.html">mesos</a>)   </td><td valign="top"><a class="el" href="structmesos_1_1internal_1_1master_1_1Machine.html">Machine</a> (<a class="el" href="namespacemesos_1_1internal_1_1master.html">mesos::internal::master</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1slave_1_1PosixDiskIsolatorProcess.html">PosixDiskIsolatorProcess</a> (<a class="el" href="namespacemesos_1_1internal_1_1slave.html">mesos::internal::slave</a>)   </td><td rowspan="2" valign="bottom"><a name="letter_T"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  T
  </div></td></tr></table>
+<tr><td valign="top"><a class="el" href="classrouting_1_1action_1_1Action.html">Action</a> (<a class="el" href="namespacerouting_1_1action.html">routing::action</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1slave_1_1Executor.html">Executor</a> (<a class="el" href="namespacemesos_1_1internal_1_1slave.html">mesos::internal::slave</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1log_1_1Log_1_1Position.html">Log::Position</a> (<a class="el" href="namespacemesos_1_1log.html">mesos::log</a>)   </td><td valign="top"><a class="el" href="classprocess_1_1System.html">System</a> (<a class="el" href="namespaceprocess.html">process</a>)   </td></tr>
+<tr><td valign="top"><a class="el" href="classmesos_1_1internal_1_1tests_1_1ActiveUserTestHelper.html">ActiveUserTestHelper</a> (<a class="el" href="namespacemesos_1_1internal_1_1tests.html">mesos::internal::tests</a>)   </td><td valign="top"><a class="el" href="classprocess_1_1Executor.html">Executor</a> (<a class="el" href="namespaceprocess.html">process</a>)   </td><td valign="top"><a class="el" href="classnet_1_1MAC.html">MAC</a> (<a class="el" href="namespacenet.html">net</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1slave_1_1PosixCpuIsolatorProcess.html">PosixCpuIsolatorProcess</a> (<a class="el" href="namespacemesos_1_1internal_1_1slave.html">mesos::internal::slave</a>)   </td><td valign="top"><a class="el" href="structproc_1_1SystemStatus.html">SystemStatus</a> (<a class="el" href="namespaceproc.html">proc</a>)   </td></tr>
+<tr><td valign="top"><a class="el" href="classprocess_1_1network_1_1inet4_1_1Address.html">Address</a> (<a class="el" href="namespaceprocess_1_1network_1_1inet4.html">process::network::inet4</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1Executor.html">Executor</a> (<a class="el" href="namespacemesos.html">mesos</a>)   </td><td valign="top"><a class="el" href="structmesos_1_1internal_1_1master_1_1Machine.html">Machine</a> (<a class="el" href="namespacemesos_1_1internal_1_1master.html">mesos::internal::master</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1slave_1_1PosixDiskIsolatorProcess.html">PosixDiskIsolatorProcess</a> (<a class="el" href="namespacemesos_1_1internal_1_1slave.html">mesos::internal::slave</a>)   </td><td rowspan="2" valign="bottom"><a name="letter_T"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  T  </div></td>
</tr></table>
</td></tr>
-<tr><td valign="top"><a class="el" href="classprocess_1_1network_1_1inet4_1_1Address.html">Address</a> (<a class="el" href="namespaceprocess_1_1network_1_1inet4.html">process::network::inet4</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1ExecutorDriver.html">ExecutorDriver</a> (<a class="el" href="namespacemesos.html">mesos</a>)   </td><td valign="top"><a class="el" href="structmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess_1_1Slave_1_1Maintenance.html">HierarchicalAllocatorProcess::Slave::Maintenance</a> (<a class="el" href="namespacemesos_1_1internal_1_1master_1_1allocator_1_1internal.html">mesos::internal::master::allocator::internal</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1slave_1_1PosixFilesystemIsolatorProcess.html">PosixFilesystemIsolatorProcess</a> (<a class="el" href="namespacemesos_1_1internal_1_1slave.html">mesos::internal::slave</a>) &
#160; </td></tr>
-<tr><td valign="top"><a class="el" href="classprocess_1_1network_1_1inet6_1_1Address.html">Address</a> (<a class="el" href="namespaceprocess_1_1network_1_1inet6.html">process::network::inet6</a>)   </td><td valign="top"><a class="el" href="structmesos_1_1internal_1_1slave_1_1paths_1_1ExecutorRunPath.html">ExecutorRunPath</a> (<a class="el" href="namespacemesos_1_1internal_1_1slave_1_1paths.html">mesos::internal::slave::paths</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1master_1_1MarkSlaveGone.html">MarkSlaveGone</a> (<a class="el" href="namespacemesos_1_1internal_1_1master.html">mesos::internal::master</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1slave_1_1PosixIsolatorProcess.html">PosixIsolatorProcess</a> (<a class="el" href="namespacemesos_1_1internal_1_1slave.html">mesos::internal::slave</a>)   </td><td valign="top"><a class="el" href="structmesos_1_1internal_1_
1slave_1_1state_1_1TaskState.html">TaskState</a> (<a class="el" href="namespacemesos_1_1internal_1_1slave_1_1state.html">mesos::internal::slave::state</a>)   </td></tr>
-<tr><td valign="top"><a class="el" href="classprocess_1_1network_1_1unix_1_1Address.html">Address</a> (<a class="el" href="namespaceprocess_1_1network_1_1unix.html">process::network::unix</a>)   </td><td valign="top"><a class="el" href="structmesos_1_1internal_1_1slave_1_1state_1_1ExecutorState.html">ExecutorState</a> (<a class="el" href="namespacemesos_1_1internal_1_1slave_1_1state.html">mesos::internal::slave::state</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1master_1_1MarkSlaveReachable.html">MarkSlaveReachable</a> (<a class="el" href="namespacemesos_1_1internal_1_1master.html">mesos::internal::master</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1slave_1_1PosixMemIsolatorProcess.html">PosixMemIsolatorProcess</a> (<a class="el" href="namespacemesos_1_1internal_1_1slave.html">mesos::internal::slave</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1int
ernal_1_1slave_1_1TaskStatusUpdateManager.html">TaskStatusUpdateManager</a> (<a class="el" href="namespacemesos_1_1internal_1_1slave.html">mesos::internal::slave</a>)   </td></tr>
-<tr><td valign="top"><a class="el" href="classprocess_1_1network_1_1Address.html">Address</a> (<a class="el" href="namespaceprocess_1_1network.html">process::network</a>)   </td><td valign="top"><a class="el" href="structprocess_1_1ExitedEvent.html">ExitedEvent</a> (<a class="el" href="namespaceprocess.html">process</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1master_1_1MarkSlaveUnreachable.html">MarkSlaveUnreachable</a> (<a class="el" href="namespacemesos_1_1internal_1_1master.html">mesos::internal::master</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1slave_1_1PosixRLimitsIsolatorProcess.html">PosixRLimitsIsolatorProcess</a> (<a class="el" href="namespacemesos_1_1internal_1_1slave.html">mesos::internal::slave</a>)   </td><td valign="top"><a class="el" href="structmesos_1_1internal_1_1slave_1_1TaskStatusUpdateStream.html">TaskStatusUpdateStream</a> (<a class="el" hr
ef="namespacemesos_1_1internal_1_1slave.html">mesos::internal::slave</a>)   </td></tr>
-<tr><td valign="top"><a class="el" href="classprocess_1_1network_1_1inet_1_1Address.html">Address</a> (<a class="el" href="namespaceprocess_1_1network_1_1inet.html">process::network::inet</a>)   </td><td valign="top"><a class="el" href="structlambda_1_1internal_1_1Expand.html">Expand</a> (<a class="el" href="namespacelambda_1_1internal.html">lambda::internal</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1tests_1_1cluster_1_1Master.html">Master</a> (<a class="el" href="namespacemesos_1_1internal_1_1tests_1_1cluster.html">mesos::internal::tests::cluster</a>)   </td><td valign="top"><a class="el" href="structprocess_1_1http_1_1PreconditionFailed.html">PreconditionFailed</a> (<a class="el" href="namespaceprocess_1_1http.html">process::http</a>)   </td><td valign="top"><a class="el" href="structmesos_1_1internal_1_1checks_1_1check_1_1Tcp.html">Tcp</a> (<a class="el" href="namespacemesos_1_1internal_1_
1checks_1_1check.html">mesos::internal::checks::check</a>)   </td></tr>
-<tr><td valign="top"><a class="el" href="classmesos_1_1resource__provider_1_1AdmitResourceProvider.html">AdmitResourceProvider</a> (<a class="el" href="namespacemesos_1_1resource__provider.html">mesos::resource_provider</a>)   </td><td valign="top"><a class="el" href="structlambda_1_1internal_1_1Expand_3_010_01_4.html">Expand< 0 ></a> (<a class="el" href="namespacelambda_1_1internal.html">lambda::internal</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1master_1_1Master.html">Master</a> (<a class="el" href="namespacemesos_1_1internal_1_1master.html">mesos::internal::master</a>)   </td><td valign="top"><a class="el" href="structJSON_1_1internal_1_1Prefer.html">Prefer</a> (<a class="el" href="namespaceJSON_1_1internal.html">JSON::internal</a>)   </td><td valign="top"><a class="el" href="classTemporaryDirectoryTest.html">TemporaryDirectoryTest</a>   </td></tr>
-<tr><td valign="top"><a class="el" href="classmesos_1_1internal_1_1master_1_1AdmitSlave.html">AdmitSlave</a> (<a class="el" href="namespacemesos_1_1internal_1_1master.html">mesos::internal::master</a>)   </td><td rowspan="2" valign="bottom"><a name="letter_F"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  F  </div></td></tr></table>
+<tr><td valign="top"><a class="el" href="classprocess_1_1network_1_1inet6_1_1Address.html">Address</a> (<a class="el" href="namespaceprocess_1_1network_1_1inet6.html">process::network::inet6</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1ExecutorDriver.html">ExecutorDriver</a> (<a class="el" href="namespacemesos.html">mesos</a>)   </td><td valign="top"><a class="el" href="structmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess_1_1Slave_1_1Maintenance.html">HierarchicalAllocatorProcess::Slave::Maintenance</a> (<a class="el" href="namespacemesos_1_1internal_1_1master_1_1allocator_1_1internal.html">mesos::internal::master::allocator::internal</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1slave_1_1PosixFilesystemIsolatorProcess.html">PosixFilesystemIsolatorProcess</a> (<a class="el" href="namespacemesos_1_1internal_1_1slave.html">mesos::internal::slave</a>) &
#160; </td></tr>
+<tr><td valign="top"><a class="el" href="classprocess_1_1network_1_1unix_1_1Address.html">Address</a> (<a class="el" href="namespaceprocess_1_1network_1_1unix.html">process::network::unix</a>)   </td><td valign="top"><a class="el" href="structmesos_1_1internal_1_1slave_1_1paths_1_1ExecutorRunPath.html">ExecutorRunPath</a> (<a class="el" href="namespacemesos_1_1internal_1_1slave_1_1paths.html">mesos::internal::slave::paths</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1master_1_1MarkSlaveGone.html">MarkSlaveGone</a> (<a class="el" href="namespacemesos_1_1internal_1_1master.html">mesos::internal::master</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1slave_1_1PosixIsolatorProcess.html">PosixIsolatorProcess</a> (<a class="el" href="namespacemesos_1_1internal_1_1slave.html">mesos::internal::slave</a>)   </td><td valign="top"><a class="el" href="structmesos_1_1internal_1_1sl
ave_1_1state_1_1TaskState.html">TaskState</a> (<a class="el" href="namespacemesos_1_1internal_1_1slave_1_1state.html">mesos::internal::slave::state</a>)   </td></tr>
+<tr><td valign="top"><a class="el" href="classprocess_1_1network_1_1Address.html">Address</a> (<a class="el" href="namespaceprocess_1_1network.html">process::network</a>)   </td><td valign="top"><a class="el" href="structmesos_1_1internal_1_1slave_1_1state_1_1ExecutorState.html">ExecutorState</a> (<a class="el" href="namespacemesos_1_1internal_1_1slave_1_1state.html">mesos::internal::slave::state</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1master_1_1MarkSlaveReachable.html">MarkSlaveReachable</a> (<a class="el" href="namespacemesos_1_1internal_1_1master.html">mesos::internal::master</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1slave_1_1PosixMemIsolatorProcess.html">PosixMemIsolatorProcess</a> (<a class="el" href="namespacemesos_1_1internal_1_1slave.html">mesos::internal::slave</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1slave_1_1Task
StatusUpdateManager.html">TaskStatusUpdateManager</a> (<a class="el" href="namespacemesos_1_1internal_1_1slave.html">mesos::internal::slave</a>)   </td></tr>
+<tr><td valign="top"><a class="el" href="classprocess_1_1network_1_1inet_1_1Address.html">Address</a> (<a class="el" href="namespaceprocess_1_1network_1_1inet.html">process::network::inet</a>)   </td><td valign="top"><a class="el" href="structprocess_1_1ExitedEvent.html">ExitedEvent</a> (<a class="el" href="namespaceprocess.html">process</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1master_1_1MarkSlaveUnreachable.html">MarkSlaveUnreachable</a> (<a class="el" href="namespacemesos_1_1internal_1_1master.html">mesos::internal::master</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1slave_1_1PosixRLimitsIsolatorProcess.html">PosixRLimitsIsolatorProcess</a> (<a class="el" href="namespacemesos_1_1internal_1_1slave.html">mesos::internal::slave</a>)   </td><td valign="top"><a class="el" href="structmesos_1_1internal_1_1slave_1_1TaskStatusUpdateStream.html">TaskStatusUpdateStream
</a> (<a class="el" href="namespacemesos_1_1internal_1_1slave.html">mesos::internal::slave</a>)   </td></tr>
+<tr><td valign="top"><a class="el" href="classmesos_1_1resource__provider_1_1AdmitResourceProvider.html">AdmitResourceProvider</a> (<a class="el" href="namespacemesos_1_1resource__provider.html">mesos::resource_provider</a>)   </td><td valign="top"><a class="el" href="structlambda_1_1internal_1_1Expand.html">Expand</a> (<a class="el" href="namespacelambda_1_1internal.html">lambda::internal</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1tests_1_1cluster_1_1Master.html">Master</a> (<a class="el" href="namespacemesos_1_1internal_1_1tests_1_1cluster.html">mesos::internal::tests::cluster</a>)   </td><td valign="top"><a class="el" href="structprocess_1_1http_1_1PreconditionFailed.html">PreconditionFailed</a> (<a class="el" href="namespaceprocess_1_1http.html">process::http</a>)   </td><td valign="top"><a class="el" href="structmesos_1_1internal_1_1checks_1_1check_1_1Tcp.html">Tcp</a> (<a class="el" hre
f="namespacemesos_1_1internal_1_1checks_1_1check.html">mesos::internal::checks::check</a>)   </td></tr>
+<tr><td valign="top"><a class="el" href="classmesos_1_1internal_1_1master_1_1AdmitSlave.html">AdmitSlave</a> (<a class="el" href="namespacemesos_1_1internal_1_1master.html">mesos::internal::master</a>)   </td><td valign="top"><a class="el" href="structlambda_1_1internal_1_1Expand_3_010_01_4.html">Expand< 0 ></a> (<a class="el" href="namespacelambda_1_1internal.html">lambda::internal</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1master_1_1Master.html">Master</a> (<a class="el" href="namespacemesos_1_1internal_1_1master.html">mesos::internal::master</a>)   </td><td valign="top"><a class="el" href="structJSON_1_1internal_1_1Prefer.html">Prefer</a> (<a class="el" href="namespaceJSON_1_1internal.html">JSON::internal</a>)   </td><td valign="top"><a class="el" href="classTemporaryDirectoryTest.html">TemporaryDirectoryTest</a>   </td></tr>
+<tr><td valign="top"><a class="el" href="structmesos_1_1internal_1_1master_1_1allocator_1_1DRFSorter_1_1Node_1_1Allocation.html">DRFSorter::Node::Allocation</a> (<a class="el" href="namespacemesos_1_1internal_1_1master_1_1allocator.html">mesos::internal::master::allocator</a>)   </td><td rowspan="2" valign="bottom"><a name="letter_F"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  F  </div></td></tr></table>
</td><td valign="top"><a class="el" href="classmesos_1_1master_1_1contender_1_1MasterContender.html">MasterContender</a> (<a class="el" href="namespacemesos_1_1master_1_1contender.html">mesos::master::contender</a>)   </td><td valign="top"><a class="el" href="structprocess_1_1http_1_1authentication_1_1Principal.html">Principal</a> (<a class="el" href="namespaceprocess_1_1http_1_1authentication.html">process::http::authentication</a>)   </td><td valign="top"><a class="el" href="structprocess_1_1http_1_1TemporaryRedirect.html">TemporaryRedirect</a> (<a class="el" href="namespaceprocess_1_1http.html">process::http</a>)   </td></tr>
-<tr><td valign="top"><a class="el" href="structmesos_1_1internal_1_1master_1_1allocator_1_1DRFSorter_1_1Node_1_1Allocation.html">DRFSorter::Node::Allocation</a> (<a class="el" href="namespacemesos_1_1internal_1_1master_1_1allocator.html">mesos::internal::master::allocator</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1master_1_1detector_1_1MasterDetector.html">MasterDetector</a> (<a class="el" href="namespacemesos_1_1master_1_1detector.html">mesos::master::detector</a>)   </td><td valign="top"><a class="el" href="structmesos_1_1internal_1_1tests_1_1ParamExecutorType_1_1Printer.html">ParamExecutorType::Printer</a> (<a class="el" href="namespacemesos_1_1internal_1_1tests.html">mesos::internal::tests</a>)   </td><td valign="top"><a class="el" href="structrouting_1_1action_1_1Terminal.html">Terminal</a> (<a class="el" href="namespacerouting_1_1action.html">routing::action</a>)   </td></tr>
-<tr><td valign="top"><a class="el" href="structmesos_1_1internal_1_1master_1_1allocator_1_1RandomSorter_1_1Node_1_1Allocation.html">RandomSorter::Node::Allocation</a> (<a class="el" href="namespacemesos_1_1internal_1_1master_1_1allocator.html">mesos::internal::master::allocator</a>)   </td><td valign="top"><a class="el" href="structprocess_1_1Failure.html">Failure</a> (<a class="el" href="namespaceprocess.html">process</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1resource__provider_1_1MasterRegistrar.html">MasterRegistrar</a> (<a class="el" href="namespacemesos_1_1resource__provider.html">mesos::resource_provider</a>)   </td><td valign="top"><a class="el" href="classrouting_1_1filter_1_1Priority.html">Priority</a> (<a class="el" href="namespacerouting_1_1filter.html">routing::filter</a>)   </td><td valign="top"><a class="el" href="structprocess_1_1TerminateEvent.html">TerminateEvent</a> (<a class="el" href
="namespaceprocess.html">process</a>)   </td></tr>
-<tr><td valign="top"><a class="el" href="classmesos_1_1allocator_1_1Allocator.html">Allocator</a> (<a class="el" href="namespacemesos_1_1allocator.html">mesos::allocator</a>)   </td><td valign="top"><a class="el" href="structJSON_1_1False.html">False</a> (<a class="el" href="namespaceJSON.html">JSON</a>)   </td><td valign="top"><a class="el" href="structzookeeper_1_1Group_1_1Membership.html">Group::Membership</a> (<a class="el" href="namespacezookeeper.html">zookeeper</a>)   </td><td valign="top"><a class="el" href="structos_1_1Process.html">Process</a> (<a class="el" href="namespaceos.html">os</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1tests_1_1TestAllocator.html">TestAllocator</a> (<a class="el" href="namespacemesos_1_1internal_1_1tests.html">mesos::internal::tests</a>)   </td></tr>
-<tr><td valign="top"><a class="el" href="classmesos_1_1modules_1_1Anonymous.html">Anonymous</a> (<a class="el" href="namespacemesos_1_1modules.html">mesos::modules</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1uri_1_1Fetcher.html">Fetcher</a> (<a class="el" href="namespacemesos_1_1uri.html">mesos::uri</a>)   </td><td valign="top"><a class="el" href="structos_1_1Memory.html">Memory</a> (<a class="el" href="namespaceos.html">os</a>)   </td><td valign="top"><a class="el" href="classprocess_1_1Process.html">Process</a> (<a class="el" href="namespaceprocess.html">process</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1tests_1_1TestContainerizer.html">TestContainerizer</a> (<a class="el" href="namespacemesos_1_1internal_1_1tests.html">mesos::internal::tests</a>)   </td></tr>
-<tr><td valign="top"><a class="el" href="classmesos_1_1internal_1_1slave_1_1AppcRuntimeIsolatorProcess.html">AppcRuntimeIsolatorProcess</a> (<a class="el" href="namespacemesos_1_1internal_1_1slave.html">mesos::internal::slave</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1slave_1_1Fetcher.html">Fetcher</a> (<a class="el" href="namespacemesos_1_1internal_1_1slave.html">mesos::internal::slave</a>)   </td><td valign="top"><a class="el" href="structos_1_1Fork_1_1Tree_1_1Memory.html">Fork::Tree::Memory</a> (<a class="el" href="namespaceos.html">os</a>)   </td><td valign="top"><a class="el" href="classprocess_1_1ProcessBase.html">ProcessBase</a> (<a class="el" href="namespaceprocess.html">process</a>)   </td><td valign="top"><a class="el" href="classstout_1_1internal_1_1tests_1_1TestFilter.html">TestFilter</a> (<a class="el" href="namespacestout_1_1internal_1_1tests.html">stout::internal::tests</a>)
60;  </td></tr>
-<tr><td valign="top"><a class="el" href="classos_1_1raw_1_1Argv.html">Argv</a> (<a class="el" href="namespaceos_1_1raw.html">os::raw</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1slave_1_1appc_1_1Fetcher.html">Fetcher</a> (<a class="el" href="namespacemesos_1_1internal_1_1slave_1_1appc.html">mesos::internal::slave::appc</a>)   </td><td valign="top"><a class="el" href="classprocess_1_1MemoryProfiler.html">MemoryProfiler</a> (<a class="el" href="namespaceprocess.html">process</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1capabilities_1_1ProcessCapabilities.html">ProcessCapabilities</a> (<a class="el" href="namespacemesos_1_1internal_1_1capabilities.html">mesos::internal::capabilities</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1tests_1_1TestingMesosSchedulerDriver.html">TestingMesosSchedulerDriver</a> (<a class="el" href="namespacemesos_1_
1internal_1_1tests.html">mesos::internal::tests</a>)   </td></tr>
-<tr><td valign="top"><a class="el" href="structJSON_1_1Array.html">Array</a> (<a class="el" href="namespaceJSON.html">JSON</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1slave_1_1FetcherProcess.html">FetcherProcess</a> (<a class="el" href="namespacemesos_1_1internal_1_1slave.html">mesos::internal::slave</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1slave_1_1MemorySubsystemProcess.html">MemorySubsystemProcess</a> (<a class="el" href="namespacemesos_1_1internal_1_1slave.html">mesos::internal::slave</a>)   </td><td valign="top"><a class="el" href="structinternal_1_1windows_1_1ProcessData.html">ProcessData</a> (<a class="el" href="namespaceinternal_1_1windows.html">internal::windows</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1tests_1_1TestLauncher.html">TestLauncher</a> (<a class="el" href="namespacemesos_1_1internal_1_1tests.html">mesos::in
ternal::tests</a>)   </td></tr>
-<tr><td valign="top"><a class="el" href="classJSON_1_1ArrayWriter.html">ArrayWriter</a> (<a class="el" href="namespaceJSON.html">JSON</a>)   </td><td valign="top"><a class="el" href="classJvm_1_1Field.html">Jvm::Field</a>   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1tests_1_1MemoryTestHelper.html">MemoryTestHelper</a> (<a class="el" href="namespacemesos_1_1internal_1_1tests.html">mesos::internal::tests</a>)   </td><td valign="top"><a class="el" href="classprocess_1_1ProcessReference.html">ProcessReference</a> (<a class="el" href="namespaceprocess.html">process</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1tests_1_1scheduler_1_1TestMesos.html">TestMesos</a> (<a class="el" href="namespacemesos_1_1internal_1_1tests_1_1scheduler.html">mesos::internal::tests::scheduler</a>)   </td></tr>
-<tr><td valign="top"><a class="el" href="classprocess_1_1AsyncExecutor.html">AsyncExecutor</a> (<a class="el" href="namespaceprocess.html">process</a>)   </td><td valign="top"><a class="el" href="classjava_1_1io_1_1File.html">File</a> (<a class="el" href="namespacejava_1_1io.html">java::io</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1v1_1_1executor_1_1Mesos.html">Mesos</a> (<a class="el" href="namespacemesos_1_1v1_1_1executor.html">mesos::v1::executor</a>)   </td><td valign="top"><a class="el" href="structproc_1_1ProcessStatus.html">ProcessStatus</a> (<a class="el" href="namespaceproc.html">proc</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1tests_1_1executor_1_1TestMesos.html">TestMesos</a> (<a class="el" href="namespacemesos_1_1internal_1_1tests_1_1executor.html">mesos::internal::tests::executor</a>)   </td></tr>
-<tr><td valign="top"><a class="el" href="structAtLeastOneIsSameOrConvertible.html">AtLeastOneIsSameOrConvertible</a>   </td><td valign="top"><a class="el" href="clasself_1_1File.html">File</a> (<a class="el" href="namespaceelf.html">elf</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1v1_1_1scheduler_1_1Mesos.html">Mesos</a> (<a class="el" href="namespacemesos_1_1v1_1_1scheduler.html">mesos::v1::scheduler</a>)   </td><td valign="top"><a class="el" href="classos_1_1ProcessTree.html">ProcessTree</a> (<a class="el" href="namespaceos.html">os</a>)   </td><td valign="top"><a class="el" href="classTestModule.html">TestModule</a>   </td></tr>
-<tr><td valign="top"><a class="el" href="structAtLeastOneIsSameOrConvertible_3_01U_00_01T_00_01Ts_8_8_8_01_4.html">AtLeastOneIsSameOrConvertible< U, T, Ts... ></a>   </td><td valign="top"><a class="el" href="classprocess_1_1FileEncoder.html">FileEncoder</a> (<a class="el" href="namespaceprocess.html">process</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1master_1_1allocator_1_1MesosAllocator.html">MesosAllocator</a> (<a class="el" href="namespacemesos_1_1internal_1_1master_1_1allocator.html">mesos::internal::master::allocator</a>)   </td><td valign="top"><a class="el" href="classProcessWatcher.html">ProcessWatcher</a>   </td><td valign="top"><a class="el" href="classprocess_1_1TestsFilter.html">TestsFilter</a> (<a class="el" href="namespaceprocess.html">process</a>)   </td></tr>
-<tr><td valign="top"><a class="el" href="classmesos_1_1Attributes.html">Attributes</a> (<a class="el" href="namespacemesos.html">mesos</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1Files.html">Files</a> (<a class="el" href="namespacemesos_1_1internal.html">mesos::internal</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1master_1_1allocator_1_1MesosAllocatorProcess.html">MesosAllocatorProcess</a> (<a class="el" href="namespacemesos_1_1internal_1_1master_1_1allocator.html">mesos::internal::master::allocator</a>)   </td><td valign="top"><a class="el" href="classprocess_1_1EventQueue_1_1Producer.html">EventQueue::Producer</a> (<a class="el" href="namespaceprocess.html">process</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1tests_1_1TestStore.html">TestStore</a> (<a class="el" href="namespacemesos_1_1internal_1_1tests.html">mesos::internal::tests<
/a>)   </td></tr>
-<tr><td valign="top"><a class="el" href="classmesos_1_1v1_1_1Attributes.html">Attributes</a> (<a class="el" href="namespacemesos_1_1v1.html">mesos::v1</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1FilesError.html">FilesError</a> (<a class="el" href="namespacemesos_1_1internal.html">mesos::internal</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1v1_1_1executor_1_1MesosBase.html">MesosBase</a> (<a class="el" href="namespacemesos_1_1v1_1_1executor.html">mesos::v1::executor</a>)   </td><td valign="top"><a class="el" href="structmesos_1_1DiskProfileAdaptor_1_1ProfileInfo.html">DiskProfileAdaptor::ProfileInfo</a> (<a class="el" href="namespacemesos.html">mesos</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1tests_1_1ZooKeeperTest_1_1TestWatcher.html">ZooKeeperTest::TestWatcher</a> (<a class="el" href="namespacemesos_1_1internal_1_1tests.html">mesos::internal::
tests</a>)   </td></tr>
-<tr><td valign="top"><a class="el" href="classmesos_1_1internal_1_1slave_1_1AufsBackend.html">AufsBackend</a> (<a class="el" href="namespacemesos_1_1internal_1_1slave.html">mesos::internal::slave</a>)   </td><td valign="top"><a class="el" href="classorg_1_1apache_1_1zookeeper_1_1server_1_1persistence_1_1FileTxnSnapLog.html">FileTxnSnapLog</a> (<a class="el" href="namespaceorg_1_1apache_1_1zookeeper_1_1server_1_1persistence.html">org::apache::zookeeper::server::persistence</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1v1_1_1scheduler_1_1MesosBase.html">MesosBase</a> (<a class="el" href="namespacemesos_1_1v1_1_1scheduler.html">mesos::v1::scheduler</a>)   </td><td valign="top"><a class="el" href="classprocess_1_1Profiler.html">Profiler</a> (<a class="el" href="namespaceprocess.html">process</a>)   </td><td valign="top"><a class="el" href="classjava_1_1lang_1_1Throwable.html">Throwable</a> (<a class="el" href="
namespacejava_1_1lang.html">java::lang</a>)   </td></tr>
-<tr><td valign="top"><a class="el" href="classmesos_1_1http_1_1authentication_1_1Authenticatee.html">Authenticatee</a> (<a class="el" href="namespacemesos_1_1http_1_1authentication.html">mesos::http::authentication</a>)   </td><td valign="top"><a class="el" href="classprocess_1_1Filter.html">Filter</a> (<a class="el" href="namespaceprocess.html">process</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1slave_1_1MesosContainerizer.html">MesosContainerizer</a> (<a class="el" href="namespacemesos_1_1internal_1_1slave.html">mesos::internal::slave</a>)   </td><td valign="top"><a class="el" href="classprocess_1_1Promise.html">Promise</a> (<a class="el" href="namespaceprocess.html">process</a>)   </td><td valign="top"><a class="el" href="classprocess_1_1internal_1_1ThunkProcess.html">ThunkProcess</a> (<a class="el" href="namespaceprocess_1_1internal.html">process::internal</a>)   </td></tr>
-<tr><td valign="top"><a class="el" href="classmesos_1_1Authenticatee.html">Authenticatee</a> (<a class="el" href="namespacemesos.html">mesos</a>)   </td><td valign="top"><a class="el" href="structrouting_1_1filter_1_1Filter.html">Filter</a> (<a class="el" href="namespacerouting_1_1filter.html">routing::filter</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1slave_1_1MesosContainerizerLaunch.html">MesosContainerizerLaunch</a> (<a class="el" href="namespacemesos_1_1internal_1_1slave.html">mesos::internal::slave</a>)   </td><td valign="top"><a class="el" href="structmesos_1_1internal_1_1cram__md5_1_1Property.html">Property</a> (<a class="el" href="namespacemesos_1_1internal_1_1cram__md5.html">mesos::internal::cram_md5</a>)   </td><td valign="top"><a class="el" href="classprocess_1_1Time.html">Time</a> (<a class="el" href="namespaceprocess.html">process</a>)   </td></tr>
-<tr><td valign="top"><a class="el" href="structzookeeper_1_1Authentication.html">Authentication</a> (<a class="el" href="namespacezookeeper.html">zookeeper</a>)   </td><td valign="top"><a class="el" href="classprocess_1_1FilterTestEventListener.html">FilterTestEventListener</a> (<a class="el" href="namespaceprocess.html">process</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1slave_1_1MesosContainerizerMount.html">MesosContainerizerMount</a> (<a class="el" href="namespacemesos_1_1internal_1_1slave.html">mesos::internal::slave</a>)   </td><td valign="top"><a class="el" href="structJSON_1_1Protobuf.html">Protobuf</a> (<a class="el" href="namespaceJSON.html">JSON</a>)   </td><td valign="top"><a class="el" href="classprocess_1_1Timeout.html">Timeout</a> (<a class="el" href="namespaceprocess.html">process</a>)   </td></tr>
-<tr><td valign="top"><a class="el" href="structprocess_1_1http_1_1authentication_1_1AuthenticationResult.html">AuthenticationResult</a> (<a class="el" href="namespaceprocess_1_1http_1_1authentication.html">process::http::authentication</a>)   </td><td valign="top"><a class="el" href="classprocess_1_1firewall_1_1FirewallRule.html">FirewallRule</a> (<a class="el" href="namespaceprocess_1_1firewall.html">process::firewall</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1slave_1_1MesosContainerizerProcess.html">MesosContainerizerProcess</a> (<a class="el" href="namespacemesos_1_1internal_1_1slave.html">mesos::internal::slave</a>)   </td><td valign="top"><a class="el" href="classProtobufProcess.html">ProtobufProcess</a>   </td><td valign="top"><a class="el" href="classprocess_1_1Timer.html">Timer</a> (<a class="el" href="namespaceprocess.html">process</a>)   </td></tr>
-<tr><td valign="top"><a class="el" href="classmesos_1_1Authenticator.html">Authenticator</a> (<a class="el" href="namespacemesos.html">mesos</a>)   </td><td valign="top"><a class="el" href="structflags_1_1Flag.html">Flag</a> (<a class="el" href="namespaceflags.html">flags</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1MesosExecutorDriver.html">MesosExecutorDriver</a> (<a class="el" href="namespacemesos.html">mesos</a>)   </td><td valign="top"><a class="el" href="structProtocol.html">Protocol</a>   </td><td valign="top"><a class="el" href="classprocess_1_1metrics_1_1Timer.html">Timer</a> (<a class="el" href="namespaceprocess_1_1metrics.html">process::metrics</a>)   </td></tr>
-<tr><td valign="top"><a class="el" href="classprocess_1_1http_1_1authentication_1_1Authenticator.html">Authenticator</a> (<a class="el" href="namespaceprocess_1_1http_1_1authentication.html">process::http::authentication</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1log_1_1tool_1_1Benchmark_1_1Flags.html">Benchmark::Flags</a> (<a class="el" href="namespacemesos_1_1internal_1_1log_1_1tool.html">mesos::internal::log::tool</a>)   </td><td valign="top"><a class="el" href="structmesos_1_1python_1_1MesosExecutorDriverImpl.html">MesosExecutorDriverImpl</a> (<a class="el" href="namespacemesos_1_1python.html">mesos::python</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1slave_1_1Provisioner.html">Provisioner</a> (<a class="el" href="namespacemesos_1_1internal_1_1slave.html">mesos::internal::slave</a>)   </td><td valign="top"><a class="el" href="structprocess_1_1TimeSeries.html"
>TimeSeries</a> (<a class="el" href="namespaceprocess.html">process</a>)   </td></tr>
-<tr><td valign="top"><a class="el" href="classprocess_1_1http_1_1authentication_1_1AuthenticatorManager.html">AuthenticatorManager</a> (<a class="el" href="namespaceprocess_1_1http_1_1authentication.html">process::http::authentication</a>)   </td><td valign="top"><a class="el" href="structmesos_1_1internal_1_1tests_1_1ActiveUserTestHelper_1_1Flags.html">ActiveUserTestHelper::Flags</a> (<a class="el" href="namespacemesos_1_1internal_1_1tests.html">mesos::internal::tests</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1slave_1_1MesosIsolator.html">MesosIsolator</a> (<a class="el" href="namespacemesos_1_1internal_1_1slave.html">mesos::internal::slave</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1slave_1_1ProvisionerProcess.html">ProvisionerProcess</a> (<a class="el" href="namespacemesos_1_1internal_1_1slave.html">mesos::internal::slave</a>)   </td><td valign="top"><a class
="el" href="classmesos_1_1internal_1_1log_1_1tool_1_1Tool.html">Tool</a> (<a class="el" href="namespacemesos_1_1internal_1_1log_1_1tool.html">mesos::internal::log::tool</a>)   </td></tr>
-<tr><td valign="top"><a class="el" href="classmesos_1_1Authorizer.html">Authorizer</a> (<a class="el" href="namespacemesos.html">mesos</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1log_1_1tool_1_1Initialize_1_1Flags.html">Initialize::Flags</a> (<a class="el" href="namespacemesos_1_1internal_1_1log_1_1tool.html">mesos::internal::log::tool</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1slave_1_1MesosIsolatorProcess.html">MesosIsolatorProcess</a> (<a class="el" href="namespacemesos_1_1internal_1_1slave.html">mesos::internal::slave</a>)   </td><td valign="top"><a class="el" href="structmesos_1_1internal_1_1slave_1_1ProvisionInfo.html">ProvisionInfo</a> (<a class="el" href="namespacemesos_1_1internal_1_1slave.html">mesos::internal::slave</a>)   </td><td valign="top"><a class="el" href="structJSON_1_1True.html">True</a> (<a class="el" href="namespaceJSON.html">JSON</a>)
0;  </td></tr>
-<tr><td valign="top"><a class="el" href="classprocess_1_1internal_1_1AwaitProcess.html">AwaitProcess</a> (<a class="el" href="namespaceprocess_1_1internal.html">process::internal</a>)   </td><td valign="top"><a class="el" href="structmesos_1_1internal_1_1tests_1_1CapabilitiesTestHelper_1_1Flags.html">CapabilitiesTestHelper::Flags</a> (<a class="el" href="namespacemesos_1_1internal_1_1tests.html">mesos::internal::tests</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1MesosSchedulerDriver.html">MesosSchedulerDriver</a> (<a class="el" href="namespacemesos.html">mesos</a>)   </td><td valign="top"><a class="el" href="classJSON_1_1Proxy.html">Proxy</a> (<a class="el" href="namespaceJSON.html">JSON</a>)   </td><td valign="top"><a class="el" href="classTry.html">Try</a>   </td></tr>
+<tr><td valign="top"><a class="el" href="structmesos_1_1internal_1_1master_1_1allocator_1_1RandomSorter_1_1Node_1_1Allocation.html">RandomSorter::Node::Allocation</a> (<a class="el" href="namespacemesos_1_1internal_1_1master_1_1allocator.html">mesos::internal::master::allocator</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1master_1_1detector_1_1MasterDetector.html">MasterDetector</a> (<a class="el" href="namespacemesos_1_1master_1_1detector.html">mesos::master::detector</a>)   </td><td valign="top"><a class="el" href="structmesos_1_1internal_1_1tests_1_1ParamExecutorType_1_1Printer.html">ParamExecutorType::Printer</a> (<a class="el" href="namespacemesos_1_1internal_1_1tests.html">mesos::internal::tests</a>)   </td><td valign="top"><a class="el" href="structrouting_1_1action_1_1Terminal.html">Terminal</a> (<a class="el" href="namespacerouting_1_1action.html">routing::action</a>)   </td></tr>
+<tr><td valign="top"><a class="el" href="classmesos_1_1allocator_1_1Allocator.html">Allocator</a> (<a class="el" href="namespacemesos_1_1allocator.html">mesos::allocator</a>)   </td><td valign="top"><a class="el" href="structprocess_1_1Failure.html">Failure</a> (<a class="el" href="namespaceprocess.html">process</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1resource__provider_1_1MasterRegistrar.html">MasterRegistrar</a> (<a class="el" href="namespacemesos_1_1resource__provider.html">mesos::resource_provider</a>)   </td><td valign="top"><a class="el" href="classrouting_1_1filter_1_1Priority.html">Priority</a> (<a class="el" href="namespacerouting_1_1filter.html">routing::filter</a>)   </td><td valign="top"><a class="el" href="structprocess_1_1TerminateEvent.html">TerminateEvent</a> (<a class="el" href="namespaceprocess.html">process</a>)   </td></tr>
+<tr><td valign="top"><a class="el" href="classmesos_1_1modules_1_1Anonymous.html">Anonymous</a> (<a class="el" href="namespacemesos_1_1modules.html">mesos::modules</a>)   </td><td valign="top"><a class="el" href="structJSON_1_1False.html">False</a> (<a class="el" href="namespaceJSON.html">JSON</a>)   </td><td valign="top"><a class="el" href="structzookeeper_1_1Group_1_1Membership.html">Group::Membership</a> (<a class="el" href="namespacezookeeper.html">zookeeper</a>)   </td><td valign="top"><a class="el" href="classprocess_1_1Process.html">Process</a> (<a class="el" href="namespaceprocess.html">process</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1tests_1_1TestAllocator.html">TestAllocator</a> (<a class="el" href="namespacemesos_1_1internal_1_1tests.html">mesos::internal::tests</a>)   </td></tr>
+<tr><td valign="top"><a class="el" href="classmesos_1_1internal_1_1slave_1_1AppcRuntimeIsolatorProcess.html">AppcRuntimeIsolatorProcess</a> (<a class="el" href="namespacemesos_1_1internal_1_1slave.html">mesos::internal::slave</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1uri_1_1Fetcher.html">Fetcher</a> (<a class="el" href="namespacemesos_1_1uri.html">mesos::uri</a>)   </td><td valign="top"><a class="el" href="structos_1_1Memory.html">Memory</a> (<a class="el" href="namespaceos.html">os</a>)   </td><td valign="top"><a class="el" href="structos_1_1Process.html">Process</a> (<a class="el" href="namespaceos.html">os</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1tests_1_1TestContainerizer.html">TestContainerizer</a> (<a class="el" href="namespacemesos_1_1internal_1_1tests.html">mesos::internal::tests</a>)   </td></tr>
+<tr><td valign="top"><a class="el" href="classos_1_1raw_1_1Argv.html">Argv</a> (<a class="el" href="namespaceos_1_1raw.html">os::raw</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1slave_1_1Fetcher.html">Fetcher</a> (<a class="el" href="namespacemesos_1_1internal_1_1slave.html">mesos::internal::slave</a>)   </td><td valign="top"><a class="el" href="structos_1_1Fork_1_1Tree_1_1Memory.html">Fork::Tree::Memory</a> (<a class="el" href="namespaceos.html">os</a>)   </td><td valign="top"><a class="el" href="classprocess_1_1ProcessBase.html">ProcessBase</a> (<a class="el" href="namespaceprocess.html">process</a>)   </td><td valign="top"><a class="el" href="classstout_1_1internal_1_1tests_1_1TestFilter.html">TestFilter</a> (<a class="el" href="namespacestout_1_1internal_1_1tests.html">stout::internal::tests</a>)   </td></tr>
+<tr><td valign="top"><a class="el" href="structJSON_1_1Array.html">Array</a> (<a class="el" href="namespaceJSON.html">JSON</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1slave_1_1appc_1_1Fetcher.html">Fetcher</a> (<a class="el" href="namespacemesos_1_1internal_1_1slave_1_1appc.html">mesos::internal::slave::appc</a>)   </td><td valign="top"><a class="el" href="classprocess_1_1MemoryProfiler.html">MemoryProfiler</a> (<a class="el" href="namespaceprocess.html">process</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1capabilities_1_1ProcessCapabilities.html">ProcessCapabilities</a> (<a class="el" href="namespacemesos_1_1internal_1_1capabilities.html">mesos::internal::capabilities</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1tests_1_1TestingMesosSchedulerDriver.html">TestingMesosSchedulerDriver</a> (<a class="el" href="namespacemesos_1_1internal_
1_1tests.html">mesos::internal::tests</a>)   </td></tr>
+<tr><td valign="top"><a class="el" href="classJSON_1_1ArrayWriter.html">ArrayWriter</a> (<a class="el" href="namespaceJSON.html">JSON</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1slave_1_1FetcherProcess.html">FetcherProcess</a> (<a class="el" href="namespacemesos_1_1internal_1_1slave.html">mesos::internal::slave</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1slave_1_1MemorySubsystemProcess.html">MemorySubsystemProcess</a> (<a class="el" href="namespacemesos_1_1internal_1_1slave.html">mesos::internal::slave</a>)   </td><td valign="top"><a class="el" href="structinternal_1_1windows_1_1ProcessData.html">ProcessData</a> (<a class="el" href="namespaceinternal_1_1windows.html">internal::windows</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1tests_1_1TestLauncher.html">TestLauncher</a> (<a class="el" href="namespacemesos_1_1internal_1_1tests.html
">mesos::internal::tests</a>)   </td></tr>
+<tr><td valign="top"><a class="el" href="classprocess_1_1AsyncExecutor.html">AsyncExecutor</a> (<a class="el" href="namespaceprocess.html">process</a>)   </td><td valign="top"><a class="el" href="classJvm_1_1Field.html">Jvm::Field</a>   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1tests_1_1MemoryTestHelper.html">MemoryTestHelper</a> (<a class="el" href="namespacemesos_1_1internal_1_1tests.html">mesos::internal::tests</a>)   </td><td valign="top"><a class="el" href="classprocess_1_1ProcessReference.html">ProcessReference</a> (<a class="el" href="namespaceprocess.html">process</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1tests_1_1scheduler_1_1TestMesos.html">TestMesos</a> (<a class="el" href="namespacemesos_1_1internal_1_1tests_1_1scheduler.html">mesos::internal::tests::scheduler</a>)   </td></tr>
+<tr><td valign="top"><a class="el" href="structAtLeastOneIsSameOrConvertible.html">AtLeastOneIsSameOrConvertible</a>   </td><td valign="top"><a class="el" href="classjava_1_1io_1_1File.html">File</a> (<a class="el" href="namespacejava_1_1io.html">java::io</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1v1_1_1executor_1_1Mesos.html">Mesos</a> (<a class="el" href="namespacemesos_1_1v1_1_1executor.html">mesos::v1::executor</a>)   </td><td valign="top"><a class="el" href="structproc_1_1ProcessStatus.html">ProcessStatus</a> (<a class="el" href="namespaceproc.html">proc</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1tests_1_1executor_1_1TestMesos.html">TestMesos</a> (<a class="el" href="namespacemesos_1_1internal_1_1tests_1_1executor.html">mesos::internal::tests::executor</a>)   </td></tr>
+<tr><td valign="top"><a class="el" href="structAtLeastOneIsSameOrConvertible_3_01U_00_01T_00_01Ts_8_8_8_01_4.html">AtLeastOneIsSameOrConvertible< U, T, Ts... ></a>   </td><td valign="top"><a class="el" href="clasself_1_1File.html">File</a> (<a class="el" href="namespaceelf.html">elf</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1v1_1_1scheduler_1_1Mesos.html">Mesos</a> (<a class="el" href="namespacemesos_1_1v1_1_1scheduler.html">mesos::v1::scheduler</a>)   </td><td valign="top"><a class="el" href="classos_1_1ProcessTree.html">ProcessTree</a> (<a class="el" href="namespaceos.html">os</a>)   </td><td valign="top"><a class="el" href="classTestModule.html">TestModule</a>   </td></tr>
+<tr><td valign="top"><a class="el" href="classmesos_1_1Attributes.html">Attributes</a> (<a class="el" href="namespacemesos.html">mesos</a>)   </td><td valign="top"><a class="el" href="classprocess_1_1FileEncoder.html">FileEncoder</a> (<a class="el" href="namespaceprocess.html">process</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1master_1_1allocator_1_1MesosAllocator.html">MesosAllocator</a> (<a class="el" href="namespacemesos_1_1internal_1_1master_1_1allocator.html">mesos::internal::master::allocator</a>)   </td><td valign="top"><a class="el" href="classProcessWatcher.html">ProcessWatcher</a>   </td><td valign="top"><a class="el" href="classprocess_1_1TestsFilter.html">TestsFilter</a> (<a class="el" href="namespaceprocess.html">process</a>)   </td></tr>
+<tr><td valign="top"><a class="el" href="classmesos_1_1v1_1_1Attributes.html">Attributes</a> (<a class="el" href="namespacemesos_1_1v1.html">mesos::v1</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1Files.html">Files</a> (<a class="el" href="namespacemesos_1_1internal.html">mesos::internal</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1master_1_1allocator_1_1MesosAllocatorProcess.html">MesosAllocatorProcess</a> (<a class="el" href="namespacemesos_1_1internal_1_1master_1_1allocator.html">mesos::internal::master::allocator</a>)   </td><td valign="top"><a class="el" href="classprocess_1_1EventQueue_1_1Producer.html">EventQueue::Producer</a> (<a class="el" href="namespaceprocess.html">process</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1tests_1_1TestStore.html">TestStore</a> (<a class="el" href="namespacemesos_1_1internal_1_1tests.html">mesos::
internal::tests</a>)   </td></tr>
+<tr><td valign="top"><a class="el" href="classmesos_1_1internal_1_1slave_1_1AufsBackend.html">AufsBackend</a> (<a class="el" href="namespacemesos_1_1internal_1_1slave.html">mesos::internal::slave</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1FilesError.html">FilesError</a> (<a class="el" href="namespacemesos_1_1internal.html">mesos::internal</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1v1_1_1executor_1_1MesosBase.html">MesosBase</a> (<a class="el" href="namespacemesos_1_1v1_1_1executor.html">mesos::v1::executor</a>)   </td><td valign="top"><a class="el" href="structmesos_1_1DiskProfileAdaptor_1_1ProfileInfo.html">DiskProfileAdaptor::ProfileInfo</a> (<a class="el" href="namespacemesos.html">mesos</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1tests_1_1ZooKeeperTest_1_1TestWatcher.html">ZooKeeperTest::TestWatcher</a> (<a class="el" href="namespacemesos
_1_1internal_1_1tests.html">mesos::internal::tests</a>)   </td></tr>
+<tr><td valign="top"><a class="el" href="classmesos_1_1http_1_1authentication_1_1Authenticatee.html">Authenticatee</a> (<a class="el" href="namespacemesos_1_1http_1_1authentication.html">mesos::http::authentication</a>)   </td><td valign="top"><a class="el" href="classorg_1_1apache_1_1zookeeper_1_1server_1_1persistence_1_1FileTxnSnapLog.html">FileTxnSnapLog</a> (<a class="el" href="namespaceorg_1_1apache_1_1zookeeper_1_1server_1_1persistence.html">org::apache::zookeeper::server::persistence</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1v1_1_1scheduler_1_1MesosBase.html">MesosBase</a> (<a class="el" href="namespacemesos_1_1v1_1_1scheduler.html">mesos::v1::scheduler</a>)   </td><td valign="top"><a class="el" href="classprocess_1_1Profiler.html">Profiler</a> (<a class="el" href="namespaceprocess.html">process</a>)   </td><td valign="top"><a class="el" href="classjava_1_1lang_1_1Throwable.html">Throwable</a> (<
a class="el" href="namespacejava_1_1lang.html">java::lang</a>)   </td></tr>
+<tr><td valign="top"><a class="el" href="classmesos_1_1Authenticatee.html">Authenticatee</a> (<a class="el" href="namespacemesos.html">mesos</a>)   </td><td valign="top"><a class="el" href="classprocess_1_1Filter.html">Filter</a> (<a class="el" href="namespaceprocess.html">process</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1slave_1_1MesosContainerizer.html">MesosContainerizer</a> (<a class="el" href="namespacemesos_1_1internal_1_1slave.html">mesos::internal::slave</a>)   </td><td valign="top"><a class="el" href="classprocess_1_1Promise.html">Promise</a> (<a class="el" href="namespaceprocess.html">process</a>)   </td><td valign="top"><a class="el" href="classprocess_1_1internal_1_1ThunkProcess.html">ThunkProcess</a> (<a class="el" href="namespaceprocess_1_1internal.html">process::internal</a>)   </td></tr>
+<tr><td valign="top"><a class="el" href="structzookeeper_1_1Authentication.html">Authentication</a> (<a class="el" href="namespacezookeeper.html">zookeeper</a>)   </td><td valign="top"><a class="el" href="structrouting_1_1filter_1_1Filter.html">Filter</a> (<a class="el" href="namespacerouting_1_1filter.html">routing::filter</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1slave_1_1MesosContainerizerLaunch.html">MesosContainerizerLaunch</a> (<a class="el" href="namespacemesos_1_1internal_1_1slave.html">mesos::internal::slave</a>)   </td><td valign="top"><a class="el" href="structmesos_1_1internal_1_1cram__md5_1_1Property.html">Property</a> (<a class="el" href="namespacemesos_1_1internal_1_1cram__md5.html">mesos::internal::cram_md5</a>)   </td><td valign="top"><a class="el" href="classprocess_1_1Time.html">Time</a> (<a class="el" href="namespaceprocess.html">process</a>)   </td></tr>
+<tr><td valign="top"><a class="el" href="structprocess_1_1http_1_1authentication_1_1AuthenticationResult.html">AuthenticationResult</a> (<a class="el" href="namespaceprocess_1_1http_1_1authentication.html">process::http::authentication</a>)   </td><td valign="top"><a class="el" href="classprocess_1_1FilterTestEventListener.html">FilterTestEventListener</a> (<a class="el" href="namespaceprocess.html">process</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1slave_1_1MesosContainerizerMount.html">MesosContainerizerMount</a> (<a class="el" href="namespacemesos_1_1internal_1_1slave.html">mesos::internal::slave</a>)   </td><td valign="top"><a class="el" href="structJSON_1_1Protobuf.html">Protobuf</a> (<a class="el" href="namespaceJSON.html">JSON</a>)   </td><td valign="top"><a class="el" href="classprocess_1_1Timeout.html">Timeout</a> (<a class="el" href="namespaceprocess.html">process</a>)  &#
160;</td></tr>
+<tr><td valign="top"><a class="el" href="classmesos_1_1Authenticator.html">Authenticator</a> (<a class="el" href="namespacemesos.html">mesos</a>)   </td><td valign="top"><a class="el" href="classprocess_1_1firewall_1_1FirewallRule.html">FirewallRule</a> (<a class="el" href="namespaceprocess_1_1firewall.html">process::firewall</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1slave_1_1MesosContainerizerProcess.html">MesosContainerizerProcess</a> (<a class="el" href="namespacemesos_1_1internal_1_1slave.html">mesos::internal::slave</a>)   </td><td valign="top"><a class="el" href="classProtobufProcess.html">ProtobufProcess</a>   </td><td valign="top"><a class="el" href="classprocess_1_1Timer.html">Timer</a> (<a class="el" href="namespaceprocess.html">process</a>)   </td></tr>
+<tr><td valign="top"><a class="el" href="classprocess_1_1http_1_1authentication_1_1Authenticator.html">Authenticator</a> (<a class="el" href="namespaceprocess_1_1http_1_1authentication.html">process::http::authentication</a>)   </td><td valign="top"><a class="el" href="structflags_1_1Flag.html">Flag</a> (<a class="el" href="namespaceflags.html">flags</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1MesosExecutorDriver.html">MesosExecutorDriver</a> (<a class="el" href="namespacemesos.html">mesos</a>)   </td><td valign="top"><a class="el" href="structProtocol.html">Protocol</a>   </td><td valign="top"><a class="el" href="classprocess_1_1metrics_1_1Timer.html">Timer</a> (<a class="el" href="namespaceprocess_1_1metrics.html">process::metrics</a>)   </td></tr>
+<tr><td valign="top"><a class="el" href="classprocess_1_1http_1_1authentication_1_1AuthenticatorManager.html">AuthenticatorManager</a> (<a class="el" href="namespaceprocess_1_1http_1_1authentication.html">process::http::authentication</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1log_1_1tool_1_1Benchmark_1_1Flags.html">Benchmark::Flags</a> (<a class="el" href="namespacemesos_1_1internal_1_1log_1_1tool.html">mesos::internal::log::tool</a>)   </td><td valign="top"><a class="el" href="structmesos_1_1python_1_1MesosExecutorDriverImpl.html">MesosExecutorDriverImpl</a> (<a class="el" href="namespacemesos_1_1python.html">mesos::python</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1slave_1_1Provisioner.html">Provisioner</a> (<a class="el" href="namespacemesos_1_1internal_1_1slave.html">mesos::internal::slave</a>)   </td><td valign="top"><a class="el" href="structprocess_1_1Ti
meSeries.html">TimeSeries</a> (<a class="el" href="namespaceprocess.html">process</a>)   </td></tr>
+<tr><td valign="top"><a class="el" href="classmesos_1_1Authorizer.html">Authorizer</a> (<a class="el" href="namespacemesos.html">mesos</a>)   </td><td valign="top"><a class="el" href="structmesos_1_1internal_1_1tests_1_1ActiveUserTestHelper_1_1Flags.html">ActiveUserTestHelper::Flags</a> (<a class="el" href="namespacemesos_1_1internal_1_1tests.html">mesos::internal::tests</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1slave_1_1MesosIsolator.html">MesosIsolator</a> (<a class="el" href="namespacemesos_1_1internal_1_1slave.html">mesos::internal::slave</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1slave_1_1ProvisionerProcess.html">ProvisionerProcess</a> (<a class="el" href="namespacemesos_1_1internal_1_1slave.html">mesos::internal::slave</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1log_1_1tool_1_1Tool.html">Tool</a> (<a class="el" href="namesp
acemesos_1_1internal_1_1log_1_1tool.html">mesos::internal::log::tool</a>)   </td></tr>
+<tr><td valign="top"><a class="el" href="classprocess_1_1internal_1_1AwaitProcess.html">AwaitProcess</a> (<a class="el" href="namespaceprocess_1_1internal.html">process::internal</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1log_1_1tool_1_1Initialize_1_1Flags.html">Initialize::Flags</a> (<a class="el" href="namespacemesos_1_1internal_1_1log_1_1tool.html">mesos::internal::log::tool</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1slave_1_1MesosIsolatorProcess.html">MesosIsolatorProcess</a> (<a class="el" href="namespacemesos_1_1internal_1_1slave.html">mesos::internal::slave</a>)   </td><td valign="top"><a class="el" href="structmesos_1_1internal_1_1slave_1_1ProvisionInfo.html">ProvisionInfo</a> (<a class="el" href="namespacemesos_1_1internal_1_1slave.html">mesos::internal::slave</a>)   </td><td valign="top"><a class="el" href="structJSON_1_1True.html">True</a> (<a class=
"el" href="namespaceJSON.html">JSON</a>)   </td></tr>
<tr><td rowspan="2" valign="bottom"><a name="letter_B"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  B  </div></td></tr></table>
-</td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1log_1_1tool_1_1Read_1_1Flags.html">Read::Flags</a> (<a class="el" href="namespacemesos_1_1internal_1_1log_1_1tool.html">mesos::internal::log::tool</a>)   </td><td valign="top"><a class="el" href="structmesos_1_1python_1_1MesosSchedulerDriverImpl.html">MesosSchedulerDriverImpl</a> (<a class="el" href="namespacemesos_1_1python.html">mesos::python</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1python_1_1ProxyExecutor.html">ProxyExecutor</a> (<a class="el" href="namespacemesos_1_1python.html">mesos::python</a>)   </td><td rowspan="2" valign="bottom"><a name="letter_U"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  U  </div></td></tr></table>
+</td><td valign="top"><a class="el" href="structmesos_1_1internal_1_1tests_1_1CapabilitiesTestHelper_1_1Flags.html">CapabilitiesTestHelper::Flags</a> (<a class="el" href="namespacemesos_1_1internal_1_1tests.html">mesos::internal::tests</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1MesosSchedulerDriver.html">MesosSchedulerDriver</a> (<a class="el" href="namespacemesos.html">mesos</a>)   </td><td valign="top"><a class="el" href="classJSON_1_1Proxy.html">Proxy</a> (<a class="el" href="namespaceJSON.html">JSON</a>)   </td><td valign="top"><a class="el" href="classTry.html">Try</a>   </td></tr>
+<tr><td valign="top"><a class="el" href="classmesos_1_1internal_1_1log_1_1tool_1_1Read_1_1Flags.html">Read::Flags</a> (<a class="el" href="namespacemesos_1_1internal_1_1log_1_1tool.html">mesos::internal::log::tool</a>)   </td><td valign="top"><a class="el" href="structmesos_1_1python_1_1MesosSchedulerDriverImpl.html">MesosSchedulerDriverImpl</a> (<a class="el" href="namespacemesos_1_1python.html">mesos::python</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1python_1_1ProxyExecutor.html">ProxyExecutor</a> (<a class="el" href="namespacemesos_1_1python.html">mesos::python</a>)   </td><td rowspan="2" valign="bottom"><a name="letter_U"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  U  </div></td></tr></table>
</td></tr>
-<tr><td valign="top"><a class="el" href="classmesos_1_1internal_1_1log_1_1tool_1_1Replica_1_1Flags.html">Replica::Flags</a> (<a class="el" href="namespacemesos_1_1internal_1_1log_1_1tool.html">mesos::internal::log::tool</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1tests_1_1MesosTest.html">MesosTest</a> (<a class="el" href="namespacemesos_1_1internal_1_1tests.html">mesos::internal::tests</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1python_1_1ProxyScheduler.html">ProxyScheduler</a> (<a class="el" href="namespacemesos_1_1python.html">mesos::python</a>)   </td></tr>
-<tr><td valign="top"><a class="el" href="classmesos_1_1internal_1_1slave_1_1Backend.html">Backend</a> (<a class="el" href="namespacemesos_1_1internal_1_1slave.html">mesos::internal::slave</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1logging_1_1Flags.html">Flags</a> (<a class="el" href="namespacemesos_1_1internal_1_1logging.html">mesos::internal::logging</a>)   </td><td valign="top"><a class="el" href="structprocess_1_1Message.html">Message</a> (<a class="el" href="namespaceprocess.html">process</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1master_1_1Prune.html">Prune</a> (<a class="el" href="namespacemesos_1_1internal_1_1master.html">mesos::internal::master</a>)   </td><td valign="top"><a class="el" href="classrouting_1_1filter_1_1U32Handle.html">U32Handle</a> (<a class="el" href="namespacerouting_1_1filter.html">routing::filter</a>)   </td></tr>
-<tr><td valign="top"><a class="el" href="structprocess_1_1http_1_1BadRequest.html">BadRequest</a> (<a class="el" href="namespaceprocess_1_1http.html">process::http</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1tests_1_1Flags.html">Flags</a> (<a class="el" href="namespacemesos_1_1internal_1_1tests.html">mesos::internal::tests</a>)   </td><td valign="top"><a class="el" href="classprocess_1_1MessageEncoder.html">MessageEncoder</a> (<a class="el" href="namespaceprocess.html">process</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1slave_1_1docker_1_1Puller.html">Puller</a> (<a class="el" href="namespacemesos_1_1internal_1_1slave_1_1docker.html">mesos::internal::slave::docker</a>)   </td><td valign="top"><a class="el" href="structprocess_1_1http_1_1Unauthorized.html">Unauthorized</a> (<a class="el" href="namespaceprocess_1_1http.html">process::http</a>)   </td
></tr>
-<tr><td valign="top"><a class="el" href="classmesos_1_1http_1_1authentication_1_1BasicAuthenticatee.html">BasicAuthenticatee</a> (<a class="el" href="namespacemesos_1_1http_1_1authentication.html">mesos::http::authentication</a>)   </td><td valign="top"><a class="el" href="structmesos_1_1internal_1_1tests_1_1HttpServerTestHelper_1_1Flags.html">HttpServerTestHelper::Flags</a> (<a class="el" href="namespacemesos_1_1internal_1_1tests.html">mesos::internal::tests</a>)   </td><td valign="top"><a class="el" href="structprocess_1_1MessageEvent.html">MessageEvent</a> (<a class="el" href="namespaceprocess.html">process</a>)   </td><td valign="top"><a class="el" href="classprocess_1_1metrics_1_1PullGauge.html">PullGauge</a> (<a class="el" href="namespaceprocess_1_1metrics.html">process::metrics</a>)   </td><td valign="top"><a class="el" href="structmesos_1_1UnavailableResources.html">UnavailableResources</a> (<a class="el" href="name
spacemesos.html">mesos</a>)   </td></tr>
-<tr><td valign="top"><a class="el" href="classprocess_1_1http_1_1authentication_1_1BasicAuthenticator.html">BasicAuthenticator</a> (<a class="el" href="namespaceprocess_1_1http_1_1authentication.html">process::http::authentication</a>)   </td><td valign="top"><a class="el" href="structmesos_1_1internal_1_1tests_1_1KillPolicyTestHelper_1_1Flags.html">KillPolicyTestHelper::Flags</a> (<a class="el" href="namespacemesos_1_1internal_1_1tests.html">mesos::internal::tests</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1slave_1_1docker_1_1MetadataManager.html">MetadataManager</a> (<a class="el" href="namespacemesos_1_1internal_1_1slave_1_1docker.html">mesos::internal::slave::docker</a>)   </td><td valign="top"><a class="el" href="classprocess_1_1metrics_1_1PushGauge.html">PushGauge</a> (<a class="el" href="namespaceprocess_1_1metrics.html">process::metrics</a>)   </td><td valign="top"><a class="el" href="
structprocess_1_1UndiscardableDecorator.html">UndiscardableDecorator</a> (<a class="el" href="namespaceprocess.html">process</a>)   </td></tr>
-<tr><td valign="top"><a class="el" href="classmesos_1_1http_1_1authentication_1_1BasicAuthenticatorFactory.html">BasicAuthenticatorFactory</a> (<a class="el" href="namespacemesos_1_1http_1_1authentication.html">mesos::http::authentication</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1uri_1_1fetcher_1_1Flags.html">Flags</a> (<a class="el" href="namespacemesos_1_1uri_1_1fetcher.html">mesos::uri::fetcher</a>)   </td><td valign="top"><a class="el" href="classJvm_1_1Method.html">Jvm::Method</a>   </td><td rowspan="2" valign="bottom"><a name="letter_Q"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  Q  </div></td></tr></table>
+<tr><td valign="top"><a class="el" href="classmesos_1_1internal_1_1slave_1_1Backend.html">Backend</a> (<a class="el" href="namespacemesos_1_1internal_1_1slave.html">mesos::internal::slave</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1log_1_1tool_1_1Replica_1_1Flags.html">Replica::Flags</a> (<a class="el" href="namespacemesos_1_1internal_1_1log_1_1tool.html">mesos::internal::log::tool</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1tests_1_1MesosTest.html">MesosTest</a> (<a class="el" href="namespacemesos_1_1internal_1_1tests.html">mesos::internal::tests</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1python_1_1ProxyScheduler.html">ProxyScheduler</a> (<a class="el" href="namespacemesos_1_1python.html">mesos::python</a>)   </td></tr>
+<tr><td valign="top"><a class="el" href="structprocess_1_1http_1_1BadRequest.html">BadRequest</a> (<a class="el" href="namespaceprocess_1_1http.html">process::http</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1logging_1_1Flags.html">Flags</a> (<a class="el" href="namespacemesos_1_1internal_1_1logging.html">mesos::internal::logging</a>)   </td><td valign="top"><a class="el" href="structprocess_1_1Message.html">Message</a> (<a class="el" href="namespaceprocess.html">process</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1master_1_1Prune.html">Prune</a> (<a class="el" href="namespacemesos_1_1internal_1_1master.html">mesos::internal::master</a>)   </td><td valign="top"><a class="el" href="classrouting_1_1filter_1_1U32Handle.html">U32Handle</a> (<a class="el" href="namespacerouting_1_1filter.html">routing::filter</a>)   </td></tr>
+<tr><td valign="top"><a class="el" href="classmesos_1_1http_1_1authentication_1_1BasicAuthenticatee.html">BasicAuthenticatee</a> (<a class="el" href="namespacemesos_1_1http_1_1authentication.html">mesos::http::authentication</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1tests_1_1Flags.html">Flags</a> (<a class="el" href="namespacemesos_1_1internal_1_1tests.html">mesos::internal::tests</a>)   </td><td valign="top"><a class="el" href="classprocess_1_1MessageEncoder.html">MessageEncoder</a> (<a class="el" href="namespaceprocess.html">process</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1slave_1_1docker_1_1Puller.html">Puller</a> (<a class="el" href="namespacemesos_1_1internal_1_1slave_1_1docker.html">mesos::internal::slave::docker</a>)   </td><td valign="top"><a class="el" href="structprocess_1_1http_1_1Unauthorized.html">Unauthorized</a> (<a class="el" href="namespacep
rocess_1_1http.html">process::http</a>)   </td></tr>
+<tr><td valign="top"><a class="el" href="classprocess_1_1http_1_1authentication_1_1BasicAuthenticator.html">BasicAuthenticator</a> (<a class="el" href="namespaceprocess_1_1http_1_1authentication.html">process::http::authentication</a>)   </td><td valign="top"><a class="el" href="structmesos_1_1internal_1_1tests_1_1HttpServerTestHelper_1_1Flags.html">HttpServerTestHelper::Flags</a> (<a class="el" href="namespacemesos_1_1internal_1_1tests.html">mesos::internal::tests</a>)   </td><td valign="top"><a class="el" href="structprocess_1_1MessageEvent.html">MessageEvent</a> (<a class="el" href="namespaceprocess.html">process</a>)   </td><td valign="top"><a class="el" href="classprocess_1_1metrics_1_1PullGauge.html">PullGauge</a> (<a class="el" href="namespaceprocess_1_1metrics.html">process::metrics</a>)   </td><td valign="top"><a class="el" href="structmesos_1_1UnavailableResources.html">UnavailableResources</a> (<a class="el" href
="namespacemesos.html">mesos</a>)   </td></tr>
+<tr><td valign="top"><a class="el" href="classmesos_1_1http_1_1authentication_1_1BasicAuthenticatorFactory.html">BasicAuthenticatorFactory</a> (<a class="el" href="namespacemesos_1_1http_1_1authentication.html">mesos::http::authentication</a>)   </td><td valign="top"><a class="el" href="structmesos_1_1internal_1_1tests_1_1KillPolicyTestHelper_1_1Flags.html">KillPolicyTestHelper::Flags</a> (<a class="el" href="namespacemesos_1_1internal_1_1tests.html">mesos::internal::tests</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1internal_1_1slave_1_1docker_1_1MetadataManager.html">MetadataManager</a> (<a class="el" href="namespacemesos_1_1internal_1_1slave_1_1docker.html">mesos::internal::slave::docker</a>)   </td><td valign="top"><a class="el" href="classprocess_1_1metrics_1_1PushGauge.html">PushGauge</a> (<a class="el" href="namespaceprocess_1_1metrics.html">process::metrics</a>)   </td><td valign="top"><a class="el
" href="structprocess_1_1UndiscardableDecorator.html">UndiscardableDecorator</a> (<a class="el" href="namespaceprocess.html">process</a>)   </td></tr>
+<tr><td valign="top"><a class="el" href="classmesos_1_1internal_1_1xfs_1_1BasicBlocks.html">BasicBlocks</a> (<a class="el" href="namespacemesos_1_1internal_1_1xfs.html">mesos::internal::xfs</a>)   </td><td valign="top"><a class="el" href="classmesos_1_1uri_1_1fetcher_1_1Flags.html">Flags</a> (<a class="el" href="namespacemesos_1_1uri_1_1fetcher.html">mesos::uri::fetcher</a>)   </td><td valign="top"><a class="el" href="classJvm_1_1Method.html">Jvm::Metho
<TRUNCATED>
[20/50] mesos-site git commit: Updated the website built from mesos
SHA: 7c9c72d.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/port__mapping_8hpp_source.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/port__mapping_8hpp_source.html b/content/api/latest/c++/port__mapping_8hpp_source.html
index 04d42ee..29ec8b9 100644
--- a/content/api/latest/c++/port__mapping_8hpp_source.html
+++ b/content/api/latest/c++/port__mapping_8hpp_source.html
@@ -52,7 +52,7 @@
<div class="title">port_mapping.hpp</div> </div>
</div><!--header-->
<div class="contents">
-<a href="port__mapping_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// or more contributor license agreements. See the NOTICE file</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// distributed with this work for additional information</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">// regarding copyright ownership. The ASF licenses this file</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00006"></a><sp
an class="lineno"> 6</span> <span class="comment">// "License"); you may not use this file except in compliance</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// with the License. You may obtain a copy of the License at</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">//</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// Unless required by applicable law or agreed to in writing, software</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment">// dis
tributed under the License is distributed on an "AS IS" BASIS,</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">// See the License for the specific language governing permissions and</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// limitations under the License.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#ifndef __PORT_MAPPING_ISOLATOR_HPP__</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#define __PORT_MAPPING_ISOLATOR_HPP__</span></div><
div class="line"><a name="l00019"></a><span class="lineno"> 19</span> </div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include <stdint.h></span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <sys/types.h></span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> </div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <set></span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <string></span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include <vector></span></div><div class="line"><a name="l00027"></
a><span class="lineno"> 27</span> </div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include <<a class="code" href="id_8hpp.html">process/id.hpp</a>></span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include <<a class="code" href="owned_8hpp.html">process/owned.hpp</a>></span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include <<a class="code" href="subprocess_8hpp.html">process/subprocess.hpp</a>></span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> </div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#include <<a class="code" href="3rdparty_2libprocess_2include_2process_2metrics_2metrics_8hpp.html">process/metrics/metrics.hpp</a>></span></div><div class="line"><a
name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#include <<a class="code" href="counter_8hpp.html">process/metrics/counter.hpp</a>></span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include <<a class="code" href="bytes_8hpp.html">stout/bytes.hpp</a>></span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#include <<a class="code" href="hashmap_8hpp.html">stout/hashmap.hpp</a>></span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#include <<a class="code" href="hashset_8hpp.html">stout/hashset.hpp</a>></span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor">#include <<a class="code" href="
3rdparty_2stout_2include_2stout_2ip_8hpp.html">stout/ip.hpp</a>></span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor">#include <<a class="code" href="interval_8hpp.html">stout/interval.hpp</a>></span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="preprocessor">#include <<a class="code" href="mac_8hpp.html">stout/mac.hpp</a>></span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="preprocessor">#include <<a class="code" href="none_8hpp.html">stout/none.hpp</a>></span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor">#include <<a class="code" href="option_8hpp.html">stout/option.hpp</a>></span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor">#include <<a class="code" href="sub
command_8hpp.html">stout/subcommand.hpp</a>></span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#include "<a class="code" href="src_2linux_2routing_2filter_2ip_8hpp.html">linux/routing/filter/ip.hpp</a>"</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> </div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor">#include "<a class="code" href="src_2slave_2flags_8hpp.html">slave/flags.hpp</a>"</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> </div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor">#include "<a class="code" href="src_2slave_2containerizer_2mesos_2isolator_8hpp.html">slave/containerizer/mesos/isolator.hpp</a>&qu
ot;</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> </div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="keyword">namespace </span><a class="code" href="namespacemesos.html">mesos</a> {</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="keyword">namespace </span><a class="code" href="namespaceinternal.html">internal</a> {</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="keyword">namespace </span>slave {</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span> </div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="comment">// The prefix this isolator uses for the virtual ethernet devices.</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="comment">// NOTE: This constant is exposed for testin
g.</span></div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="namespacemesos_1_1internal_1_1slave.html#a41f03e964f9677db22808730f850ccaf"> 57</a></span> <span class="keyword">inline</span> std::string <a class="code" href="namespacemesos_1_1internal_1_1slave.html#a41f03e964f9677db22808730f850ccaf">PORT_MAPPING_VETH_PREFIX</a>() { <span class="keywordflow">return</span> <span class="stringliteral">"mesos"</span>; }</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span> </div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="comment">// The root directory where we bind mount all the namespace handles.</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="comment">// We choose the directory '/var/run/netns' so that we can use</s
pan></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="comment">// iproute2 suite (e.g., ip netns show/exec) to inspect or enter the</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="comment">// network namespace. This is very useful for debugging purposes.</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="comment">// NOTE: This constant is exposed for testing.</span></div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="namespacemesos_1_1internal_1_1slave.html#a0ef18732ab5fdd1b536ab663f7400b79"> 65</a></span> <span class="keyword">inline</span> std::string <a class="code" href="namespacemesos_1_1internal_1_1slave.html#a0ef18732ab5fdd1b536ab663f7400b79">PORT_MAPPING_BIND_MOUNT_ROOT</a>() { <span class="keywordflow">return</span> <span class="stringliteral">"/var/run/netns"</span>; }</
div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span> </div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="comment">// The root directory where we keep all the namespace handle</span></div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="comment">// symlinks. This is introduced in 0.23.0.</span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="comment">// NOTE: This constant is exposed for testing.</span></div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="namespacemesos_1_1internal_1_1slave.html#a1ecd191f897fc379a18f112fd04a30a1"> 70</a></span> <span class="keyword">inline</span> std::string <a class="code" href="namespacemesos_1_1internal_1_1slave.html#a1ecd191f897fc379a18f112fd04a30a1">PORT_MAPPING_BIND_MOUNT_SYMLINK_ROOT</a>()</div><div class="line"><a name="l00071"></a><span cla
ss="lineno"> 71</span> {</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <span class="keywordflow">return</span> <span class="stringliteral">"/var/run/mesos/netns"</span>;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span> }</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span> </div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span> </div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="comment">// These names are used to identify the traffic control statistics</span></div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="comment">// output for each of the Linux Traffic Control Qdiscs we report.</span></div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="namespacemesos_1_1internal_1_1slave.html#a589249d396dcac88f6d67d8f68b8a630
"> 78</a></span> constexpr <span class="keywordtype">char</span> <a class="code" href="namespacemesos_1_1internal_1_1slave.html#a589249d396dcac88f6d67d8f68b8a630">NET_ISOLATOR_BW_LIMIT</a>[] = <span class="stringliteral">"bw_limit"</span>;</div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="namespacemesos_1_1internal_1_1slave.html#a5b7d3c5110866191112df560e56f91a6"> 79</a></span> constexpr <span class="keywordtype">char</span> <a class="code" href="namespacemesos_1_1internal_1_1slave.html#a5b7d3c5110866191112df560e56f91a6">NET_ISOLATOR_BLOAT_REDUCTION</a>[] = <span class="stringliteral">"bloat_reduction"</span>;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span> </div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span> </div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="comment">// Responsible for allocating ephem
eral ports for the port mapping</span></div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="comment">// network isolator. This class is exposed mainly for unit testing.</span></div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1EphemeralPortsAllocator.html"> 84</a></span> <span class="keyword">class </span><a class="code" href="classmesos_1_1internal_1_1slave_1_1EphemeralPortsAllocator.html">EphemeralPortsAllocator</a></div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span> {</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1EphemeralPortsAllocator.html#a4548e2647cf692062843ce671917a1e5"> 87</a></span>  <a class="code" href="classmesos_1_1int
ernal_1_1slave_1_1EphemeralPortsAllocator.html#a4548e2647cf692062843ce671917a1e5">EphemeralPortsAllocator</a>(</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <span class="keyword">const</span> <a class="code" href="classIntervalSet.html">IntervalSet<uint16_t></a>& total,</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <span class="keywordtype">size_t</span> _portsPerContainer)</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  : free(total),</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  portsPerContainer_(_portsPerContainer) {}</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span> </div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <span class="comment">// Returns the number of ephemeral ports for each container.</span></div><div class="line"><a name="
l00094"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1EphemeralPortsAllocator.html#a806d0d8dbdfe3d482877e439d1402da8"> 94</a></span>  <span class="keywordtype">size_t</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1EphemeralPortsAllocator.html#a806d0d8dbdfe3d482877e439d1402da8">portsPerContainer</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> portsPerContainer_; }</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span> </div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <span class="comment">// Allocate an ephemeral port range for a container. The allocator</span></div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <span class="comment">// will automatically find one port range with the given container</span></div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <spa
n class="comment">// size. Returns error if the allocation cannot be fulfilled (e.g.,</span></div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <span class="comment">// exhausting available ephemeral ports).</span></div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <a class="code" href="classTry.html">Try<Interval<uint16_t></a>> <a class="code" href="classmesos_1_1internal_1_1slave_1_1EphemeralPortsAllocator.html#afcf5e28ba2cb5644f4a4dcba50c75f36">allocate</a>();</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span> </div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <span class="comment">// Mark the specified ephemeral port range as allocated.</span></div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1EphemeralPorts
Allocator.html#afcf5e28ba2cb5644f4a4dcba50c75f36">allocate</a>(<span class="keyword">const</span> <a class="code" href="classInterval.html">Interval<uint16_t></a>& ports);</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span> </div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <span class="comment">// Deallocate the specified ephemeral port range.</span></div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1EphemeralPortsAllocator.html#a35741fc1af9524ee48c586adea8f2a25">deallocate</a>(<span class="keyword">const</span> <a class="code" href="classInterval.html">Interval<uint16_t></a>& ports);</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span> </div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <span class="comment
">// Return true if the specified ephemeral port range is managed by</span></div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <span class="comment">// the allocator, regardless it has been allocated to use or not.</span></div><div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1EphemeralPortsAllocator.html#ab53def2ef0051bc20f206b2c16146160"> 110</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1EphemeralPortsAllocator.html#ab53def2ef0051bc20f206b2c16146160">isManaged</a>(<span class="keyword">const</span> <a class="code" href="classInterval.html">Interval<uint16_t></a>& ports)</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  {</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <span class="keywordflow">return</span> (free + used).contains(por
ts);</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  }</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span> </div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <span class="comment">// Given an integer x, return the smallest integer t such that t >=</span></div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <span class="comment">// x and t % m == 0.</span></div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <span class="keyword">static</span> uint32_t nextMultipleOf(uint32_t x, uint32_t m);</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span> </div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <a class="code" href="classIntervalSet.ht
ml">IntervalSet<uint16_t></a> free;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <a class="code" href="classIntervalSet.html">IntervalSet<uint16_t></a> used;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span> </div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <span class="comment">// The number of ephemeral ports for each container.</span></div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <span class="keywordtype">size_t</span> portsPerContainer_;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span> };</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span> </div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span> </div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span> <span class="comment">// For the specified ports, gene
rate a set of port ranges each of</span></div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span> <span class="comment">// which can be used by a single IP filter. In other words, each port</span></div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span> <span class="comment">// range needs to satisfy the following two conditions: 1) the size of</span></div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span> <span class="comment">// the range is 2^n (n=0,1,2...); 2) the begin of the range is size</span></div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span> <span class="comment">// aligned (i.e., begin % size == 0). This function is exposed mainly</span></div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span> <span class="comment">// for unit testing.</span></div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span> std::vector&l
t;routing::filter::ip::PortRange> <a class="code" href="namespacemesos_1_1internal_1_1slave.html#a9f290dc23f39eb7716f2fbb51177efe4">getPortRanges</a>(</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <span class="keyword">const</span> <a class="code" href="classIntervalSet.html">IntervalSet<uint16_t></a>& ports);</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span> </div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span> </div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span> <span class="comment">// Provides network isolation using port mapping. Each container is</span></div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span> <span class="comment">// assigned a fixed set of ports (including ephemeral ports). The</span></div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span> <span class="comment">
// isolator will set up filters on the host such that network traffic</span></div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span> <span class="comment">// to the host will be properly redirected to the corresponding</span></div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span> <span class="comment">// container depending on the destination ports. The network traffic</span></div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span> <span class="comment">// from containers will also be properly relayed to the host. This</span></div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span> <span class="comment">// isolator is useful when the operator wants to reuse the host IP for</span></div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span> <span class="comment">// all containers running on the host (e.g., there are insufficient</span></div><div class="line
"><a name="l00146"></a><span class="lineno"> 146</span> <span class="comment">// IPs).</span></div><div class="line"><a name="l00147"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1PortMappingIsolatorProcess.html"> 147</a></span> <span class="keyword">class </span><a class="code" href="classmesos_1_1internal_1_1slave_1_1PortMappingIsolatorProcess.html">PortMappingIsolatorProcess</a> : <span class="keyword">public</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1MesosIsolatorProcess.html">MesosIsolatorProcess</a></div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span> {</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <span class="keyword">static</span> <a class="code" href="classTry.html">Try<mesos::slave::Isolator*></a> <a class="code"
href="namespacecgroups.html#a2ecc89636706df947027a4c3c2100fbe">create</a>(<span class="keyword">const</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Flags.html">Flags</a>& <a class="code" href="namespaceflags.html">flags</a>);</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span> </div><div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1PortMappingIsolatorProcess.html#a9ab1ad63e3db47a0fba934c353b5dd81"> 152</a></span>  <span class="keyword">virtual</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1PortMappingIsolatorProcess.html#a9ab1ad63e3db47a0fba934c353b5dd81">~PortMappingIsolatorProcess</a>() {}</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span> </div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  <span class="keyword">virtual</span> <a class="code" href="classprocess_1_1Future.ht
ml">process::Future<Nothing></a> <a class="code" href="namespacemesos_1_1internal_1_1log_1_1protocol.html#afa485608d261b11b9b4c619b4b4d6e28">recover</a>(</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <span class="keyword">const</span> std::list<mesos::slave::ContainerState>& states,</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <span class="keyword">const</span> <a class="code" href="classhashset.html">hashset<ContainerID></a>& orphans);</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span> </div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <span class="keyword">virtual</span> <a class="code" href="classprocess_1_1Future.html">process::Future<Option<mesos::slave::ContainerLaunchInfo></a>> <a class="code" href="namespacecgroups.html#a4bf20862574beb5b0f9af7799489866f">prepare</a>(</div><div class="li
ne"><a name="l00159"></a><span class="lineno"> 159</span>  <span class="keyword">const</span> ContainerID& containerId,</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  <span class="keyword">const</span> mesos::slave::ContainerConfig& containerConfig);</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span> </div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  <span class="keyword">virtual</span> <a class="code" href="classprocess_1_1Future.html">process::Future<Nothing></a> <a class="code" href="namespacecgroups.html#aceb245d6ea6362ac1c2b1247556179d6">isolate</a>(</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  <span class="keyword">const</span> ContainerID& containerId,</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  <a class="code" href="3rdparty_2stout_2include_2stout_2win
dows_8hpp.html#ab03ced250ed239bc3b50b669493997f9">pid_t</a> pid);</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span> </div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <span class="keyword">virtual</span> <a class="code" href="classprocess_1_1Future.html">process::Future<mesos::slave::ContainerLimitation></a> watch(</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  <span class="keyword">const</span> ContainerID& containerId);</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span> </div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <span class="keyword">virtual</span> <a class="code" href="classprocess_1_1Future.html">process::Future<Nothing></a> <a class="code" href="namespacerouting_1_1filter_1_1basic.html#a088d88712e011acb0673da92045b365b">update</a>(</div><div class="line"><a name="l00170"></a><span
class="lineno"> 170</span>  <span class="keyword">const</span> ContainerID& containerId,</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <span class="keyword">const</span> <a class="code" href="classmesos_1_1Resources.html">Resources</a>& resources);</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span> </div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  <span class="keyword">virtual</span> <a class="code" href="classprocess_1_1Future.html">process::Future<ResourceStatistics></a> <a class="code" href="namespacemesos_1_1internal.html#a91a5bc5e418e8712bb512721b5abc46d">usage</a>(</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  <span class="keyword">const</span> ContainerID& containerId);</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span> </div><div class="line"><a name="l00176"></a
><span class="lineno"> 176</span>  <span class="keyword">virtual</span> <a class="code" href="classprocess_1_1Future.html">process::Future<Nothing></a> <a class="code" href="namespacecgroups.html#a12d210f286e5fcf7993c0c90b9459606">cleanup</a>(</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  <span class="keyword">const</span> ContainerID& containerId);</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span> </div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  <span class="keyword">struct </span>Info</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  {</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  Info(<span class="keyword">const</span> <a class="code" href="classIntervalSet.h
tml">IntervalSet<uint16_t></a>& _nonEphemeralPorts,</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <span class="keyword">const</span> <a class="code" href="classInterval.html">Interval<uint16_t></a>& _ephemeralPorts,</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<pid_t></a>& _pid = <a class="code" href="structNone.html">None</a>())</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  : nonEphemeralPorts(_nonEphemeralPorts),</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  ephemeralPorts(_ephemeralPorts),</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  pid(_pid) {}</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span> </div><div class="li
ne"><a name="l00189"></a><span class="lineno"> 189</span>  <span class="comment">// Non-ephemeral ports used by the container. It's possible that a</span></div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  <span class="comment">// container does not use any non-ephemeral ports. In that case,</span></div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  <span class="comment">// 'nonEphemeralPorts' will be empty. This variable could change</span></div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  <span class="comment">// upon 'update'.</span></div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  <a class="code" href="classIntervalSet.html">IntervalSet<uint16_t></a> nonEphemeralPorts;</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span> </div><div class="line"><a name="l00195"></a><span
class="lineno"> 195</span>  <span class="comment">// Each container has one and only one range of ephemeral ports.</span></div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  <span class="comment">// It cannot have more than one ranges of ephemeral ports because</span></div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  <span class="comment">// we need to setup the ip_local_port_range (which only accepts a</span></div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  <span class="comment">// single interval) inside the container to restrict the ephemeral</span></div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  <span class="comment">// ports used by the container.</span></div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  <span class="keyword">const</span> <a class="code" href="classInterval.html">Interva
l<uint16_t></a> ephemeralPorts;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span> </div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  <a class="code" href="classOption.html">Option<pid_t></a> pid;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  <a class="code" href="classOption.html">Option<uint16_t></a> flowId;</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  };</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span> </div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  <span class="comment">// Define the metrics used by the port mapping network isolator.</span></div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  <span class="keyword">struct </span><a class="code" href="namespacemesos_1_1internal_1_1tests.html#ace210c8852d8ef1f0f67e
c3af06281f6">Metrics</a></div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  {</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  <a class="code" href="namespacemesos_1_1internal_1_1tests.html#ace210c8852d8ef1f0f67ec3af06281f6">Metrics</a>();</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  ~<a class="code" href="namespacemesos_1_1internal_1_1tests.html#ace210c8852d8ef1f0f67ec3af06281f6">Metrics</a>();</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span> </div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  <a class="code" href="classprocess_1_1metrics_1_1Counter.html">process::metrics::Counter</a> adding_eth0_ip_filters_errors;</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  <a class="code" href="classprocess_1_1metrics_1_1Counter.html">process::metrics::Counter</a> adding_et
h0_ip_filters_already_exist;</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  <a class="code" href="classprocess_1_1metrics_1_1Counter.html">process::metrics::Counter</a> adding_eth0_egress_filters_errors;</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  <a class="code" href="classprocess_1_1metrics_1_1Counter.html">process::metrics::Counter</a> adding_eth0_egress_filters_already_exist;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  <a class="code" href="classprocess_1_1metrics_1_1Counter.html">process::metrics::Counter</a> adding_lo_ip_filters_errors;</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  <a class="code" href="classprocess_1_1metrics_1_1Counter.html">process::metrics::Counter</a> adding_lo_ip_filters_already_exist;</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  <a class="code" hre
f="classprocess_1_1metrics_1_1Counter.html">process::metrics::Counter</a> adding_veth_ip_filters_errors;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  <a class="code" href="classprocess_1_1metrics_1_1Counter.html">process::metrics::Counter</a> adding_veth_ip_filters_already_exist;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  <a class="code" href="classprocess_1_1metrics_1_1Counter.html">process::metrics::Counter</a> adding_veth_icmp_filters_errors;</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  <a class="code" href="classprocess_1_1metrics_1_1Counter.html">process::metrics::Counter</a> adding_veth_icmp_filters_already_exist;</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  <a class="code" href="classprocess_1_1metrics_1_1Counter.html">process::metrics::Counter</a> adding_veth_arp_filters_errors;</div><div class="line"><a nam
e="l00223"></a><span class="lineno"> 223</span>  <a class="code" href="classprocess_1_1metrics_1_1Counter.html">process::metrics::Counter</a> adding_veth_arp_filters_already_exist;</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  <a class="code" href="classprocess_1_1metrics_1_1Counter.html">process::metrics::Counter</a> adding_eth0_icmp_filters_errors;</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  <a class="code" href="classprocess_1_1metrics_1_1Counter.html">process::metrics::Counter</a> adding_eth0_icmp_filters_already_exist;</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  <a class="code" href="classprocess_1_1metrics_1_1Counter.html">process::metrics::Counter</a> adding_eth0_arp_filters_errors;</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  <a class="code" href="classprocess_1_1metrics_1_1Counter.html">process::met
rics::Counter</a> adding_eth0_arp_filters_already_exist;</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  <a class="code" href="classprocess_1_1metrics_1_1Counter.html">process::metrics::Counter</a> removing_eth0_ip_filters_errors;</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  <a class="code" href="classprocess_1_1metrics_1_1Counter.html">process::metrics::Counter</a> removing_eth0_ip_filters_do_not_exist;</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  <a class="code" href="classprocess_1_1metrics_1_1Counter.html">process::metrics::Counter</a> removing_eth0_egress_filters_errors;</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  <a class="code" href="classprocess_1_1metrics_1_1Counter.html">process::metrics::Counter</a> removing_eth0_egress_filters_do_not_exist;</div><div class="line"><a name="l00232"></a><span class="lineno"> 2
32</span>  <a class="code" href="classprocess_1_1metrics_1_1Counter.html">process::metrics::Counter</a> removing_lo_ip_filters_errors;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  <a class="code" href="classprocess_1_1metrics_1_1Counter.html">process::metrics::Counter</a> removing_lo_ip_filters_do_not_exist;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  <a class="code" href="classprocess_1_1metrics_1_1Counter.html">process::metrics::Counter</a> removing_veth_ip_filters_errors;</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  <a class="code" href="classprocess_1_1metrics_1_1Counter.html">process::metrics::Counter</a> removing_veth_ip_filters_do_not_exist;</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  <a class="code" href="classprocess_1_1metrics_1_1Counter.html">process::metrics::Counter</a> removing_eth0_icmp_filter
s_errors;</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  <a class="code" href="classprocess_1_1metrics_1_1Counter.html">process::metrics::Counter</a> removing_eth0_icmp_filters_do_not_exist;</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  <a class="code" href="classprocess_1_1metrics_1_1Counter.html">process::metrics::Counter</a> removing_eth0_arp_filters_errors;</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  <a class="code" href="classprocess_1_1metrics_1_1Counter.html">process::metrics::Counter</a> removing_eth0_arp_filters_do_not_exist;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  <a class="code" href="classprocess_1_1metrics_1_1Counter.html">process::metrics::Counter</a> updating_eth0_icmp_filters_errors;</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  <a class="code" href="classpro
cess_1_1metrics_1_1Counter.html">process::metrics::Counter</a> updating_eth0_icmp_filters_already_exist;</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  <a class="code" href="classprocess_1_1metrics_1_1Counter.html">process::metrics::Counter</a> updating_eth0_icmp_filters_do_not_exist;</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  <a class="code" href="classprocess_1_1metrics_1_1Counter.html">process::metrics::Counter</a> updating_eth0_arp_filters_errors;</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  <a class="code" href="classprocess_1_1metrics_1_1Counter.html">process::metrics::Counter</a> updating_eth0_arp_filters_already_exist;</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  <a class="code" href="classprocess_1_1metrics_1_1Counter.html">process::metrics::Counter</a> updating_eth0_arp_filters_do_not_exist;</div><div class=
"line"><a name="l00246"></a><span class="lineno"> 246</span>  <a class="code" href="classprocess_1_1metrics_1_1Counter.html">process::metrics::Counter</a> updating_container_ip_filters_errors;</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  } <a class="code" href="namespaceprocess_1_1metrics_1_1internal.html#aaa37243f659788386a13de558eba70a7">metrics</a>;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span> </div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  <a class="code" href="classmesos_1_1internal_1_1slave_1_1PortMappingIsolatorProcess.html">PortMappingIsolatorProcess</a>(</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  <span class="keyword">const</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Flags.html">Flags</a>& _flags,</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span> 
<span class="keyword">const</span> std::string& _bindMountRoot,</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  <span class="keyword">const</span> std::string& _eth0,</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  <span class="keyword">const</span> std::string& _lo,</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  <span class="keyword">const</span> <a class="code" href="classnet_1_1MAC.html">net::MAC</a>& _hostMAC,</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  <span class="keyword">const</span> <a class="code" href="classnet_1_1IP_1_1Network.html">net::IP::Network</a>& _hostIPNetwork,</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  <span class="keyword">const</span> <span class="keywordtype">size_t</span> _hostEth0MTU,</div><div class="line"><a name="l00257
"></a><span class="lineno"> 257</span>  <span class="keyword">const</span> <a class="code" href="classnet_1_1IP.html">net::IP</a>& _hostDefaultGateway,</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  <span class="keyword">const</span> <a class="code" href="classrouting_1_1Handle.html">routing::Handle</a>& _hostTxFqCodelHandle,</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  <span class="keyword">const</span> <a class="code" href="classhashmap.html">hashmap<std::string, std::string></a>& _hostNetworkConfigurations,</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<Bytes></a>& _egressRateLimitPerContainer,</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  <span class="keyword">const</span> <a class="code" hre
f="classIntervalSet.html">IntervalSet<uint16_t></a>& _managedNonEphemeralPorts,</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  <span class="keyword">const</span> <a class="code" href="classprocess_1_1Owned.html">process::Owned<EphemeralPortsAllocator></a>& _ephemeralPortsAllocator,</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  <span class="keyword">const</span> std::set<uint16_t>& _flowIDs)</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  : ProcessBase(<a class="code" href="namespaceprocess_1_1ID.html#aeb11a48c9def1da169d8455a30d0ee39">process::ID::generate</a>(<span class="stringliteral">"mesos-port-mapping-isolator"</span>)),</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  <a class="code" href="decoder_8hpp.html#abb0829cce9dd20a40ae0d86890ae85c6">flags</a>(_flags),</div><div class
="line"><a name="l00266"></a><span class="lineno"> 266</span>  bindMountRoot(_bindMountRoot),</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  <a class="code" href="namespacerouting_1_1link.html#a9d1bc4ad0c1ed50d48b8349fe74ba0ee">eth0</a>(_eth0),</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  <a class="code" href="namespacerouting_1_1link.html#a6051222dd27cef97f932844536a64f1a">lo</a>(_lo),</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  hostMAC(_hostMAC),</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  hostIPNetwork(_hostIPNetwork),</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  hostEth0MTU(_hostEth0MTU),</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  hostDefaultGateway(_hostDefaultGateway),</div><div class="line"><a name="l002
73"></a><span class="lineno"> 273</span>  hostTxFqCodelHandle(_hostTxFqCodelHandle),</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  hostNetworkConfigurations(_hostNetworkConfigurations),</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  egressRateLimitPerContainer(_egressRateLimitPerContainer),</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  managedNonEphemeralPorts(_managedNonEphemeralPorts),</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  ephemeralPortsAllocator(_ephemeralPortsAllocator),</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  freeFlowIds(_flowIDs) {}</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span> </div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  <span class="comment">// Continuations.</spa
n></div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  <a class="code" href="classTry.html">Try<Nothing></a> _cleanup(Info* info, <span class="keyword">const</span> <a class="code" href="classOption.html">Option<ContainerID></a>& containerId);</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  <a class="code" href="classTry.html">Try<Info*></a> _recover(<a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ab03ced250ed239bc3b50b669493997f9">pid_t</a> pid);</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span> </div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  <span class="keywordtype">void</span> _update(</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  <span class="keyword">const</span> ContainerID& containerId,</div><div class="line"><a name="l00286"></a><span class="l
ineno"> 286</span>  <span class="keyword">const</span> <a class="code" href="classprocess_1_1Future.html">process::Future</a><<a class="code" href="classOption.html">Option<int></a>>& <a class="code" href="namespaceproc.html#a34396c6140a28f583dc13fee3c3c35d4">status</a>);</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span> </div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  <a class="code" href="classprocess_1_1Future.html">process::Future<ResourceStatistics></a> _usage(</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  <span class="keyword">const</span> ResourceStatistics& result,</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  <span class="keyword">const</span> <a class="code" href="classprocess_1_1Subprocess.html">process::Subprocess</a>& s);</div><div class="line"><a name="l00291"></a><span class
="lineno"> 291</span> </div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  <a class="code" href="classprocess_1_1Future.html">process::Future<ResourceStatistics></a> __usage(</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  ResourceStatistics result,</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  <span class="keyword">const</span> <a class="code" href="classprocess_1_1Future.html">process::Future<std::string></a>& out);</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span> </div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  <span class="comment">// Helper functions.</span></div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  <a class="code" href="classTry.html">Try<Nothing></a> addHostIPFilters(</div><div class="line"><a name="l00298"></a><span clas
s="lineno"> 298</span>  <span class="keyword">const</span> <a class="code" href="classrouting_1_1filter_1_1ip_1_1PortRange.html">routing::filter::ip::PortRange</a>& range,</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<uint16_t></a>& flowId,</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  <span class="keyword">const</span> std::string& veth);</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span> </div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  <a class="code" href="classTry.html">Try<Nothing></a> removeHostIPFilters(</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  <span class="keyword">const</span> <a class="code" href="classrouting_1_1filter_1_1ip_1_1PortRange.html">routing::filte
r::ip::PortRange</a>& range,</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  <span class="keyword">const</span> std::string& veth,</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  <span class="keywordtype">bool</span> removeFiltersOnVeth = <span class="keyword">true</span>);</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span> </div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  <span class="comment">// Return the scripts that will be executed in the child context.</span></div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  std::string scripts(Info* info);</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span> </div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  uint16_t getNextFlowId();</div><div class="line"><a name="l00311"></a><span class
="lineno"> 311</span> </div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  <span class="keyword">const</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Flags.html">Flags</a> <a class="code" href="decoder_8hpp.html#abb0829cce9dd20a40ae0d86890ae85c6">flags</a>;</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  <span class="keyword">const</span> std::string bindMountRoot;</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span> </div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  <span class="keyword">const</span> std::string <a class="code" href="namespacerouting_1_1link.html#a9d1bc4ad0c1ed50d48b8349fe74ba0ee">eth0</a>;</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  <span class="keyword">const</span> std::string <a class="code" href="namespacerouting_1_1link.html#a6051222dd27cef97f932844536a64f1a">lo</
a>;</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  <span class="keyword">const</span> <a class="code" href="classnet_1_1MAC.html">net::MAC</a> hostMAC;</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  <span class="keyword">const</span> <a class="code" href="classnet_1_1IP_1_1Network.html">net::IP::Network</a> hostIPNetwork;</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  <span class="keyword">const</span> <span class="keywordtype">size_t</span> hostEth0MTU;</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  <span class="keyword">const</span> <a class="code" href="classnet_1_1IP.html">net::IP</a> hostDefaultGateway;</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  <span class="keyword">const</span> <a class="code" href="classrouting_1_1Handle.html">routing::Handle</a> hostTxFqCodelHandle;</div><div class="
line"><a name="l00322"></a><span class="lineno"> 322</span> </div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  <span class="comment">// Describe the host network configurations. It is a map between</span></div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  <span class="comment">// configure proc files (e.g., /proc/sys/net/core/somaxconn) and</span></div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  <span class="comment">// values of the configure proc files.</span></div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  <span class="keyword">const</span> <a class="code" href="classhashmap.html">hashmap<std::string, std::string></a> hostNetworkConfigurations;</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span> </div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  <span class="comme
nt">// The optional throughput limit to containers' egress traffic.</span></div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<Bytes></a> egressRateLimitPerContainer;</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span> </div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>  <span class="comment">// All the non-ephemeral ports managed by the slave, as passed in</span></div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  <span class="comment">// via flags.resources.</span></div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  <span class="keyword">const</span> <a class="code" href="classIntervalSet.html">IntervalSet<uint16_t></a> managedNonEphemeralPorts;</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>
60;</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>  <a class="code" href="classprocess_1_1Owned.html">process::Owned<EphemeralPortsAllocator></a> ephemeralPortsAllocator;</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span> </div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  <span class="comment">// Store a set of unused flow ID's on this slave.</span></div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>  std::set<uint16_t> freeFlowIds;</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span> </div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  <a class="code" href="classhashmap.html">hashmap<ContainerID, Info*></a> <a class="code" href="namespacerouting_1_1diagnosis_1_1socket.html#a8937277756951dcc28f2dbdbd9ea24d7">infos</a>;</div><div class="line"><a name="l00341"></a><sp
an class="lineno"> 341</span> </div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  <span class="comment">// Recovered containers from a previous run that weren't managed by</span></div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  <span class="comment">// the network isolator.</span></div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  <a class="code" href="classhashset.html">hashset<ContainerID></a> unmanaged;</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span> };</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span> </div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span> </div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span> <span class="comment">// Defines the subcommand for 'update' that needs to be executed by a</span></div><div class="line">
<a name="l00349"></a><span class="lineno"> 349</span> <span class="comment">// subprocess to update the filters inside a container.</span></div><div class="line"><a name="l00350"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1PortMappingUpdate.html"> 350</a></span> <span class="keyword">class </span><a class="code" href="classmesos_1_1internal_1_1slave_1_1PortMappingUpdate.html">PortMappingUpdate</a> : <span class="keyword">public</span> <a class="code" href="classSubcommand.html">Subcommand</a></div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span> {</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00353"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1PortMappingUpdate.html#a81ecc0a07343c1ed2adf4e3a05d8bde6"> 353</a></span>  <span class="keyword">static</span> <spa
n class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classmesos_1_1internal_1_1slave_1_1PortMappingUpdate.html#a81ecc0a07343c1ed2adf4e3a05d8bde6">NAME</a>;</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span> </div><div class="line"><a name="l00355"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1PortMappingUpdate_1_1Flags.html"> 355</a></span>  <span class="keyword">struct </span><a class="code" href="structmesos_1_1internal_1_1slave_1_1PortMappingUpdate_1_1Flags.html">Flags</a> : <span class="keyword">public</span> <span class="keyword">virtual</span> <a class="code" href="classflags_1_1FlagsBase.html">flags::FlagsBase</a></div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  {</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  <a class="code" href="structmesos_1_1internal_1_1slave_1_1PortMappingUpdate_1_1
Flags.html">Flags</a>();</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span> </div><div class="line"><a name="l00359"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1PortMappingUpdate_1_1Flags.html#a940160ab2ebdbdf795b588bb55ccaa78"> 359</a></span>  <a class="code" href="classOption.html">Option<std::string></a> <a class="code" href="structmesos_1_1internal_1_1slave_1_1PortMappingUpdate_1_1Flags.html#a940160ab2ebdbdf795b588bb55ccaa78">eth0_name</a>;</div><div class="line"><a name="l00360"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1PortMappingUpdate_1_1Flags.html#a5a391668353a74d57d3934e297b4b3b9"> 360</a></span>  <a class="code" href="classOption.html">Option<std::string></a> <a class="code" href="structmesos_1_1internal_1_1slave_1_1PortMappingUpdate_1_1Flags.html#a5a391668353a74d57d3934e297b4b3b9">lo_name</a>;</div><div class="line"><a name="l00361
"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1PortMappingUpdate_1_1Flags.html#a366f255e672049daeac8235dcd175d58"> 361</a></span>  <a class="code" href="classOption.html">Option<pid_t></a> <a class="code" href="structmesos_1_1internal_1_1slave_1_1PortMappingUpdate_1_1Flags.html#a366f255e672049daeac8235dcd175d58">pid</a>;</div><div class="line"><a name="l00362"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1PortMappingUpdate_1_1Flags.html#a2f01f58b5e10762cc33044cfe5b77084"> 362</a></span>  <a class="code" href="classOption.html">Option<JSON::Object></a> <a class="code" href="structmesos_1_1internal_1_1slave_1_1PortMappingUpdate_1_1Flags.html#a2f01f58b5e10762cc33044cfe5b77084">ports_to_add</a>;</div><div class="line"><a name="l00363"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1PortMappingUpdate_1_1Flags.html#a7afd367793ea90789e03435ae7a11d27">
363</a></span>  <a class="code" href="classOption.html">Option<JSON::Object></a> <a class="code" href="structmesos_1_1internal_1_1slave_1_1PortMappingUpdate_1_1Flags.html#a7afd367793ea90789e03435ae7a11d27">ports_to_remove</a>;</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>  };</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span> </div><div class="line"><a name="l00366"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1PortMappingUpdate.html#a6cd9d283b9847515ec1b0b021579fb70"> 366</a></span>  <a class="code" href="classmesos_1_1internal_1_1slave_1_1PortMappingUpdate.html#a6cd9d283b9847515ec1b0b021579fb70">PortMappingUpdate</a>() : <a class="code" href="classSubcommand.html">Subcommand</a>(NAME) {}</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span> </div><div class="line"><a name="l00368"></a><span class="lineno"><a class="line" href=
"classmesos_1_1internal_1_1slave_1_1PortMappingUpdate.html#a3c352740646f3580336fbe9d1442a22f"> 368</a></span>  <a class="code" href="structmesos_1_1internal_1_1slave_1_1PortMappingUpdate_1_1Flags.html">Flags</a> <a class="code" href="classmesos_1_1internal_1_1slave_1_1PortMappingUpdate.html#a3c352740646f3580336fbe9d1442a22f">flags</a>;</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span> </div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span> <span class="keyword">protected</span>:</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="namespacemesos_1_1internal_1_1tests.html#a1526213546914662d7a58263f68d11bc">execute</a>();</div><div class="line"><a name="l00372"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1PortMappingUpdate.html#a8bb4e71fe9df32e2638e81ef7f8
bc5f4"> 372</a></span>  <span class="keyword">virtual</span> <a class="code" href="classflags_1_1FlagsBase.html">flags::FlagsBase</a>* <a class="code" href="classmesos_1_1internal_1_1slave_1_1PortMappingUpdate.html#a8bb4e71fe9df32e2638e81ef7f8bc5f4">getFlags</a>() { <span class="keywordflow">return</span> &<a class="code" href="decoder_8hpp.html#abb0829cce9dd20a40ae0d86890ae85c6">flags</a>; }</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span> };</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span> </div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span> </div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span> <span class="comment">// Defines the subcommand for 'statistics' that needs to be executed</span></div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span> <span class="comment">// by a subprocess to retrieve newtork sta
tistics from inside a</span></div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span> <span class="comment">// container.</span></div><div class="line"><a name="l00379"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1PortMappingStatistics.html"> 379</a></span> <span class="keyword">class </span><a class="code" href="classmesos_1_1internal_1_1slave_1_1PortMappingStatistics.html">PortMappingStatistics</a> : <span class="keyword">public</span> <a class="code" href="classSubcommand.html">Subcommand</a></div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span> {</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00382"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1PortMappingStatistics.html#a678d4033074fb6dcdc22bacf9803a4b3"> 382</a></span>  <span class="k
eyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classmesos_1_1internal_1_1slave_1_1PortMappingStatistics.html#a678d4033074fb6dcdc22bacf9803a4b3">NAME</a>;</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span> </div><div class="line"><a name="l00384"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1PortMappingStatistics_1_1Flags.html"> 384</a></span>  <span class="keyword">struct </span><a class="code" href="structmesos_1_1internal_1_1slave_1_1PortMappingStatistics_1_1Flags.html">Flags</a> : <span class="keyword">public</span> <span class="keyword">virtual</span> <a class="code" href="classflags_1_1FlagsBase.html">flags::FlagsBase</a></div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>  {</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  <a class="code" href="structmesos_1_1inte
rnal_1_1slave_1_1PortMappingStatistics_1_1Flags.html">Flags</a>();</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span> </div><div class="line"><a name="l00388"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1PortMappingStatistics_1_1Flags.html#aa321e8cfac80a2f9a2e395821c5ff6df"> 388</a></span>  <a class="code" href="classOption.html">Option<std::string></a> <a class="code" href="structmesos_1_1internal_1_1slave_1_1PortMappingStatistics_1_1Flags.html#aa321e8cfac80a2f9a2e395821c5ff6df">eth0_name</a>;</div><div class="line"><a name="l00389"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1PortMappingStatistics_1_1Flags.html#a623547147c8fc85829b30351e75f849e"> 389</a></span>  <a class="code" href="classOption.html">Option<pid_t></a> <a class="code" href="structmesos_1_1internal_1_1slave_1_1PortMappingStatistics_1_1Flags.html#a623547147c8fc85829b30351e75f849e"
>pid</a>;</div><div class="line"><a name="l00390"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1PortMappingStatistics_1_1Flags.html#a9f33b77c7fa7ecbc8860f0d82a9d3d94"> 390</a></span>  <span class="keywordtype">bool</span> <a class="code" href="structmesos_1_1internal_1_1slave_1_1PortMappingStatistics_1_1Flags.html#a9f33b77c7fa7ecbc8860f0d82a9d3d94">enable_socket_statistics_summary</a>;</div><div class="line"><a name="l00391"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1PortMappingStatistics_1_1Flags.html#ab20389b12b4ce243d74d43132ff5a490"> 391</a></span>  <span class="keywordtype">bool</span> <a class="code" href="structmesos_1_1internal_1_1slave_1_1PortMappingStatistics_1_1Flags.html#ab20389b12b4ce243d74d43132ff5a490">enable_socket_statistics_details</a>;</div><div class="line"><a name="l00392"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1PortMappingSta
tistics_1_1Flags.html#ad04d37eba848f9f1639d7214f1b3b949"> 392</a></span>  <span class="keywordtype">bool</span> <a class="code" href="structmesos_1_1internal_1_1slave_1_1PortMappingStatistics_1_1Flags.html#ad04d37eba848f9f1639d7214f1b3b949">enable_snmp_statistics</a>;</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>  };</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span> </div><div class="line"><a name="l00395"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1PortMappingStatistics.html#af7ae85f4202db3e333642bbf905f2df3"> 395</a></span>  <a class="code" href="classmesos_1_1internal_1_1slave_1_1PortMappingStatistics.html#af7ae85f4202db3e333642bbf905f2df3">PortMappingStatistics</a>() : <a class="code" href="classSubcommand.html">Subcommand</a>(NAME) {}</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span> </div><div class="line"><a name="l00397
"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1PortMappingStatistics.html#ab95778fac9a664a603a9979a6004c72e"> 397</a></span>  <a class="code" href="structmesos_1_1internal_1_1slave_1_1PortMappingStatistics_1_1Flags.html">Flags</a> <a class="code" href="classmesos_1_1internal_1_1slave_1_1PortMappingStatistics.html#ab95778fac9a664a603a9979a6004c72e">flags</a>;</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span> </div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span> <span class="keyword">protected</span>:</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="namespacemesos_1_1internal_1_1tests.html#a1526213546914662d7a58263f68d11bc">execute</a>();</div><div class="line"><a name="l00401"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1
slave_1_1PortMappingStatistics.html#ac8598ef759b3df5dda01440b50cc274d"> 401</a></span>  <span class="keyword">virtual</span> <a class="code" href="classflags_1_1FlagsBase.html">flags::FlagsBase</a>* <a class="code" href="classmesos_1_1internal_1_1slave_1_1PortMappingStatistics.html#ac8598ef759b3df5dda01440b50cc274d">getFlags</a>() { <span class="keywordflow">return</span> &<a class="code" href="decoder_8hpp.html#abb0829cce9dd20a40ae0d86890ae85c6">flags</a>; }</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span> };</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span> </div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span> } <span class="comment">// namespace slave {</span></div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span> } <span class="comment">// namespace internal {</span></div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#
160;} <span class="comment">// namespace mesos {</span></div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span> </div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span> <span class="preprocessor">#endif // __PORT_MAPPING_ISOLATOR_HPP__</span></div><div class="ttc" id="namespacemesos_1_1internal_1_1log_1_1protocol_html_afa485608d261b11b9b4c619b4b4d6e28"><div class="ttname"><a href="namespacemesos_1_1internal_1_1log_1_1protocol.html#afa485608d261b11b9b4c619b4b4d6e28">mesos::internal::log::protocol::recover</a></div><div class="ttdeci">Protocol< RecoverRequest, RecoverResponse > recover</div></div>
+<a href="port__mapping_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// or more contributor license agreements. See the NOTICE file</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// distributed with this work for additional information</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">// regarding copyright ownership. The ASF licenses this file</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00006"></a><sp
an class="lineno"> 6</span> <span class="comment">// "License"); you may not use this file except in compliance</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// with the License. You may obtain a copy of the License at</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">//</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// Unless required by applicable law or agreed to in writing, software</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment">// dis
tributed under the License is distributed on an "AS IS" BASIS,</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">// See the License for the specific language governing permissions and</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// limitations under the License.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#ifndef __PORT_MAPPING_ISOLATOR_HPP__</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#define __PORT_MAPPING_ISOLATOR_HPP__</span></div><
div class="line"><a name="l00019"></a><span class="lineno"> 19</span> </div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include <stdint.h></span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <sys/types.h></span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> </div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <set></span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <string></span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include <vector></span></div><div class="line"><a name="l00027"></
a><span class="lineno"> 27</span> </div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include <<a class="code" href="id_8hpp.html">process/id.hpp</a>></span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include <<a class="code" href="owned_8hpp.html">process/owned.hpp</a>></span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include <<a class="code" href="include_2process_2subprocess_8hpp.html">process/subprocess.hpp</a>></span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> </div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#include <<a class="code" href="3rdparty_2libprocess_2include_2process_2metrics_2metrics_8hpp.html">process/metrics/metrics.hpp</a>></span></div><di
v class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#include <<a class="code" href="counter_8hpp.html">process/metrics/counter.hpp</a>></span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include <<a class="code" href="bytes_8hpp.html">stout/bytes.hpp</a>></span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#include <<a class="code" href="hashmap_8hpp.html">stout/hashmap.hpp</a>></span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#include <<a class="code" href="hashset_8hpp.html">stout/hashset.hpp</a>></span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor">#include <<a c
lass="code" href="3rdparty_2stout_2include_2stout_2ip_8hpp.html">stout/ip.hpp</a>></span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor">#include <<a class="code" href="interval_8hpp.html">stout/interval.hpp</a>></span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="preprocessor">#include <<a class="code" href="mac_8hpp.html">stout/mac.hpp</a>></span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="preprocessor">#include <<a class="code" href="none_8hpp.html">stout/none.hpp</a>></span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor">#include <<a class="code" href="option_8hpp.html">stout/option.hpp</a>></span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor">#include <<a clas
s="code" href="subcommand_8hpp.html">stout/subcommand.hpp</a>></span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#include "<a class="code" href="src_2linux_2routing_2filter_2ip_8hpp.html">linux/routing/filter/ip.hpp</a>"</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> </div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor">#include "<a class="code" href="src_2slave_2flags_8hpp.html">slave/flags.hpp</a>"</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> </div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor">#include "<a class="code" href="src_2slave_2containerizer_2mesos_2isolator_8hpp.html">slave/containerizer/mesos/i
solator.hpp</a>"</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> </div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="keyword">namespace </span><a class="code" href="namespacemesos.html">mesos</a> {</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="keyword">namespace </span><a class="code" href="namespaceinternal.html">internal</a> {</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="keyword">namespace </span>slave {</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span> </div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="comment">// The prefix this isolator uses for the virtual ethernet devices.</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="comment">// NOTE: This constant is
exposed for testing.</span></div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="namespacemesos_1_1internal_1_1slave.html#a41f03e964f9677db22808730f850ccaf"> 57</a></span> <span class="keyword">inline</span> std::string <a class="code" href="namespacemesos_1_1internal_1_1slave.html#a41f03e964f9677db22808730f850ccaf">PORT_MAPPING_VETH_PREFIX</a>() { <span class="keywordflow">return</span> <span class="stringliteral">"mesos"</span>; }</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span> </div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="comment">// The root directory where we bind mount all the namespace handles.</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="comment">// We choose the directory '/var/run/netns' so
that we can use</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="comment">// iproute2 suite (e.g., ip netns show/exec) to inspect or enter the</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="comment">// network namespace. This is very useful for debugging purposes.</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="comment">// NOTE: This constant is exposed for testing.</span></div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="namespacemesos_1_1internal_1_1slave.html#a0ef18732ab5fdd1b536ab663f7400b79"> 65</a></span> <span class="keyword">inline</span> std::string <a class="code" href="namespacemesos_1_1internal_1_1slave.html#a0ef18732ab5fdd1b536ab663f7400b79">PORT_MAPPING_BIND_MOUNT_ROOT</a>() { <span class="keywordflow">return</span> <span class="stringliteral">"/var/run/netns
"</span>; }</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span> </div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="comment">// The root directory where we keep all the namespace handle</span></div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="comment">// symlinks. This is introduced in 0.23.0.</span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="comment">// NOTE: This constant is exposed for testing.</span></div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="namespacemesos_1_1internal_1_1slave.html#a1ecd191f897fc379a18f112fd04a30a1"> 70</a></span> <span class="keyword">inline</span> std::string <a class="code" href="namespacemesos_1_1internal_1_1slave.html#a1ecd191f897fc379a18f112fd04a30a1">PORT_MAPPING_BIND_MOUNT_SYMLINK_ROOT</a>()</div><div class="line"><a name="l00
071"></a><span class="lineno"> 71</span> {</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <span class="keywordflow">return</span> <span class="stringliteral">"/var/run/mesos/netns"</span>;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span> }</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span> </div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span> </div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="comment">// These names are used to identify the traffic control statistics</span></div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="comment">// output for each of the Linux Traffic Control Qdiscs we report.</span></div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="namespacemesos_1_1internal_1_1slave.html#a589249d396dcac
88f6d67d8f68b8a630"> 78</a></span> constexpr <span class="keywordtype">char</span> <a class="code" href="namespacemesos_1_1internal_1_1slave.html#a589249d396dcac88f6d67d8f68b8a630">NET_ISOLATOR_BW_LIMIT</a>[] = <span class="stringliteral">"bw_limit"</span>;</div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="namespacemesos_1_1internal_1_1slave.html#a5b7d3c5110866191112df560e56f91a6"> 79</a></span> constexpr <span class="keywordtype">char</span> <a
<TRUNCATED>
[40/50] mesos-site git commit: Updated the website built from mesos
SHA: 7c9c72d.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/dir_01cbbd8dcbf9de3825992568658f467e.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/dir_01cbbd8dcbf9de3825992568658f467e.html b/content/api/latest/c++/dir_01cbbd8dcbf9de3825992568658f467e.html
index 8a92dae..198f190 100644
--- a/content/api/latest/c++/dir_01cbbd8dcbf9de3825992568658f467e.html
+++ b/content/api/latest/c++/dir_01cbbd8dcbf9de3825992568658f467e.html
@@ -53,6 +53,13 @@
</div><!--header-->
<div class="contents">
<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a>
+Directories</h2></td></tr>
+<tr class="memitem:dir_0ac73505685689cb4a842e520ca4cca6"><td class="memItemLeft" align="right" valign="top">directory  </td><td class="memItemRight" valign="bottom"><a class="el" href="dir_0ac73505685689cb4a842e520ca4cca6.html">posix</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:dir_4f303781ded361ff602a549327c53cc9"><td class="memItemLeft" align="right" valign="top">directory  </td><td class="memItemRight" valign="bottom"><a class="el" href="dir_4f303781ded361ff602a549327c53cc9.html">windows</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
Files</h2></td></tr>
<tr class="memitem:authenticator__manager_8hpp"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="authenticator__manager_8hpp.html">authenticator_manager.hpp</a> <a href="authenticator__manager_8hpp_source.html">[code]</a></td></tr>
@@ -71,11 +78,7 @@ Files</h2></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:http__proxy_8hpp"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="http__proxy_8hpp.html">http_proxy.hpp</a> <a href="http__proxy_8hpp_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:libev_8hpp"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="libev_8hpp.html">libev.hpp</a> <a href="libev_8hpp_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:libevent_8hpp"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="libevent_8hpp.html">libevent.hpp</a> <a href="libevent_8hpp_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:libevent__ssl__socket_8hpp"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="libevent__ssl__socket_8hpp.html">libevent_ssl_socket.hpp</a> <a href="libevent__ssl__socket_8hpp_source.html">[code]</a></td></tr>
+<tr class="memitem:io__internal_8hpp"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="io__internal_8hpp.html">io_internal.hpp</a> <a href="io__internal_8hpp_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:memory__profiler_8hpp"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="memory__profiler_8hpp.html">memory_profiler.hpp</a> <a href="memory__profiler_8hpp_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
@@ -91,10 +94,6 @@ Files</h2></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:socket__manager_8hpp"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="socket__manager_8hpp.html">socket_manager.hpp</a> <a href="socket__manager_8hpp_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:subprocess__posix_8hpp"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="subprocess__posix_8hpp.html">subprocess_posix.hpp</a> <a href="subprocess__posix_8hpp_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:subprocess__windows_8hpp"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="subprocess__windows_8hpp.html">subprocess_windows.hpp</a> <a href="subprocess__windows_8hpp_source.html">[code]</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
</table>
</div><!-- contents -->
<!-- start footer part -->
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/dir_0ac73505685689cb4a842e520ca4cca6.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/dir_0ac73505685689cb4a842e520ca4cca6.html b/content/api/latest/c++/dir_0ac73505685689cb4a842e520ca4cca6.html
new file mode 100644
index 0000000..941d47a
--- /dev/null
+++ b/content/api/latest/c++/dir_0ac73505685689cb4a842e520ca4cca6.html
@@ -0,0 +1,76 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.11"/>
+<title>Apache Mesos: 3rdparty/libprocess/src/posix Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">Apache Mesos
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="pages.html"><span>Related Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li><a href="examples.html"><span>Examples</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="files.html"><span>File List</span></a></li>
+ <li><a href="globals.html"><span>File Members</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_8cab8f464681f7cc51cee77e79a434cd.html">3rdparty</a></li><li class="navelem"><a class="el" href="dir_043a76de98701f9bddf61b5e98f305ff.html">libprocess</a></li><li class="navelem"><a class="el" href="dir_01cbbd8dcbf9de3825992568658f467e.html">src</a></li><li class="navelem"><a class="el" href="dir_0ac73505685689cb4a842e520ca4cca6.html">posix</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">posix Directory Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a>
+Directories</h2></td></tr>
+<tr class="memitem:dir_ecbc207ab261ae6376e9b7d1e9eba3c1"><td class="memItemLeft" align="right" valign="top">directory  </td><td class="memItemRight" valign="bottom"><a class="el" href="dir_ecbc207ab261ae6376e9b7d1e9eba3c1.html">libev</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:dir_b2935a02400d93f2f95b894ab5508ef6"><td class="memItemLeft" align="right" valign="top">directory  </td><td class="memItemRight" valign="bottom"><a class="el" href="dir_b2935a02400d93f2f95b894ab5508ef6.html">libevent</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:src_2posix_2subprocess_8hpp"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="src_2posix_2subprocess_8hpp.html">subprocess.hpp</a> <a href="src_2posix_2subprocess_8hpp_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.11
+</small></address>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/dir_1894286df79cf582d947dbc4268b06cf.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/dir_1894286df79cf582d947dbc4268b06cf.html b/content/api/latest/c++/dir_1894286df79cf582d947dbc4268b06cf.html
index e67cdae..40a5dc9 100644
--- a/content/api/latest/c++/dir_1894286df79cf582d947dbc4268b06cf.html
+++ b/content/api/latest/c++/dir_1894286df79cf582d947dbc4268b06cf.html
@@ -162,7 +162,7 @@ Files</h2></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:3rdparty_2libprocess_2include_2process_2statistics_8hpp"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="3rdparty_2libprocess_2include_2process_2statistics_8hpp.html">statistics.hpp</a> <a href="3rdparty_2libprocess_2include_2process_2statistics_8hpp_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:subprocess_8hpp"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="subprocess_8hpp.html">subprocess.hpp</a> <a href="subprocess_8hpp_source.html">[code]</a></td></tr>
+<tr class="memitem:include_2process_2subprocess_8hpp"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="include_2process_2subprocess_8hpp.html">subprocess.hpp</a> <a href="include_2process_2subprocess_8hpp_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:system_8hpp"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="system_8hpp.html">system.hpp</a> <a href="system_8hpp_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/dir_4f303781ded361ff602a549327c53cc9.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/dir_4f303781ded361ff602a549327c53cc9.html b/content/api/latest/c++/dir_4f303781ded361ff602a549327c53cc9.html
new file mode 100644
index 0000000..dafed41
--- /dev/null
+++ b/content/api/latest/c++/dir_4f303781ded361ff602a549327c53cc9.html
@@ -0,0 +1,73 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.11"/>
+<title>Apache Mesos: 3rdparty/libprocess/src/windows Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">Apache Mesos
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="pages.html"><span>Related Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li><a href="examples.html"><span>Examples</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="files.html"><span>File List</span></a></li>
+ <li><a href="globals.html"><span>File Members</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_8cab8f464681f7cc51cee77e79a434cd.html">3rdparty</a></li><li class="navelem"><a class="el" href="dir_043a76de98701f9bddf61b5e98f305ff.html">libprocess</a></li><li class="navelem"><a class="el" href="dir_01cbbd8dcbf9de3825992568658f467e.html">src</a></li><li class="navelem"><a class="el" href="dir_4f303781ded361ff602a549327c53cc9.html">windows</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">windows Directory Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:windows_2event__loop_8hpp"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="windows_2event__loop_8hpp.html">event_loop.hpp</a> <a href="windows_2event__loop_8hpp_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:libwinio_8hpp"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="libwinio_8hpp.html">libwinio.hpp</a> <a href="libwinio_8hpp_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:src_2windows_2subprocess_8hpp"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="src_2windows_2subprocess_8hpp.html">subprocess.hpp</a> <a href="src_2windows_2subprocess_8hpp_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.11
+</small></address>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/dir_b2935a02400d93f2f95b894ab5508ef6.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/dir_b2935a02400d93f2f95b894ab5508ef6.html b/content/api/latest/c++/dir_b2935a02400d93f2f95b894ab5508ef6.html
new file mode 100644
index 0000000..95111b8
--- /dev/null
+++ b/content/api/latest/c++/dir_b2935a02400d93f2f95b894ab5508ef6.html
@@ -0,0 +1,71 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.11"/>
+<title>Apache Mesos: 3rdparty/libprocess/src/posix/libevent Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">Apache Mesos
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="pages.html"><span>Related Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li><a href="examples.html"><span>Examples</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="files.html"><span>File List</span></a></li>
+ <li><a href="globals.html"><span>File Members</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_8cab8f464681f7cc51cee77e79a434cd.html">3rdparty</a></li><li class="navelem"><a class="el" href="dir_043a76de98701f9bddf61b5e98f305ff.html">libprocess</a></li><li class="navelem"><a class="el" href="dir_01cbbd8dcbf9de3825992568658f467e.html">src</a></li><li class="navelem"><a class="el" href="dir_0ac73505685689cb4a842e520ca4cca6.html">posix</a></li><li class="navelem"><a class="el" href="dir_b2935a02400d93f2f95b894ab5508ef6.html">libevent</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">libevent Directory Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:libevent_8hpp"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="libevent_8hpp.html">libevent.hpp</a> <a href="libevent_8hpp_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:libevent__ssl__socket_8hpp"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="libevent__ssl__socket_8hpp.html">libevent_ssl_socket.hpp</a> <a href="libevent__ssl__socket_8hpp_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.11
+</small></address>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/dir_ecbc207ab261ae6376e9b7d1e9eba3c1.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/dir_ecbc207ab261ae6376e9b7d1e9eba3c1.html b/content/api/latest/c++/dir_ecbc207ab261ae6376e9b7d1e9eba3c1.html
new file mode 100644
index 0000000..a8fcd1e
--- /dev/null
+++ b/content/api/latest/c++/dir_ecbc207ab261ae6376e9b7d1e9eba3c1.html
@@ -0,0 +1,69 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.11"/>
+<title>Apache Mesos: 3rdparty/libprocess/src/posix/libev Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">Apache Mesos
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="pages.html"><span>Related Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li><a href="examples.html"><span>Examples</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="files.html"><span>File List</span></a></li>
+ <li><a href="globals.html"><span>File Members</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_8cab8f464681f7cc51cee77e79a434cd.html">3rdparty</a></li><li class="navelem"><a class="el" href="dir_043a76de98701f9bddf61b5e98f305ff.html">libprocess</a></li><li class="navelem"><a class="el" href="dir_01cbbd8dcbf9de3825992568658f467e.html">src</a></li><li class="navelem"><a class="el" href="dir_0ac73505685689cb4a842e520ca4cca6.html">posix</a></li><li class="navelem"><a class="el" href="dir_ecbc207ab261ae6376e9b7d1e9eba3c1.html">libev</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">libev Directory Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:libev_8hpp"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="libev_8hpp.html">libev.hpp</a> <a href="libev_8hpp_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.11
+</small></address>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/docker_2docker_8hpp.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/docker_2docker_8hpp.html b/content/api/latest/c++/docker_2docker_8hpp.html
index 425be11..2a7c792 100644
--- a/content/api/latest/c++/docker_2docker_8hpp.html
+++ b/content/api/latest/c++/docker_2docker_8hpp.html
@@ -62,7 +62,7 @@
<code>#include <vector></code><br />
<code>#include <<a class="el" href="future_8hpp_source.html">process/future.hpp</a>></code><br />
<code>#include <<a class="el" href="owned_8hpp_source.html">process/owned.hpp</a>></code><br />
-<code>#include <<a class="el" href="subprocess_8hpp_source.html">process/subprocess.hpp</a>></code><br />
+<code>#include <<a class="el" href="include_2process_2subprocess_8hpp_source.html">process/subprocess.hpp</a>></code><br />
<code>#include <<a class="el" href="duration_8hpp_source.html">stout/duration.hpp</a>></code><br />
<code>#include <<a class="el" href="json_8hpp_source.html">stout/json.hpp</a>></code><br />
<code>#include <<a class="el" href="none_8hpp_source.html">stout/none.hpp</a>></code><br />
[18/50] mesos-site git commit: Updated the website built from mesos
SHA: 7c9c72d.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/slave_2container__logger_8hpp.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/slave_2container__logger_8hpp.html b/content/api/latest/c++/slave_2container__logger_8hpp.html
index 3a68721..203cd90 100644
--- a/content/api/latest/c++/slave_2container__logger_8hpp.html
+++ b/content/api/latest/c++/slave_2container__logger_8hpp.html
@@ -61,7 +61,7 @@
<code>#include <<a class="el" href="include_2mesos_2mesos_8hpp_source.html">mesos/mesos.hpp</a>></code><br />
<code>#include <<a class="el" href="include_2mesos_2slave_2containerizer_8hpp_source.html">mesos/slave/containerizer.hpp</a>></code><br />
<code>#include <<a class="el" href="future_8hpp_source.html">process/future.hpp</a>></code><br />
-<code>#include <<a class="el" href="subprocess_8hpp_source.html">process/subprocess.hpp</a>></code><br />
+<code>#include <<a class="el" href="include_2process_2subprocess_8hpp_source.html">process/subprocess.hpp</a>></code><br />
<code>#include <<a class="el" href="3rdparty_2libprocess_2include_2process_2shared_8hpp_source.html">process/shared.hpp</a>></code><br />
<code>#include <<a class="el" href="try_8hpp_source.html">stout/try.hpp</a>></code><br />
<code>#include <<a class="el" href="nothing_8hpp_source.html">stout/nothing.hpp</a>></code><br />
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/slave_2container__logger_8hpp_source.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/slave_2container__logger_8hpp_source.html b/content/api/latest/c++/slave_2container__logger_8hpp_source.html
index 8517aa2..b1baab0 100644
--- a/content/api/latest/c++/slave_2container__logger_8hpp_source.html
+++ b/content/api/latest/c++/slave_2container__logger_8hpp_source.html
@@ -52,9 +52,9 @@
<div class="title">container_logger.hpp</div> </div>
</div><!--header-->
<div class="contents">
-<a href="slave_2container__logger_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// or more contributor license agreements. See the NOTICE file</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// distributed with this work for additional information</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">// regarding copyright ownership. The ASF licenses this file</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l000
06"></a><span class="lineno"> 6</span> <span class="comment">// "License"); you may not use this file except in compliance</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// with the License. You may obtain a copy of the License at</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">//</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// Unless required by applicable law or agreed to in writing, software</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comm
ent">// distributed under the License is distributed on an "AS IS" BASIS,</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">// See the License for the specific language governing permissions and</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// limitations under the License.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#ifndef __MESOS_SLAVE_CONTAINER_LOGGER_HPP__</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#define __MESOS_SLAVE_CONTAINER_L
OGGER_HPP__</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> </div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include <map></span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <string></span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <vector></span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> </div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <<a class="code" href="include_2mesos_2mesos_8hpp.html">mesos/mesos.hpp</a>></span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="p
reprocessor">#include <<a class="code" href="include_2mesos_2slave_2containerizer_8hpp.html">mesos/slave/containerizer.hpp</a>></span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include <<a class="code" href="future_8hpp.html">process/future.hpp</a>></span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include <<a class="code" href="subprocess_8hpp.html">process/subprocess.hpp</a>></span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include <<a class="code" href="3rdparty_2libprocess_2include_2process_2shared_8hpp.html">process/shared.hpp</a>></span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> </div><div class="line"><a name="l00032"></a><span
class="lineno"> 32</span> <span class="preprocessor">#include <<a class="code" href="try_8hpp.html">stout/try.hpp</a>></span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#include <<a class="code" href="nothing_8hpp.html">stout/nothing.hpp</a>></span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#include <<a class="code" href="option_8hpp.html">stout/option.hpp</a>></span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include <<a class="code" href="unreachable_8hpp.html">stout/unreachable.hpp</a>></span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> </div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="keyword">namespace </span><a class="code" href="namespacemesos.html">mesos</a> {
</div><div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="namespacemesos_1_1slave.html"> 38</a></span> <span class="keyword">namespace </span>slave {</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> </div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="classmesos_1_1slave_1_1ContainerLogger.html"> 52</a></span> <span class="keyword">class </span><a class="code" href="classmesos_1_1slave_1_1ContainerLogger.html">ContainerLogger</a></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span> {</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="keyword">static</span> <a class="code" href="classTry.html">Try<ContainerLogger*></a> <a class="code" href="classmesos_1_1slave_1_1ContainerL
ogger.html#a730e7d402fa06c15886eff94cf0b40d5">create</a>(<span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a>& <a class="code" href="namespacemesos_1_1internal_1_1fs.html#a2343e2642db514496ba8380776487fba">type</a>);</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span> </div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="classmesos_1_1slave_1_1ContainerLogger.html#a2655dbc87f01116b204bcc03a199da16"> 64</a></span>  <span class="keyword">virtual</span> <a class="code" href="classmesos_1_1slave_1_1ContainerLogger.html#a2655dbc87f01116b204bcc03a199da16">~ContainerLogger</a>() {}</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span> </div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <span class="keyword">virtual</span> <a class="code" href="classTry.html">Try<Nothing></a> <a class="code" href
="classmesos_1_1slave_1_1ContainerLogger.html#abf91d08c21dae805eed4fdd9f9f5fbd5">initialize</a>() = 0;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span> </div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <span class="keyword">virtual</span> <a class="code" href="classprocess_1_1Future.html">process::Future<ContainerIO></a> <a class="code" href="classmesos_1_1slave_1_1ContainerLogger.html#a71d26b11f639c21a14187a1b2c0d19b8">prepare</a>(</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <span class="keyword">const</span> ContainerID& containerId,</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <span class="keyword">const</span> ContainerConfig& containerConfig) = 0;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span> };</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>
 </div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span> } <span class="comment">// namespace slave {</span></div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span> } <span class="comment">// namespace mesos {</span></div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span> </div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span> <span class="preprocessor">#endif // __MESOS_SLAVE_CONTAINER_LOGGER_HPP__</span></div><div class="ttc" id="classOption_html"><div class="ttname"><a href="classOption.html">Option< std::string ></a></div></div>
+<a href="slave_2container__logger_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// or more contributor license agreements. See the NOTICE file</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// distributed with this work for additional information</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">// regarding copyright ownership. The ASF licenses this file</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l000
06"></a><span class="lineno"> 6</span> <span class="comment">// "License"); you may not use this file except in compliance</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// with the License. You may obtain a copy of the License at</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">//</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// Unless required by applicable law or agreed to in writing, software</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comm
ent">// distributed under the License is distributed on an "AS IS" BASIS,</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">// See the License for the specific language governing permissions and</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// limitations under the License.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#ifndef __MESOS_SLAVE_CONTAINER_LOGGER_HPP__</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#define __MESOS_SLAVE_CONTAINER_L
OGGER_HPP__</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> </div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include <map></span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <string></span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <vector></span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> </div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <<a class="code" href="include_2mesos_2mesos_8hpp.html">mesos/mesos.hpp</a>></span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="p
reprocessor">#include <<a class="code" href="include_2mesos_2slave_2containerizer_8hpp.html">mesos/slave/containerizer.hpp</a>></span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include <<a class="code" href="future_8hpp.html">process/future.hpp</a>></span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include <<a class="code" href="include_2process_2subprocess_8hpp.html">process/subprocess.hpp</a>></span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include <<a class="code" href="3rdparty_2libprocess_2include_2process_2shared_8hpp.html">process/shared.hpp</a>></span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> </div><div class="line"><a name=
"l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#include <<a class="code" href="try_8hpp.html">stout/try.hpp</a>></span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#include <<a class="code" href="nothing_8hpp.html">stout/nothing.hpp</a>></span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#include <<a class="code" href="option_8hpp.html">stout/option.hpp</a>></span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include <<a class="code" href="unreachable_8hpp.html">stout/unreachable.hpp</a>></span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> </div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="keyword">namespace </span><a class="code" href="namespacemesos
.html">mesos</a> {</div><div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="namespacemesos_1_1slave.html"> 38</a></span> <span class="keyword">namespace </span>slave {</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> </div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="classmesos_1_1slave_1_1ContainerLogger.html"> 52</a></span> <span class="keyword">class </span><a class="code" href="classmesos_1_1slave_1_1ContainerLogger.html">ContainerLogger</a></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span> {</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="keyword">static</span> <a class="code" href="classTry.html">Try<ContainerLogger*></a> <a class="code" href="classmesos_1_1s
lave_1_1ContainerLogger.html#a730e7d402fa06c15886eff94cf0b40d5">create</a>(<span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a>& <a class="code" href="namespacemesos_1_1internal_1_1fs.html#a2343e2642db514496ba8380776487fba">type</a>);</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span> </div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="classmesos_1_1slave_1_1ContainerLogger.html#a2655dbc87f01116b204bcc03a199da16"> 64</a></span>  <span class="keyword">virtual</span> <a class="code" href="classmesos_1_1slave_1_1ContainerLogger.html#a2655dbc87f01116b204bcc03a199da16">~ContainerLogger</a>() {}</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span> </div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <span class="keyword">virtual</span> <a class="code" href="classTry.html">Try<Nothing></a> <a
class="code" href="classmesos_1_1slave_1_1ContainerLogger.html#abf91d08c21dae805eed4fdd9f9f5fbd5">initialize</a>() = 0;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span> </div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <span class="keyword">virtual</span> <a class="code" href="classprocess_1_1Future.html">process::Future<ContainerIO></a> <a class="code" href="classmesos_1_1slave_1_1ContainerLogger.html#a71d26b11f639c21a14187a1b2c0d19b8">prepare</a>(</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <span class="keyword">const</span> ContainerID& containerId,</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <span class="keyword">const</span> ContainerConfig& containerConfig) = 0;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span> };</div><div class="line"><a name="l00104"></a><span class="li
neno"> 104</span> </div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span> } <span class="comment">// namespace slave {</span></div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span> } <span class="comment">// namespace mesos {</span></div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span> </div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span> <span class="preprocessor">#endif // __MESOS_SLAVE_CONTAINER_LOGGER_HPP__</span></div><div class="ttc" id="classOption_html"><div class="ttname"><a href="classOption.html">Option< std::string ></a></div></div>
<div class="ttc" id="classTry_html"><div class="ttname"><a href="classTry.html">Try</a></div><div class="ttdef"><b>Definition:</b> check.hpp:33</div></div>
-<div class="ttc" id="subprocess_8hpp_html"><div class="ttname"><a href="subprocess_8hpp.html">subprocess.hpp</a></div></div>
+<div class="ttc" id="include_2process_2subprocess_8hpp_html"><div class="ttname"><a href="include_2process_2subprocess_8hpp.html">subprocess.hpp</a></div></div>
<div class="ttc" id="include_2mesos_2mesos_8hpp_html"><div class="ttname"><a href="include_2mesos_2mesos_8hpp.html">mesos.hpp</a></div></div>
<div class="ttc" id="3rdparty_2libprocess_2include_2process_2shared_8hpp_html"><div class="ttname"><a href="3rdparty_2libprocess_2include_2process_2shared_8hpp.html">shared.hpp</a></div></div>
<div class="ttc" id="nothing_8hpp_html"><div class="ttname"><a href="nothing_8hpp.html">nothing.hpp</a></div></div>
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/slave_2containerizer_2mesos_2launcher_8hpp.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/slave_2containerizer_2mesos_2launcher_8hpp.html b/content/api/latest/c++/slave_2containerizer_2mesos_2launcher_8hpp.html
index 3ea55dc..eda3cb2 100644
--- a/content/api/latest/c++/slave_2containerizer_2mesos_2launcher_8hpp.html
+++ b/content/api/latest/c++/slave_2containerizer_2mesos_2launcher_8hpp.html
@@ -62,7 +62,7 @@
<code>#include <<a class="el" href="include_2mesos_2mesos_8hpp_source.html">mesos/mesos.hpp</a>></code><br />
<code>#include <<a class="el" href="include_2mesos_2slave_2isolator_8hpp_source.html">mesos/slave/isolator.hpp</a>></code><br />
<code>#include <<a class="el" href="future_8hpp_source.html">process/future.hpp</a>></code><br />
-<code>#include <<a class="el" href="subprocess_8hpp_source.html">process/subprocess.hpp</a>></code><br />
+<code>#include <<a class="el" href="include_2process_2subprocess_8hpp_source.html">process/subprocess.hpp</a>></code><br />
<code>#include <<a class="el" href="3rdparty_2stout_2include_2stout_2flags_8hpp_source.html">stout/flags.hpp</a>></code><br />
<code>#include <<a class="el" href="hashmap_8hpp_source.html">stout/hashmap.hpp</a>></code><br />
<code>#include <<a class="el" href="hashset_8hpp_source.html">stout/hashset.hpp</a>></code><br />
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/slave_2containerizer_2mesos_2launcher_8hpp_source.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/slave_2containerizer_2mesos_2launcher_8hpp_source.html b/content/api/latest/c++/slave_2containerizer_2mesos_2launcher_8hpp_source.html
index dee9214..8de02d6 100644
--- a/content/api/latest/c++/slave_2containerizer_2mesos_2launcher_8hpp_source.html
+++ b/content/api/latest/c++/slave_2containerizer_2mesos_2launcher_8hpp_source.html
@@ -52,12 +52,12 @@
<div class="title">launcher.hpp</div> </div>
</div><!--header-->
<div class="contents">
-<a href="slave_2containerizer_2mesos_2launcher_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// or more contributor license agreements. See the NOTICE file</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// distributed with this work for additional information</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">// regarding copyright ownership. The ASF licenses this file</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// to you under the Apache License, Version 2.0 (the</span></div><div class="line">
<a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">// "License"); you may not use this file except in compliance</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// with the License. You may obtain a copy of the License at</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">//</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// Unless required by applicable law or agreed to in writing, software</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <spa
n class="comment">// distributed under the License is distributed on an "AS IS" BASIS,</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">// See the License for the specific language governing permissions and</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// limitations under the License.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#ifndef __LAUNCHER_HPP__</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#define __LAUNCHER_HPP__</span></div><di
v class="line"><a name="l00019"></a><span class="lineno"> 19</span> </div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include <sys/types.h></span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <map></span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <string></span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <vector></span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include <<a class="code" href="include_2mesos_2mesos_8hpp.html">mesos/mes
os.hpp</a>></span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include <<a class="code" href="include_2mesos_2slave_2isolator_8hpp.html">mesos/slave/isolator.hpp</a>></span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> </div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include <<a class="code" href="future_8hpp.html">process/future.hpp</a>></span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include <<a class="code" href="subprocess_8hpp.html">process/subprocess.hpp</a>></span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span clas
s="preprocessor">#include <<a class="code" href="3rdparty_2stout_2include_2stout_2flags_8hpp.html">stout/flags.hpp</a>></span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#include <<a class="code" href="hashmap_8hpp.html">stout/hashmap.hpp</a>></span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include <<a class="code" href="hashset_8hpp.html">stout/hashset.hpp</a>></span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#include <<a class="code" href="lambda_8hpp.html">stout/lambda.hpp</a>></span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#include <<a class="code" href="option_8hpp.html">stout/option.hpp</a>></span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>
60;<span class="preprocessor">#include <<a class="code" href="try_8hpp.html">stout/try.hpp</a>></span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> </div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="preprocessor">#include "<a class="code" href="src_2slave_2flags_8hpp.html">slave/flags.hpp</a>"</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="preprocessor">#include "<a class="code" href="src_2slave_2containerizer_2containerizer_8hpp.html">slave/containerizer/containerizer.hpp</a>"</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="keyword">namespace </span><a class="code" href="namespacemesos.html">mesos</a> {</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>
60;<span class="keyword">namespace </span><a class="code" href="namespaceinternal.html">internal</a> {</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="keyword">namespace </span>slave {</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> </div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Launcher.html"> 47</a></span> <span class="keyword">class </span><a class="code" href="classmesos_1_1internal_1_1slave_1_1Launcher.html">Launcher</a></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> {</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Launcher.html#a71741e35eb44f5ca5734af8d945b0e8d"> 50</a></span>  <
span class="keyword">virtual</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Launcher.html#a71741e35eb44f5ca5734af8d945b0e8d">~Launcher</a>() {}</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <span class="comment">// Recover the necessary state for each container listed in state.</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="comment">// Return the set of containers that are known to the launcher but</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="comment">// not known to the slave (a.k.a. orphans).</span></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="keyword">virtual</span> <a class="code" href="classprocess_1_1Future.html">process::Future<hashset<ContainerID></a>> <a cl
ass="code" href="classmesos_1_1internal_1_1slave_1_1Launcher.html#a93e8c38b7a4d497b37ce82d9108fedb4">recover</a>(</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <span class="keyword">const</span> std::vector<mesos::slave::ContainerState>& states) = 0;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span> </div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="comment">// Fork a new process in the containerized context. The child will</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="comment">// exec the binary at the given path with the given argv, flags and</span></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <span class="comment">// environment. The I/O of the child will be redirected according to</span></div><div class="line"><a name="l00061"></a><span class="lineno
"> 61</span>  <span class="comment">// the specified I/O descriptors. The parentHooks will be executed</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="comment">// in the parent process before the child execs. The parent will return</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="comment">// the child's pid if the fork is successful.</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <span class="keyword">virtual</span> <a class="code" href="classTry.html">Try<pid_t></a> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Launcher.html#acb021e7df5f9a5cc902de09e2da7b1df">fork</a>(</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <span class="keyword">const</span> ContainerID& containerId,</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#
160; <span class="keyword">const</span> std::string& <a class="code" href="namespacepath.html">path</a>,</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <span class="keyword">const</span> std::vector<std::string>& argv,</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <span class="keyword">const</span> <a class="code" href="structmesos_1_1slave_1_1ContainerIO.html">mesos::slave::ContainerIO</a>& containerIO,</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="keyword">const</span> <a class="code" href="classflags_1_1FlagsBase.html">flags::FlagsBase</a>* <a class="code" href="namespaceflags.html">flags</a>,</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option</a><std::map<std::string, std::string>>& <
a class="code" href="namespacemesos_1_1internal_1_1tests.html#a1396c5e3b0a179220de2792d74770ec2">environment</a>,</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<int></a>& enterNamespaces,</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<int></a>& cloneNamespaces,</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <span class="keyword">const</span> std::vector<int_fd>& whitelistFds) = 0;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span> </div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <span class="comment">// Kill all processes in the containerized context.</span></div><div class="line"><a name="l00076"></a
><span class="lineno"> 76</span>  <span class="keyword">virtual</span> <a class="code" href="classprocess_1_1Future.html">process::Future<Nothing></a> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Launcher.html#adf9cd543b7aaf0b999a2a00aa31c6175">destroy</a>(<span class="keyword">const</span> ContainerID& containerId) = 0;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span> </div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <span class="comment">// Return ContainerStatus information about container.</span></div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <span class="comment">// Currently only returns Executor PID info.</span></div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="keyword">virtual</span> <a class="code" href="classprocess_1_1Future.html">process::Future<ContainerStatus></a> <a class="code"
href="classmesos_1_1internal_1_1slave_1_1Launcher.html#a45a6d7403aeb433663419923a9956bc0">status</a>(</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <span class="keyword">const</span> ContainerID& containerId) = 0;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span> };</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span> </div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span> </div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="comment">// Launcher suitable for any POSIX compliant system. Uses process</span></div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="comment">// groups and sessions to track processes in a container. POSIX states</span></div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="comment">// that process
groups cannot migrate between sessions so all</span></div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="comment">// processes for a container will be contained in a session.</span></div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <span class="comment">// Also suitable for Windows, which uses job objects to obtain the</span></div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="comment">// same functionality. Everything is coordinated through `Subprocess`.</span></div><div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1SubprocessLauncher.html"> 91</a></span> <span class="keyword">class </span><a class="code" href="classmesos_1_1internal_1_1slave_1_1SubprocessLauncher.html">SubprocessLauncher</a> : <span class="keyword">public</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Launc
her.html">Launcher</a></div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span> {</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <span class="keyword">static</span> <a class="code" href="classTry.html">Try<Launcher*></a> <a class="code" href="namespacecgroups.html#a2ecc89636706df947027a4c3c2100fbe">create</a>(<span class="keyword">const</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Flags.html">Flags</a>& <a class="code" href="namespaceflags.html">flags</a>);</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span> </div><div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1SubprocessLauncher.html#a1d03ee6b67829cfdedf4930208d30976"> 96</a></span>  <span class="keyword">virtual</sp
an> <a class="code" href="classmesos_1_1internal_1_1slave_1_1SubprocessLauncher.html#a1d03ee6b67829cfdedf4930208d30976">~SubprocessLauncher</a>() {}</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span> </div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <span class="keyword">virtual</span> <a class="code" href="classprocess_1_1Future.html">process::Future<hashset<ContainerID></a>> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Launcher.html#a93e8c38b7a4d497b37ce82d9108fedb4">recover</a>(</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <span class="keyword">const</span> std::vector<mesos::slave::ContainerState>& states);</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span> </div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <span class="keyword">virtual</span> <a class="code" href="clas
sTry.html">Try<pid_t></a> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Launcher.html#acb021e7df5f9a5cc902de09e2da7b1df">fork</a>(</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <span class="keyword">const</span> ContainerID& containerId,</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <span class="keyword">const</span> std::string& <a class="code" href="namespacepath.html">path</a>,</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <span class="keyword">const</span> std::vector<std::string>& argv,</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <span class="keyword">const</span> <a class="code" href="structmesos_1_1slave_1_1ContainerIO.html">mesos::slave::ContainerIO</a>& containerIO,</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <span class
="keyword">const</span> <a class="code" href="classflags_1_1FlagsBase.html">flags::FlagsBase</a>* flags,</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option</a><std::map<std::string, std::string>>& <a class="code" href="namespacemesos_1_1internal_1_1tests.html#a1396c5e3b0a179220de2792d74770ec2">environment</a>,</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<int></a>& enterNamespaces,</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<int></a>& cloneNamespaces,</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <span class="keyword">const</span> std::vect
or<int_fd>& whitelistFds);</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span> </div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <span class="keyword">virtual</span> <a class="code" href="classprocess_1_1Future.html">process::Future<Nothing></a> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Launcher.html#adf9cd543b7aaf0b999a2a00aa31c6175">destroy</a>(<span class="keyword">const</span> ContainerID& containerId);</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span> </div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <span class="keyword">virtual</span> <a class="code" href="classprocess_1_1Future.html">process::Future<ContainerStatus></a> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Launcher.html#a45a6d7403aeb433663419923a9956bc0">status</a>(</div><div class="line"><a name="l00115"></a><span class="lineno">
115</span>  <span class="keyword">const</span> ContainerID& containerId);</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span> </div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span> <span class="keyword">protected</span>:</div><div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1SubprocessLauncher.html#af010735837a761ba49b0ff6fb0e50ff1"> 118</a></span>  <a class="code" href="classmesos_1_1internal_1_1slave_1_1SubprocessLauncher.html#af010735837a761ba49b0ff6fb0e50ff1">SubprocessLauncher</a>() {}</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span> </div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <span class="comment">// The 'pid' is the process id of the first process and also the</span></div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>
0; <span class="comment">// process group id and session id.</span></div><div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1SubprocessLauncher.html#a9441321f40e25cb57df4e05751dbcbb5"> 122</a></span>  <a class="code" href="classhashmap.html">hashmap<ContainerID, pid_t></a> <a class="code" href="classmesos_1_1internal_1_1slave_1_1SubprocessLauncher.html#a9441321f40e25cb57df4e05751dbcbb5">pids</a>;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span> };</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span> </div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span> </div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span> } <span class="comment">// namespace slave {</span></div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span> } <span class="comment">// namespace internal
{</span></div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span> } <span class="comment">// namespace mesos {</span></div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span> </div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span> <span class="preprocessor">#endif // __LAUNCHER_HPP__</span></div><div class="ttc" id="namespacepath_html"><div class="ttname"><a href="namespacepath.html">path</a></div><div class="ttdef"><b>Definition:</b> path.hpp:26</div></div>
+<a href="slave_2containerizer_2mesos_2launcher_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// or more contributor license agreements. See the NOTICE file</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// distributed with this work for additional information</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">// regarding copyright ownership. The ASF licenses this file</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// to you under the Apache License, Version 2.0 (the</span></div><div class="line">
<a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">// "License"); you may not use this file except in compliance</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// with the License. You may obtain a copy of the License at</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">//</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// Unless required by applicable law or agreed to in writing, software</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <spa
n class="comment">// distributed under the License is distributed on an "AS IS" BASIS,</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">// See the License for the specific language governing permissions and</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// limitations under the License.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#ifndef __LAUNCHER_HPP__</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#define __LAUNCHER_HPP__</span></div><di
v class="line"><a name="l00019"></a><span class="lineno"> 19</span> </div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include <sys/types.h></span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <map></span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <string></span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <vector></span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include <<a class="code" href="include_2mesos_2mesos_8hpp.html">mesos/mes
os.hpp</a>></span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include <<a class="code" href="include_2mesos_2slave_2isolator_8hpp.html">mesos/slave/isolator.hpp</a>></span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> </div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include <<a class="code" href="future_8hpp.html">process/future.hpp</a>></span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include <<a class="code" href="include_2process_2subprocess_8hpp.html">process/subprocess.hpp</a>></span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div><div class="line"><a name="l00033"></a><span class="lineno"> 33</spa
n> <span class="preprocessor">#include <<a class="code" href="3rdparty_2stout_2include_2stout_2flags_8hpp.html">stout/flags.hpp</a>></span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#include <<a class="code" href="hashmap_8hpp.html">stout/hashmap.hpp</a>></span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include <<a class="code" href="hashset_8hpp.html">stout/hashset.hpp</a>></span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#include <<a class="code" href="lambda_8hpp.html">stout/lambda.hpp</a>></span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#include <<a class="code" href="option_8hpp.html">stout/option.hpp</a>></span></div><div class="line"><a name="l00038"></a><span class="linen
o"> 38</span> <span class="preprocessor">#include <<a class="code" href="try_8hpp.html">stout/try.hpp</a>></span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> </div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="preprocessor">#include "<a class="code" href="src_2slave_2flags_8hpp.html">slave/flags.hpp</a>"</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="preprocessor">#include "<a class="code" href="src_2slave_2containerizer_2containerizer_8hpp.html">slave/containerizer/containerizer.hpp</a>"</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="keyword">namespace </span><a class="code" href="namespacemesos.html">mesos</a> {</div><div class="line"><a name="l00044"></a><span class="linen
o"> 44</span> <span class="keyword">namespace </span><a class="code" href="namespaceinternal.html">internal</a> {</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="keyword">namespace </span>slave {</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> </div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Launcher.html"> 47</a></span> <span class="keyword">class </span><a class="code" href="classmesos_1_1internal_1_1slave_1_1Launcher.html">Launcher</a></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> {</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1Launcher.html#a71741e35eb44f5ca5734af8d945b0e8d"> 50</
a></span>  <span class="keyword">virtual</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Launcher.html#a71741e35eb44f5ca5734af8d945b0e8d">~Launcher</a>() {}</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <span class="comment">// Recover the necessary state for each container listed in state.</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="comment">// Return the set of containers that are known to the launcher but</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="comment">// not known to the slave (a.k.a. orphans).</span></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="keyword">virtual</span> <a class="code" href="classprocess_1_1Future.html">process::Future<hashset<ContainerID
></a>> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Launcher.html#a93e8c38b7a4d497b37ce82d9108fedb4">recover</a>(</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <span class="keyword">const</span> std::vector<mesos::slave::ContainerState>& states) = 0;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span> </div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="comment">// Fork a new process in the containerized context. The child will</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="comment">// exec the binary at the given path with the given argv, flags and</span></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <span class="comment">// environment. The I/O of the child will be redirected according to</span></div><div class="line"><a name="l00061"></a><
span class="lineno"> 61</span>  <span class="comment">// the specified I/O descriptors. The parentHooks will be executed</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="comment">// in the parent process before the child execs. The parent will return</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="comment">// the child's pid if the fork is successful.</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <span class="keyword">virtual</span> <a class="code" href="classTry.html">Try<pid_t></a> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Launcher.html#acb021e7df5f9a5cc902de09e2da7b1df">fork</a>(</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <span class="keyword">const</span> ContainerID& containerId,</div><div class="line"><a name="l00066"></a><span class="line
no"> 66</span>  <span class="keyword">const</span> std::string& <a class="code" href="namespacepath.html">path</a>,</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <span class="keyword">const</span> std::vector<std::string>& argv,</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <span class="keyword">const</span> <a class="code" href="structmesos_1_1slave_1_1ContainerIO.html">mesos::slave::ContainerIO</a>& containerIO,</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="keyword">const</span> <a class="code" href="classflags_1_1FlagsBase.html">flags::FlagsBase</a>* <a class="code" href="namespaceflags.html">flags</a>,</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option</a><std::map<std::string, std::str
ing>>& <a class="code" href="namespacemesos_1_1internal_1_1tests.html#a1396c5e3b0a179220de2792d74770ec2">environment</a>,</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<int></a>& enterNamespaces,</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<int></a>& cloneNamespaces,</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <span class="keyword">const</span> std::vector<int_fd>& whitelistFds) = 0;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span> </div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <span class="comment">// Kill all processes in the containerized context.</span></div><div class="line"><a
name="l00076"></a><span class="lineno"> 76</span>  <span class="keyword">virtual</span> <a class="code" href="classprocess_1_1Future.html">process::Future<Nothing></a> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Launcher.html#adf9cd543b7aaf0b999a2a00aa31c6175">destroy</a>(<span class="keyword">const</span> ContainerID& containerId) = 0;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span> </div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <span class="comment">// Return ContainerStatus information about container.</span></div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <span class="comment">// Currently only returns Executor PID info.</span></div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="keyword">virtual</span> <a class="code" href="classprocess_1_1Future.html">process::Future<ContainerStatus></a
> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Launcher.html#a45a6d7403aeb433663419923a9956bc0">status</a>(</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <span class="keyword">const</span> ContainerID& containerId) = 0;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span> };</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span> </div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span> </div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="comment">// Launcher suitable for any POSIX compliant system. Uses process</span></div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="comment">// groups and sessions to track processes in a container. POSIX states</span></div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="comment
">// that process groups cannot migrate between sessions so all</span></div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="comment">// processes for a container will be contained in a session.</span></div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <span class="comment">// Also suitable for Windows, which uses job objects to obtain the</span></div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="comment">// same functionality. Everything is coordinated through `Subprocess`.</span></div><div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1SubprocessLauncher.html"> 91</a></span> <span class="keyword">class </span><a class="code" href="classmesos_1_1internal_1_1slave_1_1SubprocessLauncher.html">SubprocessLauncher</a> : <span class="keyword">public</span> <a class="code" href="classmesos_1_1internal
_1_1slave_1_1Launcher.html">Launcher</a></div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span> {</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <span class="keyword">static</span> <a class="code" href="classTry.html">Try<Launcher*></a> <a class="code" href="namespacecgroups.html#a2ecc89636706df947027a4c3c2100fbe">create</a>(<span class="keyword">const</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Flags.html">Flags</a>& <a class="code" href="namespaceflags.html">flags</a>);</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span> </div><div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1SubprocessLauncher.html#a1d03ee6b67829cfdedf4930208d30976"> 96</a></span>  <span class="ke
yword">virtual</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1SubprocessLauncher.html#a1d03ee6b67829cfdedf4930208d30976">~SubprocessLauncher</a>() {}</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span> </div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <span class="keyword">virtual</span> <a class="code" href="classprocess_1_1Future.html">process::Future<hashset<ContainerID></a>> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Launcher.html#a93e8c38b7a4d497b37ce82d9108fedb4">recover</a>(</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <span class="keyword">const</span> std::vector<mesos::slave::ContainerState>& states);</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span> </div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <span class="keyword">virtual</span> <a class
="code" href="classTry.html">Try<pid_t></a> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Launcher.html#acb021e7df5f9a5cc902de09e2da7b1df">fork</a>(</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <span class="keyword">const</span> ContainerID& containerId,</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <span class="keyword">const</span> std::string& <a class="code" href="namespacepath.html">path</a>,</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <span class="keyword">const</span> std::vector<std::string>& argv,</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <span class="keyword">const</span> <a class="code" href="structmesos_1_1slave_1_1ContainerIO.html">mesos::slave::ContainerIO</a>& containerIO,</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span> 
; <span class="keyword">const</span> <a class="code" href="classflags_1_1FlagsBase.html">flags::FlagsBase</a>* flags,</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option</a><std::map<std::string, std::string>>& <a class="code" href="namespacemesos_1_1internal_1_1tests.html#a1396c5e3b0a179220de2792d74770ec2">environment</a>,</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<int></a>& enterNamespaces,</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<int></a>& cloneNamespaces,</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <span class="keyword">cons
t</span> std::vector<int_fd>& whitelistFds);</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span> </div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <span class="keyword">virtual</span> <a class="code" href="classprocess_1_1Future.html">process::Future<Nothing></a> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Launcher.html#adf9cd543b7aaf0b999a2a00aa31c6175">destroy</a>(<span class="keyword">const</span> ContainerID& containerId);</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span> </div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <span class="keyword">virtual</span> <a class="code" href="classprocess_1_1Future.html">process::Future<ContainerStatus></a> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Launcher.html#a45a6d7403aeb433663419923a9956bc0">status</a>(</div><div class="line"><a name="l00115"></a><spa
n class="lineno"> 115</span>  <span class="keyword">const</span> ContainerID& containerId);</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span> </div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span> <span class="keyword">protected</span>:</div><div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1SubprocessLauncher.html#af010735837a761ba49b0ff6fb0e50ff1"> 118</a></span>  <a class="code" href="classmesos_1_1internal_1_1slave_1_1SubprocessLauncher.html#af010735837a761ba49b0ff6fb0e50ff1">SubprocessLauncher</a>() {}</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span> </div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <span class="comment">// The 'pid' is the process id of the first process and also the</span></div><div class="line"><a name="l00121"></a><span class="lineno
"> 121</span>  <span class="comment">// process group id and session id.</span></div><div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1SubprocessLauncher.html#a9441321f40e25cb57df4e05751dbcbb5"> 122</a></span>  <a class="code" href="classhashmap.html">hashmap<ContainerID, pid_t></a> <a class="code" href="classmesos_1_1internal_1_1slave_1_1SubprocessLauncher.html#a9441321f40e25cb57df4e05751dbcbb5">pids</a>;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span> };</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span> </div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span> </div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span> } <span class="comment">// namespace slave {</span></div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span> } <span class="comment">// n
amespace internal {</span></div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span> } <span class="comment">// namespace mesos {</span></div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span> </div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span> <span class="preprocessor">#endif // __LAUNCHER_HPP__</span></div><div class="ttc" id="namespacepath_html"><div class="ttname"><a href="namespacepath.html">path</a></div><div class="ttdef"><b>Definition:</b> path.hpp:26</div></div>
<div class="ttc" id="classmesos_1_1internal_1_1slave_1_1Launcher_html"><div class="ttname"><a href="classmesos_1_1internal_1_1slave_1_1Launcher.html">mesos::internal::slave::Launcher</a></div><div class="ttdef"><b>Definition:</b> launcher.hpp:47</div></div>
<div class="ttc" id="classOption_html"><div class="ttname"><a href="classOption.html">Option</a></div><div class="ttdef"><b>Definition:</b> option.hpp:28</div></div>
<div class="ttc" id="classmesos_1_1internal_1_1slave_1_1Launcher_html_a93e8c38b7a4d497b37ce82d9108fedb4"><div class="ttname"><a href="classmesos_1_1internal_1_1slave_1_1Launcher.html#a93e8c38b7a4d497b37ce82d9108fedb4">mesos::internal::slave::Launcher::recover</a></div><div class="ttdeci">virtual process::Future< hashset< ContainerID > > recover(const std::vector< mesos::slave::ContainerState > &states)=0</div></div>
<div class="ttc" id="classTry_html"><div class="ttname"><a href="classTry.html">Try</a></div><div class="ttdef"><b>Definition:</b> check.hpp:33</div></div>
-<div class="ttc" id="subprocess_8hpp_html"><div class="ttname"><a href="subprocess_8hpp.html">subprocess.hpp</a></div></div>
+<div class="ttc" id="include_2process_2subprocess_8hpp_html"><div class="ttname"><a href="include_2process_2subprocess_8hpp.html">subprocess.hpp</a></div></div>
<div class="ttc" id="include_2mesos_2mesos_8hpp_html"><div class="ttname"><a href="include_2mesos_2mesos_8hpp.html">mesos.hpp</a></div></div>
<div class="ttc" id="include_2mesos_2slave_2isolator_8hpp_html"><div class="ttname"><a href="include_2mesos_2slave_2isolator_8hpp.html">isolator.hpp</a></div></div>
<div class="ttc" id="classmesos_1_1internal_1_1slave_1_1Launcher_html_acb021e7df5f9a5cc902de09e2da7b1df"><div class="ttname"><a href="classmesos_1_1internal_1_1slave_1_1Launcher.html#acb021e7df5f9a5cc902de09e2da7b1df">mesos::internal::slave::Launcher::fork</a></div><div class="ttdeci">virtual Try< pid_t > fork(const ContainerID &containerId, const std::string &path, const std::vector< std::string > &argv, const mesos::slave::ContainerIO &containerIO, const flags::FlagsBase *flags, const Option< std::map< std::string, std::string >> &environment, const Option< int > &enterNamespaces, const Option< int > &cloneNamespaces, const std::vector< int_fd > &whitelistFds)=0</div></div>
[35/50] mesos-site git commit: Updated the website built from mesos
SHA: 7c9c72d.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/functions_s.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/functions_s.html b/content/api/latest/c++/functions_s.html
index e47a9d2..401b629 100644
--- a/content/api/latest/c++/functions_s.html
+++ b/content/api/latest/c++/functions_s.html
@@ -404,13 +404,13 @@
, <a class="el" href="classmesos_1_1v1_1_1executor_1_1V0ToV1Adapter.html#a204a93410a8825a916dff56b5f8195c0">mesos::v1::executor::V0ToV1Adapter</a>
, <a class="el" href="classorg_1_1apache_1_1zookeeper_1_1server_1_1NIOServerCnxnFactory.html#aeb21636f2fcbc8811af2040912c9b1a7">org::apache::zookeeper::server::NIOServerCnxnFactory</a>
, <a class="el" href="classprocess_1_1network_1_1internal_1_1LibeventSSLSocketImpl.html#a5d1386c7494d6681a764ddf0cff19e40">process::network::internal::LibeventSSLSocketImpl</a>
-, <a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html#a9d7ac9f641277f1c5f4e7dc6f5464845">process::network::internal::Socket< AddressType ></a>
</li>
<li>Shutdown
: <a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html#ac5a52929658fbe1ed19b4b03bdd63904">process::network::internal::Socket< AddressType ></a>
</li>
<li>shutdown()
-: <a class="el" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#a04930363612888ceb04d517061a43f3e">process::network::internal::SocketImpl</a>
+: <a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html#a9d7ac9f641277f1c5f4e7dc6f5464845">process::network::internal::Socket< AddressType ></a>
+, <a class="el" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#a04930363612888ceb04d517061a43f3e">process::network::internal::SocketImpl</a>
</li>
<li>shutdownExecutor()
: <a class="el" href="classmesos_1_1internal_1_1slave_1_1Slave.html#a268b5307f2796f9270acf6efaf29711c">mesos::internal::slave::Slave</a>
@@ -438,12 +438,12 @@
<li>signature
: <a class="el" href="classprocess_1_1http_1_1authentication_1_1JWT.html#a7a5314085fad497a929f9901cf55721a">process::http::authentication::JWT</a>
</li>
-<li>signed_integer
-: <a class="el" href="structJSON_1_1Number.html#a1ef5b2f34492821aec7eae82da8366b7">JSON::Number</a>
-</li>
<li>SIGNED_INTEGER
: <a class="el" href="structJSON_1_1Number.html#a156598d70937964dd8de2628351061aaac9c83af02af694c57497b0f1414b0779">JSON::Number</a>
</li>
+<li>signed_integer
+: <a class="el" href="structJSON_1_1Number.html#a1ef5b2f34492821aec7eae82da8366b7">JSON::Number</a>
+</li>
<li>size()
: <a class="el" href="classBoundedHashMap.html#aa0c84c4c9636449ab35ef13ecce36266">BoundedHashMap< Key, Value ></a>
, <a class="el" href="classCache.html#aae4846f6fb5c598ae164e89129de1350">Cache< Key, Value ></a>
@@ -699,24 +699,26 @@
: <a class="el" href="classmesos_1_1internal_1_1tests_1_1MockCSIPlugin.html#aaaf2f5692dca8cc06602ca25f62bbaba">mesos::internal::tests::MockCSIPlugin</a>
, <a class="el" href="classorg_1_1apache_1_1zookeeper_1_1server_1_1NIOServerCnxnFactory.html#aceef33e2bd447da751d4b592f4104121">org::apache::zookeeper::server::NIOServerCnxnFactory</a>
</li>
+<li>state
+: <a class="el" href="structmesos_1_1internal_1_1master_1_1Framework.html#af4322f8c99cfc37c386d3b5457a6f053">mesos::internal::master::Framework</a>
+</li>
<li>State
: <a class="el" href="structmesos_1_1internal_1_1master_1_1Framework.html#a96a90d8ae734d729489ba877367e6b65">mesos::internal::master::Framework</a>
</li>
<li>state
-: <a class="el" href="structmesos_1_1internal_1_1master_1_1Framework.html#af4322f8c99cfc37c386d3b5457a6f053">mesos::internal::master::Framework</a>
+: <a class="el" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a27e0e6e088c0fd88a0c7f679c964c409">mesos::internal::slave::Executor</a>
</li>
<li>State
: <a class="el" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a3b2abbbd9f9e9ca5c08b75329ac426c0">mesos::internal::slave::Executor</a>
</li>
<li>state
-: <a class="el" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a27e0e6e088c0fd88a0c7f679c964c409">mesos::internal::slave::Executor</a>
+: <a class="el" href="classmesos_1_1internal_1_1slave_1_1Framework.html#adbfec960b7cb705602bdac9853fb0c12">mesos::internal::slave::Framework</a>
</li>
<li>State
: <a class="el" href="classmesos_1_1internal_1_1slave_1_1Framework.html#accb4e9c8d32936b20f3d0ddc71fe8add">mesos::internal::slave::Framework</a>
</li>
-<li>state
-: <a class="el" href="classmesos_1_1internal_1_1slave_1_1Framework.html#adbfec960b7cb705602bdac9853fb0c12">mesos::internal::slave::Framework</a>
-, <a class="el" href="classmesos_1_1internal_1_1slave_1_1Http.html#a48698f07413ddb1d974b42c04a98c5fa">mesos::internal::slave::Http</a>
+<li>state()
+: <a class="el" href="classmesos_1_1internal_1_1slave_1_1Http.html#a48698f07413ddb1d974b42c04a98c5fa">mesos::internal::slave::Http</a>
, <a class="el" href="classmesos_1_1internal_1_1slave_1_1Slave.html#af79c3eb007e12f37faec4a24d1f95cc4">mesos::internal::slave::Slave</a>
</li>
<li>State
@@ -801,7 +803,7 @@
, <a class="el" href="classmesos_1_1internal_1_1slave_1_1Slave.html#a1e0c26aadd84e879a41ce399d685e421">mesos::internal::slave::Slave</a>
</li>
<li>StatusUpdateManagerProcess()
-: <a class="el" href="classmesos_1_1internal_1_1StatusUpdateManagerProcess.html#a2952d0ef16e5ce7a19f023a5b64e70d0">mesos::internal::StatusUpdateManagerProcess< IDType, CheckpointType, UpdateType ></a>
+: <a class="el" href="classmesos_1_1internal_1_1StatusUpdateManagerProcess.html#a681eb7df0ad9abc702b1dfa6e4a222cb">mesos::internal::StatusUpdateManagerProcess< IDType, CheckpointType, UpdateType ></a>
</li>
<li>stderr_from_fd
: <a class="el" href="structmesos_1_1internal_1_1slave_1_1IOSwitchboardServer_1_1Flags.html#a1bf9244c976c6542fdf1a840bfa9d875">mesos::internal::slave::IOSwitchboardServer::Flags</a>
@@ -836,6 +838,7 @@
, <a class="el" href="classprocess_1_1Executor.html#a43a9df131ecc0e5fb3c3015c118407da">process::Executor</a>
, <a class="el" href="classprocess_1_1http_1_1Server.html#acc7de6562fb0670327e6d2a4e9e6c92c">process::http::Server</a>
, <a class="el" href="classprocess_1_1metrics_1_1Timer.html#add113450a55bb835137f84701f981fcc">process::metrics::Timer< T ></a>
+, <a class="el" href="classprocess_1_1windows_1_1EventLoop.html#a8a07fc602e31875e6cbcaeac8008f09a">process::windows::EventLoop</a>
, <a class="el" href="classStopwatch.html#aa0266311b7392b948061bb985b49cff4">Stopwatch</a>
</li>
<li>stop_timeout
@@ -886,7 +889,7 @@
: <a class="el" href="classmesos_1_1internal_1_1slave_1_1Flags.html#a2c8aab49e677f3ba6c5ea3c935f2aab0">mesos::internal::slave::Flags</a>
</li>
<li>String()
-: <a class="el" href="structJSON_1_1String.html#ab8f3991c166dfd0e7761a8cfc733f4a2">JSON::String</a>
+: <a class="el" href="structJSON_1_1String.html#a7be21f307ea1e322a19a23da1b35afb4">JSON::String</a>
</li>
<li>string()
: <a class="el" href="classJvm.html#ac2c7a5438fbf91870a29720b0a26b0a1">Jvm</a>
@@ -935,7 +938,7 @@
</li>
<li>Subscriber
: <a class="el" href="classmesos_1_1internal_1_1master_1_1Master.html#ad8fccf68963e3540e62df4dfb512bc54">mesos::internal::master::Master</a>
-, <a class="el" href="structmesos_1_1internal_1_1master_1_1Master_1_1Subscribers_1_1Subscriber.html#a648eeb655edb6255b4f515a94ab55473">mesos::internal::master::Master::Subscribers::Subscriber</a>
+, <a class="el" href="structmesos_1_1internal_1_1master_1_1Master_1_1Subscribers_1_1Subscriber.html#a70c60ad79d73c84545ae28bc85714879">mesos::internal::master::Master::Subscribers::Subscriber</a>
</li>
<li>substitute_name
: <a class="el" href="structinternal_1_1windows_1_1SymbolicLink.html#a46106b565c75b06e6bc8332c58ae9484">internal::windows::SymbolicLink</a>
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/functions_t.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/functions_t.html b/content/api/latest/c++/functions_t.html
index 8bb4cd2..9442070 100644
--- a/content/api/latest/c++/functions_t.html
+++ b/content/api/latest/c++/functions_t.html
@@ -312,7 +312,7 @@
, <a class="el" href="structmesos_1_1internal_1_1slave_1_1TaskStatusUpdateStream.html#afed2587d35bff8423602ff07defed554">mesos::internal::slave::TaskStatusUpdateStream</a>
</li>
<li>Timeout()
-: <a class="el" href="classprocess_1_1Timeout.html#adeadd19e081fb4f2a0a39ecc586a4af7">process::Timeout</a>
+: <a class="el" href="classprocess_1_1Timeout.html#aa92e0df435b3ef095e9fc40313600334">process::Timeout</a>
</li>
<li>timeout()
: <a class="el" href="classprocess_1_1Timer.html#adcce3e5538751535be6ec4d48670eb89">process::Timer</a>
@@ -437,36 +437,40 @@
<li>type
: <a class="el" href="structmesos_1_1csi_1_1paths_1_1ContainerPath.html#ae82c8eee1ce13cbd2d0da44e29134b1f">mesos::csi::paths::ContainerPath</a>
, <a class="el" href="structmesos_1_1csi_1_1paths_1_1VolumePath.html#a932b55eda0d5df1444fe5e15adba876d">mesos::csi::paths::VolumePath</a>
-, <a class="el" href="classmesos_1_1internal_1_1FilesError.html#aef08f763f1a964529d6e612e5ab49db4">mesos::internal::FilesError</a>
</li>
<li>Type
: <a class="el" href="classmesos_1_1internal_1_1FilesError.html#ace93cf1c2ae2be0671102df57ed0b5a1">mesos::internal::FilesError</a>
</li>
<li>type
-: <a class="el" href="structmesos_1_1internal_1_1fs_1_1MountInfoTable_1_1Entry.html#abb78c2f10d58e5d2c8bdd47a459d832b">mesos::internal::fs::MountInfoTable::Entry</a>
+: <a class="el" href="classmesos_1_1internal_1_1FilesError.html#aef08f763f1a964529d6e612e5ab49db4">mesos::internal::FilesError</a>
+, <a class="el" href="structmesos_1_1internal_1_1fs_1_1MountInfoTable_1_1Entry.html#abb78c2f10d58e5d2c8bdd47a459d832b">mesos::internal::fs::MountInfoTable::Entry</a>
, <a class="el" href="structmesos_1_1internal_1_1fs_1_1MountTable_1_1Entry.html#a59c7e9a32021a096821a898eb03b20e1">mesos::internal::fs::MountTable::Entry</a>
, <a class="el" href="classmesos_1_1internal_1_1log_1_1tool_1_1Benchmark_1_1Flags.html#a523f498c1c3ca96190b8a654b9a329f2">mesos::internal::log::tool::Benchmark::Flags</a>
-, <a class="el" href="structmesos_1_1internal_1_1ResourceProviderMessage.html#a52b40b56ae9bf3e8d7d96e4a71929cf9">mesos::internal::ResourceProviderMessage</a>
</li>
<li>Type
: <a class="el" href="structmesos_1_1internal_1_1ResourceProviderMessage.html#a1d0830e5e578ade7d92f9908efe8a5c5">mesos::internal::ResourceProviderMessage</a>
</li>
<li>type
-: <a class="el" href="structmesos_1_1internal_1_1tests_1_1ZooKeeperTest_1_1TestWatcher_1_1Event.html#ac0d29e60c4e42c93fcd2c5f702f27d45">mesos::internal::tests::ZooKeeperTest::TestWatcher::Event</a>
+: <a class="el" href="structmesos_1_1internal_1_1ResourceProviderMessage.html#a52b40b56ae9bf3e8d7d96e4a71929cf9">mesos::internal::ResourceProviderMessage</a>
+, <a class="el" href="structmesos_1_1internal_1_1tests_1_1ZooKeeperTest_1_1TestWatcher_1_1Event.html#ac0d29e60c4e42c93fcd2c5f702f27d45">mesos::internal::tests::ZooKeeperTest::TestWatcher::Event</a>
</li>
<li>Type
: <a class="el" href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html#a7c8f14a0efec6a09b957d5d24b8f9e99">mesos::slave::ContainerIO::IO</a>
-, <a class="el" href="classos_1_1WindowsFD.html#ac0377db41e1c167339c97dbd69c79ae5">os::WindowsFD</a>
</li>
<li>type()
: <a class="el" href="classos_1_1WindowsFD.html#a3ce17a730ace5352a1fc6d49f8336d52">os::WindowsFD</a>
</li>
<li>Type
-: <a class="el" href="classprocess_1_1http_1_1authentication_1_1JWTError.html#a6f5217e567bf225c536e03e858a017ed">process::http::authentication::JWTError</a>
+: <a class="el" href="classos_1_1WindowsFD.html#ac0377db41e1c167339c97dbd69c79ae5">os::WindowsFD</a>
</li>
<li>type
: <a class="el" href="classprocess_1_1http_1_1authentication_1_1JWTError.html#a082bf5dfcd9d0a9ffcb6851d8e042a01">process::http::authentication::JWTError</a>
-, <a class="el" href="structprocess_1_1http_1_1Request.html#a4e49e02732d986eb32f979156e0d389a">process::http::Request</a>
+</li>
+<li>Type
+: <a class="el" href="classprocess_1_1http_1_1authentication_1_1JWTError.html#a6f5217e567bf225c536e03e858a017ed">process::http::authentication::JWTError</a>
+</li>
+<li>type
+: <a class="el" href="structprocess_1_1http_1_1Request.html#a4e49e02732d986eb32f979156e0d389a">process::http::Request</a>
, <a class="el" href="structprocess_1_1http_1_1Response.html#a6846045a3c3df3abd8e2735847af3a79">process::http::Response</a>
, <a class="el" href="structprocess_1_1internal_1_1unwrap.html#a42055ebfe5f79c5139c8811f9866cce9">process::internal::unwrap< T ></a>
, <a class="el" href="structprocess_1_1internal_1_1unwrap_3_01Future_3_01X_01_4_01_4.html#a14a1ae87a7669ca60aad0624d1e58bff">process::internal::unwrap< Future< X > ></a>
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/functions_u.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/functions_u.html b/content/api/latest/c++/functions_u.html
index a7a6ec6..c4b02f9 100644
--- a/content/api/latest/c++/functions_u.html
+++ b/content/api/latest/c++/functions_u.html
@@ -251,12 +251,12 @@
<li>unsetAuthenticator()
: <a class="el" href="classprocess_1_1http_1_1authentication_1_1AuthenticatorManager.html#aa68812240328fdac177fd106ef8087dd">process::http::authentication::AuthenticatorManager</a>
</li>
-<li>unsigned_integer
-: <a class="el" href="structJSON_1_1Number.html#a9c6b075f53b5419af9cee264482272eb">JSON::Number</a>
-</li>
<li>UNSIGNED_INTEGER
: <a class="el" href="structJSON_1_1Number.html#a156598d70937964dd8de2628351061aaa0ce531160156e5c4aecfabc42df3b68a">JSON::Number</a>
</li>
+<li>unsigned_integer
+: <a class="el" href="structJSON_1_1Number.html#a9c6b075f53b5419af9cee264482272eb">JSON::Number</a>
+</li>
<li>UNSUPPORTED_MEDIA_TYPE
: <a class="el" href="structprocess_1_1http_1_1Status.html#addffbea97c092bf92955b7f513208ceb">process::http::Status</a>
</li>
@@ -305,11 +305,13 @@
, <a class="el" href="classmesos_1_1internal_1_1slave_1_1XfsDiskIsolatorProcess.html#a1794edfd7812b89606b905a3481af673">mesos::internal::slave::XfsDiskIsolatorProcess</a>
, <a class="el" href="classmesos_1_1internal_1_1StatusUpdateManagerProcess.html#a1658b4adb952dc5e20465e31d572633b">mesos::internal::StatusUpdateManagerProcess< IDType, CheckpointType, UpdateType ></a>
, <a class="el" href="classmesos_1_1slave_1_1Isolator.html#aa4e5910588131613e4c10903282dc252">mesos::slave::Isolator</a>
-, <a class="el" href="classprocess_1_1Clock.html#a196836d438ff28617159c9e682be3656">process::Clock</a>
</li>
<li>Update
: <a class="el" href="classprocess_1_1Clock.html#a1e639da11c2a00b3bffd3391d4a9412f">process::Clock</a>
</li>
+<li>update()
+: <a class="el" href="classprocess_1_1Clock.html#a196836d438ff28617159c9e682be3656">process::Clock</a>
+</li>
<li>updateAllocation()
: <a class="el" href="classmesos_1_1allocator_1_1Allocator.html#aa8ee61bea88a926c920e909571f836dd">mesos::allocator::Allocator</a>
, <a class="el" href="classmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess.html#aaa1ce6cba8a90007ee2c9d2f87dae895">mesos::internal::master::allocator::internal::HierarchicalAllocatorProcess</a>
@@ -439,7 +441,7 @@
: <a class="el" href="structprocess_1_1http_1_1Request.html#aba3024fe3e1028d19f5fb4e92519cb56">process::http::Request</a>
</li>
<li>URL()
-: <a class="el" href="structprocess_1_1http_1_1URL.html#a6f6a9c959c9bb1519f1c29192aa4a407">process::http::URL</a>
+: <a class="el" href="structprocess_1_1http_1_1URL.html#a0405a5eae13705f0cfe7b78e2928bc5f">process::http::URL</a>
</li>
<li>us()
: <a class="el" href="classDuration.html#ab4bc8981d3ac26e3880e57e19f7f7f92">Duration</a>
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/functions_v.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/functions_v.html b/content/api/latest/c++/functions_v.html
index d55e9fb..7567092 100644
--- a/content/api/latest/c++/functions_v.html
+++ b/content/api/latest/c++/functions_v.html
@@ -178,7 +178,7 @@
: <a class="el" href="structJSON_1_1String.html#a6d61cfa2a10f02133833eaaf23b87e75">JSON::String</a>
</li>
<li>Value()
-: <a class="el" href="structJSON_1_1Value.html#ab05d7584e0a89ecc8a16d0670d3a84b7">JSON::Value</a>
+: <a class="el" href="structJSON_1_1Value.html#ad06301ec9da0f0a4713556214b7ce43a">JSON::Value</a>
</li>
<li>value
: <a class="el" href="structmesos_1_1ObjectApprover_1_1Object.html#a712288898956dbca1861589a58aa73f7">mesos::ObjectApprover::Object</a>
@@ -214,7 +214,7 @@
: <a class="el" href="classprocess_1_1ControlFlow.html#a5ce1f085b8043fe8ac900ce9f63a0bde">process::ControlFlow< T ></a>
</li>
<li>Variable()
-: <a class="el" href="classJvm_1_1Variable.html#acebe0a7136cbdaffbe3c8d8ccf7fa372">Jvm::Variable< T, name, signature ></a>
+: <a class="el" href="classJvm_1_1Variable.html#afa8ea3c368c4c21313662eace2cc14f3">Jvm::Variable< T, name, signature ></a>
</li>
<li>Variant()
: <a class="el" href="classVariant.html#aeaf81abef309c9e840316c6ebf8b3cdf">Variant< T, Ts ></a>
@@ -246,7 +246,7 @@
<li>visit()
: <a class="el" href="structprocess_1_1DispatchEvent.html#a0e76d6c1283c8e70858d7099be34a5ba">process::DispatchEvent</a>
, <a class="el" href="structprocess_1_1Event.html#a8756ddd411b61f8f1710e13d82e71037">process::Event</a>
-, <a class="el" href="structprocess_1_1EventVisitor.html#ac5a1087909568bbac1213d32105e1221">process::EventVisitor</a>
+, <a class="el" href="structprocess_1_1EventVisitor.html#a2c6446217ce0718ea9c7b87e2ca93049">process::EventVisitor</a>
, <a class="el" href="structprocess_1_1ExitedEvent.html#aacae7e724b82f3f33f640b9026e163c8">process::ExitedEvent</a>
, <a class="el" href="structprocess_1_1HttpEvent.html#aef4ca1f2279a4207d18c695fc6510a10">process::HttpEvent</a>
, <a class="el" href="structprocess_1_1MessageEvent.html#a075568b289b0075487233208e5b1fe7d">process::MessageEvent</a>
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/functions_w.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/functions_w.html b/content/api/latest/c++/functions_w.html
index 8d40fe9..3eb9bda 100644
--- a/content/api/latest/c++/functions_w.html
+++ b/content/api/latest/c++/functions_w.html
@@ -167,12 +167,12 @@
<li>webui_dir
: <a class="el" href="classmesos_1_1internal_1_1master_1_1Flags.html#a94a63a333e884c51856ce197f29f8e89">mesos::internal::master::Flags</a>
</li>
-<li>weeks()
-: <a class="el" href="classDuration.html#ae98a411bf78d0ab537c021bf3dbd01b0">Duration</a>
-</li>
<li>WEEKS
: <a class="el" href="classDuration.html#aadcf23b757330ae23ee70117aec0656e">Duration</a>
</li>
+<li>weeks()
+: <a class="el" href="classDuration.html#ae98a411bf78d0ab537c021bf3dbd01b0">Duration</a>
+</li>
<li>Weeks()
: <a class="el" href="classWeeks.html#a2606052f27e4baecbf6eb75bd695a034">Weeks</a>
</li>
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/globals_u.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/globals_u.html b/content/api/latest/c++/globals_u.html
index 3e3c549..7f3d7c2 100644
--- a/content/api/latest/c++/globals_u.html
+++ b/content/api/latest/c++/globals_u.html
@@ -94,12 +94,12 @@
<li>Unimplemented()
: <a class="el" href="unimplemented_8hpp.html#a788f2d5d116d024fbfd9b0fd36fa334f">unimplemented.hpp</a>
</li>
-<li>UNREACHABLE
-: <a class="el" href="unreachable_8hpp.html#a0bc63b24b654ca433be7b97a3edde132">unreachable.hpp</a>
-</li>
<li>Unreachable()
: <a class="el" href="unreachable_8hpp.html#a247a4dee16fdea6cdd332f35a572e7d3">unreachable.hpp</a>
</li>
+<li>UNREACHABLE
+: <a class="el" href="unreachable_8hpp.html#a0bc63b24b654ca433be7b97a3edde132">unreachable.hpp</a>
+</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
[36/50] mesos-site git commit: Updated the website built from mesos
SHA: 7c9c72d.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/files.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/files.html b/content/api/latest/c++/files.html
index 1a79c70..2e4b949 100644
--- a/content/api/latest/c++/files.html
+++ b/content/api/latest/c++/files.html
@@ -116,24 +116,33 @@
<tr id="row_0_0_0_0_49_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;"> </span><a href="libprocess_2include_2process_2socket_8hpp_source.html"><span class="icondoc"></span></a><a class="el" href="libprocess_2include_2process_2socket_8hpp.html" target="_self">socket.hpp</a></td><td class="desc"></td></tr>
<tr id="row_0_0_0_0_50_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;"> </span><a href="state__machine_8hpp_source.html"><span class="icondoc"></span></a><a class="el" href="state__machine_8hpp.html" target="_self">state_machine.hpp</a></td><td class="desc"></td></tr>
<tr id="row_0_0_0_0_51_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;"> </span><a href="3rdparty_2libprocess_2include_2process_2statistics_8hpp_source.html"><span class="icondoc"></span></a><a class="el" href="3rdparty_2libprocess_2include_2process_2statistics_8hpp.html" target="_self">statistics.hpp</a></td><td class="desc"></td></tr>
-<tr id="row_0_0_0_0_52_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;"> </span><a href="subprocess_8hpp_source.html"><span class="icondoc"></span></a><a class="el" href="subprocess_8hpp.html" target="_self">subprocess.hpp</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_0_0_52_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;"> </span><a href="include_2process_2subprocess_8hpp_source.html"><span class="icondoc"></span></a><a class="el" href="include_2process_2subprocess_8hpp.html" target="_self">subprocess.hpp</a></td><td class="desc"></td></tr>
<tr id="row_0_0_0_0_53_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;"> </span><a href="system_8hpp_source.html"><span class="icondoc"></span></a><a class="el" href="system_8hpp.html" target="_self">system.hpp</a></td><td class="desc"></td></tr>
<tr id="row_0_0_0_0_54_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;"> </span><a href="time_8hpp_source.html"><span class="icondoc"></span></a><a class="el" href="time_8hpp.html" target="_self">time.hpp</a></td><td class="desc"></td></tr>
<tr id="row_0_0_0_0_55_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;"> </span><a href="timeout_8hpp_source.html"><span class="icondoc"></span></a><a class="el" href="timeout_8hpp.html" target="_self">timeout.hpp</a></td><td class="desc"></td></tr>
<tr id="row_0_0_0_0_56_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;"> </span><a href="timer_8hpp_source.html"><span class="icondoc"></span></a><a class="el" href="timer_8hpp.html" target="_self">timer.hpp</a></td><td class="desc"></td></tr>
<tr id="row_0_0_0_0_57_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;"> </span><a href="timeseries_8hpp_source.html"><span class="icondoc"></span></a><a class="el" href="timeseries_8hpp.html" target="_self">timeseries.hpp</a></td><td class="desc"></td></tr>
<tr id="row_0_0_1_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span id="arr_0_0_1_" class="arrow" onclick="toggleFolder('0_0_1_')">►</span><span id="img_0_0_1_" class="iconfclosed" onclick="toggleFolder('0_0_1_')"> </span><a class="el" href="dir_01cbbd8dcbf9de3825992568658f467e.html" target="_self">src</a></td><td class="desc"></td></tr>
-<tr id="row_0_0_1_0_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><a href="authenticator__manager_8hpp_source.html"><span class="icondoc"></span></a><a class="el" href="authenticator__manager_8hpp.html" target="_self">authenticator_manager.hpp</a></td><td class="desc"></td></tr>
-<tr id="row_0_0_1_1_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><a href="config_8hpp_source.html"><span class="icondoc"></span></a><a class="el" href="config_8hpp.html" target="_self">config.hpp</a></td><td class="desc"></td></tr>
-<tr id="row_0_0_1_2_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><a href="decoder_8hpp_source.html"><span class="icondoc"></span></a><a class="el" href="decoder_8hpp.html" target="_self">decoder.hpp</a></td><td class="desc"></td></tr>
-<tr id="row_0_0_1_3_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><a href="encoder_8hpp_source.html"><span class="icondoc"></span></a><a class="el" href="encoder_8hpp.html" target="_self">encoder.hpp</a></td><td class="desc"></td></tr>
-<tr id="row_0_0_1_4_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><a href="event__loop_8hpp_source.html"><span class="icondoc"></span></a><a class="el" href="event__loop_8hpp.html" target="_self">event_loop.hpp</a></td><td class="desc"></td></tr>
-<tr id="row_0_0_1_5_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><a href="event__queue_8hpp_source.html"><span class="icondoc"></span></a><a class="el" href="event__queue_8hpp.html" target="_self">event_queue.hpp</a></td><td class="desc"></td></tr>
-<tr id="row_0_0_1_6_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><a href="gate_8hpp_source.html"><span class="icondoc"></span></a><a class="el" href="gate_8hpp.html" target="_self">gate.hpp</a></td><td class="desc"></td></tr>
-<tr id="row_0_0_1_7_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><a href="http__proxy_8hpp_source.html"><span class="icondoc"></span></a><a class="el" href="http__proxy_8hpp.html" target="_self">http_proxy.hpp</a></td><td class="desc"></td></tr>
-<tr id="row_0_0_1_8_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><a href="libev_8hpp_source.html"><span class="icondoc"></span></a><a class="el" href="libev_8hpp.html" target="_self">libev.hpp</a></td><td class="desc"></td></tr>
-<tr id="row_0_0_1_9_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><a href="libevent_8hpp_source.html"><span class="icondoc"></span></a><a class="el" href="libevent_8hpp.html" target="_self">libevent.hpp</a></td><td class="desc"></td></tr>
-<tr id="row_0_0_1_10_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><a href="libevent__ssl__socket_8hpp_source.html"><span class="icondoc"></span></a><a class="el" href="libevent__ssl__socket_8hpp.html" target="_self">libevent_ssl_socket.hpp</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_1_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span id="arr_0_0_1_0_" class="arrow" onclick="toggleFolder('0_0_1_0_')">►</span><span id="img_0_0_1_0_" class="iconfclosed" onclick="toggleFolder('0_0_1_0_')"> </span><a class="el" href="dir_0ac73505685689cb4a842e520ca4cca6.html" target="_self">posix</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_1_0_0_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span id="arr_0_0_1_0_0_" class="arrow" onclick="toggleFolder('0_0_1_0_0_')">►</span><span id="img_0_0_1_0_0_" class="iconfclosed" onclick="toggleFolder('0_0_1_0_0_')"> </span><a class="el" href="dir_ecbc207ab261ae6376e9b7d1e9eba3c1.html" target="_self">libev</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_1_0_0_0_" class="even" style="display:none;"><td class="entry"><span style="width:96px;display:inline-block;"> </span><a href="libev_8hpp_source.html"><span class="icondoc"></span></a><a class="el" href="libev_8hpp.html" target="_self">libev.hpp</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_1_0_1_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span id="arr_0_0_1_0_1_" class="arrow" onclick="toggleFolder('0_0_1_0_1_')">►</span><span id="img_0_0_1_0_1_" class="iconfclosed" onclick="toggleFolder('0_0_1_0_1_')"> </span><a class="el" href="dir_b2935a02400d93f2f95b894ab5508ef6.html" target="_self">libevent</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_1_0_1_0_" class="even" style="display:none;"><td class="entry"><span style="width:96px;display:inline-block;"> </span><a href="libevent_8hpp_source.html"><span class="icondoc"></span></a><a class="el" href="libevent_8hpp.html" target="_self">libevent.hpp</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_1_0_1_1_" class="even" style="display:none;"><td class="entry"><span style="width:96px;display:inline-block;"> </span><a href="libevent__ssl__socket_8hpp_source.html"><span class="icondoc"></span></a><a class="el" href="libevent__ssl__socket_8hpp.html" target="_self">libevent_ssl_socket.hpp</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_1_0_2_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;"> </span><a href="src_2posix_2subprocess_8hpp_source.html"><span class="icondoc"></span></a><a class="el" href="src_2posix_2subprocess_8hpp.html" target="_self">subprocess.hpp</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_1_1_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span id="arr_0_0_1_1_" class="arrow" onclick="toggleFolder('0_0_1_1_')">►</span><span id="img_0_0_1_1_" class="iconfclosed" onclick="toggleFolder('0_0_1_1_')"> </span><a class="el" href="dir_4f303781ded361ff602a549327c53cc9.html" target="_self">windows</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_1_1_0_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;"> </span><a href="windows_2event__loop_8hpp_source.html"><span class="icondoc"></span></a><a class="el" href="windows_2event__loop_8hpp.html" target="_self">event_loop.hpp</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_1_1_1_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;"> </span><a href="libwinio_8hpp_source.html"><span class="icondoc"></span></a><a class="el" href="libwinio_8hpp.html" target="_self">libwinio.hpp</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_1_1_2_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;"> </span><a href="src_2windows_2subprocess_8hpp_source.html"><span class="icondoc"></span></a><a class="el" href="src_2windows_2subprocess_8hpp.html" target="_self">subprocess.hpp</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_1_2_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><a href="authenticator__manager_8hpp_source.html"><span class="icondoc"></span></a><a class="el" href="authenticator__manager_8hpp.html" target="_self">authenticator_manager.hpp</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_1_3_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><a href="config_8hpp_source.html"><span class="icondoc"></span></a><a class="el" href="config_8hpp.html" target="_self">config.hpp</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_1_4_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><a href="decoder_8hpp_source.html"><span class="icondoc"></span></a><a class="el" href="decoder_8hpp.html" target="_self">decoder.hpp</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_1_5_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><a href="encoder_8hpp_source.html"><span class="icondoc"></span></a><a class="el" href="encoder_8hpp.html" target="_self">encoder.hpp</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_1_6_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><a href="event__loop_8hpp_source.html"><span class="icondoc"></span></a><a class="el" href="event__loop_8hpp.html" target="_self">event_loop.hpp</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_1_7_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><a href="event__queue_8hpp_source.html"><span class="icondoc"></span></a><a class="el" href="event__queue_8hpp.html" target="_self">event_queue.hpp</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_1_8_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><a href="gate_8hpp_source.html"><span class="icondoc"></span></a><a class="el" href="gate_8hpp.html" target="_self">gate.hpp</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_1_9_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><a href="http__proxy_8hpp_source.html"><span class="icondoc"></span></a><a class="el" href="http__proxy_8hpp.html" target="_self">http_proxy.hpp</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_1_10_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><a href="io__internal_8hpp_source.html"><span class="icondoc"></span></a><a class="el" href="io__internal_8hpp.html" target="_self">io_internal.hpp</a></td><td class="desc"></td></tr>
<tr id="row_0_0_1_11_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><a href="memory__profiler_8hpp_source.html"><span class="icondoc"></span></a><a class="el" href="memory__profiler_8hpp.html" target="_self">memory_profiler.hpp</a></td><td class="desc"></td></tr>
<tr id="row_0_0_1_12_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><a href="openssl_8hpp_source.html"><span class="icondoc"></span></a><a class="el" href="openssl_8hpp.html" target="_self">openssl.hpp</a></td><td class="desc"></td></tr>
<tr id="row_0_0_1_13_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><a href="poll__socket_8hpp_source.html"><span class="icondoc"></span></a><a class="el" href="poll__socket_8hpp.html" target="_self">poll_socket.hpp</a></td><td class="desc"></td></tr>
@@ -141,8 +150,6 @@
<tr id="row_0_0_1_15_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><a href="run__queue_8hpp_source.html"><span class="icondoc"></span></a><a class="el" href="run__queue_8hpp.html" target="_self">run_queue.hpp</a></td><td class="desc"></td></tr>
<tr id="row_0_0_1_16_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><a href="semaphore_8hpp_source.html"><span class="icondoc"></span></a><a class="el" href="semaphore_8hpp.html" target="_self">semaphore.hpp</a></td><td class="desc"></td></tr>
<tr id="row_0_0_1_17_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><a href="socket__manager_8hpp_source.html"><span class="icondoc"></span></a><a class="el" href="socket__manager_8hpp.html" target="_self">socket_manager.hpp</a></td><td class="desc"></td></tr>
-<tr id="row_0_0_1_18_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><a href="subprocess__posix_8hpp_source.html"><span class="icondoc"></span></a><a class="el" href="subprocess__posix_8hpp.html" target="_self">subprocess_posix.hpp</a></td><td class="desc"></td></tr>
-<tr id="row_0_0_1_19_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><a href="subprocess__windows_8hpp_source.html"><span class="icondoc"></span></a><a class="el" href="subprocess__windows_8hpp.html" target="_self">subprocess_windows.hpp</a></td><td class="desc"></td></tr>
<tr id="row_0_1_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span id="arr_0_1_" class="arrow" onclick="toggleFolder('0_1_')">►</span><span id="img_0_1_" class="iconfclosed" onclick="toggleFolder('0_1_')"> </span><a class="el" href="dir_aa547de1d719d14adccfca1dfb1735b3.html" target="_self">stout</a></td><td class="desc"></td></tr>
<tr id="row_0_1_0_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span id="arr_0_1_0_" class="arrow" onclick="toggleFolder('0_1_0_')">►</span><span id="img_0_1_0_" class="iconfclosed" onclick="toggleFolder('0_1_0_')"> </span><a class="el" href="dir_1a1b923d951dd999d43396870333fc33.html" target="_self">include</a></td><td class="desc"></td></tr>
<tr id="row_0_1_0_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span id="arr_0_1_0_0_" class="arrow" onclick="toggleFolder('0_1_0_0_')">►</span><span id="img_0_1_0_0_" class="iconfclosed" onclick="toggleFolder('0_1_0_0_')"> </span><a class="el" href="dir_dbd52553d038069c1ed93e3477ea333d.html" target="_self">stout</a></td><td class="desc"></td></tr>
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/functions_a.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/functions_a.html b/content/api/latest/c++/functions_a.html
index 3776996..5b48703 100644
--- a/content/api/latest/c++/functions_a.html
+++ b/content/api/latest/c++/functions_a.html
@@ -593,9 +593,12 @@
</li>
<li>as()
: <a class="el" href="structJSON_1_1Number.html#a56cb07aeff197c76b03798cd5f25c347">JSON::Number</a>
-, <a class="el" href="structJSON_1_1Value.html#a32ddf233c0ec159c4d72252529219cf6">JSON::Value</a>
+, <a class="el" href="structJSON_1_1Value.html#a2722b8532ba6307e398b4ae28a348c04">JSON::Value</a>
, <a class="el" href="structprocess_1_1Event.html#a5e2a796c20db188a91540378ac6c6ab5">process::Event</a>
</li>
+<li>assign_iocp()
+: <a class="el" href="classos_1_1WindowsFD.html#a1a9c96c20213e1b94ba8dcc1bb059163">os::WindowsFD</a>
+</li>
<li>associate()
: <a class="el" href="classprocess_1_1Promise.html#aa70c825f2b107eac5f393db03d2dd6ec">process::Promise< T ></a>
</li>
@@ -605,7 +608,7 @@
<li>at()
: <a class="el" href="classBoundedHashMap.html#a70ac620485764a32411dfd63cbed12c5">BoundedHashMap< Key, Value ></a>
, <a class="el" href="structJSON_1_1Object.html#a4a722484eac14de1842f265785f05e66">JSON::Object</a>
-, <a class="el" href="classLinkedHashMap.html#ae87141dd103665dca487b62d385d5c44">LinkedHashMap< Key, Value ></a>
+, <a class="el" href="classLinkedHashMap.html#a4b6c8f1254c3ccd2459d94215156c1bd">LinkedHashMap< Key, Value ></a>
</li>
<li>attach()
: <a class="el" href="classmesos_1_1internal_1_1Files.html#afba604e3195becd2eedd37675c0bdee2">mesos::internal::Files</a>
@@ -619,7 +622,7 @@
: <a class="el" href="classmesos_1_1internal_1_1slave_1_1Slave.html#ae960552ceef724d0391a3e35d2d00a71">mesos::internal::slave::Slave</a>
</li>
<li>Attributes()
-: <a class="el" href="classmesos_1_1Attributes.html#a9682a8eaa0dbeaa79db17e995216ed5c">mesos::Attributes</a>
+: <a class="el" href="classmesos_1_1Attributes.html#a289537baeca854ebcf9c79ec78c89376">mesos::Attributes</a>
</li>
<li>attributes
: <a class="el" href="classmesos_1_1internal_1_1slave_1_1Flags.html#a28cd0cfc2a86e965450c61ec91857369">mesos::internal::slave::Flags</a>
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/functions_c.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/functions_c.html b/content/api/latest/c++/functions_c.html
index 881d413..8823e8e 100644
--- a/content/api/latest/c++/functions_c.html
+++ b/content/api/latest/c++/functions_c.html
@@ -461,12 +461,12 @@
: <a class="el" href="classmesos_1_1ResourceConversion.html#afa8d5fe5c9c3f6f1588d7df710262080">mesos::ResourceConversion</a>
, <a class="el" href="classmesos_1_1v1_1_1ResourceConversion.html#a143d22da9ef8e68799b35478bb4e22fe">mesos::v1::ResourceConversion</a>
</li>
-<li>consumer
-: <a class="el" href="classprocess_1_1EventQueue.html#a73f44b10f6d09ead6bdf3ab11cba4d06">process::EventQueue</a>
-</li>
<li>Consumer
: <a class="el" href="classprocess_1_1EventQueue.html#a11390aaa07bced511a5b7fe4c94e97fd">process::EventQueue</a>
</li>
+<li>consumer
+: <a class="el" href="classprocess_1_1EventQueue.html#a73f44b10f6d09ead6bdf3ab11cba4d06">process::EventQueue</a>
+</li>
<li>container
: <a class="el" href="structmesos_1_1internal_1_1docker_1_1Flags.html#aecdc79d01b0158331c2a88aa52c0ce94">mesos::internal::docker::Flags</a>
</li>
@@ -642,7 +642,7 @@
, <a class="el" href="classHDFS.html#a8ca4f418d26a66ef497025d7098b743d">HDFS</a>
, <a class="el" href="classJvm.html#a8ac4728d48c5f88741f3b19ff53411a9">Jvm</a>
, <a class="el" href="classmesos_1_1allocator_1_1Allocator.html#ae5b969c74d1dc42b98b35a81d571b3fa">mesos::allocator::Allocator</a>
-, <a class="el" href="classmesos_1_1Authorizer.html#aa8e9df242b24665f46dfaf3f5c1b06d8">mesos::Authorizer</a>
+, <a class="el" href="classmesos_1_1Authorizer.html#a547bf45e35208fa8c6aad9193e54984c">mesos::Authorizer</a>
, <a class="el" href="classmesos_1_1DiskProfileAdaptor.html#a7a417ba4b641b9870944549a1309b1b5">mesos::DiskProfileAdaptor</a>
, <a class="el" href="classmesos_1_1http_1_1authentication_1_1BasicAuthenticatorFactory.html#adcff8207f6e5884cb0e73173c7eb5eeb">mesos::http::authentication::BasicAuthenticatorFactory</a>
, <a class="el" href="classmesos_1_1internal_1_1capabilities_1_1Capabilities.html#a19cc225f466432bc2abb6de9381e8c98">mesos::internal::capabilities::Capabilities</a>
@@ -650,7 +650,7 @@
, <a class="el" href="classmesos_1_1internal_1_1checks_1_1HealthChecker.html#a105485d24368b1f0533d6b6f27d6b7a1">mesos::internal::checks::HealthChecker</a>
, <a class="el" href="classmesos_1_1internal_1_1cram__md5_1_1CRAMMD5Authenticatee.html#ae83c66c6e6b5c4c8abeffc908a0a1bf2">mesos::internal::cram_md5::CRAMMD5Authenticatee</a>
, <a class="el" href="classmesos_1_1internal_1_1cram__md5_1_1CRAMMD5Authenticator.html#aad4d755fbf2d61977eb84ba88c7cdca5">mesos::internal::cram_md5::CRAMMD5Authenticator</a>
-, <a class="el" href="classmesos_1_1internal_1_1LocalAuthorizer.html#ae608992132b9d58dc83351a6e4193541">mesos::internal::LocalAuthorizer</a>
+, <a class="el" href="classmesos_1_1internal_1_1LocalAuthorizer.html#a5f7c557cf2ce041622ff3354395bf9ef">mesos::internal::LocalAuthorizer</a>
, <a class="el" href="classmesos_1_1internal_1_1LocalResourceProvider.html#a87dd361e253a03cfa2874411b8a366cd">mesos::internal::LocalResourceProvider</a>
, <a class="el" href="classmesos_1_1internal_1_1LocalResourceProviderDaemon.html#af5132abd40c67bd08e24ac970b71bdfe">mesos::internal::LocalResourceProviderDaemon</a>
, <a class="el" href="classmesos_1_1internal_1_1master_1_1allocator_1_1MesosAllocator.html#acffe93fb6ad2962eb231404a13295b83">mesos::internal::master::allocator::MesosAllocator< AllocatorProcess ></a>
@@ -676,7 +676,7 @@
, <a class="el" href="classmesos_1_1internal_1_1slave_1_1docker_1_1MetadataManager.html#accd46bed2e7d2ed7db8fe8ad9876590c">mesos::internal::slave::docker::MetadataManager</a>
, <a class="el" href="classmesos_1_1internal_1_1slave_1_1docker_1_1Puller.html#a28550d1962a9fa4cd700634a559a399f">mesos::internal::slave::docker::Puller</a>
, <a class="el" href="classmesos_1_1internal_1_1slave_1_1docker_1_1RegistryPuller.html#ad40636bf20c9d28d4ee71a80a4dafba7">mesos::internal::slave::docker::RegistryPuller</a>
-, <a class="el" href="classmesos_1_1internal_1_1slave_1_1docker_1_1Store.html#a41908b70c12530b115427e4645dd9008">mesos::internal::slave::docker::Store</a>
+, <a class="el" href="classmesos_1_1internal_1_1slave_1_1docker_1_1Store.html#a1ae5b5db1c4177ac93e1211f6a0100f5">mesos::internal::slave::docker::Store</a>
, <a class="el" href="classmesos_1_1internal_1_1slave_1_1docker_1_1volume_1_1DriverClient.html#abe2d517c6f60c16aec1055c3c437d954">mesos::internal::slave::docker::volume::DriverClient</a>
, <a class="el" href="classmesos_1_1internal_1_1slave_1_1DockerContainerizer.html#ae4acf3fad0a189161329d3fefcd5b1f0">mesos::internal::slave::DockerContainerizer</a>
, <a class="el" href="classmesos_1_1internal_1_1slave_1_1DockerRuntimeIsolatorProcess.html#a9425bb59244222c0084f80c004d61d3f">mesos::internal::slave::DockerRuntimeIsolatorProcess</a>
@@ -691,7 +691,7 @@
, <a class="el" href="classmesos_1_1internal_1_1slave_1_1LinuxFilesystemIsolatorProcess.html#ac4b659a1f0c7435908013ccd93b6501a">mesos::internal::slave::LinuxFilesystemIsolatorProcess</a>
, <a class="el" href="classmesos_1_1internal_1_1slave_1_1LinuxLauncher.html#a188c7d32972b2998023f77444d125247">mesos::internal::slave::LinuxLauncher</a>
, <a class="el" href="classmesos_1_1internal_1_1slave_1_1MemorySubsystemProcess.html#af4081dd5f2a08a152cedecea66ad7962">mesos::internal::slave::MemorySubsystemProcess</a>
-, <a class="el" href="classmesos_1_1internal_1_1slave_1_1MesosContainerizer.html#ae12c5816134512ade220ff1541bbaf95">mesos::internal::slave::MesosContainerizer</a>
+, <a class="el" href="classmesos_1_1internal_1_1slave_1_1MesosContainerizer.html#a717b40b6012ceb68d4aab7a02e9f3e4b">mesos::internal::slave::MesosContainerizer</a>
, <a class="el" href="classmesos_1_1internal_1_1slave_1_1NamespacesIPCIsolatorProcess.html#ab4b40c23df011162220d79c50396ea28">mesos::internal::slave::NamespacesIPCIsolatorProcess</a>
, <a class="el" href="classmesos_1_1internal_1_1slave_1_1NamespacesPidIsolatorProcess.html#a587bf1fca1c9c74550162b00e8153ca3">mesos::internal::slave::NamespacesPidIsolatorProcess</a>
, <a class="el" href="classmesos_1_1internal_1_1slave_1_1NetClsSubsystemProcess.html#a3760fe67338489419f386de9d5a0d6d8">mesos::internal::slave::NetClsSubsystemProcess</a>
@@ -730,7 +730,7 @@
, <a class="el" href="structmesos_1_1internal_1_1tests_1_1common_1_1DefaultFrameworkInfo.html#a842b7475bc4e06999d0570793eb81cb4">mesos::internal::tests::common::DefaultFrameworkInfo< TFrameworkInfo, TCredential ></a>
, <a class="el" href="classmesos_1_1internal_1_1tests_1_1DockerArchive.html#a826aa2afe5f996a0cc370f671a0342b8">mesos::internal::tests::DockerArchive</a>
, <a class="el" href="classmesos_1_1internal_1_1tests_1_1LinuxRootfs.html#a989f2d98ba0035548be3fa43a0ae23c4">mesos::internal::tests::LinuxRootfs</a>
-, <a class="el" href="classmesos_1_1internal_1_1tests_1_1Module.html#a81386a14653ded5161d87b4e54c3e0a3">mesos::internal::tests::Module< T, N ></a>
+, <a class="el" href="classmesos_1_1internal_1_1tests_1_1Module.html#a6feec23c6307765d6d74118f26258e75">mesos::internal::tests::Module< T, N ></a>
, <a class="el" href="classmesos_1_1master_1_1contender_1_1MasterContender.html#a2f084b8ac23c1b3afdc8704bcc4070cc">mesos::master::contender::MasterContender</a>
, <a class="el" href="classmesos_1_1master_1_1detector_1_1MasterDetector.html#a3ddc796d745072faf0e72b17f3ec7781">mesos::master::detector::MasterDetector</a>
, <a class="el" href="structmesos_1_1modules_1_1Module_3_01Anonymous_01_4.html#a292084f269e3e3013907c91372732e07">mesos::modules::Module< Anonymous ></a>
@@ -753,7 +753,7 @@
, <a class="el" href="structmesos_1_1modules_1_1Module_3_01TestModule_01_4.html#a8d7381ef38d1d809bdef51d1bc475425">mesos::modules::Module< TestModule ></a>
, <a class="el" href="classmesos_1_1modules_1_1ModuleManager.html#a0ab072c60a3c002765c843bdb6eafed4">mesos::modules::ModuleManager</a>
, <a class="el" href="classmesos_1_1ObjectApprovers.html#a0b6051b6fc3abc97d9850c1ad5c66acb">mesos::ObjectApprovers</a>
-, <a class="el" href="classmesos_1_1resource__provider_1_1Registrar.html#a50acc0d159c741cffbaed0a13550877d">mesos::resource_provider::Registrar</a>
+, <a class="el" href="classmesos_1_1resource__provider_1_1Registrar.html#aa352cf7e0d93f192ab82e417821384f9">mesos::resource_provider::Registrar</a>
, <a class="el" href="classmesos_1_1SecretResolver.html#ab10b3be9bca16db587e8c065da0c71cb">mesos::SecretResolver</a>
, <a class="el" href="classmesos_1_1slave_1_1ContainerLogger.html#a730e7d402fa06c15886eff94cf0b40d5">mesos::slave::ContainerLogger</a>
, <a class="el" href="classmesos_1_1slave_1_1QoSController.html#ab6e9f5cbef4c49786372467678baa27c">mesos::slave::QoSController</a>
@@ -762,21 +762,22 @@
, <a class="el" href="classmesos_1_1uri_1_1CurlFetcherPlugin.html#aaf036192088af176acc7019f51afb666">mesos::uri::CurlFetcherPlugin</a>
, <a class="el" href="classmesos_1_1uri_1_1DockerFetcherPlugin.html#af758d8583ab14f660cd326fd1256e627">mesos::uri::DockerFetcherPlugin</a>
, <a class="el" href="classmesos_1_1uri_1_1HadoopFetcherPlugin.html#a32e0d1ef34fd100be130bbc2c686e24b">mesos::uri::HadoopFetcherPlugin</a>
-, <a class="el" href="classnet_1_1IP.html#a627b2e1c1f63a2bc6315a9dfecee141d">net::IP</a>
-, <a class="el" href="classnet_1_1IP_1_1Network.html#ab0bb256813c57bddbf30ab5b10e6d67e">net::IP::Network</a>
+, <a class="el" href="classnet_1_1IP.html#ada206eb1ab14c032f071daf9b8c1b96c">net::IP</a>
+, <a class="el" href="classnet_1_1IP_1_1Network.html#aae567f80d6cee424de7a5ddaf4fcc912">net::IP::Network</a>
, <a class="el" href="classos_1_1Stack.html#a248fb0d3d52e903c887890d0155f70b7">os::Stack</a>
-, <a class="el" href="classprocess_1_1http_1_1authentication_1_1JWT.html#ab35e9499e062048d82377df855769bfe">process::http::authentication::JWT</a>
+, <a class="el" href="classprocess_1_1http_1_1authentication_1_1JWT.html#ad97d978e383dffd8f6c65c5cfd354837">process::http::authentication::JWT</a>
, <a class="el" href="classprocess_1_1http_1_1header_1_1WWWAuthenticate.html#ab7ef253f15644097d671e07d602bff72">process::http::header::WWWAuthenticate</a>
-, <a class="el" href="classprocess_1_1http_1_1Server.html#ad5bd52941653a8aeef6b416df58abf38">process::http::Server</a>
+, <a class="el" href="classprocess_1_1http_1_1Server.html#aad73443f021cf049eb9e0a0b7f845346">process::http::Server</a>
, <a class="el" href="classprocess_1_1internal_1_1Loop.html#a4067cc276cd8152074a7094acf9ca451">process::internal::Loop< Iterate, Body, T, R ></a>
, <a class="el" href="classprocess_1_1metrics_1_1internal_1_1MetricsProcess.html#a1b0e6141bb79047bf1247e27c2befcfd">process::metrics::internal::MetricsProcess</a>
, <a class="el" href="classprocess_1_1network_1_1Address.html#a65e3511ccaa4fe9e6794675cab161c4c">process::network::Address</a>
, <a class="el" href="classprocess_1_1network_1_1internal_1_1LibeventSSLSocketImpl.html#a92fdb78c9aa14030f802d1160f8dfe5c">process::network::internal::LibeventSSLSocketImpl</a>
, <a class="el" href="classprocess_1_1network_1_1internal_1_1PollSocketImpl.html#af893115c4d9b82346bbf2a204de9c516">process::network::internal::PollSocketImpl</a>
-, <a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html#ad27271cc7bc094c080af34bc56519b8c">process::network::internal::Socket< AddressType ></a>
-, <a class="el" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#a5a00f792b5055241fea9f1fc81b2c4c6">process::network::internal::SocketImpl</a>
+, <a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html#a0fbcec9bb3b4ecfe298805e179c70f18">process::network::internal::Socket< AddressType ></a>
+, <a class="el" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#a2f90a53c7035eade21431123d9c0037a">process::network::internal::SocketImpl</a>
, <a class="el" href="classprocess_1_1network_1_1unix_1_1Address.html#af91b88086c6c1385e61b42b20510bdd4">process::network::unix::Address</a>
, <a class="el" href="classprocess_1_1Time.html#a7fa791510b349cfadefe26460730cc2a">process::Time</a>
+, <a class="el" href="classprocess_1_1windows_1_1EventLoop.html#a3bd3da5d721cf2c4db9c5551bdccc3a4">process::windows::EventLoop</a>
, <a class="el" href="classZooKeeper.html#a60244c525246bd57ff4c971b9ab7f18f">ZooKeeper</a>
</li>
<li>created()
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/functions_d.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/functions_d.html b/content/api/latest/c++/functions_d.html
index e01c3ab..a8ed40f 100644
--- a/content/api/latest/c++/functions_d.html
+++ b/content/api/latest/c++/functions_d.html
@@ -395,7 +395,7 @@
: <a class="el" href="classmesos_1_1internal_1_1slave_1_1DiskUsageCollector.html#a3a20f26f0b31c9efd4e52c7679458531">mesos::internal::slave::DiskUsageCollector</a>
</li>
<li>DispatchEvent()
-: <a class="el" href="structprocess_1_1DispatchEvent.html#a416fd627adb3f073cd388afa247df399">process::DispatchEvent</a>
+: <a class="el" href="structprocess_1_1DispatchEvent.html#a6545170c308f78466893b03bfbb57fe4">process::DispatchEvent</a>
</li>
<li>dns
: <a class="el" href="classDocker_1_1Container.html#a434939f30a9e9119fd06c54b81e117d3">Docker::Container</a>
@@ -495,7 +495,7 @@
: <a class="el" href="classJvm.html#a0d3465e97ae553d2805bfa5add4901fd">Jvm</a>
</li>
<li>DRFSorter()
-: <a class="el" href="classmesos_1_1internal_1_1master_1_1allocator_1_1DRFSorter.html#a3b4b4c33a5f1855a871ba18d6e853dc5">mesos::internal::master::allocator::DRFSorter</a>
+: <a class="el" href="classmesos_1_1internal_1_1master_1_1allocator_1_1DRFSorter.html#a26700cc833d70d831dc0510063aeb77c">mesos::internal::master::allocator::DRFSorter</a>
</li>
<li>driver
: <a class="el" href="structmesos_1_1python_1_1MesosExecutorDriverImpl.html#aa4892e3154e1acfb0f7906d698feafa5">mesos::python::MesosExecutorDriverImpl</a>
@@ -516,6 +516,9 @@
<li>du()
: <a class="el" href="classHDFS.html#a4496b32281052f9bcb1135a96ac281a4">HDFS</a>
</li>
+<li>dup
+: <a class="el" href="classos_1_1WindowsFD.html#ae8d4fd38b52ea9f38605f46195fd040b">os::WindowsFD</a>
+</li>
<li>DUP2()
: <a class="el" href="classprocess_1_1Subprocess_1_1ChildHook.html#ab5459840c850453f2cacfa5267b9e395">process::Subprocess::ChildHook</a>
</li>
@@ -523,13 +526,13 @@
: <a class="el" href="classprocess_1_1Subprocess_1_1IO.html#adb9433454d727de27b2440f729d19990af648d44b624da021da40a80190291380">process::Subprocess::IO</a>
</li>
<li>Duration()
-: <a class="el" href="classDuration.html#a7536cef737dbe58a524191be69793d24">Duration</a>
+: <a class="el" href="classDuration.html#a418194042b96bf6ca3135d01106226ad">Duration</a>
</li>
<li>duration()
: <a class="el" href="classprocess_1_1Time.html#a526a30c9b274aed438ee67e7bf732739">process::Time</a>
</li>
<li>DynamicLibrary()
-: <a class="el" href="classDynamicLibrary.html#a5068283b12c51f6f3589f18ba7075494">DynamicLibrary</a>
+: <a class="el" href="classDynamicLibrary.html#a59fb7945e893625717cc37c8bc923236">DynamicLibrary</a>
</li>
</ul>
</div><!-- contents -->
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/functions_e.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/functions_e.html b/content/api/latest/c++/functions_e.html
index c6c0e36..d92e90c 100644
--- a/content/api/latest/c++/functions_e.html
+++ b/content/api/latest/c++/functions_e.html
@@ -463,7 +463,7 @@
: <a class="el" href="classmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess.html#a9487bd3b10f4c8c3837551c961497bf6">mesos::internal::master::allocator::internal::HierarchicalAllocatorProcess</a>
</li>
<li>expire()
-: <a class="el" href="classmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess.html#a2928f839fd010669924789c6cccd0829">mesos::internal::master::allocator::internal::HierarchicalAllocatorProcess</a>
+: <a class="el" href="classmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess.html#afcb553f13a6edb382641c1e07d67feb1">mesos::internal::master::allocator::internal::HierarchicalAllocatorProcess</a>
</li>
<li>expired()
: <a class="el" href="classprocess_1_1Timeout.html#a7bdb45221b14748ab1339479e480c4b7">process::Timeout</a>
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/functions_func_a.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/functions_func_a.html b/content/api/latest/c++/functions_func_a.html
index 04e7af0..a49038e 100644
--- a/content/api/latest/c++/functions_func_a.html
+++ b/content/api/latest/c++/functions_func_a.html
@@ -391,7 +391,7 @@
, <a class="el" href="classmesos_1_1ResourceConversion.html#adb691cdd12b7af7db52284b0a1737533">mesos::ResourceConversion</a>
, <a class="el" href="classmesos_1_1Resources.html#aa0307172aed9f2a8bf5ab9852808074b">mesos::Resources</a>
, <a class="el" href="classmesos_1_1v1_1_1ResourceConversion.html#a9b5fd5798c8e81bbef5f686b09432c5d">mesos::v1::ResourceConversion</a>
-, <a class="el" href="classmesos_1_1v1_1_1Resources.html#a0f71adb1a8e92b4ab774355b10814717">mesos::v1::Resources</a>
+, <a class="el" href="classmesos_1_1v1_1_1Resources.html#a0eefe6f6c51e2af7fd680c3ed964dd6c">mesos::v1::Resources</a>
, <a class="el" href="classprocess_1_1firewall_1_1DisabledEndpointsFirewallRule.html#a7af83219b1a8f32238c24dcb5cb5e30a">process::firewall::DisabledEndpointsFirewallRule</a>
, <a class="el" href="classprocess_1_1firewall_1_1FirewallRule.html#aef80202f4571b5d401daf7e52dacbf32">process::firewall::FirewallRule</a>
</li>
@@ -408,7 +408,7 @@
, <a class="el" href="classmesos_1_1ObjectApprovers.html#aebc7fe7ec3179b1a4dac370c50762b0a">mesos::ObjectApprovers</a>
</li>
<li>Argv()
-: <a class="el" href="classos_1_1raw_1_1Argv.html#a560ad2a3dd7d4771879a0e262baa200b">os::raw::Argv</a>
+: <a class="el" href="classos_1_1raw_1_1Argv.html#ae92f950a99dae0d0758050d5e079b450">os::raw::Argv</a>
</li>
<li>Array()
: <a class="el" href="structJSON_1_1Array.html#a2d3ae68269b6ac745170a0ec540108b0">JSON::Array</a>
@@ -417,13 +417,16 @@
: <a class="el" href="classJvm_1_1Class.html#a9e9fd6064ad6d0b34c5bd4739c299117">Jvm::Class</a>
</li>
<li>ArrayWriter()
-: <a class="el" href="classJSON_1_1ArrayWriter.html#ae4e7e2e5a08ce25fbe5ca6e68df656f0">JSON::ArrayWriter</a>
+: <a class="el" href="classJSON_1_1ArrayWriter.html#ae2fc79ce389e88e21e65e7c421a09f26">JSON::ArrayWriter</a>
</li>
<li>as()
: <a class="el" href="structJSON_1_1Number.html#a56cb07aeff197c76b03798cd5f25c347">JSON::Number</a>
-, <a class="el" href="structJSON_1_1Value.html#a2722b8532ba6307e398b4ae28a348c04">JSON::Value</a>
+, <a class="el" href="structJSON_1_1Value.html#a32ddf233c0ec159c4d72252529219cf6">JSON::Value</a>
, <a class="el" href="structprocess_1_1Event.html#a5e2a796c20db188a91540378ac6c6ab5">process::Event</a>
</li>
+<li>assign_iocp()
+: <a class="el" href="classos_1_1WindowsFD.html#a1a9c96c20213e1b94ba8dcc1bb059163">os::WindowsFD</a>
+</li>
<li>associate()
: <a class="el" href="classprocess_1_1Promise.html#aa70c825f2b107eac5f393db03d2dd6ec">process::Promise< T ></a>
</li>
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/functions_func_c.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/functions_func_c.html b/content/api/latest/c++/functions_func_c.html
index 199381a..7bf318c 100644
--- a/content/api/latest/c++/functions_func_c.html
+++ b/content/api/latest/c++/functions_func_c.html
@@ -480,7 +480,7 @@
, <a class="el" href="classmesos_1_1internal_1_1slave_1_1docker_1_1MetadataManager.html#accd46bed2e7d2ed7db8fe8ad9876590c">mesos::internal::slave::docker::MetadataManager</a>
, <a class="el" href="classmesos_1_1internal_1_1slave_1_1docker_1_1Puller.html#a28550d1962a9fa4cd700634a559a399f">mesos::internal::slave::docker::Puller</a>
, <a class="el" href="classmesos_1_1internal_1_1slave_1_1docker_1_1RegistryPuller.html#ad40636bf20c9d28d4ee71a80a4dafba7">mesos::internal::slave::docker::RegistryPuller</a>
-, <a class="el" href="classmesos_1_1internal_1_1slave_1_1docker_1_1Store.html#a41908b70c12530b115427e4645dd9008">mesos::internal::slave::docker::Store</a>
+, <a class="el" href="classmesos_1_1internal_1_1slave_1_1docker_1_1Store.html#a1ae5b5db1c4177ac93e1211f6a0100f5">mesos::internal::slave::docker::Store</a>
, <a class="el" href="classmesos_1_1internal_1_1slave_1_1docker_1_1volume_1_1DriverClient.html#abe2d517c6f60c16aec1055c3c437d954">mesos::internal::slave::docker::volume::DriverClient</a>
, <a class="el" href="classmesos_1_1internal_1_1slave_1_1DockerContainerizer.html#ae4acf3fad0a189161329d3fefcd5b1f0">mesos::internal::slave::DockerContainerizer</a>
, <a class="el" href="classmesos_1_1internal_1_1slave_1_1DockerRuntimeIsolatorProcess.html#a9425bb59244222c0084f80c004d61d3f">mesos::internal::slave::DockerRuntimeIsolatorProcess</a>
@@ -495,7 +495,7 @@
, <a class="el" href="classmesos_1_1internal_1_1slave_1_1LinuxFilesystemIsolatorProcess.html#ac4b659a1f0c7435908013ccd93b6501a">mesos::internal::slave::LinuxFilesystemIsolatorProcess</a>
, <a class="el" href="classmesos_1_1internal_1_1slave_1_1LinuxLauncher.html#a188c7d32972b2998023f77444d125247">mesos::internal::slave::LinuxLauncher</a>
, <a class="el" href="classmesos_1_1internal_1_1slave_1_1MemorySubsystemProcess.html#af4081dd5f2a08a152cedecea66ad7962">mesos::internal::slave::MemorySubsystemProcess</a>
-, <a class="el" href="classmesos_1_1internal_1_1slave_1_1MesosContainerizer.html#ae12c5816134512ade220ff1541bbaf95">mesos::internal::slave::MesosContainerizer</a>
+, <a class="el" href="classmesos_1_1internal_1_1slave_1_1MesosContainerizer.html#a717b40b6012ceb68d4aab7a02e9f3e4b">mesos::internal::slave::MesosContainerizer</a>
, <a class="el" href="classmesos_1_1internal_1_1slave_1_1NamespacesIPCIsolatorProcess.html#ab4b40c23df011162220d79c50396ea28">mesos::internal::slave::NamespacesIPCIsolatorProcess</a>
, <a class="el" href="classmesos_1_1internal_1_1slave_1_1NamespacesPidIsolatorProcess.html#a587bf1fca1c9c74550162b00e8153ca3">mesos::internal::slave::NamespacesPidIsolatorProcess</a>
, <a class="el" href="classmesos_1_1internal_1_1slave_1_1NetClsSubsystemProcess.html#a3760fe67338489419f386de9d5a0d6d8">mesos::internal::slave::NetClsSubsystemProcess</a>
@@ -534,12 +534,12 @@
, <a class="el" href="structmesos_1_1internal_1_1tests_1_1common_1_1DefaultFrameworkInfo.html#a842b7475bc4e06999d0570793eb81cb4">mesos::internal::tests::common::DefaultFrameworkInfo< TFrameworkInfo, TCredential ></a>
, <a class="el" href="classmesos_1_1internal_1_1tests_1_1DockerArchive.html#a826aa2afe5f996a0cc370f671a0342b8">mesos::internal::tests::DockerArchive</a>
, <a class="el" href="classmesos_1_1internal_1_1tests_1_1LinuxRootfs.html#a989f2d98ba0035548be3fa43a0ae23c4">mesos::internal::tests::LinuxRootfs</a>
-, <a class="el" href="classmesos_1_1internal_1_1tests_1_1Module.html#a6feec23c6307765d6d74118f26258e75">mesos::internal::tests::Module< T, N ></a>
+, <a class="el" href="classmesos_1_1internal_1_1tests_1_1Module.html#abae032ed084599d940352ce9b36afa74">mesos::internal::tests::Module< T, N ></a>
, <a class="el" href="classmesos_1_1master_1_1contender_1_1MasterContender.html#a2f084b8ac23c1b3afdc8704bcc4070cc">mesos::master::contender::MasterContender</a>
, <a class="el" href="classmesos_1_1master_1_1detector_1_1MasterDetector.html#a3ddc796d745072faf0e72b17f3ec7781">mesos::master::detector::MasterDetector</a>
, <a class="el" href="classmesos_1_1modules_1_1ModuleManager.html#a0ab072c60a3c002765c843bdb6eafed4">mesos::modules::ModuleManager</a>
, <a class="el" href="classmesos_1_1ObjectApprovers.html#a0b6051b6fc3abc97d9850c1ad5c66acb">mesos::ObjectApprovers</a>
-, <a class="el" href="classmesos_1_1resource__provider_1_1Registrar.html#a50acc0d159c741cffbaed0a13550877d">mesos::resource_provider::Registrar</a>
+, <a class="el" href="classmesos_1_1resource__provider_1_1Registrar.html#aa352cf7e0d93f192ab82e417821384f9">mesos::resource_provider::Registrar</a>
, <a class="el" href="classmesos_1_1SecretResolver.html#ab10b3be9bca16db587e8c065da0c71cb">mesos::SecretResolver</a>
, <a class="el" href="classmesos_1_1slave_1_1ContainerLogger.html#a730e7d402fa06c15886eff94cf0b40d5">mesos::slave::ContainerLogger</a>
, <a class="el" href="classmesos_1_1slave_1_1QoSController.html#ab6e9f5cbef4c49786372467678baa27c">mesos::slave::QoSController</a>
@@ -549,9 +549,9 @@
, <a class="el" href="classmesos_1_1uri_1_1DockerFetcherPlugin.html#af758d8583ab14f660cd326fd1256e627">mesos::uri::DockerFetcherPlugin</a>
, <a class="el" href="classmesos_1_1uri_1_1HadoopFetcherPlugin.html#a32e0d1ef34fd100be130bbc2c686e24b">mesos::uri::HadoopFetcherPlugin</a>
, <a class="el" href="classnet_1_1IP.html#a627b2e1c1f63a2bc6315a9dfecee141d">net::IP</a>
-, <a class="el" href="classnet_1_1IP_1_1Network.html#aae567f80d6cee424de7a5ddaf4fcc912">net::IP::Network</a>
+, <a class="el" href="classnet_1_1IP_1_1Network.html#ab0bb256813c57bddbf30ab5b10e6d67e">net::IP::Network</a>
, <a class="el" href="classos_1_1Stack.html#a248fb0d3d52e903c887890d0155f70b7">os::Stack</a>
-, <a class="el" href="classprocess_1_1http_1_1authentication_1_1JWT.html#ad97d978e383dffd8f6c65c5cfd354837">process::http::authentication::JWT</a>
+, <a class="el" href="classprocess_1_1http_1_1authentication_1_1JWT.html#ab35e9499e062048d82377df855769bfe">process::http::authentication::JWT</a>
, <a class="el" href="classprocess_1_1http_1_1header_1_1WWWAuthenticate.html#ab7ef253f15644097d671e07d602bff72">process::http::header::WWWAuthenticate</a>
, <a class="el" href="classprocess_1_1http_1_1Server.html#a0531ae6fbd791370262751fda7201c1b">process::http::Server</a>
, <a class="el" href="classprocess_1_1internal_1_1Loop.html#a4067cc276cd8152074a7094acf9ca451">process::internal::Loop< Iterate, Body, T, R ></a>
@@ -559,10 +559,11 @@
, <a class="el" href="classprocess_1_1network_1_1Address.html#a65e3511ccaa4fe9e6794675cab161c4c">process::network::Address</a>
, <a class="el" href="classprocess_1_1network_1_1internal_1_1LibeventSSLSocketImpl.html#a92fdb78c9aa14030f802d1160f8dfe5c">process::network::internal::LibeventSSLSocketImpl</a>
, <a class="el" href="classprocess_1_1network_1_1internal_1_1PollSocketImpl.html#af893115c4d9b82346bbf2a204de9c516">process::network::internal::PollSocketImpl</a>
-, <a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html#a0fbcec9bb3b4ecfe298805e179c70f18">process::network::internal::Socket< AddressType ></a>
+, <a class="el" href="classprocess_1_1network_1_1internal_1_1Socket.html#a63ec4379f16d4f8dbf39f91b1be74a31">process::network::internal::Socket< AddressType ></a>
, <a class="el" href="classprocess_1_1network_1_1internal_1_1SocketImpl.html#a5a00f792b5055241fea9f1fc81b2c4c6">process::network::internal::SocketImpl</a>
, <a class="el" href="classprocess_1_1network_1_1unix_1_1Address.html#af91b88086c6c1385e61b42b20510bdd4">process::network::unix::Address</a>
, <a class="el" href="classprocess_1_1Time.html#a7fa791510b349cfadefe26460730cc2a">process::Time</a>
+, <a class="el" href="classprocess_1_1windows_1_1EventLoop.html#a3bd3da5d721cf2c4db9c5551bdccc3a4">process::windows::EventLoop</a>
, <a class="el" href="classZooKeeper.html#a60244c525246bd57ff4c971b9ab7f18f">ZooKeeper</a>
</li>
<li>created()
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/functions_func_g.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/functions_func_g.html b/content/api/latest/c++/functions_func_g.html
index fcc0ca2..b8d87ab 100644
--- a/content/api/latest/c++/functions_func_g.html
+++ b/content/api/latest/c++/functions_func_g.html
@@ -170,6 +170,9 @@
<li>get_interpreter()
: <a class="el" href="clasself_1_1File.html#a2a4f93c734087be5acbd3788dd276f78">elf::File</a>
</li>
+<li>get_iocp()
+: <a class="el" href="classos_1_1WindowsFD.html#a380eb8d9b7bc0e6b3bfae0e8e9c6bb0f">os::WindowsFD</a>
+</li>
<li>get_persistent_socket()
: <a class="el" href="classprocess_1_1SocketManager.html#a11e6bbf80bf1c9b539b3d3e5090675b8">process::SocketManager</a>
</li>
@@ -193,7 +196,7 @@
</li>
<li>getExecutor()
: <a class="el" href="classmesos_1_1internal_1_1slave_1_1Framework.html#aaa044d0c042d68e59815f1244440560e">mesos::internal::slave::Framework</a>
-, <a class="el" href="classmesos_1_1internal_1_1slave_1_1Slave.html#a68f5a180b0bd905d22cdcea2cd1d8196">mesos::internal::slave::Slave</a>
+, <a class="el" href="classmesos_1_1internal_1_1slave_1_1Slave.html#ae5cbf7aef363a45048acfca39fbb4c89">mesos::internal::slave::Slave</a>
</li>
<li>getExecutorIdForPendingTask()
: <a class="el" href="classmesos_1_1internal_1_1slave_1_1Framework.html#a2fff4fc7fabe8cd06c9fca35f187b82b">mesos::internal::slave::Framework</a>
@@ -258,7 +261,7 @@
, <a class="el" href="structmesos_1_1internal_1_1master_1_1Slave.html#a165609c395c72244513e2cc8e103f0a9">mesos::internal::master::Slave</a>
</li>
<li>getOrElse()
-: <a class="el" href="classOption.html#abbbed1bc42634fa9092160b16be6ca7e">Option< T ></a>
+: <a class="el" href="classOption.html#ac556a5361d05a4f88d0ee9500737250d">Option< T ></a>
</li>
<li>getPath()
: <a class="el" href="classDocker.html#a4d4e8921b4acbd88c5eea3914e20b033">Docker</a>
@@ -302,7 +305,7 @@
, <a class="el" href="classmesos_1_1v1_1_1Resources.html#a77bd749c9b8e90069b6aff41d617eb9c">mesos::v1::Resources</a>
</li>
<li>Group()
-: <a class="el" href="classzookeeper_1_1Group.html#adfdc9e049635868b52b336b5e6e1504c">zookeeper::Group</a>
+: <a class="el" href="classzookeeper_1_1Group.html#a9c43b1e1dbd2a41f25ed5e14bd327135">zookeeper::Group</a>
</li>
<li>GroupProcess()
: <a class="el" href="classzookeeper_1_1GroupProcess.html#a58c1015ffb0ea042f52cec298de9bce7">zookeeper::GroupProcess</a>
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/functions_func_l.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/functions_func_l.html b/content/api/latest/c++/functions_func_l.html
index 13d5ea8..ce5117e 100644
--- a/content/api/latest/c++/functions_func_l.html
+++ b/content/api/latest/c++/functions_func_l.html
@@ -123,6 +123,9 @@
, <a class="el" href="classmesos_1_1MesosSchedulerDriver.html#aeecb18557c3d94f8c8cc46513f770945">mesos::MesosSchedulerDriver</a>
, <a class="el" href="classmesos_1_1SchedulerDriver.html#acf7cb2a111fd35ac54f2a2cbf20d9998">mesos::SchedulerDriver</a>
</li>
+<li>launchTimer()
+: <a class="el" href="classprocess_1_1windows_1_1EventLoop.html#a006cb0c8efb7aaadadf0a692d9c2659a">process::windows::EventLoop</a>
+</li>
<li>LeaderContender()
: <a class="el" href="classzookeeper_1_1LeaderContender.html#aa52205da4ebdeab17047f9be409d1292">zookeeper::LeaderContender</a>
</li>
@@ -157,9 +160,9 @@
</li>
<li>load()
: <a class="el" href="clasself_1_1File.html#a6566b238508d4407604370e1db96d16a">elf::File</a>
-, <a class="el" href="classflags_1_1FlagsBase.html#a69a4792cc358705da4af292f3333843c">flags::FlagsBase</a>
+, <a class="el" href="classflags_1_1FlagsBase.html#a8cd76e5147cea872db5e6f91f9453b09">flags::FlagsBase</a>
, <a class="el" href="classmesos_1_1internal_1_1cram__md5_1_1InMemoryAuxiliaryPropertyPlugin.html#a98237a629f2b875e149ccefade93e47c">mesos::internal::cram_md5::InMemoryAuxiliaryPropertyPlugin</a>
-, <a class="el" href="classmesos_1_1modules_1_1ModuleManager.html#a3bb2245ab8a00d294fc352f96158ef6e">mesos::modules::ModuleManager</a>
+, <a class="el" href="classmesos_1_1modules_1_1ModuleManager.html#acd8f67faddce984397a9cb07b00816f4">mesos::modules::ModuleManager</a>
</li>
<li>LoadQoSController()
: <a class="el" href="classmesos_1_1internal_1_1slave_1_1LoadQoSController.html#a7dc24c0a4717ac0e2a8907200a50231b">mesos::internal::slave::LoadQoSController</a>
@@ -174,7 +177,7 @@
: <a class="el" href="classprocess_1_1Mutex.html#a2983b29453c623f58b843d924598793b">process::Mutex</a>
</li>
<li>Log()
-: <a class="el" href="classmesos_1_1log_1_1Log.html#aac8f9701de39bc94960487c79d5a3221">mesos::log::Log</a>
+: <a class="el" href="classmesos_1_1log_1_1Log.html#a4d1b102f5ce52ebee204cec33f77f04e">mesos::log::Log</a>
</li>
<li>Logger()
: <a class="el" href="classorg_1_1apache_1_1log4j_1_1Logger.html#a805fd5ad375e86a9eb5095fd526391d2">org::apache::log4j::Logger</a>
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/functions_func_p.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/functions_func_p.html b/content/api/latest/c++/functions_func_p.html
index 78400c9..95aec8a 100644
--- a/content/api/latest/c++/functions_func_p.html
+++ b/content/api/latest/c++/functions_func_p.html
@@ -302,7 +302,7 @@
, <a class="el" href="classmesos_1_1internal_1_1StorageLocalResourceProvider.html#ad877f9008c46391e405a64e8e01295aa">mesos::internal::StorageLocalResourceProvider</a>
</li>
<li>Principal()
-: <a class="el" href="structprocess_1_1http_1_1authentication_1_1Principal.html#ad371e6931c0d1f6653b9712489c9ca2a">process::http::authentication::Principal</a>
+: <a class="el" href="structprocess_1_1http_1_1authentication_1_1Principal.html#a52640d68809c22e09de880001b8fb519">process::http::authentication::Principal</a>
</li>
<li>Priority()
: <a class="el" href="classrouting_1_1filter_1_1Priority.html#a41a1939341586e23fe3260c5b94fcc59">routing::filter::Priority</a>
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/functions_func_r.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/functions_func_r.html b/content/api/latest/c++/functions_func_r.html
index 144cef7..903fb41 100644
--- a/content/api/latest/c++/functions_func_r.html
+++ b/content/api/latest/c++/functions_func_r.html
@@ -285,6 +285,9 @@
<li>registerFramework()
: <a class="el" href="classmesos_1_1internal_1_1master_1_1Master.html#a65522e77d9f6b6587b7a72e5651d4093">mesos::internal::master::Master</a>
</li>
+<li>registerHandle()
+: <a class="el" href="classprocess_1_1windows_1_1EventLoop.html#a832a73998bb3b26b7caa770ceef38827">process::windows::EventLoop</a>
+</li>
<li>registerSlave()
: <a class="el" href="classmesos_1_1internal_1_1master_1_1Master.html#a68134d39542a47d999e5002e23c00c23">mesos::internal::master::Master</a>
</li>
@@ -470,8 +473,8 @@
<li>reset()
: <a class="el" href="classmesos_1_1http_1_1authentication_1_1Authenticatee.html#a7d5f4e616a2fc6fefe403155ad45bb83">mesos::http::authentication::Authenticatee</a>
, <a class="el" href="classprocess_1_1metrics_1_1Counter.html#a17afc8a0d6eb1b014fffcd6b43c2f796">process::metrics::Counter</a>
-, <a class="el" href="classprocess_1_1Owned.html#aa06f3e1ea22cc4f2b8d1421637db7ea4">process::Owned< T ></a>
-, <a class="el" href="classprocess_1_1Shared.html#aa5eeda331799e0c747c0ccb1fed90bc5">process::Shared< T ></a>
+, <a class="el" href="classprocess_1_1Owned.html#a882bec89a9247989a97ee1ec16e23fa8">process::Owned< T ></a>
+, <a class="el" href="classprocess_1_1Shared.html#adb2203cf8bb3a39b42096e3cef47e906">process::Shared< T ></a>
</li>
<li>resolve()
: <a class="el" href="classmesos_1_1SecretResolver.html#afddfaede33e182ecc658c39b99086679">mesos::SecretResolver</a>
@@ -492,7 +495,7 @@
: <a class="el" href="structmesos_1_1internal_1_1slave_1_1ResourceProvider.html#a7b0c27289426d4a7f1c17a1ac1591969">mesos::internal::slave::ResourceProvider</a>
</li>
<li>ResourceProviderManager()
-: <a class="el" href="classmesos_1_1internal_1_1ResourceProviderManager.html#a6f4cf04270959f5030441dff26748f9a">mesos::internal::ResourceProviderManager</a>
+: <a class="el" href="classmesos_1_1internal_1_1ResourceProviderManager.html#aacff21fa24849ba5015f9ad760271a6e">mesos::internal::ResourceProviderManager</a>
</li>
<li>resourceRequest()
: <a class="el" href="classmesos_1_1internal_1_1master_1_1Master.html#a23b9370f456caab5c1c91b367dd2c5b5">mesos::internal::master::Master</a>
@@ -502,14 +505,14 @@
, <a class="el" href="classmesos_1_1internal_1_1slave_1_1NvidiaGpuAllocator.html#a27fc74b54530efb09a05e3ba29c3b030">mesos::internal::slave::NvidiaGpuAllocator</a>
</li>
<li>Resources()
-: <a class="el" href="classmesos_1_1Resources.html#a224d38fb001cffb8f4f2f6e9dc328091">mesos::Resources</a>
-, <a class="el" href="classmesos_1_1v1_1_1Resources.html#afb96448b026e8b78e338cf82bfc47e7a">mesos::v1::Resources</a>
+: <a class="el" href="classmesos_1_1Resources.html#aed60247869278b5545227ddf7ca9536b">mesos::Resources</a>
+, <a class="el" href="classmesos_1_1v1_1_1Resources.html#a46c478b66abd53e0aed44cd82bc6e4d0">mesos::v1::Resources</a>
</li>
<li>ResourcesState()
: <a class="el" href="structmesos_1_1internal_1_1slave_1_1state_1_1ResourcesState.html#a1cd90dfb2e0c8cb14c45a8ce0ffacd5b">mesos::internal::slave::state::ResourcesState</a>
</li>
<li>Response()
-: <a class="el" href="structprocess_1_1http_1_1Response.html#ac7ac8132a8d8772335efd5a55d9ebb4f">process::http::Response</a>
+: <a class="el" href="structprocess_1_1http_1_1Response.html#ab52f93de73e86c37fa21484acd5d8e9d">process::http::Response</a>
</li>
<li>ResponseDecoder()
: <a class="el" href="classprocess_1_1ResponseDecoder.html#ab30005070b52416979638e2e76137717">process::ResponseDecoder</a>
@@ -519,7 +522,7 @@
, <a class="el" href="classmesos_1_1internal_1_1log_1_1Storage.html#a3b37cd2146b4a5691275a314e605b759">mesos::internal::log::Storage</a>
</li>
<li>Result()
-: <a class="el" href="classResult.html#a04393dc61e3f8972de5106c63f1ea50d">Result< T ></a>
+: <a class="el" href="classResult.html#a915f263c53ab8b80d85f014ebb817fb6">Result< T ></a>
</li>
<li>resume()
: <a class="el" href="classmesos_1_1internal_1_1checks_1_1Checker.html#aab23bf981d8adefc42831594343f84c0">mesos::internal::checks::Checker</a>
@@ -561,13 +564,13 @@
, <a class="el" href="classHDFS.html#ae2b281bb34b01190e4e1bd28806c40c6">HDFS</a>
</li>
<li>Role()
-: <a class="el" href="structmesos_1_1internal_1_1master_1_1Role.html#accf0d5437cf11da50c674ecd6c19c7ce">mesos::internal::master::Role</a>
+: <a class="el" href="structmesos_1_1internal_1_1master_1_1Role.html#a9e8163dd90e1dd48c752cbfa82660804">mesos::internal::master::Role</a>
</li>
<li>Rootfs()
: <a class="el" href="classmesos_1_1internal_1_1tests_1_1Rootfs.html#a0d1eefd3053932eceda17475fae5f95c">mesos::internal::tests::Rootfs</a>
</li>
<li>route()
-: <a class="el" href="classprocess_1_1ProcessBase.html#af0d1a6f8da798dfb2b6ea92550b8c6f5">process::ProcessBase</a>
+: <a class="el" href="classprocess_1_1ProcessBase.html#a37cf86bbf94884960c041e081a34bee4">process::ProcessBase</a>
</li>
<li>RouteOptions()
: <a class="el" href="structprocess_1_1ProcessBase_1_1RouteOptions.html#a9c202f7f06a7cb90499e3365ce338475">process::ProcessBase::RouteOptions</a>
@@ -587,6 +590,7 @@
, <a class="el" href="classprocess_1_1EventLoop.html#a5e89851f1fe597bce869fdae00ca2ef2">process::EventLoop</a>
, <a class="el" href="classprocess_1_1http_1_1Server.html#a0667f67908512b63a7f093800f897da1">process::http::Server</a>
, <a class="el" href="classprocess_1_1internal_1_1Loop.html#a11417f29be6ae721ee9331b0ccbf16e4">process::internal::Loop< Iterate, Body, T, R ></a>
+, <a class="el" href="classprocess_1_1windows_1_1EventLoop.html#a2578b5fad0eb039f995955c798310c86">process::windows::EventLoop</a>
, <a class="el" href="classReqResProcess.html#aa88a64351fac32c4d142a4119b8fe45e">ReqResProcess< Req, Res ></a>
</li>
<li>RunState()
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/functions_func_s.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/functions_func_s.html b/content/api/latest/c++/functions_func_s.html
index e9efa4e..62d248d 100644
--- a/content/api/latest/c++/functions_func_s.html
+++ b/content/api/latest/c++/functions_func_s.html
@@ -460,7 +460,7 @@
: <a class="el" href="classmesos_1_1internal_1_1tests_1_1ZooKeeperTestServer.html#a5fb4d10971b61af717fe1f30693a88e8">mesos::internal::tests::ZooKeeperTestServer</a>
</li>
<li>StartSlave()
-: <a class="el" href="classmesos_1_1internal_1_1tests_1_1MesosTest.html#a16e854bb05b1c84bcab68963df5b8049">mesos::internal::tests::MesosTest</a>
+: <a class="el" href="classmesos_1_1internal_1_1tests_1_1MesosTest.html#a0604f9cee3cee19c701bf31c6d669375">mesos::internal::tests::MesosTest</a>
</li>
<li>startup()
: <a class="el" href="classmesos_1_1internal_1_1tests_1_1MockCSIPlugin.html#aaaf2f5692dca8cc06602ca25f62bbaba">mesos::internal::tests::MockCSIPlugin</a>
@@ -543,6 +543,7 @@
, <a class="el" href="classprocess_1_1Executor.html#a43a9df131ecc0e5fb3c3015c118407da">process::Executor</a>
, <a class="el" href="classprocess_1_1http_1_1Server.html#acc7de6562fb0670327e6d2a4e9e6c92c">process::http::Server</a>
, <a class="el" href="classprocess_1_1metrics_1_1Timer.html#add113450a55bb835137f84701f981fcc">process::metrics::Timer< T ></a>
+, <a class="el" href="classprocess_1_1windows_1_1EventLoop.html#a8a07fc602e31875e6cbcaeac8008f09a">process::windows::EventLoop</a>
, <a class="el" href="classStopwatch.html#aa0266311b7392b948061bb985b49cff4">Stopwatch</a>
</li>
<li>StopMaintenance()
@@ -575,7 +576,7 @@
: <a class="el" href="structmesos_1_1internal_1_1StatusUpdateManagerProcess_1_1State_1_1StreamState.html#af46361932dd0c00fb873b16659f415a6">mesos::internal::StatusUpdateManagerProcess< IDType, CheckpointType, UpdateType >::State::StreamState</a>
</li>
<li>String()
-: <a class="el" href="structJSON_1_1String.html#ab8f3991c166dfd0e7761a8cfc733f4a2">JSON::String</a>
+: <a class="el" href="structJSON_1_1String.html#a7be21f307ea1e322a19a23da1b35afb4">JSON::String</a>
</li>
<li>string()
: <a class="el" href="classJvm.html#ac2c7a5438fbf91870a29720b0a26b0a1">Jvm</a>
@@ -589,7 +590,7 @@
, <a class="el" href="structstrings_1_1internal_1_1stringify_3_01T_00_01true_01_4.html#a8bbe1c2705c0084a8e57f44524facf1b">strings::internal::stringify< T, true ></a>
</li>
<li>StringWriter()
-: <a class="el" href="classJSON_1_1StringWriter.html#a3e5c995b672908c97ff50420224b0185">JSON::StringWriter</a>
+: <a class="el" href="classJSON_1_1StringWriter.html#af2d977fce1c821dd499796870c642f59">JSON::StringWriter</a>
</li>
<li>submitScheduler()
: <a class="el" href="classmesos_1_1internal_1_1master_1_1Master.html#a10612b0c349105c4e3ac1cb8bc48210f">mesos::internal::master::Master</a>
@@ -693,7 +694,7 @@
: <a class="el" href="classSynchronized.html#a6f1fcefdbc244929d3a3efce643d1a42">Synchronized< T ></a>
</li>
<li>sysctl()
-: <a class="el" href="structos_1_1sysctl.html#a86356cee57ee889e8353fc488a5e61a1">os::sysctl</a>
+: <a class="el" href="structos_1_1sysctl.html#aae16684fca2b68f7ae4c998cee5f6f7e">os::sysctl</a>
</li>
<li>System()
: <a class="el" href="classprocess_1_1System.html#ace32519ce64ed719c6a56e5d3f8cce8d">process::System</a>
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/functions_func_v.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/functions_func_v.html b/content/api/latest/c++/functions_func_v.html
index bd534b8..48452df 100644
--- a/content/api/latest/c++/functions_func_v.html
+++ b/content/api/latest/c++/functions_func_v.html
@@ -118,7 +118,7 @@
, <a class="el" href="classHours.html#aabae7296a0be6bb13850eb285302cf77">Hours</a>
</li>
<li>Value()
-: <a class="el" href="structJSON_1_1Value.html#a5e0c2536746e22b71bb3be5883b49c78">JSON::Value</a>
+: <a class="el" href="structJSON_1_1Value.html#ab05d7584e0a89ecc8a16d0670d3a84b7">JSON::Value</a>
</li>
<li>value()
: <a class="el" href="classmesos_1_1state_1_1Variable.html#ade8ed8f89ceb5e3ab004e2922a5b35fa">mesos::state::Variable</a>
@@ -126,7 +126,7 @@
, <a class="el" href="classMilliseconds.html#a958cbe56379726b0b0e1a01afd3204e7">Milliseconds</a>
, <a class="el" href="classMinutes.html#a83dd956016276afa0f496520470c4a3d">Minutes</a>
, <a class="el" href="classNanoseconds.html#a260729fd78d4e539dc1b694d8e2fd06b">Nanoseconds</a>
-, <a class="el" href="classprocess_1_1ControlFlow.html#a9fa0744c29d7bffd54f10aea580ba187">process::ControlFlow< T ></a>
+, <a class="el" href="classprocess_1_1ControlFlow.html#a5c21809a15f9efe012e30d1a1cf05c3a">process::ControlFlow< T ></a>
, <a class="el" href="classprocess_1_1metrics_1_1Counter.html#a5c3ebc2a8264cd0bb05ce6196e290d08">process::metrics::Counter</a>
, <a class="el" href="classprocess_1_1metrics_1_1Metric.html#a961b445c5d82327db7fa387a818635c7">process::metrics::Metric</a>
, <a class="el" href="classprocess_1_1metrics_1_1PullGauge.html#a0e2c9dfec36e9061b476846ae8d42e68">process::metrics::PullGauge</a>
@@ -163,12 +163,12 @@
<li>visit()
: <a class="el" href="structprocess_1_1DispatchEvent.html#a0e76d6c1283c8e70858d7099be34a5ba">process::DispatchEvent</a>
, <a class="el" href="structprocess_1_1Event.html#a8756ddd411b61f8f1710e13d82e71037">process::Event</a>
-, <a class="el" href="structprocess_1_1EventVisitor.html#a2c6446217ce0718ea9c7b87e2ca93049">process::EventVisitor</a>
+, <a class="el" href="structprocess_1_1EventVisitor.html#ac5a1087909568bbac1213d32105e1221">process::EventVisitor</a>
, <a class="el" href="structprocess_1_1ExitedEvent.html#aacae7e724b82f3f33f640b9026e163c8">process::ExitedEvent</a>
, <a class="el" href="structprocess_1_1HttpEvent.html#aef4ca1f2279a4207d18c695fc6510a10">process::HttpEvent</a>
, <a class="el" href="structprocess_1_1MessageEvent.html#a075568b289b0075487233208e5b1fe7d">process::MessageEvent</a>
, <a class="el" href="structprocess_1_1TerminateEvent.html#ae608861d9805a2d34f2533605808b2c1">process::TerminateEvent</a>
-, <a class="el" href="classVariant.html#ac80eba67c08d5e8c1d0bc87bd112dff7">Variant< T, Ts ></a>
+, <a class="el" href="classVariant.html#a60b427988bfa6cfe7dc6bff236f523b5">Variant< T, Ts ></a>
</li>
</ul>
</div><!-- contents -->
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/functions_g.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/functions_g.html b/content/api/latest/c++/functions_g.html
index 528b5dc..9b28c82 100644
--- a/content/api/latest/c++/functions_g.html
+++ b/content/api/latest/c++/functions_g.html
@@ -183,6 +183,9 @@
<li>get_interpreter()
: <a class="el" href="clasself_1_1File.html#a2a4f93c734087be5acbd3788dd276f78">elf::File</a>
</li>
+<li>get_iocp()
+: <a class="el" href="classos_1_1WindowsFD.html#a380eb8d9b7bc0e6b3bfae0e8e9c6bb0f">os::WindowsFD</a>
+</li>
<li>get_persistent_socket()
: <a class="el" href="classprocess_1_1SocketManager.html#a11e6bbf80bf1c9b539b3d3e5090675b8">process::SocketManager</a>
</li>
@@ -209,7 +212,7 @@
</li>
<li>getExecutor()
: <a class="el" href="classmesos_1_1internal_1_1slave_1_1Framework.html#aaa044d0c042d68e59815f1244440560e">mesos::internal::slave::Framework</a>
-, <a class="el" href="classmesos_1_1internal_1_1slave_1_1Slave.html#ae5cbf7aef363a45048acfca39fbb4c89">mesos::internal::slave::Slave</a>
+, <a class="el" href="classmesos_1_1internal_1_1slave_1_1Slave.html#a68f5a180b0bd905d22cdcea2cd1d8196">mesos::internal::slave::Slave</a>
</li>
<li>getExecutorIdForPendingTask()
: <a class="el" href="classmesos_1_1internal_1_1slave_1_1Framework.html#a2fff4fc7fabe8cd06c9fca35f187b82b">mesos::internal::slave::Framework</a>
@@ -350,14 +353,14 @@
, <a class="el" href="structos_1_1Process.html#a41f9befab165fd224ba2d829e7c35ba6">os::Process</a>
</li>
<li>Group()
-: <a class="el" href="classzookeeper_1_1Group.html#a9c43b1e1dbd2a41f25ed5e14bd327135">zookeeper::Group</a>
+: <a class="el" href="classzookeeper_1_1Group.html#adfdc9e049635868b52b336b5e6e1504c">zookeeper::Group</a>
</li>
<li>GroupProcess
: <a class="el" href="structzookeeper_1_1Group_1_1Membership.html#af98627d242b828f8f25413b5f1504aa2">zookeeper::Group::Membership</a>
, <a class="el" href="classzookeeper_1_1GroupProcess.html#acecaf6cd579a8462517a0986d7de75b7">zookeeper::GroupProcess</a>
</li>
<li>GzipError()
-: <a class="el" href="classgzip_1_1internal_1_1GzipError.html#a329eac2b003b8e0d17ebe4379107d943">gzip::internal::GzipError</a>
+: <a class="el" href="classgzip_1_1internal_1_1GzipError.html#ae37852986117d5d162983538ad51dd33">gzip::internal::GzipError</a>
</li>
</ul>
</div><!-- contents -->
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/functions_l.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/functions_l.html b/content/api/latest/c++/functions_l.html
index 231733f..1c79ccb 100644
--- a/content/api/latest/c++/functions_l.html
+++ b/content/api/latest/c++/functions_l.html
@@ -148,6 +148,9 @@
, <a class="el" href="classmesos_1_1MesosSchedulerDriver.html#aeecb18557c3d94f8c8cc46513f770945">mesos::MesosSchedulerDriver</a>
, <a class="el" href="classmesos_1_1SchedulerDriver.html#a63257236eb2943883cf4a88ab2abb851">mesos::SchedulerDriver</a>
</li>
+<li>launchTimer()
+: <a class="el" href="classprocess_1_1windows_1_1EventLoop.html#a006cb0c8efb7aaadadf0a692d9c2659a">process::windows::EventLoop</a>
+</li>
<li>layers
: <a class="el" href="structmesos_1_1internal_1_1slave_1_1ImageInfo.html#a00b3bbd185c4191172c69aca4202529a">mesos::internal::slave::ImageInfo</a>
</li>
@@ -252,7 +255,7 @@
: <a class="el" href="classprocess_1_1Mutex.html#a2983b29453c623f58b843d924598793b">process::Mutex</a>
</li>
<li>Log()
-: <a class="el" href="classmesos_1_1log_1_1Log.html#aac8f9701de39bc94960487c79d5a3221">mesos::log::Log</a>
+: <a class="el" href="classmesos_1_1log_1_1Log.html#a4d1b102f5ce52ebee204cec33f77f04e">mesos::log::Log</a>
, <a class="el" href="classmesos_1_1log_1_1Log_1_1Position.html#acd1b2a0733103b7bbeb76b467ea85446">mesos::log::Log::Position</a>
</li>
<li>log_auto_initialize
@@ -280,7 +283,7 @@
: <a class="el" href="classmesos_1_1internal_1_1logging_1_1Flags.html#a9525130c5e3e621116643ade19b30fda">mesos::internal::logging::Flags</a>
</li>
<li>LogProcess()
-: <a class="el" href="classmesos_1_1internal_1_1log_1_1LogProcess.html#a04df6a42d4dd6b75bb96ea8d38dcf09b">mesos::internal::log::LogProcess</a>
+: <a class="el" href="classmesos_1_1internal_1_1log_1_1LogProcess.html#abf56bc6edfd50d56f7cd4c7ee100e471">mesos::internal::log::LogProcess</a>
</li>
<li>LogReaderProcess
: <a class="el" href="classmesos_1_1internal_1_1log_1_1LogProcess.html#a11dc02f3ea3de52571a90c60287ed344">mesos::internal::log::LogProcess</a>
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/functions_m.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/functions_m.html b/content/api/latest/c++/functions_m.html
index 2878272..ad00385 100644
--- a/content/api/latest/c++/functions_m.html
+++ b/content/api/latest/c++/functions_m.html
@@ -578,7 +578,7 @@
: <a class="el" href="classmesos_1_1internal_1_1tests_1_1MockDocker.html#a7cb4dbff2995fd68670da9702246672b">mesos::internal::tests::MockDocker</a>
</li>
<li>MockDockerContainerizer()
-: <a class="el" href="classmesos_1_1internal_1_1tests_1_1MockDockerContainerizer.html#af3b44a7786c0ba2f701cf5653a79905f">mesos::internal::tests::MockDockerContainerizer</a>
+: <a class="el" href="classmesos_1_1internal_1_1tests_1_1MockDockerContainerizer.html#a66795eec472134c5b433d0c942746eb7">mesos::internal::tests::MockDockerContainerizer</a>
</li>
<li>MockDockerContainerizerProcess()
: <a class="el" href="classmesos_1_1internal_1_1tests_1_1MockDockerContainerizerProcess.html#aa985102c6391bb39798546b23f5c1c84">mesos::internal::tests::MockDockerContainerizerProcess</a>
@@ -672,10 +672,10 @@
: <a class="el" href="classDuration.html#a05ddd6a9f21b82dba6313f81418f53d2">Duration</a>
</li>
<li>multihashmap()
-: <a class="el" href="classmultihashmap.html#a9b179e77c03fb85cfe4e59cc6cf0bf95">multihashmap< Key, Value, Hash, Equal ></a>
+: <a class="el" href="classmultihashmap.html#abf9594bf83c80160e06af9f847285116">multihashmap< Key, Value, Hash, Equal ></a>
</li>
<li>Multimap()
-: <a class="el" href="classMultimap.html#af4c45434eb219747fb536a7b7ff4fde1">Multimap< K, V ></a>
+: <a class="el" href="classMultimap.html#a13d4bd4285946600c1af81e5be4b09ad">Multimap< K, V ></a>
</li>
<li>MULTIPLE_CHOICES
: <a class="el" href="structprocess_1_1http_1_1Status.html#a8feae2af2cdeaf0c0ddbd5f80c9f5ff5">process::http::Status</a>
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/functions_n.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/functions_n.html b/content/api/latest/c++/functions_n.html
index 21d4368..4ffb2b4 100644
--- a/content/api/latest/c++/functions_n.html
+++ b/content/api/latest/c++/functions_n.html
@@ -278,7 +278,7 @@
: <a class="el" href="classrouting_1_1filter_1_1U32Handle.html#a905f16da1073dbbced85293a1ed2a39f">routing::filter::U32Handle</a>
</li>
<li>NodeCapabilities()
-: <a class="el" href="structmesos_1_1csi_1_1v0_1_1NodeCapabilities.html#ab7697bc98fc12e7bffec0895b7c68244">mesos::csi::v0::NodeCapabilities</a>
+: <a class="el" href="structmesos_1_1csi_1_1v0_1_1NodeCapabilities.html#a589d1a689c231e33f03861797c5bdc41">mesos::csi::v0::NodeCapabilities</a>
</li>
<li>nodename
: <a class="el" href="structos_1_1UTSInfo.html#a03dd23e9031a68b633dc6e405e32bab0">os::UTSInfo</a>
@@ -323,16 +323,16 @@
: <a class="el" href="structprocess_1_1http_1_1NotAcceptable.html#a7aa1994f2bf2049346177a29ec75b567">process::http::NotAcceptable</a>
</li>
<li>NotFound()
-: <a class="el" href="structprocess_1_1http_1_1NotFound.html#afd150061e7afc57ec91516045b09c703">process::http::NotFound</a>
+: <a class="el" href="structprocess_1_1http_1_1NotFound.html#a45432f89f82b758deed0cd6a7994c1fb">process::http::NotFound</a>
</li>
<li>notify()
: <a class="el" href="classprocess_1_1internal_1_1ReaperProcess.html#a9ed3a26894422f571a73edc3a2900e02">process::internal::ReaperProcess</a>
</li>
<li>NotImplemented()
-: <a class="el" href="structprocess_1_1http_1_1NotImplemented.html#ac786e0b6d4f5bd8ad74690791bd1c423">process::http::NotImplemented</a>
+: <a class="el" href="structprocess_1_1http_1_1NotImplemented.html#a6ef0e57cfbd6d82ca46977181b1dc19c">process::http::NotImplemented</a>
</li>
<li>now()
-: <a class="el" href="classprocess_1_1Clock.html#aeb3feabcc37d4903757ea2a2160f2e32">process::Clock</a>
+: <a class="el" href="classprocess_1_1Clock.html#a24ed3f746bb6b3ddb1c52dce5e0ecd38">process::Clock</a>
</li>
<li>ns()
: <a class="el" href="classDuration.html#aa3703196ba3797f7833a8348ccb5449a">Duration</a>
@@ -350,10 +350,10 @@
: <a class="el" href="structproc_1_1ProcessStatus.html#ae1165a6a5e77977d3d0ee8f081c8b4ca">proc::ProcessStatus</a>
</li>
<li>Number()
-: <a class="el" href="structJSON_1_1Number.html#ae2408d078068d8ac8e310d7eba6fced6">JSON::Number</a>
+: <a class="el" href="structJSON_1_1Number.html#a64361b5b1c34e311ab9407cbc6ccb136">JSON::Number</a>
</li>
<li>NumberWriter()
-: <a class="el" href="classJSON_1_1NumberWriter.html#a88564fb4ce2096eb336d68b854a747d2">JSON::NumberWriter</a>
+: <a class="el" href="classJSON_1_1NumberWriter.html#ac248fb67aaa7f2bdeeccfd9cbd6b42e7">JSON::NumberWriter</a>
</li>
<li>NvidiaGpuAllocator()
: <a class="el" href="classmesos_1_1internal_1_1slave_1_1NvidiaGpuAllocator.html#ae719bef3975380c61e888f73ae801d8f">mesos::internal::slave::NvidiaGpuAllocator</a>
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/functions_o.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/functions_o.html b/content/api/latest/c++/functions_o.html
index dfaeecc..63b2557 100644
--- a/content/api/latest/c++/functions_o.html
+++ b/content/api/latest/c++/functions_o.html
@@ -94,14 +94,13 @@
<li>Object()
: <a class="el" href="structJSON_1_1Object.html#a79dba4ce034071eeef6a807d8d574cea">JSON::Object</a>
, <a class="el" href="classJvm.html#a0720b5f434e636e22a3ed34f847eec57">Jvm</a>
-, <a class="el" href="classJvm_1_1Object.html#abe0b95c285e9206375dfeb80517a2a69">Jvm::Object</a>
</li>
<li>object
: <a class="el" href="classJvm_1_1Object.html#a3c338f2867b29b7868472a714014ca76">Jvm::Object</a>
</li>
<li>Object()
: <a class="el" href="classJvm_1_1Object.html#ace2b910d3838c7ad2ed5f67d872d9bd9">Jvm::Object</a>
-, <a class="el" href="structmesos_1_1ObjectApprover_1_1Object.html#a8e939da2f28217b77a2347423c2cfe8b">mesos::ObjectApprover::Object</a>
+, <a class="el" href="structmesos_1_1ObjectApprover_1_1Object.html#a03e6baf0690ffd26ad3bc4929b70d967">mesos::ObjectApprover::Object</a>
</li>
<li>ObjectWriter()
: <a class="el" href="classJSON_1_1ObjectWriter.html#a028782ad1c192574b6f7b4de694af1f8">JSON::ObjectWriter</a>
@@ -734,7 +733,7 @@
: <a class="el" href="classprocess_1_1Shared.html#a84986b276de9b6d1b525c64d944c6797">process::Shared< T ></a>
</li>
<li>Owned()
-: <a class="el" href="classprocess_1_1Owned.html#ae4c94696ed1b07401493f1bef8d31981">process::Owned< T ></a>
+: <a class="el" href="classprocess_1_1Owned.html#a22a12b3bd098343628ecf122b5b09d9e">process::Owned< T ></a>
</li>
<li>OWNED
: <a class="el" href="classprocess_1_1Subprocess_1_1IO.html#adb9433454d727de27b2440f729d19990ad3f73761156a6e75873cf903a0d62994">process::Subprocess::IO</a>
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/functions_p.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/functions_p.html b/content/api/latest/c++/functions_p.html
index ea739e2..667922e 100644
--- a/content/api/latest/c++/functions_p.html
+++ b/content/api/latest/c++/functions_p.html
@@ -476,7 +476,7 @@
, <a class="el" href="structprocess_1_1http_1_1authentication_1_1AuthenticationResult.html#a999ea72bc42ca09641699398e612540a">process::http::authentication::AuthenticationResult</a>
</li>
<li>Principal()
-: <a class="el" href="structprocess_1_1http_1_1authentication_1_1Principal.html#ad371e6931c0d1f6653b9712489c9ca2a">process::http::authentication::Principal</a>
+: <a class="el" href="structprocess_1_1http_1_1authentication_1_1Principal.html#a52640d68809c22e09de880001b8fb519">process::http::authentication::Principal</a>
</li>
<li>print_name
: <a class="el" href="structinternal_1_1windows_1_1SymbolicLink.html#a7ca6332f2c62622fdf6a8340989fb837">internal::windows::SymbolicLink</a>
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/functions_r.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/functions_r.html b/content/api/latest/c++/functions_r.html
index a0b291d..9792b00 100644
--- a/content/api/latest/c++/functions_r.html
+++ b/content/api/latest/c++/functions_r.html
@@ -357,6 +357,9 @@
<li>registerFramework()
: <a class="el" href="classmesos_1_1internal_1_1master_1_1Master.html#a65522e77d9f6b6587b7a72e5651d4093">mesos::internal::master::Master</a>
</li>
+<li>registerHandle()
+: <a class="el" href="classprocess_1_1windows_1_1EventLoop.html#a832a73998bb3b26b7caa770ceef38827">process::windows::EventLoop</a>
+</li>
<li>REGISTERING
: <a class="el" href="classmesos_1_1internal_1_1slave_1_1Executor.html#a3b2abbbd9f9e9ca5c08b75329ac426c0a47f27688eed5f4b7b8fae1fe60e35d0d">mesos::internal::slave::Executor</a>
</li>
@@ -648,7 +651,7 @@
: <a class="el" href="classmesos_1_1http_1_1authentication_1_1Authenticatee.html#a7d5f4e616a2fc6fefe403155ad45bb83">mesos::http::authentication::Authenticatee</a>
, <a class="el" href="classprocess_1_1metrics_1_1Counter.html#a17afc8a0d6eb1b014fffcd6b43c2f796">process::metrics::Counter</a>
, <a class="el" href="classprocess_1_1Owned.html#a882bec89a9247989a97ee1ec16e23fa8">process::Owned< T ></a>
-, <a class="el" href="classprocess_1_1Shared.html#adb2203cf8bb3a39b42096e3cef47e906">process::Shared< T ></a>
+, <a class="el" href="classprocess_1_1Shared.html#aa5eeda331799e0c747c0ccb1fed90bc5">process::Shared< T ></a>
</li>
<li>RESET_CONTENT
: <a class="el" href="structprocess_1_1http_1_1Status.html#adf7f64f0d95bae2b22dde9b5db8e892c">process::http::Status</a>
@@ -690,7 +693,7 @@
: <a class="el" href="structmesos_1_1internal_1_1ResourceProviderMessage_1_1Disconnect.html#a08152b6d62577e6cf649a33ec85c1df4">mesos::internal::ResourceProviderMessage::Disconnect</a>
</li>
<li>ResourceProviderManager()
-: <a class="el" href="classmesos_1_1internal_1_1ResourceProviderManager.html#aacff21fa24849ba5015f9ad760271a6e">mesos::internal::ResourceProviderManager</a>
+: <a class="el" href="classmesos_1_1internal_1_1ResourceProviderManager.html#a6f4cf04270959f5030441dff26748f9a">mesos::internal::ResourceProviderManager</a>
</li>
<li>resourceProviders
: <a class="el" href="structmesos_1_1internal_1_1master_1_1Slave.html#ac69e834c9f86c1628859459e4e5255b5">mesos::internal::master::Slave</a>
@@ -715,7 +718,7 @@
: <a class="el" href="structmesos_1_1UnavailableResources.html#a2b3f0db5b5a05f3fa0bc1f8abfb68331">mesos::UnavailableResources</a>
</li>
<li>Resources()
-: <a class="el" href="classmesos_1_1v1_1_1Resources.html#a2532379d077c61b1addcd6aa47e61ad0">mesos::v1::Resources</a>
+: <a class="el" href="classmesos_1_1v1_1_1Resources.html#afb96448b026e8b78e338cf82bfc47e7a">mesos::v1::Resources</a>
</li>
<li>resources_offered_or_allocated
: <a class="el" href="structmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1Metrics.html#a35bc11894e4074d12b05210ed5d3205b">mesos::internal::master::allocator::internal::Metrics</a>
@@ -755,7 +758,7 @@
, <a class="el" href="structmesos_1_1internal_1_1slave_1_1ResourceProvider.html#aff76550b79d71087708ccbb25f9b3a5a">mesos::internal::slave::ResourceProvider</a>
</li>
<li>Response()
-: <a class="el" href="structprocess_1_1http_1_1Response.html#ab52f93de73e86c37fa21484acd5d8e9d">process::http::Response</a>
+: <a class="el" href="structprocess_1_1http_1_1Response.html#ac7ac8132a8d8772335efd5a55d9ebb4f">process::http::Response</a>
</li>
<li>response
: <a class="el" href="structprocess_1_1HttpEvent.html#ac3cab3251b6f6339db32842bcd37bec4">process::HttpEvent</a>
@@ -885,11 +888,13 @@
</li>
<li>role
: <a class="el" href="classmesos_1_1internal_1_1examples_1_1Flags.html#af84b1942374e87f678a3950ccc136980">mesos::internal::examples::Flags</a>
-, <a class="el" href="structmesos_1_1internal_1_1master_1_1Role.html#ae229ba3fea46929a5a6f5819e3c318cc">mesos::internal::master::Role</a>
</li>
<li>Role()
: <a class="el" href="structmesos_1_1internal_1_1master_1_1Role.html#accf0d5437cf11da50c674ecd6c19c7ce">mesos::internal::master::Role</a>
</li>
+<li>role
+: <a class="el" href="structmesos_1_1internal_1_1master_1_1Role.html#ae229ba3fea46929a5a6f5819e3c318cc">mesos::internal::master::Role</a>
+</li>
<li>role_sorter
: <a class="el" href="classmesos_1_1internal_1_1master_1_1Flags.html#a0fd5f13197bb357ab0cc4f10144f2a58">mesos::internal::master::Flags</a>
</li>
@@ -944,6 +949,7 @@
, <a class="el" href="classprocess_1_1EventLoop.html#a5e89851f1fe597bce869fdae00ca2ef2">process::EventLoop</a>
, <a class="el" href="classprocess_1_1http_1_1Server.html#a0667f67908512b63a7f093800f897da1">process::http::Server</a>
, <a class="el" href="classprocess_1_1internal_1_1Loop.html#a11417f29be6ae721ee9331b0ccbf16e4">process::internal::Loop< Iterate, Body, T, R ></a>
+, <a class="el" href="classprocess_1_1windows_1_1EventLoop.html#a2578b5fad0eb039f995955c798310c86">process::windows::EventLoop</a>
, <a class="el" href="classReqResProcess.html#aa88a64351fac32c4d142a4119b8fe45e">ReqResProcess< Req, Res ></a>
</li>
<li>RUNNING
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/functions_rela.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/functions_rela.html b/content/api/latest/c++/functions_rela.html
index 100d800..ea822b8 100644
--- a/content/api/latest/c++/functions_rela.html
+++ b/content/api/latest/c++/functions_rela.html
@@ -128,6 +128,9 @@
: <a class="el" href="structprocess_1_1__Deferred.html#a06d91a9cc0bae33964a4d5b578704bec">process::_Deferred< F ></a>
, <a class="el" href="structprocess_1_1Deferred.html#aee12191d24dd6ff90f5b1c1fb10552c6">process::Deferred< F ></a>
</li>
+<li>dup
+: <a class="el" href="classos_1_1WindowsFD.html#ae8d4fd38b52ea9f38605f46195fd040b">os::WindowsFD</a>
+</li>
</ul>
[32/50] mesos-site git commit: Updated the website built from mesos
SHA: 7c9c72d.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/include_2mesos_2slave_2containerizer_8hpp.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/include_2mesos_2slave_2containerizer_8hpp.html b/content/api/latest/c++/include_2mesos_2slave_2containerizer_8hpp.html
index 94534cc..00d2ae3 100644
--- a/content/api/latest/c++/include_2mesos_2slave_2containerizer_8hpp.html
+++ b/content/api/latest/c++/include_2mesos_2slave_2containerizer_8hpp.html
@@ -57,7 +57,7 @@
<div class="contents">
<div class="textblock"><code>#include <string></code><br />
<code>#include <<a class="el" href="3rdparty_2libprocess_2include_2process_2shared_8hpp_source.html">process/shared.hpp</a>></code><br />
-<code>#include <<a class="el" href="subprocess_8hpp_source.html">process/subprocess.hpp</a>></code><br />
+<code>#include <<a class="el" href="include_2process_2subprocess_8hpp_source.html">process/subprocess.hpp</a>></code><br />
<code>#include <<a class="el" href="option_8hpp_source.html">stout/option.hpp</a>></code><br />
<code>#include <mesos/slave/containerizer.pb.h></code><br />
</div>
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/include_2mesos_2slave_2containerizer_8hpp_source.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/include_2mesos_2slave_2containerizer_8hpp_source.html b/content/api/latest/c++/include_2mesos_2slave_2containerizer_8hpp_source.html
index f34ca21..afecabe 100644
--- a/content/api/latest/c++/include_2mesos_2slave_2containerizer_8hpp_source.html
+++ b/content/api/latest/c++/include_2mesos_2slave_2containerizer_8hpp_source.html
@@ -52,10 +52,10 @@
<div class="title">containerizer.hpp</div> </div>
</div><!--header-->
<div class="contents">
-<a href="include_2mesos_2slave_2containerizer_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// or more contributor license agreements. See the NOTICE file</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// distributed with this work for additional information</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">// regarding copyright ownership. The ASF licenses this file</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// to you under the Apache License, Version 2.0 (the</span></div><div class="line"><
a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">// "License"); you may not use this file except in compliance</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// with the License. You may obtain a copy of the License at</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">//</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// Unless required by applicable law or agreed to in writing, software</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span
class="comment">// distributed under the License is distributed on an "AS IS" BASIS,</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">// See the License for the specific language governing permissions and</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// limitations under the License.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#ifndef __MESOS_SLAVE_CONTAINERIZER_HPP__</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#define __MESOS_SLAVE_CO
NTAINERIZER_HPP__</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> </div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include <string></span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <<a class="code" href="3rdparty_2libprocess_2include_2process_2shared_8hpp.html">process/shared.hpp</a>></span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <<a class="code" href="subprocess_8hpp.html">process/subprocess.hpp</a>></span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> </div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <<a class="code
" href="option_8hpp.html">stout/option.hpp</a>></span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="comment">// ONLY USEFUL AFTER RUNNING PROTOC.</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include <mesos/slave/containerizer.pb.h></span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> </div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="keyword">namespace </span><a class="code" href="namespacemesos.html">mesos</a> {</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="keyword">namespace </span>slave {</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div><div class="line"><a name="l00037"></a><span class="lineno"><
a class="line" href="structmesos_1_1slave_1_1ContainerIO.html"> 37</a></span> <span class="keyword">struct </span><a class="code" href="structmesos_1_1slave_1_1ContainerIO.html">ContainerIO</a></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> {</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html"> 52</a></span>  <span class="keyword">class </span><a class="code" href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html">IO</a></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  {</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="keyword">public</span>:</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html#a7c8f14a0efec6a09b957d5d24b8f9e99"> 55</a></span>  <span class="keyword">enum class</span>
<a class="code" href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html#a7c8f14a0efec6a09b957d5d24b8f9e99">Type</a></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  {</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <a class="code" href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html#a7c8f14a0efec6a09b957d5d24b8f9e99aa8fa6b553b655657f943cb8fd85859d1">FD</a>,</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <a class="code" href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html#a7c8f14a0efec6a09b957d5d24b8f9e99a5ffb5f0d0de78321df46fc7c93ca64a3">PATH</a></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  };</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span> </div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html#a341f45297ccb682a0c97
e7f164d03a55"> 61</a></span>  <span class="keyword">static</span> <a class="code" href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html">IO</a> <a class="code" href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html#a341f45297ccb682a0c97e7f164d03a55">PATH</a>(<span class="keyword">const</span> std::string& <a class="code" href="namespacepath.html">path</a>)</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  {</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="keywordflow">return</span> <a class="code" href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html">IO</a>(<a class="code" href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html#a7c8f14a0efec6a09b957d5d24b8f9e99a5ffb5f0d0de78321df46fc7c93ca64a3">Type::PATH</a>, path);</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  }</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span> </di
v><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html#a96bd292fdd5238a2c080e5f2d1a1535c"> 66</a></span>  <span class="keyword">static</span> <a class="code" href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html">IO</a> <a class="code" href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html#a96bd292fdd5238a2c080e5f2d1a1535c">FD</a>(<a class="code" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> fd, <span class="keywordtype">bool</span> closeOnDestruction = <span class="keyword">true</span>)</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  {</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <span class="keywordflow">return</span> <a class="code" href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html">IO</a>(<a class="code" href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html#a7c8f14a0efec6a09b957d5d24b8f9e99aa8fa
6b553b655657f943cb8fd85859d1">Type::FD</a>, fd, closeOnDestruction);</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  }</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span> </div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html#a9385d497de23bc65844d6701627ab5b0"> 71</a></span>  <span class="keyword">operator</span> <a class="code" href="classprocess_1_1Subprocess_1_1IO.html">process::Subprocess::IO</a> ()<span class="keyword"> const</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <span class="keywordflow">switch</span> (type_) {</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="keywordflow">case</span> <a class="
code" href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html#a7c8f14a0efec6a09b957d5d24b8f9e99aa8fa6b553b655657f943cb8fd85859d1">Type::FD</a>:</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <span class="keywordflow">return</span> <a class="code" href="classprocess_1_1Subprocess.html#aaa6e1b76ef54ed6db34d595811122ce0">process::Subprocess::FD</a>(*fd_);</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <span class="keywordflow">case</span> <a class="code" href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html#a7c8f14a0efec6a09b957d5d24b8f9e99a5ffb5f0d0de78321df46fc7c93ca64a3">Type::PATH</a>:</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="keywordflow">return</span> <a class="code" href="classprocess_1_1Subprocess.html#a54793e9c516257d68776f63f0872c3c7">process::Subprocess::PATH</a>(path_.get());</div><div class="line"><a name="l00078"></a><span cla
ss="lineno"> 78</span>  <span class="keywordflow">default</span>:</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <a class="code" href="unreachable_8hpp.html#a0bc63b24b654ca433be7b97a3edde132">UNREACHABLE</a>();</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  }</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  }</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span> </div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <span class="keyword">private</span>:</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <span class="comment">// A simple abstraction to wrap an FD and (optionally) close it</span></div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="comment">// on destruction. We know that we never copy inst
ances of this</span></div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <span class="comment">// class once they are instantiated, so it's OK to call</span></div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="comment">// `close()` in the destructor since only one reference will</span></div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <span class="comment">// ever exist to it.</span></div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <span class="keyword">class </span>FDWrapper</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  {</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <span class="keyword">public</span>:</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  FDWrapper(<a class="code" href="int__fd_8hpp.html#ae
a4dbda01c90455f158ffa9b924c2f07">int_fd</a> _fd, <span class="keywordtype">bool</span> _closeOnDestruction)</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  : fd(_fd), closeOnDestruction(_closeOnDestruction) {}</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span> </div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  ~FDWrapper() {</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  CHECK(fd >= 0);</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <span class="keywordflow">if</span> (closeOnDestruction) {</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  close(fd);</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  }</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  }</div><di
v class="line"><a name="l00101"></a><span class="lineno"> 101</span> </div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <span class="keyword">operator</span> <a class="code" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> fd; }</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span> </div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <span class="keyword">private</span>:</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  FDWrapper(<span class="keyword">const</span> FDWrapper& fd) = <span class="keyword">delete</span>;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span> </div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <a class="code" href="int__fd_8hpp.html#aea4dbda0
1c90455f158ffa9b924c2f07">int_fd</a> fd;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <span class="keywordtype">bool</span> closeOnDestruction;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  };</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span> </div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <a class="code" href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html">IO</a>(<a class="code" href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html#a7c8f14a0efec6a09b957d5d24b8f9e99">Type</a> _type, <a class="code" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> _fd, <span class="keywordtype">bool</span> closeOnDestruction)</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  : type_(_type),</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  fd_(<spa
n class="keyword">new</span> FDWrapper(_fd, closeOnDestruction)),</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  path_(<a class="code" href="structNone.html">None</a>()) {}</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span> </div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <a class="code" href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html">IO</a>(<a class="code" href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html#a7c8f14a0efec6a09b957d5d24b8f9e99">Type</a> _type, <span class="keyword">const</span> std::string& _path)</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  : type_(_type),</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  fd_(),</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  path_(_path) {}</div><div class="line"><a name="l00120"></a><
span class="lineno"> 120</span> </div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <a class="code" href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html#a7c8f14a0efec6a09b957d5d24b8f9e99">Type</a> type_;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <a class="code" href="classprocess_1_1Shared.html">process::Shared<FDWrapper></a> fd_;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <a class="code" href="classOption.html">Option<std::string></a> path_;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  };</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span> </div><div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="structmesos_1_1slave_1_1ContainerIO.html#a71d1190a036c7e3d2af3fcee95e8d2c8"> 130</a></span>  <a class="code" href="classmesos_1_1slave_1_1Cont
ainerIO_1_1IO.html">IO</a> <a class="code" href="structmesos_1_1slave_1_1ContainerIO.html#a71d1190a036c7e3d2af3fcee95e8d2c8">in</a> = <a class="code" href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html#a96bd292fdd5238a2c080e5f2d1a1535c">IO::FD</a>(<a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#afcf80a6d91178952d107ad00b165752b">STDIN_FILENO</a>, <span class="keyword">false</span>);</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span> </div><div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="structmesos_1_1slave_1_1ContainerIO.html#a0de456b091225ae112d9799652d990ed"> 136</a></span>  <a class="code" href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html">IO</a> <a class="code" href="structmesos_1_1slave_1_1ContainerIO.html#a0de456b091225ae112d9799652d990ed">out</a> = <a class="code" href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html#a96bd292fdd5238a2c080e5f2d1a1535c">IO::FD</a>(<a class="code" h
ref="3rdparty_2stout_2include_2stout_2windows_8hpp.html#abd165ee6474b5b75bf075842fff13a04">STDOUT_FILENO</a>, <span class="keyword">false</span>);</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span> </div><div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="structmesos_1_1slave_1_1ContainerIO.html#a3cbd98f5b391bb77ea645fdeafb605cf"> 141</a></span>  <a class="code" href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html">IO</a> <a class="code" href="structmesos_1_1slave_1_1ContainerIO.html#a3cbd98f5b391bb77ea645fdeafb605cf">err</a> = <a class="code" href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html#a96bd292fdd5238a2c080e5f2d1a1535c">IO::FD</a>(<a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ae2fe1725bb5e9823d089c46b9ed5266e">STDERR_FILENO</a>, <span class="keyword">false</span>);</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span> };</div><div class="line"><a name=
"l00143"></a><span class="lineno"> 143</span> </div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span> } <span class="comment">// namespace slave {</span></div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span> } <span class="comment">// namespace mesos {</span></div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span> </div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span> <span class="preprocessor">#endif // __MESOS_SLAVE_CONTAINERIZER_HPP__</span></div><div class="ttc" id="namespacepath_html"><div class="ttname"><a href="namespacepath.html">path</a></div><div class="ttdef"><b>Definition:</b> path.hpp:26</div></div>
+<a href="include_2mesos_2slave_2containerizer_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// or more contributor license agreements. See the NOTICE file</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// distributed with this work for additional information</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">// regarding copyright ownership. The ASF licenses this file</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// to you under the Apache License, Version 2.0 (the</span></div><div class="line"><
a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">// "License"); you may not use this file except in compliance</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// with the License. You may obtain a copy of the License at</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">//</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// Unless required by applicable law or agreed to in writing, software</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span
class="comment">// distributed under the License is distributed on an "AS IS" BASIS,</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">// See the License for the specific language governing permissions and</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// limitations under the License.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#ifndef __MESOS_SLAVE_CONTAINERIZER_HPP__</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#define __MESOS_SLAVE_CO
NTAINERIZER_HPP__</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> </div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include <string></span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <<a class="code" href="3rdparty_2libprocess_2include_2process_2shared_8hpp.html">process/shared.hpp</a>></span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <<a class="code" href="include_2process_2subprocess_8hpp.html">process/subprocess.hpp</a>></span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> </div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include
<<a class="code" href="option_8hpp.html">stout/option.hpp</a>></span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="comment">// ONLY USEFUL AFTER RUNNING PROTOC.</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include <mesos/slave/containerizer.pb.h></span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> </div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="keyword">namespace </span><a class="code" href="namespacemesos.html">mesos</a> {</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="keyword">namespace </span>slave {</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div><div class="line"><a name="l00037"></a><spa
n class="lineno"><a class="line" href="structmesos_1_1slave_1_1ContainerIO.html"> 37</a></span> <span class="keyword">struct </span><a class="code" href="structmesos_1_1slave_1_1ContainerIO.html">ContainerIO</a></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> {</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html"> 52</a></span>  <span class="keyword">class </span><a class="code" href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html">IO</a></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  {</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="keyword">public</span>:</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html#a7c8f14a0efec6a09b957d5d24b8f9e99"> 55</a></span>  <span class="keyword"
>enum class</span> <a class="code" href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html#a7c8f14a0efec6a09b957d5d24b8f9e99">Type</a></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  {</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <a class="code" href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html#a7c8f14a0efec6a09b957d5d24b8f9e99aa8fa6b553b655657f943cb8fd85859d1">FD</a>,</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <a class="code" href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html#a7c8f14a0efec6a09b957d5d24b8f9e99a5ffb5f0d0de78321df46fc7c93ca64a3">PATH</a></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  };</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span> </div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html#a34
1f45297ccb682a0c97e7f164d03a55"> 61</a></span>  <span class="keyword">static</span> <a class="code" href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html">IO</a> <a class="code" href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html#a341f45297ccb682a0c97e7f164d03a55">PATH</a>(<span class="keyword">const</span> std::string& <a class="code" href="namespacepath.html">path</a>)</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  {</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="keywordflow">return</span> <a class="code" href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html">IO</a>(<a class="code" href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html#a7c8f14a0efec6a09b957d5d24b8f9e99a5ffb5f0d0de78321df46fc7c93ca64a3">Type::PATH</a>, path);</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  }</div><div class="line"><a name="l00065"></a><span class="lineno"> 6
5</span> </div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html#a96bd292fdd5238a2c080e5f2d1a1535c"> 66</a></span>  <span class="keyword">static</span> <a class="code" href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html">IO</a> <a class="code" href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html#a96bd292fdd5238a2c080e5f2d1a1535c">FD</a>(<a class="code" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> fd, <span class="keywordtype">bool</span> closeOnDestruction = <span class="keyword">true</span>)</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  {</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <span class="keywordflow">return</span> <a class="code" href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html">IO</a>(<a class="code" href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html#a7c8f14a0efec6a09b95
7d5d24b8f9e99aa8fa6b553b655657f943cb8fd85859d1">Type::FD</a>, fd, closeOnDestruction);</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  }</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span> </div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html#a9385d497de23bc65844d6701627ab5b0"> 71</a></span>  <span class="keyword">operator</span> <a class="code" href="classprocess_1_1Subprocess_1_1IO.html">process::Subprocess::IO</a> ()<span class="keyword"> const</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <span class="keywordflow">switch</span> (type_) {</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="keywordflow">case
</span> <a class="code" href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html#a7c8f14a0efec6a09b957d5d24b8f9e99aa8fa6b553b655657f943cb8fd85859d1">Type::FD</a>:</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <span class="keywordflow">return</span> <a class="code" href="classprocess_1_1Subprocess.html#aaa6e1b76ef54ed6db34d595811122ce0">process::Subprocess::FD</a>(*fd_);</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <span class="keywordflow">case</span> <a class="code" href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html#a7c8f14a0efec6a09b957d5d24b8f9e99a5ffb5f0d0de78321df46fc7c93ca64a3">Type::PATH</a>:</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="keywordflow">return</span> <a class="code" href="classprocess_1_1Subprocess.html#a54793e9c516257d68776f63f0872c3c7">process::Subprocess::PATH</a>(path_.get());</div><div class="line"><a name="l00
078"></a><span class="lineno"> 78</span>  <span class="keywordflow">default</span>:</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <a class="code" href="unreachable_8hpp.html#a0bc63b24b654ca433be7b97a3edde132">UNREACHABLE</a>();</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  }</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  }</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span> </div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <span class="keyword">private</span>:</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <span class="comment">// A simple abstraction to wrap an FD and (optionally) close it</span></div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="comment">// on destruction. We know that
we never copy instances of this</span></div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <span class="comment">// class once they are instantiated, so it's OK to call</span></div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="comment">// `close()` in the destructor since only one reference will</span></div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <span class="comment">// ever exist to it.</span></div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <span class="keyword">class </span>FDWrapper</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  {</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <span class="keyword">public</span>:</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  FDWrapper(<a class="code" href="in
t__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> _fd, <span class="keywordtype">bool</span> _closeOnDestruction)</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  : fd(_fd), closeOnDestruction(_closeOnDestruction) {}</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span> </div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  ~FDWrapper() {</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  CHECK(fd >= 0);</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <span class="keywordflow">if</span> (closeOnDestruction) {</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  close(fd);</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  }</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>
0; }</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span> </div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <span class="keyword">operator</span> <a class="code" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> fd; }</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span> </div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <span class="keyword">private</span>:</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  FDWrapper(<span class="keyword">const</span> FDWrapper& fd) = <span class="keyword">delete</span>;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span> </div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <a class="code" href="int__fd_8
hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> fd;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <span class="keywordtype">bool</span> closeOnDestruction;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  };</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span> </div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <a class="code" href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html">IO</a>(<a class="code" href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html#a7c8f14a0efec6a09b957d5d24b8f9e99">Type</a> _type, <a class="code" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> _fd, <span class="keywordtype">bool</span> closeOnDestruction)</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  : type_(_type),</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>
0; fd_(<span class="keyword">new</span> FDWrapper(_fd, closeOnDestruction)),</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  path_(<a class="code" href="structNone.html">None</a>()) {}</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span> </div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <a class="code" href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html">IO</a>(<a class="code" href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html#a7c8f14a0efec6a09b957d5d24b8f9e99">Type</a> _type, <span class="keyword">const</span> std::string& _path)</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  : type_(_type),</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  fd_(),</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  path_(_path) {}</div><div class="line"><a n
ame="l00120"></a><span class="lineno"> 120</span> </div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <a class="code" href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html#a7c8f14a0efec6a09b957d5d24b8f9e99">Type</a> type_;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <a class="code" href="classprocess_1_1Shared.html">process::Shared<FDWrapper></a> fd_;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <a class="code" href="classOption.html">Option<std::string></a> path_;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  };</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span> </div><div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="structmesos_1_1slave_1_1ContainerIO.html#a71d1190a036c7e3d2af3fcee95e8d2c8"> 130</a></span>  <a class="code" href="classmeso
s_1_1slave_1_1ContainerIO_1_1IO.html">IO</a> <a class="code" href="structmesos_1_1slave_1_1ContainerIO.html#a71d1190a036c7e3d2af3fcee95e8d2c8">in</a> = <a class="code" href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html#a96bd292fdd5238a2c080e5f2d1a1535c">IO::FD</a>(<a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#afcf80a6d91178952d107ad00b165752b">STDIN_FILENO</a>, <span class="keyword">false</span>);</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span> </div><div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="structmesos_1_1slave_1_1ContainerIO.html#a0de456b091225ae112d9799652d990ed"> 136</a></span>  <a class="code" href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html">IO</a> <a class="code" href="structmesos_1_1slave_1_1ContainerIO.html#a0de456b091225ae112d9799652d990ed">out</a> = <a class="code" href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html#a96bd292fdd5238a2c080e5f2d1a1535c">IO::FD</a>
(<a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#abd165ee6474b5b75bf075842fff13a04">STDOUT_FILENO</a>, <span class="keyword">false</span>);</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span> </div><div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="structmesos_1_1slave_1_1ContainerIO.html#a3cbd98f5b391bb77ea645fdeafb605cf"> 141</a></span>  <a class="code" href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html">IO</a> <a class="code" href="structmesos_1_1slave_1_1ContainerIO.html#a3cbd98f5b391bb77ea645fdeafb605cf">err</a> = <a class="code" href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html#a96bd292fdd5238a2c080e5f2d1a1535c">IO::FD</a>(<a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ae2fe1725bb5e9823d089c46b9ed5266e">STDERR_FILENO</a>, <span class="keyword">false</span>);</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span> };</div><div cla
ss="line"><a name="l00143"></a><span class="lineno"> 143</span> </div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span> } <span class="comment">// namespace slave {</span></div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span> } <span class="comment">// namespace mesos {</span></div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span> </div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span> <span class="preprocessor">#endif // __MESOS_SLAVE_CONTAINERIZER_HPP__</span></div><div class="ttc" id="namespacepath_html"><div class="ttname"><a href="namespacepath.html">path</a></div><div class="ttdef"><b>Definition:</b> path.hpp:26</div></div>
<div class="ttc" id="classOption_html"><div class="ttname"><a href="classOption.html">Option< std::string ></a></div></div>
-<div class="ttc" id="subprocess_8hpp_html"><div class="ttname"><a href="subprocess_8hpp.html">subprocess.hpp</a></div></div>
<div class="ttc" id="classmesos_1_1slave_1_1ContainerIO_1_1IO_html"><div class="ttname"><a href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html">mesos::slave::ContainerIO::IO</a></div><div class="ttdoc">Describes how the containerizer redirects I/O for stdin/stdout/stderr of a container. </div><div class="ttdef"><b>Definition:</b> containerizer.hpp:52</div></div>
+<div class="ttc" id="include_2process_2subprocess_8hpp_html"><div class="ttname"><a href="include_2process_2subprocess_8hpp.html">subprocess.hpp</a></div></div>
<div class="ttc" id="classprocess_1_1Subprocess_html_a54793e9c516257d68776f63f0872c3c7"><div class="ttname"><a href="classprocess_1_1Subprocess.html#a54793e9c516257d68776f63f0872c3c7">process::Subprocess::PATH</a></div><div class="ttdeci">static IO PATH(const std::string &path)</div></div>
<div class="ttc" id="structmesos_1_1slave_1_1ContainerIO_html"><div class="ttname"><a href="structmesos_1_1slave_1_1ContainerIO.html">mesos::slave::ContainerIO</a></div><div class="ttdoc">An abstraction around the IO classes used to redirect stdin/stdout/stderr to/from a container by the ...</div><div class="ttdef"><b>Definition:</b> containerizer.hpp:37</div></div>
<div class="ttc" id="classmesos_1_1slave_1_1ContainerIO_1_1IO_html_a96bd292fdd5238a2c080e5f2d1a1535c"><div class="ttname"><a href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html#a96bd292fdd5238a2c080e5f2d1a1535c">mesos::slave::ContainerIO::IO::FD</a></div><div class="ttdeci">static IO FD(int_fd fd, bool closeOnDestruction=true)</div><div class="ttdef"><b>Definition:</b> containerizer.hpp:66</div></div>
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/include_2process_2subprocess_8hpp.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/include_2process_2subprocess_8hpp.html b/content/api/latest/c++/include_2process_2subprocess_8hpp.html
new file mode 100644
index 0000000..be0f670
--- /dev/null
+++ b/content/api/latest/c++/include_2process_2subprocess_8hpp.html
@@ -0,0 +1,125 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.11"/>
+<title>Apache Mesos: 3rdparty/libprocess/include/process/subprocess.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">Apache Mesos
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="pages.html"><span>Related Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li><a href="examples.html"><span>Examples</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ <li><a href="globals.html"><span>File Members</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_8cab8f464681f7cc51cee77e79a434cd.html">3rdparty</a></li><li class="navelem"><a class="el" href="dir_043a76de98701f9bddf61b5e98f305ff.html">libprocess</a></li><li class="navelem"><a class="el" href="dir_eac18f7a64f6f8afbd1493ef4e09abdb.html">include</a></li><li class="navelem"><a class="el" href="dir_1894286df79cf582d947dbc4268b06cf.html">process</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> |
+<a href="#namespaces">Namespaces</a> |
+<a href="#typedef-members">Typedefs</a> |
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">subprocess.hpp File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include <map></code><br />
+<code>#include <memory></code><br />
+<code>#include <string></code><br />
+<code>#include <vector></code><br />
+<code>#include <<a class="el" href="future_8hpp_source.html">process/future.hpp</a>></code><br />
+<code>#include <<a class="el" href="3rdparty_2stout_2include_2stout_2flags_8hpp_source.html">stout/flags.hpp</a>></code><br />
+<code>#include <<a class="el" href="lambda_8hpp_source.html">stout/lambda.hpp</a>></code><br />
+<code>#include <<a class="el" href="none_8hpp_source.html">stout/none.hpp</a>></code><br />
+<code>#include <<a class="el" href="option_8hpp_source.html">stout/option.hpp</a>></code><br />
+<code>#include <<a class="el" href="try_8hpp_source.html">stout/try.hpp</a>></code><br />
+<code>#include <<a class="el" href="shell_8hpp_source.html">stout/os/shell.hpp</a>></code><br />
+<code>#include <<a class="el" href="int__fd_8hpp_source.html">stout/os/int_fd.hpp</a>></code><br />
+</div>
+<p><a href="include_2process_2subprocess_8hpp_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classprocess_1_1Subprocess.html">process::Subprocess</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Represents a fork() exec()ed subprocess. <a href="classprocess_1_1Subprocess.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classprocess_1_1Subprocess_1_1IO.html">process::Subprocess::IO</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Describes how the I/O is redirected for stdin/stdout/stderr. <a href="classprocess_1_1Subprocess_1_1IO.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors.html">process::Subprocess::IO::InputFileDescriptors</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">For input file descriptors a child reads from the <code>read</code> file descriptor and a parent may write to the <code>write</code> file descriptor if one is present. <a href="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html">process::Subprocess::IO::OutputFileDescriptors</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">For output file descriptors a child writes to the <code>write</code> file descriptor and a parent may read from the <code>read</code> file descriptor if one is present. <a href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structprocess_1_1Subprocess_1_1ParentHook.html">process::Subprocess::ParentHook</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">A hook can be passed to a <code>subprocess</code> call. <a href="structprocess_1_1Subprocess_1_1ParentHook.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classprocess_1_1Subprocess_1_1ChildHook.html">process::Subprocess::ChildHook</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">A <code><a class="el" href="classprocess_1_1Subprocess_1_1ChildHook.html" title="A ChildHook can be passed to a subprocess call. ">ChildHook</a></code> can be passed to a <code>subprocess</code> call. <a href="classprocess_1_1Subprocess_1_1ChildHook.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceprocess"><td class="memItemLeft" align="right" valign="top">  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceprocess.html">process</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:afc6611c4913642642277b44447a16e55"><td class="memItemLeft" align="right" valign="top">using </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceprocess.html#afc6611c4913642642277b44447a16e55">process::InputFileDescriptors</a> = Subprocess::IO::InputFileDescriptors</td></tr>
+<tr class="separator:afc6611c4913642642277b44447a16e55"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a882829822afa4f33b90aafc9c4ffa9af"><td class="memItemLeft" align="right" valign="top">using </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceprocess.html#a882829822afa4f33b90aafc9c4ffa9af">process::OutputFileDescriptors</a> = Subprocess::IO::OutputFileDescriptors</td></tr>
+<tr class="separator:a882829822afa4f33b90aafc9c4ffa9af"><td class="memSeparator" colspan="2"> </td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a2d7e0a283bc0c9eca8a8b0532e026269"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classTry.html">Try</a>< Subprocess > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceprocess.html#a2d7e0a283bc0c9eca8a8b0532e026269">process::subprocess</a> (const std::string &path, std::vector< std::string > argv, const Subprocess::IO &in=Subprocess::FD(<a class="el" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#afcf80a6d91178952d107ad00b165752b">STDIN_FILENO</a>), const Subprocess::IO &out=Subprocess::FD(<a class="el" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#abd165ee6474b5b75bf075842fff13a04">STDOUT_FILENO</a>), const Subprocess::IO &err=Subprocess::FD(<a class="el" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ae2fe1725bb5e9823d089c46b9ed5266e">STDERR_FILENO</a>), const <a class="el" href="classflags_1_1FlagsBase.html">flags::FlagsBase</a> *<a class="el" href=
"decoder_8hpp.html#abb0829cce9dd20a40ae0d86890ae85c6">flags</a>=nullptr, const <a class="el" href="classOption.html">Option</a>< std::map< std::string, std::string >> &environment=<a class="el" href="structNone.html">None</a>(), const <a class="el" href="classOption.html">Option</a>< lambda::function< <a class="el" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ab03ced250ed239bc3b50b669493997f9">pid_t</a>(const lambda::function< int()> &)>> &clone=<a class="el" href="structNone.html">None</a>(), const std::vector< Subprocess::ParentHook > &parent_hooks={}, const std::vector< Subprocess::ChildHook > &child_hooks={}, const std::vector< <a class="el" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> > &whitelist_fds={})</td></tr>
+<tr class="memdesc:a2d7e0a283bc0c9eca8a8b0532e026269"><td class="mdescLeft"> </td><td class="mdescRight">Forks a subprocess and execs the specified 'path' with the specified 'argv', redirecting stdin, stdout, and stderr as specified by 'in', 'out', and 'err' respectively. <a href="namespaceprocess.html#a2d7e0a283bc0c9eca8a8b0532e026269">More...</a><br /></td></tr>
+<tr class="separator:a2d7e0a283bc0c9eca8a8b0532e026269"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a0a748c548ad3a094196c98f00f9674cf"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classTry.html">Try</a>< Subprocess > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceprocess.html#a0a748c548ad3a094196c98f00f9674cf">process::subprocess</a> (const std::string &command, const Subprocess::IO &in=Subprocess::FD(<a class="el" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#afcf80a6d91178952d107ad00b165752b">STDIN_FILENO</a>), const Subprocess::IO &out=Subprocess::FD(<a class="el" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#abd165ee6474b5b75bf075842fff13a04">STDOUT_FILENO</a>), const Subprocess::IO &err=Subprocess::FD(<a class="el" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ae2fe1725bb5e9823d089c46b9ed5266e">STDERR_FILENO</a>), const <a class="el" href="classOption.html">Option</a>< std::map< std::string, std::string >> &environment=<a class="
el" href="structNone.html">None</a>(), const <a class="el" href="classOption.html">Option</a>< lambda::function< <a class="el" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ab03ced250ed239bc3b50b669493997f9">pid_t</a>(const lambda::function< int()> &)>> &clone=<a class="el" href="structNone.html">None</a>(), const std::vector< Subprocess::ParentHook > &parent_hooks={}, const std::vector< Subprocess::ChildHook > &child_hooks={}, const std::vector< <a class="el" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> > &whitelist_fds={})</td></tr>
+<tr class="memdesc:a0a748c548ad3a094196c98f00f9674cf"><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="structOverload.html">Overload</a> of 'subprocess' for launching a shell command, i.e., 'sh -c command'. <a href="namespaceprocess.html#a0a748c548ad3a094196c98f00f9674cf">More...</a><br /></td></tr>
+<tr class="separator:a0a748c548ad3a094196c98f00f9674cf"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.11
+</small></address>
+</body>
+</html>
[06/50] mesos-site git commit: Updated the website built from mesos
SHA: 7c9c72d.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/v1_2scheduler_8hpp_source.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/v1_2scheduler_8hpp_source.html b/content/api/latest/c++/v1_2scheduler_8hpp_source.html
index 9688015..cff2952 100644
--- a/content/api/latest/c++/v1_2scheduler_8hpp_source.html
+++ b/content/api/latest/c++/v1_2scheduler_8hpp_source.html
@@ -52,14 +52,13 @@
<div class="title">scheduler.hpp</div> </div>
</div><!--header-->
<div class="contents">
-<a href="v1_2scheduler_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// or more contributor license agreements. See the NOTICE file</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// distributed with this work for additional information</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">// regarding copyright ownership. The ASF licenses this file</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00006"></a><sp
an class="lineno"> 6</span> <span class="comment">// "License"); you may not use this file except in compliance</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// with the License. You may obtain a copy of the License at</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">//</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// Unless required by applicable law or agreed to in writing, software</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment">// dis
tributed under the License is distributed on an "AS IS" BASIS,</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">// See the License for the specific language governing permissions and</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// limitations under the License.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#ifndef __MESOS_V1_SCHEDULER_HPP__</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#define __MESOS_V1_SCHEDULER_HPP__</span></div><div cl
ass="line"><a name="l00019"></a><span class="lineno"> 19</span> </div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include <functional></span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <memory></span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <queue></span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <string></span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> </div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <<a class="code" href="include_2mesos_2http_8hpp.html">mesos/http.hpp</a>></span></div><div class="line"><a name="l00026"></a><span class="lineno">
26</span> </div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <<a class="code" href="include_2mesos_2v1_2mesos_8hpp.html">mesos/v1/mesos.hpp</a>></span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> </div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include <<a class="code" href="v1_2scheduler_2scheduler_8hpp.html">mesos/v1/scheduler/scheduler.hpp</a>></span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> </div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include <<a class="code" href="future_8hpp.html">process/future.hpp</a>></span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <sp
an class="preprocessor">#include <<a class="code" href="option_8hpp.html">stout/option.hpp</a>></span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="keyword">namespace </span><a class="code" href="namespacemesos.html">mesos</a> {</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> </div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="keyword">namespace </span><a class="code" href="namespacemesos_1_1v1_1_1master.html">master</a> {</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="keyword">namespace </span>detector {</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="keyword">class </span>MasterDetector;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> 
;} <span class="comment">// namespace detector {</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> } <span class="comment">// namespace master {</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="keyword">namespace </span>v1 {</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="keyword">namespace </span>scheduler {</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="keyword">class </span>MesosProcess; <span class="comment">// Forward declaration.</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="comment">//
Abstract interface for connecting a scheduler to Mesos.</span></div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="classmesos_1_1v1_1_1scheduler_1_1MesosBase.html"> 49</a></span> <span class="keyword">class </span><a class="code" href="classmesos_1_1v1_1_1scheduler_1_1MesosBase.html">MesosBase</a></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> {</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <span class="comment">// Empty virtual destructor (necessary to instantiate subclasses).</span></div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="classmesos_1_1v1_1_1scheduler_1_1MesosBase.html#ae3ae5afeb5f3dbe81fb1f68107e2c361"> 53</a></span>  <span class="keyword">virtual</span> <a class="code" href="classmesos_1_1v1
_1_1scheduler_1_1MesosBase.html#ae3ae5afeb5f3dbe81fb1f68107e2c361">~MesosBase</a>() {}</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="namespacenet.html#aa0a46766b4aca53ea50e1921567ddb40">send</a>(<span class="keyword">const</span> <a class="code" href="namespacemesos_1_1internal_1_1tests_1_1v1_1_1scheduler.html#acb18ceaa5f6f2338f2a9727af398eb79">Call</a>& call) = 0;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="keyword">virtual</span> <a class="code" href="classprocess_1_1Future.html">process::Future<APIResult></a> call(<span class="keyword">const</span> <a class="code" href="namespacemesos_1_1internal_1_1tests_1_1v1_1_1scheduler.html#acb18ceaa5f6f2338f2a9727af398eb79">Call</a>& callMessage) = 0;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <span
class="keyword">virtual</span> <span class="keywordtype">void</span> reconnect() = 0;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span> };</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span> </div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="comment">// Concrete implementation that connects a scheduler to a Mesos master.</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="comment">// Abstracts master detection (connection and disconnection).</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="comment">//</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="comment">// Expects three callbacks, 'connected', 'disconnected', and</
span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="comment">// 'received' which will get invoked _serially_ when it's determined</span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="comment">// that we've connected (i.e., detected master), disconnected</span></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="comment">// (i.e, detected no master), or received events from the master.</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="comment">// The library reconnects with the master upon a disconnection.</span></div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="comment">//</span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="comment">// NOTE: All calls and events are dropped whil
e disconnected.</span></div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="classmesos_1_1v1_1_1scheduler_1_1Mesos.html"> 70</a></span> <span class="keyword">class </span><a class="code" href="classmesos_1_1v1_1_1scheduler_1_1Mesos.html">Mesos</a> : <span class="keyword">public</span> <a class="code" href="classmesos_1_1v1_1_1scheduler_1_1MesosBase.html">MesosBase</a></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span> {</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <span class="comment">// The credential will be used for authenticating with the master. Currently,</span></div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="comment">// only HTTP basic authentication is supported.</span></div><div class="line"><a
name="l00075"></a><span class="lineno"> 75</span>  <a class="code" href="namespacemesos_1_1internal_1_1tests_1_1v1_1_1scheduler.html#ab87ee31e10bdc282bae31a2c973602df">Mesos</a>(<span class="keyword">const</span> std::string& <a class="code" href="namespacemesos_1_1v1_1_1master.html">master</a>,</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <a class="code" href="namespacemesos.html#a13035ce0cc66cca4a467787b4716039e">ContentType</a> contentType,</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="keyword">const</span> std::function<<span class="keywordtype">void</span>()>& connected,</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <span class="keyword">const</span> std::function<<span class="keywordtype">void</span>()>& disconnected,</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span> 
; <span class="keyword">const</span> std::function<<span class="keywordtype">void</span>(<span class="keyword">const</span> std::queue<Event>&)>& received,</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<Credential></a>& credential);</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span> </div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <span class="comment">// Delete copy constructor.</span></div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <a class="code" href="namespacemesos_1_1internal_1_1tests_1_1v1_1_1scheduler.html#ab87ee31e10bdc282bae31a2c973602df">Mesos</a>(<span class="keyword">const</span> <a class="code" href="classmesos_1_1v1_1_1scheduler_1_1Mesos.html">Mesos</a>& other) = <span class="keyword">delete</span>;<
/div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span> </div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="comment">// Delete assignment operator.</span></div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <a class="code" href="classmesos_1_1v1_1_1scheduler_1_1Mesos.html">Mesos</a>& operator=(<span class="keyword">const</span> <a class="code" href="classmesos_1_1v1_1_1scheduler_1_1Mesos.html">Mesos</a>& other) = <span class="keyword">delete</span>;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span> </div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <span class="keyword">virtual</span> ~<a class="code" href="classmesos_1_1v1_1_1scheduler_1_1Mesos.html">Mesos</a>();</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span> </div><div class="line"><a name="l00090"></a><span class="
lineno"> 90</span>  <span class="comment">// Attempts to send a call to the master.</span></div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <span class="comment">//</span></div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  <span class="comment">// The scheduler should only invoke this method once it has received the</span></div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <span class="comment">// 'connected' callback. Otherwise, all calls would be dropped while</span></div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <span class="comment">// disconnected.</span></div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <span class="comment">//</span></div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <span class="comment">// Some local validation of calls is performed w
hich may generate</span></div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <span class="comment">// events without ever being sent to the master. This includes when</span></div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <span class="comment">// calls are sent but no master is currently detected (i.e., we're</span></div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <span class="comment">// disconnected).</span></div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="namespacenet.html#aa0a46766b4aca53ea50e1921567ddb40">send</a>(<span class="keyword">const</span> <a class="code" href="namespacemesos_1_1internal_1_1tests_1_1v1_1_1scheduler.html#acb18ceaa5f6f2338f2a9727af398eb79">Call</a>& call) <span class="keyword">override</span>;</div><div class="l
ine"><a name="l00101"></a><span class="lineno"> 101</span> </div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <span class="comment">// Attempts to send a call to the master, returning the response.</span></div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <span class="comment">//</span></div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <span class="comment">// The scheduler should only invoke this method once it has received the</span></div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <span class="comment">// 'connected' callback. Otherwise, a `Failure` will be returned.</span></div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <span class="comment">//</span></div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <span class="comment">// Some local validation of calls i
s performed, and the request will not be</span></div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <span class="comment">// sent to the master if the validation fails.</span></div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <span class="comment">//</span></div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <span class="comment">// A `Failure` will be returned on validation failures or if an error happens</span></div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <span class="comment">// when sending the request to the master, e.g., a master disconnection, or a</span></div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <span class="comment">// deserialization error.</span></div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <span class="comment">//</span></div><div class="line"><a name
="l00114"></a><span class="lineno"> 114</span>  <span class="comment">// If it was possible to receive a response from the server, the returned</span></div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <span class="comment">// object will contain the HTTP response status code.</span></div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <span class="comment">//</span></div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <span class="comment">// There are three cases to consider depending on the HTTP response status</span></div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <span class="comment">// code:</span></div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <span class="comment">//</span></div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <span class="comment">// (1) '202 A
CCEPTED': Indicates the call was accepted for processing and</span></div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <span class="comment">// neither `APIResult::response` nor `APIResult::error` will be set.</span></div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <span class="comment">//</span></div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <span class="comment">// (2) '200 OK': Indicates the call completed successfully.</span></div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <span class="comment">// `APIResult::response` will be set if the `scheduler::Call::Type`</span></div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <span class="comment">// has a corresponding `scheduler::Response::Type`, `APIResult::error`</span></div><div class="line"><a name="l00126"></a><span class="lin
eno"> 126</span>  <span class="comment">// will not be set.</span></div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <span class="comment">//</span></div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <span class="comment">// (3) For all other HTTP status codes, the `APIResult::response` field will</span></div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <span class="comment">// not be set and the `APIResult::error` field may be set to provide more</span></div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <span class="comment">// information.</span></div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  <span class="comment">//</span></div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <span class="comment">// Note: This method cannot be used to send `SUBSCRIBE` c
alls, use `send()`</span></div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <span class="comment">// instead.</span></div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <span class="keyword">virtual</span> <a class="code" href="classprocess_1_1Future.html">process::Future<APIResult></a> call(<span class="keyword">const</span> <a class="code" href="namespacemesos_1_1internal_1_1tests_1_1v1_1_1scheduler.html#acb18ceaa5f6f2338f2a9727af398eb79">Call</a>& callMessage) <span class="keyword">override</span>;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span> </div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <span class="comment">// Force a reconnection with the master.</span></div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <span class="comment">//</span></div><div class="line"><a name="l00138"></a><span class=
"lineno"> 138</span>  <span class="comment">// In the case of a one-way network partition, the connection between the</span></div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  <span class="comment">// scheduler and master might not necessarily break. If the scheduler detects</span></div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  <span class="comment">// a partition, due to lack of `HEARTBEAT` events (e.g., 5) within a time</span></div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <span class="comment">// window, it can explicitly ask the library to force a reconnection with</span></div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <span class="comment">// the master.</span></div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <span class="comment">//</span></div><div class="line"><a name="l00144"></a><span c
lass="lineno"> 144</span>  <span class="comment">// This call would be ignored if the scheduler is already disconnected with</span></div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <span class="comment">// the master (e.g., no new master has been elected). Otherwise, the scheduler</span></div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  <span class="comment">// would get a 'disconnected' callback followed by a 'connected' callback.</span></div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> reconnect() <span class="keyword">override</span>;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span> </div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span> <span class="keyword">protected</span>:</div><div class="line"><a name="l00150"></
a><span class="lineno"> 150</span>  <span class="comment">// NOTE: This constructor is used for testing.</span></div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <a class="code" href="namespacemesos_1_1internal_1_1tests_1_1v1_1_1scheduler.html#ab87ee31e10bdc282bae31a2c973602df">Mesos</a>(</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  <span class="keyword">const</span> std::string& master,</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <a class="code" href="namespacemesos.html#a13035ce0cc66cca4a467787b4716039e">ContentType</a> contentType,</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  <span class="keyword">const</span> std::function<<span class="keywordtype">void</span>()>& connected,</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <span class="keyword">const</sp
an> std::function<<span class="keywordtype">void</span>()>& disconnected,</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <span class="keyword">const</span> std::function<<span class="keywordtype">void</span>(<span class="keyword">const</span> std::queue<Event>&)>& received,</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<Credential></a>& credential,</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option</a><std::shared_ptr<mesos::master::detector::MasterDetector>>&</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  detector);</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span> </div
><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  <span class="comment">// Stops the library so that:</span></div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  <span class="comment">// - No more calls can be sent to the master.</span></div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  <span class="comment">// - No more callbacks can be made to the scheduler. In some cases, there</span></div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  <span class="comment">// may be one additional callback if the library was in the middle of</span></div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <span class="comment">// processing an event.</span></div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <span class="comment">//</span></div><div class="line"><a name="l00167"></a><span class="l
ineno"> 167</span>  <span class="comment">// NOTE: This is used for testing.</span></div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> stop();</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span> </div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  MesosProcess* <a class="code" href="namespaceos.html#ae19e4161a51b86a1f330f3bf1dc75389">process</a>;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span> };</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span> </div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span> } <span class="comment">// namespace scheduler {</span></div><div class="line"><a name="l00175
"></a><span class="lineno"> 175</span> } <span class="comment">// namespace v1 {</span></div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span> } <span class="comment">// namespace mesos {</span></div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span> </div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span> <span class="preprocessor">#endif // __MESOS_V1_SCHEDULER_HPP__</span></div><div class="ttc" id="include_2mesos_2http_8hpp_html"><div class="ttname"><a href="include_2mesos_2http_8hpp.html">http.hpp</a></div></div>
+<a href="v1_2scheduler_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// or more contributor license agreements. See the NOTICE file</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// distributed with this work for additional information</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">// regarding copyright ownership. The ASF licenses this file</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00006"></a><sp
an class="lineno"> 6</span> <span class="comment">// "License"); you may not use this file except in compliance</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// with the License. You may obtain a copy of the License at</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">//</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// Unless required by applicable law or agreed to in writing, software</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment">// dis
tributed under the License is distributed on an "AS IS" BASIS,</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">// See the License for the specific language governing permissions and</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// limitations under the License.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#ifndef __MESOS_V1_SCHEDULER_HPP__</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#define __MESOS_V1_SCHEDULER_HPP__</span></div><div cl
ass="line"><a name="l00019"></a><span class="lineno"> 19</span> </div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include <functional></span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <memory></span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <queue></span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <string></span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> </div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <<a class="code" href="include_2mesos_2http_8hpp.html">mesos/http.hpp</a>></span></div><div class="line"><a name="l00026"></a><span class="lineno">
26</span> </div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <<a class="code" href="include_2mesos_2v1_2mesos_8hpp.html">mesos/v1/mesos.hpp</a>></span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> </div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include <<a class="code" href="v1_2scheduler_2scheduler_8hpp.html">mesos/v1/scheduler/scheduler.hpp</a>></span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> </div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include <<a class="code" href="future_8hpp.html">process/future.hpp</a>></span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <sp
an class="preprocessor">#include <<a class="code" href="option_8hpp.html">stout/option.hpp</a>></span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="keyword">namespace </span><a class="code" href="namespacemesos.html">mesos</a> {</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> </div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="keyword">namespace </span><a class="code" href="namespacemesos_1_1v1_1_1master.html">master</a> {</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="keyword">namespace </span>detector {</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="keyword">class </span>MasterDetector;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> 
;} <span class="comment">// namespace detector {</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> } <span class="comment">// namespace master {</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="keyword">namespace </span>v1 {</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="keyword">namespace </span>scheduler {</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="keyword">class </span>MesosProcess; <span class="comment">// Forward declaration.</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="comment">//
Abstract interface for connecting a scheduler to Mesos.</span></div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="classmesos_1_1v1_1_1scheduler_1_1MesosBase.html"> 49</a></span> <span class="keyword">class </span><a class="code" href="classmesos_1_1v1_1_1scheduler_1_1MesosBase.html">MesosBase</a></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> {</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <span class="comment">// Empty virtual destructor (necessary to instantiate subclasses).</span></div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="classmesos_1_1v1_1_1scheduler_1_1MesosBase.html#ae3ae5afeb5f3dbe81fb1f68107e2c361"> 53</a></span>  <span class="keyword">virtual</span> <a class="code" href="classmesos_1_1v1
_1_1scheduler_1_1MesosBase.html#ae3ae5afeb5f3dbe81fb1f68107e2c361">~MesosBase</a>() {}</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="namespaceprocess_1_1windows.html#a04c64346155d34517acdf8b587162868">send</a>(<span class="keyword">const</span> <a class="code" href="namespacemesos_1_1internal_1_1tests_1_1v1_1_1scheduler.html#acb18ceaa5f6f2338f2a9727af398eb79">Call</a>& call) = 0;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="keyword">virtual</span> <a class="code" href="classprocess_1_1Future.html">process::Future<APIResult></a> call(<span class="keyword">const</span> <a class="code" href="namespacemesos_1_1internal_1_1tests_1_1v1_1_1scheduler.html#acb18ceaa5f6f2338f2a9727af398eb79">Call</a>& callMessage) = 0;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</spa
n>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> reconnect() = 0;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span> };</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span> </div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="comment">// Concrete implementation that connects a scheduler to a Mesos master.</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="comment">// Abstracts master detection (connection and disconnection).</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="comment">//</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="comment">// Expects three callbacks, 'connected', 'disconnec
ted', and</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="comment">// 'received' which will get invoked _serially_ when it's determined</span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="comment">// that we've connected (i.e., detected master), disconnected</span></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="comment">// (i.e, detected no master), or received events from the master.</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="comment">// The library reconnects with the master upon a disconnection.</span></div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="comment">//</span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="comment">// NOTE: All calls and events a
re dropped while disconnected.</span></div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="classmesos_1_1v1_1_1scheduler_1_1Mesos.html"> 70</a></span> <span class="keyword">class </span><a class="code" href="classmesos_1_1v1_1_1scheduler_1_1Mesos.html">Mesos</a> : <span class="keyword">public</span> <a class="code" href="classmesos_1_1v1_1_1scheduler_1_1MesosBase.html">MesosBase</a></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span> {</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <span class="comment">// The credential will be used for authenticating with the master. Currently,</span></div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="comment">// only HTTP basic authentication is supported.</span></div><div c
lass="line"><a name="l00075"></a><span class="lineno"> 75</span>  <a class="code" href="namespacemesos_1_1internal_1_1tests_1_1v1_1_1scheduler.html#ab87ee31e10bdc282bae31a2c973602df">Mesos</a>(<span class="keyword">const</span> std::string& <a class="code" href="namespacemesos_1_1v1_1_1master.html">master</a>,</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <a class="code" href="namespacemesos.html#a13035ce0cc66cca4a467787b4716039e">ContentType</a> contentType,</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="keyword">const</span> std::function<<span class="keywordtype">void</span>()>& connected,</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <span class="keyword">const</span> std::function<<span class="keywordtype">void</span>()>& disconnected,</div><div class="line"><a name="l00079"></a><span class="lineno">
79</span>  <span class="keyword">const</span> std::function<<span class="keywordtype">void</span>(<span class="keyword">const</span> std::queue<Event>&)>& received,</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<Credential></a>& credential);</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span> </div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <span class="comment">// Delete copy constructor.</span></div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <a class="code" href="namespacemesos_1_1internal_1_1tests_1_1v1_1_1scheduler.html#ab87ee31e10bdc282bae31a2c973602df">Mesos</a>(<span class="keyword">const</span> <a class="code" href="classmesos_1_1v1_1_1scheduler_1_1Mesos.html">Mesos</a>& other) = <span class="keyword">
delete</span>;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span> </div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="comment">// Delete assignment operator.</span></div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <a class="code" href="classmesos_1_1v1_1_1scheduler_1_1Mesos.html">Mesos</a>& operator=(<span class="keyword">const</span> <a class="code" href="classmesos_1_1v1_1_1scheduler_1_1Mesos.html">Mesos</a>& other) = <span class="keyword">delete</span>;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span> </div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <span class="keyword">virtual</span> ~<a class="code" href="classmesos_1_1v1_1_1scheduler_1_1Mesos.html">Mesos</a>();</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span> </div><div class="line"><a name="l00090"></
a><span class="lineno"> 90</span>  <span class="comment">// Attempts to send a call to the master.</span></div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <span class="comment">//</span></div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  <span class="comment">// The scheduler should only invoke this method once it has received the</span></div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <span class="comment">// 'connected' callback. Otherwise, all calls would be dropped while</span></div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <span class="comment">// disconnected.</span></div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <span class="comment">//</span></div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <span class="comment">// Some local validation of calls
is performed which may generate</span></div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <span class="comment">// events without ever being sent to the master. This includes when</span></div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <span class="comment">// calls are sent but no master is currently detected (i.e., we're</span></div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <span class="comment">// disconnected).</span></div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="namespaceprocess_1_1windows.html#a04c64346155d34517acdf8b587162868">send</a>(<span class="keyword">const</span> <a class="code" href="namespacemesos_1_1internal_1_1tests_1_1v1_1_1scheduler.html#acb18ceaa5f6f2338f2a9727af398eb79">Call</a>& call) <span class="keyword">overr
ide</span>;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span> </div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <span class="comment">// Attempts to send a call to the master, returning the response.</span></div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <span class="comment">//</span></div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <span class="comment">// The scheduler should only invoke this method once it has received the</span></div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <span class="comment">// 'connected' callback. Otherwise, a `Failure` will be returned.</span></div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <span class="comment">//</span></div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <span class="comment">// So
me local validation of calls is performed, and the request will not be</span></div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <span class="comment">// sent to the master if the validation fails.</span></div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <span class="comment">//</span></div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <span class="comment">// A `Failure` will be returned on validation failures or if an error happens</span></div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <span class="comment">// when sending the request to the master, e.g., a master disconnection, or a</span></div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <span class="comment">// deserialization error.</span></div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <span class="comment">//</span><
/div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <span class="comment">// If it was possible to receive a response from the server, the returned</span></div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <span class="comment">// object will contain the HTTP response status code.</span></div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <span class="comment">//</span></div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <span class="comment">// There are three cases to consider depending on the HTTP response status</span></div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <span class="comment">// code:</span></div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <span class="comment">//</span></div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <span clas
s="comment">// (1) '202 ACCEPTED': Indicates the call was accepted for processing and</span></div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <span class="comment">// neither `APIResult::response` nor `APIResult::error` will be set.</span></div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <span class="comment">//</span></div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <span class="comment">// (2) '200 OK': Indicates the call completed successfully.</span></div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <span class="comment">// `APIResult::response` will be set if the `scheduler::Call::Type`</span></div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <span class="comment">// has a corresponding `scheduler::Response::Type`, `APIResult::error`</span></div><div class="line"><a name
="l00126"></a><span class="lineno"> 126</span>  <span class="comment">// will not be set.</span></div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <span class="comment">//</span></div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <span class="comment">// (3) For all other HTTP status codes, the `APIResult::response` field will</span></div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <span class="comment">// not be set and the `APIResult::error` field may be set to provide more</span></div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <span class="comment">// information.</span></div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  <span class="comment">//</span></div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <span class="comment">// Note: This method cannot
be used to send `SUBSCRIBE` calls, use `send()`</span></div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <span class="comment">// instead.</span></div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <span class="keyword">virtual</span> <a class="code" href="classprocess_1_1Future.html">process::Future<APIResult></a> call(<span class="keyword">const</span> <a class="code" href="namespacemesos_1_1internal_1_1tests_1_1v1_1_1scheduler.html#acb18ceaa5f6f2338f2a9727af398eb79">Call</a>& callMessage) <span class="keyword">override</span>;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span> </div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <span class="comment">// Force a reconnection with the master.</span></div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <span class="comment">//</span></div><div class="line"><a
name="l00138"></a><span class="lineno"> 138</span>  <span class="comment">// In the case of a one-way network partition, the connection between the</span></div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  <span class="comment">// scheduler and master might not necessarily break. If the scheduler detects</span></div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  <span class="comment">// a partition, due to lack of `HEARTBEAT` events (e.g., 5) within a time</span></div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <span class="comment">// window, it can explicitly ask the library to force a reconnection with</span></div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <span class="comment">// the master.</span></div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <span class="comment">//</span></div><div class="line
"><a name="l00144"></a><span class="lineno"> 144</span>  <span class="comment">// This call would be ignored if the scheduler is already disconnected with</span></div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <span class="comment">// the master (e.g., no new master has been elected). Otherwise, the scheduler</span></div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  <span class="comment">// would get a 'disconnected' callback followed by a 'connected' callback.</span></div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> reconnect() <span class="keyword">override</span>;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span> </div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span> <span class="keyword">protected</span>:</div><div cl
ass="line"><a name="l00150"></a><span class="lineno"> 150</span>  <span class="comment">// NOTE: This constructor is used for testing.</span></div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <a class="code" href="namespacemesos_1_1internal_1_1tests_1_1v1_1_1scheduler.html#ab87ee31e10bdc282bae31a2c973602df">Mesos</a>(</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  <span class="keyword">const</span> std::string& master,</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <a class="code" href="namespacemesos.html#a13035ce0cc66cca4a467787b4716039e">ContentType</a> contentType,</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  <span class="keyword">const</span> std::function<<span class="keywordtype">void</span>()>& connected,</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <
span class="keyword">const</span> std::function<<span class="keywordtype">void</span>()>& disconnected,</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <span class="keyword">const</span> std::function<<span class="keywordtype">void</span>(<span class="keyword">const</span> std::queue<Event>&)>& received,</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<Credential></a>& credential,</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option</a><std::shared_ptr<mesos::master::detector::MasterDetector>>&</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  detector);</div><div class="line"><a name="l00160"></a><span class="l
ineno"> 160</span> </div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  <span class="comment">// Stops the library so that:</span></div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  <span class="comment">// - No more calls can be sent to the master.</span></div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  <span class="comment">// - No more callbacks can be made to the scheduler. In some cases, there</span></div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  <span class="comment">// may be one additional callback if the library was in the middle of</span></div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <span class="comment">// processing an event.</span></div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <span class="comment">//</span></div><div class="line"><a na
me="l00167"></a><span class="lineno"> 167</span>  <span class="comment">// NOTE: This is used for testing.</span></div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> stop();</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span> </div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  MesosProcess* <a class="code" href="namespaceos.html#ae19e4161a51b86a1f330f3bf1dc75389">process</a>;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span> };</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span> </div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span> } <span class="comment">// namespace scheduler {</span></div><di
v class="line"><a name="l00175"></a><span class="lineno"> 175</span> } <span class="comment">// namespace v1 {</span></div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span> } <span class="comment">// namespace mesos {</span></div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span> </div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span> <span class="preprocessor">#endif // __MESOS_V1_SCHEDULER_HPP__</span></div><div class="ttc" id="include_2mesos_2http_8hpp_html"><div class="ttname"><a href="include_2mesos_2http_8hpp.html">http.hpp</a></div></div>
<div class="ttc" id="namespacemesos_html_a13035ce0cc66cca4a467787b4716039e"><div class="ttname"><a href="namespacemesos.html#a13035ce0cc66cca4a467787b4716039e">mesos::ContentType</a></div><div class="ttdeci">ContentType</div><div class="ttdef"><b>Definition:</b> http.hpp:43</div></div>
<div class="ttc" id="classOption_html"><div class="ttname"><a href="classOption.html">Option< Credential ></a></div></div>
<div class="ttc" id="namespacemesos_1_1v1_1_1master_html"><div class="ttname"><a href="namespacemesos_1_1v1_1_1master.html">mesos::v1::master</a></div><div class="ttdef"><b>Definition:</b> master.hpp:27</div></div>
<div class="ttc" id="namespacemesos_1_1internal_1_1tests_1_1v1_1_1scheduler_html_acb18ceaa5f6f2338f2a9727af398eb79"><div class="ttname"><a href="namespacemesos_1_1internal_1_1tests_1_1v1_1_1scheduler.html#acb18ceaa5f6f2338f2a9727af398eb79">mesos::internal::tests::v1::scheduler::Call</a></div><div class="ttdeci">mesos::v1::scheduler::Call Call</div><div class="ttdef"><b>Definition:</b> mesos.hpp:2660</div></div>
<div class="ttc" id="classmesos_1_1v1_1_1scheduler_1_1Mesos_html"><div class="ttname"><a href="classmesos_1_1v1_1_1scheduler_1_1Mesos.html">mesos::v1::scheduler::Mesos</a></div><div class="ttdef"><b>Definition:</b> scheduler.hpp:70</div></div>
<div class="ttc" id="namespacemesos_1_1internal_1_1tests_1_1v1_1_1scheduler_html_ab87ee31e10bdc282bae31a2c973602df"><div class="ttname"><a href="namespacemesos_1_1internal_1_1tests_1_1v1_1_1scheduler.html#ab87ee31e10bdc282bae31a2c973602df">mesos::internal::tests::v1::scheduler::Mesos</a></div><div class="ttdeci">mesos::v1::scheduler::Mesos Mesos</div><div class="ttdef"><b>Definition:</b> mesos.hpp:2662</div></div>
-<div class="ttc" id="namespacenet_html_aa0a46766b4aca53ea50e1921567ddb40"><div class="ttname"><a href="namespacenet.html#aa0a46766b4aca53ea50e1921567ddb40">net::send</a></div><div class="ttdeci">ssize_t send(const int_fd &fd, const void *buf, size_t len, int flags)</div><div class="ttdef"><b>Definition:</b> socket.hpp:159</div></div>
<div class="ttc" id="v1_2scheduler_2scheduler_8hpp_html"><div class="ttname"><a href="v1_2scheduler_2scheduler_8hpp.html">scheduler.hpp</a></div></div>
<div class="ttc" id="namespacemesos_html"><div class="ttname"><a href="namespacemesos.html">mesos</a></div><div class="ttdef"><b>Definition:</b> spec.hpp:30</div></div>
<div class="ttc" id="option_8hpp_html"><div class="ttname"><a href="option_8hpp.html">option.hpp</a></div></div>
@@ -69,6 +68,7 @@
<div class="ttc" id="classmesos_1_1v1_1_1scheduler_1_1MesosBase_html_ae3ae5afeb5f3dbe81fb1f68107e2c361"><div class="ttname"><a href="classmesos_1_1v1_1_1scheduler_1_1MesosBase.html#ae3ae5afeb5f3dbe81fb1f68107e2c361">mesos::v1::scheduler::MesosBase::~MesosBase</a></div><div class="ttdeci">virtual ~MesosBase()</div><div class="ttdef"><b>Definition:</b> scheduler.hpp:53</div></div>
<div class="ttc" id="include_2mesos_2v1_2mesos_8hpp_html"><div class="ttname"><a href="include_2mesos_2v1_2mesos_8hpp.html">mesos.hpp</a></div></div>
<div class="ttc" id="classprocess_1_1Future_html"><div class="ttname"><a href="classprocess_1_1Future.html">process::Future</a></div><div class="ttdef"><b>Definition:</b> future.hpp:58</div></div>
+<div class="ttc" id="namespaceprocess_1_1windows_html_a04c64346155d34517acdf8b587162868"><div class="ttname"><a href="namespaceprocess_1_1windows.html#a04c64346155d34517acdf8b587162868">process::windows::send</a></div><div class="ttdeci">Future< size_t > send(const int_fd &fd, const void *buf, size_t size)</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/windows_2dup_8hpp_source.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/windows_2dup_8hpp_source.html b/content/api/latest/c++/windows_2dup_8hpp_source.html
index b052c41..f0bb793 100644
--- a/content/api/latest/c++/windows_2dup_8hpp_source.html
+++ b/content/api/latest/c++/windows_2dup_8hpp_source.html
@@ -52,7 +52,10 @@
<div class="title">dup.hpp</div> </div>
</div><!--header-->
<div class="contents">
-<a href="windows_2dup_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// Licensed under the Apache License, Version 2.0 (the "License");</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// you may not use this file except in compliance with the License.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// You may obtain a copy of the License at</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">//<
/span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// Unless required by applicable law or agreed to in writing, software</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">// distributed under the License is distributed on an "AS IS" BASIS,</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">// See the License for the specific language governing permissions and</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// limitations under the License.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> </div><div class
="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#ifndef __STOUT_OS_WINDOWS_DUP_HPP__</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#define __STOUT_OS_WINDOWS_DUP_HPP__</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include <<a class="code" href="error_8hpp.html">stout/error.hpp</a>></span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include <<a class="code" href="try_8hpp.html">stout/try.hpp</a>></span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include <<a class="code" href="unreachable_8hpp.html">stout/unreachable.hpp</a>></span></div><div class="line"><a name="l
00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include <<a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html">stout/windows.hpp</a>></span> <span class="comment">// For `WinSock2.h`.</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> </div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <<a class="code" href="int__fd_8hpp.html">stout/os/int_fd.hpp</a>></span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="keyword">namespace </span><a class="code" href="namespaceos.html">os</a> {</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> </div><div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="namespaceos.html#ac6a52f61ab8f31856757007
b4be7f5e6"> 25</a></span> <span class="keyword">inline</span> <a class="code" href="classTry.html">Try<int_fd></a> <a class="code" href="namespaceos.html#a622be738276833e635a7db06cff31a35">dup</a>(<span class="keyword">const</span> <a class="code" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a>& fd)</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> {</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  <span class="keywordflow">switch</span> (fd.type()) {</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  <span class="keywordflow">case</span> <a class="code" href="classos_1_1WindowsFD.html#ac0377db41e1c167339c97dbd69c79ae5ad09c4cb1265f1772bb757a7af277b49f">WindowsFD::Type::HANDLE</a>: {</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  <a class="code" href="namespacerouting_1_1queueing_1_1ingress.html#a9342
08b6017d0a9aed90b6594bb8292f">HANDLE</a> duplicate = INVALID_HANDLE_VALUE;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  <span class="keyword">const</span> BOOL result = ::DuplicateHandle(</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  ::GetCurrentProcess(), <span class="comment">// Source process == current.</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  fd, <span class="comment">// Handle to duplicate.</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  ::GetCurrentProcess(), <span class="comment">// Target process == current.</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  &duplicate,</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  0, <span class="comm
ent">// Ignored (DUPLICATE_SAME_ACCESS).</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  FALSE, <span class="comment">// Non-inheritable handle.</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  DUPLICATE_SAME_ACCESS); <span class="comment">// Same access level as source.</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <span class="keywordflow">if</span> (result == FALSE) {</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  <span class="keywordflow">return</span> <a class="code" href="classWindowsError.html">WindowsError</a>();</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  }</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>
0;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <span class="keywordflow">return</span> <a class="code" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a>(duplicate, fd.is_overlapped());</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  }</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <span class="keywordflow">case</span> <a class="code" href="classos_1_1WindowsFD.html#ac0377db41e1c167339c97dbd69c79ae5a75fbea08c09e684e6b3f3961761354fa">WindowsFD::Type::SOCKET</a>: {</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  WSAPROTOCOL_INFOW info;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> result =</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  ::WSADuplica
teSocketW(fd, ::GetCurrentProcessId(), &info);</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <span class="keywordflow">if</span> (result != 0) {</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <span class="keywordflow">return</span> <a class="code" href="error_8hpp.html#a176f6fc34ea37d40201853a52a475762">SocketError</a>();</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  }</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  return ::WSASocketW(0, 0, 0, &info, 0, 0);</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  }</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  }</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span> </div><div c
lass="line"><a name="l00057"></a><span class="lineno"> 57</span>  <a class="code" href="unreachable_8hpp.html#a0bc63b24b654ca433be7b97a3edde132">UNREACHABLE</a>();</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span> }</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span> } <span class="comment">// namespace os {</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="preprocessor">#endif // __STOUT_OS_WINDOWS_DUP_HPP__</span></div><div class="ttc" id="classTry_html"><div class="ttname"><a href="classTry.html">Try</a></div><div class="ttdef"><b>Definition:</b> check.hpp:33</div></div>
+<a href="windows_2dup_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// Licensed under the Apache License, Version 2.0 (the "License");</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// you may not use this file except in compliance with the License.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// You may obtain a copy of the License at</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">//<
/span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// Unless required by applicable law or agreed to in writing, software</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">// distributed under the License is distributed on an "AS IS" BASIS,</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">// See the License for the specific language governing permissions and</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// limitations under the License.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> </div><div class
="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#ifndef __STOUT_OS_WINDOWS_DUP_HPP__</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#define __STOUT_OS_WINDOWS_DUP_HPP__</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include <<a class="code" href="error_8hpp.html">stout/error.hpp</a>></span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include <<a class="code" href="try_8hpp.html">stout/try.hpp</a>></span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include <<a class="code" href="unreachable_8hpp.html">stout/unreachable.hpp</a>></span></div><div class="line"><a name="l
00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include <<a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html">stout/windows.hpp</a>></span> <span class="comment">// For `WinSock2.h`.</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> </div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <<a class="code" href="int__fd_8hpp.html">stout/os/int_fd.hpp</a>></span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="keyword">namespace </span><a class="code" href="namespaceos.html">os</a> {</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> </div><div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="namespaceos.html#ac6a52f61ab8f31856757007
b4be7f5e6"> 25</a></span> <span class="keyword">inline</span> <a class="code" href="classTry.html">Try<int_fd></a> <a class="code" href="namespaceos.html#a622be738276833e635a7db06cff31a35">dup</a>(<span class="keyword">const</span> <a class="code" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a>& fd)</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> {</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  <span class="keywordflow">switch</span> (fd.type()) {</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  <span class="keywordflow">case</span> <a class="code" href="classos_1_1WindowsFD.html#ac0377db41e1c167339c97dbd69c79ae5ad09c4cb1265f1772bb757a7af277b49f">WindowsFD::Type::HANDLE</a>: {</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  <a class="code" href="namespacerouting_1_1queueing_1_1ingress.html#a9342
08b6017d0a9aed90b6594bb8292f">HANDLE</a> duplicate = INVALID_HANDLE_VALUE;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  <span class="keyword">const</span> BOOL result = ::DuplicateHandle(</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  ::GetCurrentProcess(), <span class="comment">// Source process == current.</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  fd, <span class="comment">// Handle to duplicate.</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  ::GetCurrentProcess(), <span class="comment">// Target process == current.</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  &duplicate,</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  0, <span class="comm
ent">// Ignored (DUPLICATE_SAME_ACCESS).</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  FALSE, <span class="comment">// Non-inheritable handle.</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  DUPLICATE_SAME_ACCESS); <span class="comment">// Same access level as source.</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <span class="keywordflow">if</span> (result == FALSE) {</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  <span class="keywordflow">return</span> <a class="code" href="classWindowsError.html">WindowsError</a>();</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  }</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>
0;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <a class="code" href="classos_1_1WindowsFD.html">WindowsFD</a> dup_fd(fd);</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  dup_fd.<a class="code" href="classos_1_1WindowsFD.html#afcf316b6f5178ce1b9002c4202aebcf6">handle_</a> = duplicate;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <span class="keywordflow">return</span> dup_fd;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  }</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <span class="keywordflow">case</span> <a class="code" href="classos_1_1WindowsFD.html#ac0377db41e1c167339c97dbd69c79ae5a75fbea08c09e684e6b3f3961761354fa">WindowsFD::Type::SOCKET</a>: {</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  WSAPROTOCOL_INFOW info;</div><div class
="line"><a name="l00049"></a><span class="lineno"> 49</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> result =</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  ::WSADuplicateSocketW(fd, ::GetCurrentProcessId(), &info);</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <span class="keywordflow">if</span> (result != 0) {</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <span class="keywordflow">return</span> <a class="code" href="error_8hpp.html#a176f6fc34ea37d40201853a52a475762">SocketError</a>();</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  }</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span> </div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  SOCKET duplicate = ::WSASocketW(0, 0, 0, &info, 0, 0);</
div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <span class="keywordflow">if</span> (duplicate == INVALID_SOCKET) {</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <span class="keywordflow">return</span> <a class="code" href="classWindowsSocketError.html">WindowsSocketError</a>();</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  }</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <a class="code" href="classos_1_1WindowsFD.html">WindowsFD</a> dup_fd(fd);</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  dup_fd.<a class="code" href="classos_1_1WindowsFD.html#a05016bee9531c79ce4576c9b8d9c9922">socket_</a> = duplicate;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span> 
<span class="keywordflow">return</span> dup_fd;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  }</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  }</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span> </div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <a class="code" href="unreachable_8hpp.html#a0bc63b24b654ca433be7b97a3edde132">UNREACHABLE</a>();</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span> }</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span> </div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span> } <span class="comment">// namespace os {</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span> </div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="preprocessor">#endif // _
_STOUT_OS_WINDOWS_DUP_HPP__</span></div><div class="ttc" id="classos_1_1WindowsFD_html_a05016bee9531c79ce4576c9b8d9c9922"><div class="ttname"><a href="classos_1_1WindowsFD.html#a05016bee9531c79ce4576c9b8d9c9922">os::WindowsFD::socket_</a></div><div class="ttdeci">SOCKET socket_</div><div class="ttdef"><b>Definition:</b> fd.hpp:242</div></div>
+<div class="ttc" id="classos_1_1WindowsFD_html"><div class="ttname"><a href="classos_1_1WindowsFD.html">os::WindowsFD</a></div><div class="ttdef"><b>Definition:</b> fd.hpp:52</div></div>
+<div class="ttc" id="classTry_html"><div class="ttname"><a href="classTry.html">Try</a></div><div class="ttdef"><b>Definition:</b> check.hpp:33</div></div>
+<div class="ttc" id="classWindowsSocketError_html"><div class="ttname"><a href="classWindowsSocketError.html">WindowsSocketError</a></div><div class="ttdef"><b>Definition:</b> error.hpp:123</div></div>
<div class="ttc" id="classWindowsError_html"><div class="ttname"><a href="classWindowsError.html">WindowsError</a></div><div class="ttdef"><b>Definition:</b> error.hpp:108</div></div>
<div class="ttc" id="namespaceos_html"><div class="ttname"><a href="namespaceos.html">os</a></div><div class="ttdef"><b>Definition:</b> posix_signalhandler.hpp:23</div></div>
<div class="ttc" id="classos_1_1WindowsFD_html_ac0377db41e1c167339c97dbd69c79ae5a75fbea08c09e684e6b3f3961761354fa"><div class="ttname"><a href="classos_1_1WindowsFD.html#ac0377db41e1c167339c97dbd69c79ae5a75fbea08c09e684e6b3f3961761354fa">os::WindowsFD::Type::SOCKET</a></div></div>
@@ -67,6 +70,7 @@
<div class="ttc" id="int__fd_8hpp_html_aea4dbda01c90455f158ffa9b924c2f07"><div class="ttname"><a href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a></div><div class="ttdeci">int int_fd</div><div class="ttdef"><b>Definition:</b> int_fd.hpp:35</div></div>
<div class="ttc" id="unreachable_8hpp_html"><div class="ttname"><a href="unreachable_8hpp.html">unreachable.hpp</a></div></div>
<div class="ttc" id="namespaceos_html_a622be738276833e635a7db06cff31a35"><div class="ttname"><a href="namespaceos.html#a622be738276833e635a7db06cff31a35">os::dup</a></div><div class="ttdeci">Try< int > dup(int fd)</div><div class="ttdef"><b>Definition:</b> dup.hpp:23</div></div>
+<div class="ttc" id="classos_1_1WindowsFD_html_afcf316b6f5178ce1b9002c4202aebcf6"><div class="ttname"><a href="classos_1_1WindowsFD.html#afcf316b6f5178ce1b9002c4202aebcf6">os::WindowsFD::handle_</a></div><div class="ttdeci">HANDLE handle_</div><div class="ttdef"><b>Definition:</b> fd.hpp:241</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
[33/50] mesos-site git commit: Updated the website built from mesos
SHA: 7c9c72d.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/hierarchy.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/hierarchy.html b/content/api/latest/c++/hierarchy.html
index 7ca95af..e7eb5c3 100644
--- a/content/api/latest/c++/hierarchy.html
+++ b/content/api/latest/c++/hierarchy.html
@@ -381,1125 +381,1126 @@
<tr id="row_128_0_40_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span id="arr_128_0_40_" class="arrow" onclick="toggleFolder('128_0_40_')">►</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1Process.html" target="_self">process::Process< WhitelistWatcher ></a></td><td class="desc"></td></tr>
<tr id="row_128_0_40_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmesos_1_1internal_1_1WhitelistWatcher.html" target="_self">mesos::internal::WhitelistWatcher</a></td><td class="desc"></td></tr>
<tr id="row_129_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1EventLoop.html" target="_self">process::EventLoop</a></td><td class="desc"></td></tr>
-<tr id="row_130_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1EventQueue.html" target="_self">process::EventQueue</a></td><td class="desc"></td></tr>
-<tr id="row_131_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structprocess_1_1EventVisitor.html" target="_self">process::EventVisitor</a></td><td class="desc"></td></tr>
-<tr id="row_132_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structos_1_1Exec.html" target="_self">os::Exec</a></td><td class="desc"></td></tr>
-<tr id="row_133_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmesos_1_1internal_1_1slave_1_1Executor.html" target="_self">mesos::internal::slave::Executor</a></td><td class="desc"></td></tr>
-<tr id="row_134_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1Executor.html" target="_self">process::Executor</a></td><td class="desc"></td></tr>
-<tr id="row_135_"><td class="entry"><span style="width:0px;display:inline-block;"> </span><span id="arr_135_" class="arrow" onclick="toggleFolder('135_')">►</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmesos_1_1Executor.html" target="_self">mesos::Executor</a></td><td class="desc"></td></tr>
-<tr id="row_135_0_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmesos_1_1internal_1_1tests_1_1MockExecutor.html" target="_self">mesos::internal::tests::MockExecutor</a></td><td class="desc"></td></tr>
-<tr id="row_135_1_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmesos_1_1python_1_1ProxyExecutor.html" target="_self">mesos::python::ProxyExecutor</a></td><td class="desc">Proxy <a class="el" href="classmesos_1_1Executor.html">Executor</a> implementation that will call into Python </td></tr>
-<tr id="row_135_2_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmesos_1_1v1_1_1executor_1_1V0ToV1Adapter.html" target="_self">mesos::v1::executor::V0ToV1Adapter</a></td><td class="desc"></td></tr>
-<tr id="row_136_" class="even"><td class="entry"><span style="width:0px;display:inline-block;"> </span><span id="arr_136_" class="arrow" onclick="toggleFolder('136_')">►</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmesos_1_1ExecutorDriver.html" target="_self">mesos::ExecutorDriver</a></td><td class="desc"></td></tr>
-<tr id="row_136_0_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmesos_1_1MesosExecutorDriver.html" target="_self">mesos::MesosExecutorDriver</a></td><td class="desc"></td></tr>
-<tr id="row_137_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmesos_1_1internal_1_1slave_1_1paths_1_1ExecutorRunPath.html" target="_self">mesos::internal::slave::paths::ExecutorRunPath</a></td><td class="desc"></td></tr>
-<tr id="row_138_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmesos_1_1internal_1_1slave_1_1state_1_1ExecutorState.html" target="_self">mesos::internal::slave::state::ExecutorState</a></td><td class="desc"></td></tr>
-<tr id="row_139_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structlambda_1_1internal_1_1Expand.html" target="_self">lambda::internal::Expand< I ></a></td><td class="desc"></td></tr>
-<tr id="row_140_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structlambda_1_1internal_1_1Expand_3_010_01_4.html" target="_self">lambda::internal::Expand< 0 ></a></td><td class="desc"></td></tr>
-<tr id="row_141_"><td class="entry"><span style="width:0px;display:inline-block;"> </span><span id="arr_141_" class="arrow" onclick="toggleFolder('141_')">►</span><span class="icona"><span class="icon">C</span></span><b>F</b></td><td class="desc"></td></tr>
-<tr id="row_141_0_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structOverload.html" target="_self">Overload< F, Fs ></a></td><td class="desc"></td></tr>
-<tr id="row_141_1_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structOverload_3_01F_01_4.html" target="_self">Overload< F ></a></td><td class="desc"></td></tr>
-<tr id="row_142_" class="even"><td class="entry"><span style="width:0px;display:inline-block;"> </span><span id="arr_142_" class="arrow" onclick="toggleFolder('142_')">►</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structprocess_1_1Failure.html" target="_self">process::Failure</a></td><td class="desc"></td></tr>
-<tr id="row_142_0_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structprocess_1_1ErrnoFailure.html" target="_self">process::ErrnoFailure</a></td><td class="desc"></td></tr>
-<tr id="row_143_"><td class="entry"><span style="width:0px;display:inline-block;"> </span><span id="arr_143_" class="arrow" onclick="toggleFolder('143_')">►</span><span class="icona"><span class="icon">C</span></span><b>false_type</b></td><td class="desc"></td></tr>
-<tr id="row_143_0_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structis__specialization__of.html" target="_self">is_specialization_of< T, C ></a></td><td class="desc"></td></tr>
-<tr id="row_144_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmesos_1_1uri_1_1Fetcher.html" target="_self">mesos::uri::Fetcher</a></td><td class="desc">Provides an abstraction for fetching URIs </td></tr>
-<tr id="row_145_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmesos_1_1internal_1_1slave_1_1Fetcher.html" target="_self">mesos::internal::slave::Fetcher</a></td><td class="desc"></td></tr>
-<tr id="row_146_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmesos_1_1internal_1_1slave_1_1appc_1_1Fetcher.html" target="_self">mesos::internal::slave::appc::Fetcher</a></td><td class="desc"></td></tr>
-<tr id="row_147_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classJvm_1_1Field.html" target="_self">Jvm::Field</a></td><td class="desc"></td></tr>
-<tr id="row_148_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="clasself_1_1File.html" target="_self">elf::File</a></td><td class="desc"></td></tr>
-<tr id="row_149_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmesos_1_1internal_1_1Files.html" target="_self">mesos::internal::Files</a></td><td class="desc"></td></tr>
-<tr id="row_150_" class="even"><td class="entry"><span style="width:0px;display:inline-block;"> </span><span id="arr_150_" class="arrow" onclick="toggleFolder('150_')">►</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1Filter.html" target="_self">process::Filter</a></td><td class="desc"></td></tr>
-<tr id="row_150_0_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1MockFilter.html" target="_self">process::MockFilter</a></td><td class="desc"></td></tr>
-<tr id="row_150_1_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1TestsFilter.html" target="_self">process::TestsFilter</a></td><td class="desc"></td></tr>
-<tr id="row_151_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structrouting_1_1filter_1_1Filter.html" target="_self">routing::filter::Filter< Classifier ></a></td><td class="desc"></td></tr>
-<tr id="row_152_" class="even"><td class="entry"><span style="width:0px;display:inline-block;"> </span><span id="arr_152_" class="arrow" onclick="toggleFolder('152_')">►</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1firewall_1_1FirewallRule.html" target="_self">process::firewall::FirewallRule</a></td><td class="desc">A '<a class="el" href="classprocess_1_1firewall_1_1FirewallRule.html" title="A 'FirewallRule' describes an interface which provides control over incoming HTTP requests while also...">FirewallRule</a>' describes an interface which provides control over incoming HTTP requests while also taking the underlying connection into account </td></tr>
-<tr id="row_152_0_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1firewall_1_1DisabledEndpointsFirewallRule.html" target="_self">process::firewall::DisabledEndpointsFirewallRule</a></td><td class="desc">Simple firewall rule to forbid any HTTP request to a path in the provided list of endpoints </td></tr>
-<tr id="row_153_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structflags_1_1Flag.html" target="_self">flags::Flag</a></td><td class="desc"></td></tr>
-<tr id="row_154_" class="even"><td class="entry"><span style="width:0px;display:inline-block;"> </span><span id="arr_154_" class="arrow" onclick="toggleFolder('154_')">►</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classflags_1_1FlagsBase.html" target="_self">flags::FlagsBase</a></td><td class="desc"></td></tr>
-<tr id="row_154_0_" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span id="arr_154_0_" class="arrow" onclick="toggleFolder('154_0_')">►</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmesos_1_1internal_1_1logger_1_1LoggerFlags.html" target="_self">mesos::internal::logger::LoggerFlags</a></td><td class="desc"></td></tr>
-<tr id="row_154_0_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmesos_1_1internal_1_1logger_1_1Flags.html" target="_self">mesos::internal::logger::Flags</a></td><td class="desc"></td></tr>
-<tr id="row_154_1_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmesos_1_1internal_1_1logger_1_1rotate_1_1Flags.html" target="_self">mesos::internal::logger::rotate::Flags</a></td><td class="desc"></td></tr>
-<tr id="row_154_2_" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span id="arr_154_2_" class="arrow" onclick="toggleFolder('154_2_')">►</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmesos_1_1internal_1_1logging_1_1Flags.html" target="_self">mesos::internal::logging::Flags</a></td><td class="desc"></td></tr>
-<tr id="row_154_2_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmesos_1_1internal_1_1docker_1_1Flags.html" target="_self">mesos::internal::docker::Flags</a></td><td class="desc"></td></tr>
-<tr id="row_154_2_1_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmesos_1_1internal_1_1examples_1_1Flags.html" target="_self">mesos::internal::examples::Flags</a></td><td class="desc"></td></tr>
-<tr id="row_154_2_2_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span id="arr_154_2_2_" class="arrow" onclick="toggleFolder('154_2_2_')">►</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmesos_1_1internal_1_1local_1_1Flags.html" target="_self">mesos::internal::local::Flags</a></td><td class="desc"></td></tr>
-<tr id="row_154_2_2_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmesos_1_1v1_1_1scheduler_1_1Flags.html" target="_self">mesos::v1::scheduler::Flags</a></td><td class="desc"></td></tr>
-<tr id="row_154_2_3_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmesos_1_1internal_1_1log_1_1tool_1_1Benchmark_1_1Flags.html" target="_self">mesos::internal::log::tool::Benchmark::Flags</a></td><td class="desc"></td></tr>
-<tr id="row_154_2_4_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmesos_1_1internal_1_1log_1_1tool_1_1Initialize_1_1Flags.html" target="_self">mesos::internal::log::tool::Initialize::Flags</a></td><td class="desc"></td></tr>
-<tr id="row_154_2_5_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmesos_1_1internal_1_1log_1_1tool_1_1Read_1_1Flags.html" target="_self">mesos::internal::log::tool::Read::Flags</a></td><td class="desc"></td></tr>
-<tr id="row_154_2_6_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmesos_1_1internal_1_1log_1_1tool_1_1Replica_1_1Flags.html" target="_self">mesos::internal::log::tool::Replica::Flags</a></td><td class="desc"></td></tr>
-<tr id="row_154_2_7_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmesos_1_1internal_1_1master_1_1Flags.html" target="_self">mesos::internal::master::Flags</a></td><td class="desc"></td></tr>
-<tr id="row_154_2_8_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmesos_1_1internal_1_1scheduler_1_1Flags.html" target="_self">mesos::internal::scheduler::Flags</a></td><td class="desc"></td></tr>
-<tr id="row_154_2_9_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmesos_1_1internal_1_1slave_1_1Flags.html" target="_self">mesos::internal::slave::Flags</a></td><td class="desc"></td></tr>
-<tr id="row_154_2_10_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmesos_1_1internal_1_1tests_1_1Flags.html" target="_self">mesos::internal::tests::Flags</a></td><td class="desc"></td></tr>
-<tr id="row_154_3_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmesos_1_1internal_1_1slave_1_1IOSwitchboardServer_1_1Flags.html" target="_self">mesos::internal::slave::IOSwitchboardServer::Flags</a></td><td class="desc"></td></tr>
-<tr id="row_154_4_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmesos_1_1internal_1_1slave_1_1MesosContainerizerLaunch_1_1Flags.html" target="_self">mesos::internal::slave::MesosContainerizerLaunch::Flags</a></td><td class="desc"></td></tr>
-<tr id="row_154_5_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmesos_1_1internal_1_1slave_1_1MesosContainerizerMount_1_1Flags.html" target="_self">mesos::internal::slave::MesosContainerizerMount::Flags</a></td><td class="desc"></td></tr>
-<tr id="row_154_6_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmesos_1_1internal_1_1slave_1_1NetworkCniIsolatorSetup_1_1Flags.html" target="_self">mesos::internal::slave::NetworkCniIsolatorSetup::Flags</a></td><td class="desc"></td></tr>
-<tr id="row_154_7_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmesos_1_1internal_1_1slave_1_1PortMappingStatistics_1_1Flags.html" target="_self">mesos::internal::slave::PortMappingStatistics::Flags</a></td><td class="desc"></td></tr>
-<tr id="row_154_8_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmesos_1_1internal_1_1slave_1_1PortMappingUpdate_1_1Flags.html" target="_self">mesos::internal::slave::PortMappingUpdate::Flags</a></td><td class="desc"></td></tr>
-<tr id="row_154_9_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmesos_1_1internal_1_1storage_1_1UriDiskProfileAdaptor_1_1Flags.html" target="_self">mesos::internal::storage::UriDiskProfileAdaptor::Flags</a></td><td class="desc"></td></tr>
-<tr id="row_154_10_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmesos_1_1internal_1_1tests_1_1ActiveUserTestHelper_1_1Flags.html" target="_self">mesos::internal::tests::ActiveUserTestHelper::Flags</a></td><td class="desc"></td></tr>
-<tr id="row_154_11_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmesos_1_1internal_1_1tests_1_1CapabilitiesTestHelper_1_1Flags.html" target="_self">mesos::internal::tests::CapabilitiesTestHelper::Flags</a></td><td class="desc"></td></tr>
-<tr id="row_154_12_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmesos_1_1internal_1_1tests_1_1HttpServerTestHelper_1_1Flags.html" target="_self">mesos::internal::tests::HttpServerTestHelper::Flags</a></td><td class="desc"></td></tr>
-<tr id="row_154_13_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmesos_1_1internal_1_1tests_1_1KillPolicyTestHelper_1_1Flags.html" target="_self">mesos::internal::tests::KillPolicyTestHelper::Flags</a></td><td class="desc"></td></tr>
-<tr id="row_154_14_" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span id="arr_154_14_" class="arrow" onclick="toggleFolder('154_14_')">►</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmesos_1_1uri_1_1CopyFetcherPlugin_1_1Flags.html" target="_self">mesos::uri::CopyFetcherPlugin::Flags</a></td><td class="desc"></td></tr>
-<tr id="row_154_14_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmesos_1_1uri_1_1fetcher_1_1Flags.html" target="_self">mesos::uri::fetcher::Flags</a></td><td class="desc">The combined flags for all built-in plugins </td></tr>
-<tr id="row_154_15_" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span id="arr_154_15_" class="arrow" onclick="toggleFolder('154_15_')">►</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmesos_1_1uri_1_1CurlFetcherPlugin_1_1Flags.html" target="_self">mesos::uri::CurlFetcherPlugin::Flags</a></td><td class="desc"></td></tr>
-<tr id="row_154_15_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmesos_1_1uri_1_1fetcher_1_1Flags.html" target="_self">mesos::uri::fetcher::Flags</a></td><td class="desc">The combined flags for all built-in plugins </td></tr>
-<tr id="row_154_16_" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span id="arr_154_16_" class="arrow" onclick="toggleFolder('154_16_')">►</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmesos_1_1uri_1_1DockerFetcherPlugin_1_1Flags.html" target="_self">mesos::uri::DockerFetcherPlugin::Flags</a></td><td class="desc"></td></tr>
-<tr id="row_154_16_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmesos_1_1uri_1_1fetcher_1_1Flags.html" target="_self">mesos::uri::fetcher::Flags</a></td><td class="desc">The combined flags for all built-in plugins </td></tr>
-<tr id="row_154_17_" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span id="arr_154_17_" class="arrow" onclick="toggleFolder('154_17_')">►</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmesos_1_1uri_1_1HadoopFetcherPlugin_1_1Flags.html" target="_self">mesos::uri::HadoopFetcherPlugin::Flags</a></td><td class="desc"></td></tr>
-<tr id="row_154_17_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmesos_1_1uri_1_1fetcher_1_1Flags.html" target="_self">mesos::uri::fetcher::Flags</a></td><td class="desc">The combined flags for all built-in plugins </td></tr>
-<tr id="row_154_18_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classsystemd_1_1Flags.html" target="_self">systemd::Flags</a></td><td class="desc"><a class="el" href="classsystemd_1_1Flags.html" title="Flags to initialize systemd state. ">Flags</a> to initialize systemd state </td></tr>
-<tr id="row_155_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structos_1_1Fork.html" target="_self">os::Fork</a></td><td class="desc"></td></tr>
-<tr id="row_156_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmesos_1_1internal_1_1slave_1_1Framework.html" target="_self">mesos::internal::slave::Framework</a></td><td class="desc"></td></tr>
-<tr id="row_157_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess_1_1Framework.html" target="_self">mesos::internal::master::allocator::internal::HierarchicalAllocatorProcess::Framework</a></td><td class="desc"></td></tr>
-<tr id="row_158_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmesos_1_1internal_1_1master_1_1Framework.html" target="_self">mesos::internal::master::Framework</a></td><td class="desc"></td></tr>
-<tr id="row_159_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmesos_1_1internal_1_1master_1_1Metrics_1_1Frameworks.html" target="_self">mesos::internal::master::Metrics::Frameworks</a></td><td class="desc"></td></tr>
-<tr id="row_160_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmesos_1_1internal_1_1slave_1_1state_1_1FrameworkState.html" target="_self">mesos::internal::slave::state::FrameworkState</a></td><td class="desc"></td></tr>
-<tr id="row_161_"><td class="entry"><span style="width:0px;display:inline-block;"> </span><span id="arr_161_" class="arrow" onclick="toggleFolder('161_')">►</span><span class="icona"><span class="icon">C</span></span><b>function</b></td><td class="desc"></td></tr>
-<tr id="row_161_0_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structprocess_1_1Deferred.html" target="_self">process::Deferred< F ></a></td><td class="desc"></td></tr>
-<tr id="row_162_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1Future.html" target="_self">process::Future< T ></a></td><td class="desc"></td></tr>
-<tr id="row_163_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1Future.html" target="_self">process::Future< bool ></a></td><td class="desc"></td></tr>
-<tr id="row_164_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1Future.html" target="_self">process::Future< Bytes ></a></td><td class="desc"></td></tr>
-<tr id="row_165_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1Future.html" target="_self">process::Future< Docker::Image ></a></td><td class="desc"></td></tr>
-<tr id="row_166_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1Future.html" target="_self">process::Future< http::Response ></a></td><td class="desc"></td></tr>
-<tr id="row_167_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1Future.html" target="_self">process::Future< mesos::internal::slave::Containerizer::LaunchResult ></a></td><td class="desc"></td></tr>
-<tr id="row_168_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1Future.html" target="_self">process::Future< mesos::internal::slave::ProvisionInfo ></a></td><td class="desc"></td></tr>
-<tr id="row_169_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1Future.html" target="_self">process::Future< mesos::slave::ContainerLimitation ></a></td><td class="desc"></td></tr>
-<tr id="row_170_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1Future.html" target="_self">process::Future< mesos::slave::ContainerTermination ></a></td><td class="desc"></td></tr>
-<tr id="row_171_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1Future.html" target="_self">process::Future< Nothing ></a></td><td class="desc"></td></tr>
-<tr id="row_172_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1Future.html" target="_self">process::Future< Option< int > ></a></td><td class="desc"></td></tr>
-<tr id="row_173_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1Future.html" target="_self">process::Future< Option< MasterInfo > ></a></td><td class="desc"></td></tr>
-<tr id="row_174_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1Future.html" target="_self">process::Future< Option< process::http::URL > ></a></td><td class="desc"></td></tr>
-<tr id="row_175_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1Future.html" target="_self">process::Future< Option< std::string > ></a></td><td class="desc"></td></tr>
-<tr id="row_176_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1Future.html" target="_self">process::Future< process::Future< Option< int > > ></a></td><td class="desc"></td></tr>
-<tr id="row_177_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1Future.html" target="_self">process::Future< process::Owned< T > ></a></td><td class="desc"></td></tr>
-<tr id="row_178_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1Future.html" target="_self">process::Future< process::Shared< mesos::internal::log::Replica > ></a></td><td class="desc"></td></tr>
-<tr id="row_179_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1Future.html" target="_self">process::Future< R ></a></td><td class="desc"></td></tr>
-<tr id="row_180_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1Future.html" target="_self">process::Future< Res ></a></td><td class="desc"></td></tr>
-<tr id="row_181_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1Future.html" target="_self">process::Future< size_t ></a></td><td class="desc"></td></tr>
-<tr id="row_182_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1Future.html" target="_self">process::Future< std::set< zookeeper::Group::Membership > ></a></td><td class="desc"></td></tr>
-<tr id="row_183_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1Future.html" target="_self">process::Future< std::shared_ptr< process::network::internal::SocketImpl > ></a></td><td class="desc"></td></tr>
-<tr id="row_184_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1Future.html" target="_self">process::Future< std::vector< Nothing > ></a></td><td class="desc"></td></tr>
-<tr id="row_185_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1Future.html" target="_self">process::Future< std::vector< Option< mesos::slave::ContainerLaunchInfo > > ></a></td><td class="desc"></td></tr>
-<tr id="row_186_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1Future.html" target="_self">process::Future< std::vector< process::Future< T > > ></a></td><td class="desc"></td></tr>
-<tr id="row_187_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1Future.html" target="_self">process::Future< std::vector< T > ></a></td><td class="desc"></td></tr>
-<tr id="row_188_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1Future.html" target="_self">process::Future< zookeeper::Group::Membership ></a></td><td class="desc"></td></tr>
-<tr id="row_189_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classFutureResultAction.html" target="_self">FutureResultAction< R, A ></a></td><td class="desc"></td></tr>
-<tr id="row_190_" class="even"><td class="entry"><span style="width:0px;display:inline-block;"> </span><span id="arr_190_" class="arrow" onclick="toggleFolder('190_')">►</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmesos_1_1internal_1_1slave_1_1GarbageCollector.html" target="_self">mesos::internal::slave::GarbageCollector</a></td><td class="desc"></td></tr>
-<tr id="row_190_0_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmesos_1_1internal_1_1tests_1_1MockGarbageCollector.html" target="_self">mesos::internal::tests::MockGarbageCollector</a></td><td class="desc"></td></tr>
-<tr id="row_191_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1Gate.html" target="_self">process::Gate</a></td><td class="desc"></td></tr>
-<tr id="row_192_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmesos_1_1internal_1_1slave_1_1Gpu.html" target="_self">mesos::internal::slave::Gpu</a></td><td class="desc"></td></tr>
-<tr id="row_193_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgroup.html" target="_self">group</a></td><td class="desc"></td></tr>
-<tr id="row_194_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classzookeeper_1_1Group.html" target="_self">zookeeper::Group</a></td><td class="desc"></td></tr>
-<tr id="row_195_"><td class="entry"><span style="width:0px;display:inline-block;"> </span><span id="arr_195_" class="arrow" onclick="toggleFolder('195_')">►</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classrouting_1_1Handle.html" target="_self">routing::Handle</a></td><td class="desc"></td></tr>
-<tr id="row_195_0_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classrouting_1_1filter_1_1U32Handle.html" target="_self">routing::filter::U32Handle</a></td><td class="desc"></td></tr>
-<tr id="row_196_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structstd_1_1hash_3_01cgroups_1_1memory_1_1pressure_1_1Level_01_4.html" target="_self">std::hash< cgroups::memory::pressure::Level ></a></td><td class="desc"></td></tr>
-<tr id="row_197_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structstd_1_1hash_3_01id_1_1UUID_01_4.html" target="_self">std::hash< id::UUID ></a></td><td class="desc"></td></tr>
-<tr id="row_198_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structstd_1_1hash_3_01mesos_1_1authorization_1_1Action_01_4.html" target="_self">std::hash< mesos::authorization::Action ></a></td><td class="desc"></td></tr>
-<tr id="row_199_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structstd_1_1hash_3_01mesos_1_1CommandInfo__URI_01_4.html" target="_self">std::hash< mesos::CommandInfo_URI ></a></td><td class="desc"></td></tr>
-<tr id="row_200_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structstd_1_1hash_3_01mesos_1_1ContainerID_01_4.html" target="_self">std::hash< mesos::ContainerID ></a></td><td class="desc"></td></tr>
-<tr id="row_201_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structstd_1_1hash_3_01mesos_1_1ExecutorID_01_4.html" target="_self">std::hash< mesos::ExecutorID ></a></td><td class="desc"></td></tr>
-<tr id="row_202_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structstd_1_1hash_3_01mesos_1_1FrameworkID_01_4.html" target="_self">std::hash< mesos::FrameworkID ></a></td><td class="desc"></td></tr>
-<tr id="row_203_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structstd_1_1hash_3_01mesos_1_1Image_1_1Type_01_4.html" target="_self">std::hash< mesos::Image::Type ></a></td><td class="desc"></td></tr>
-<tr id="row_204_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structstd_1_1hash_3_01mesos_1_1internal_1_1log_1_1Metadata__Status_01_4.html" target="_self">std::hash< mesos::internal::log::Metadata_Status ></a></td><td class="desc"></td></tr>
-<tr id="row_205_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structstd_1_1hash_3_01mesos_1_1internal_1_1slave_1_1DockerVolume_01_4.html" target="_self">std::hash< mesos::internal::slave::DockerVolume ></a></td><td class="desc"></td></tr>
-<tr id="row_206_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structstd_1_1hash_3_01mesos_1_1internal_1_1tests_1_1ModuleID_01_4.html" target="_self">std::hash< mesos::internal::tests::ModuleID ></a></td><td class="desc"></td></tr>
-<tr id="row_207_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structstd_1_1hash_3_01mesos_1_1MachineID_01_4.html" target="_self">std::hash< mesos::MachineID ></a></td><td class="desc"></td></tr>
-<tr id="row_208_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structstd_1_1hash_3_01mesos_1_1OfferID_01_4.html" target="_self">std::hash< mesos::OfferID ></a></td><td class="desc"></td></tr>
-<tr id="row_209_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structstd_1_1hash_3_01mesos_1_1OperationID_01_4.html" target="_self">std::hash< mesos::OperationID ></a></td><td class="desc"></td></tr>
-<tr id="row_210_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structstd_1_1hash_3_01mesos_1_1ResourceProviderID_01_4.html" target="_self">std::hash< mesos::ResourceProviderID ></a></td><td class="desc"></td></tr>
-<tr id="row_211_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structstd_1_1hash_3_01mesos_1_1SlaveID_01_4.html" target="_self">std::hash< mesos::SlaveID ></a></td><td class="desc"></td></tr>
-<tr id="row_212_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structstd_1_1hash_3_01mesos_1_1TaskID_01_4.html" target="_self">std::hash< mesos::TaskID ></a></td><td class="desc"></td></tr>
-<tr id="row_213_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structstd_1_1hash_3_01mesos_1_1TaskState_01_4.html" target="_self">std::hash< mesos::TaskState ></a></td><td class="desc"></td></tr>
-<tr id="row_214_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structstd_1_1hash_3_01mesos_1_1TaskStatus__Reason_01_4.html" target="_self">std::hash< mesos::TaskStatus_Reason ></a></td><td class="desc"></td></tr>
-<tr id="row_215_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structstd_1_1hash_3_01mesos_1_1TaskStatus__Source_01_4.html" target="_self">std::hash< mesos::TaskStatus_Source ></a></td><td class="desc"></td></tr>
-<tr id="row_216_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structstd_1_1hash_3_01mesos_1_1UUID_01_4.html" target="_self">std::hash< mesos::UUID ></a></td><td class="desc"></td></tr>
-<tr id="row_217_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structstd_1_1hash_3_01mesos_1_1v1_1_1AgentID_01_4.html" target="_self">std::hash< mesos::v1::AgentID ></a></td><td class="desc"></td></tr>
-<tr id="row_218_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structstd_1_1hash_3_01mesos_1_1v1_1_1CommandInfo_1_1URI_01_4.html" target="_self">std::hash< mesos::v1::CommandInfo::URI ></a></td><td class="desc"></td></tr>
-<tr id="row_219_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structstd_1_1hash_3_01mesos_1_1v1_1_1ContainerID_01_4.html" target="_self">std::hash< mesos::v1::ContainerID ></a></td><td class="desc"></td></tr>
-<tr id="row_220_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structstd_1_1hash_3_01mesos_1_1v1_1_1ExecutorID_01_4.html" target="_self">std::hash< mesos::v1::ExecutorID ></a></td><td class="desc"></td></tr>
-<tr id="row_221_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structstd_1_1hash_3_01mesos_1_1v1_1_1FrameworkID_01_4.html" target="_self">std::hash< mesos::v1::FrameworkID ></a></td><td class="desc"></td></tr>
-<tr id="row_222_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structstd_1_1hash_3_01mesos_1_1v1_1_1Image_1_1Type_01_4.html" target="_self">std::hash< mesos::v1::Image::Type ></a></td><td class="desc"></td></tr>
-<tr id="row_223_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structstd_1_1hash_3_01mesos_1_1v1_1_1MachineID_01_4.html" target="_self">std::hash< mesos::v1::MachineID ></a></td><td class="desc"></td></tr>
-<tr id="row_224_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structstd_1_1hash_3_01mesos_1_1v1_1_1OfferID_01_4.html" target="_self">std::hash< mesos::v1::OfferID ></a></td><td class="desc"></td></tr>
-<tr id="row_225_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structstd_1_1hash_3_01mesos_1_1v1_1_1OperationID_01_4.html" target="_self">std::hash< mesos::v1::OperationID ></a></td><td class="desc"></td></tr>
-<tr id="row_226_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structstd_1_1hash_3_01mesos_1_1v1_1_1ResourceProviderID_01_4.html" target="_self">std::hash< mesos::v1::ResourceProviderID ></a></td><td class="desc"></td></tr>
-<tr id="row_227_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structstd_1_1hash_3_01mesos_1_1v1_1_1TaskID_01_4.html" target="_self">std::hash< mesos::v1::TaskID ></a></td><td class="desc"></td></tr>
-<tr id="row_228_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structstd_1_1hash_3_01mesos_1_1v1_1_1TaskState_01_4.html" target="_self">std::hash< mesos::v1::TaskState ></a></td><td class="desc"></td></tr>
-<tr id="row_229_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structstd_1_1hash_3_01mesos_1_1v1_1_1TaskStatus__Reason_01_4.html" target="_self">std::hash< mesos::v1::TaskStatus_Reason ></a></td><td class="desc"></td></tr>
-<tr id="row_230_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structstd_1_1hash_3_01mesos_1_1v1_1_1TaskStatus__Source_01_4.html" target="_self">std::hash< mesos::v1::TaskStatus_Source ></a></td><td class="desc"></td></tr>
-<tr id="row_231_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structstd_1_1hash_3_01net_1_1IP_01_4.html" target="_self">std::hash< net::IP ></a></td><td class="desc"></td></tr>
-<tr id="row_232_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structstd_1_1hash_3_01net_1_1IPv4_01_4.html" target="_self">std::hash< net::IPv4 ></a></td><td class="desc"></td></tr>
-<tr id="row_233_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structstd_1_1hash_3_01net_1_1IPv6_01_4.html" target="_self">std::hash< net::IPv6 ></a></td><td class="desc"></td></tr>
-<tr id="row_234_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structstd_1_1hash_3_01Option_3_01T_01_4_01_4.html" target="_self">std::hash< Option< T > ></a></td><td class="desc"></td></tr>
-<tr id="row_235_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structstd_1_1hash_3_01os_1_1WindowsFD_01_4.html" target="_self">std::hash< os::WindowsFD ></a></td><td class="desc"></td></tr>
-<tr id="row_236_" class="even"><td class="entry"><span style="width:0px;display:inline-block;"> </span><span id="arr_236_" class="arrow" onclick="toggleFolder('236_')">►</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structstd_1_1hash_3_01process_1_1network_1_1inet_1_1Address_01_4.html" target="_self">std::hash< process::network::inet::Address ></a></td><td class="desc"></td></tr>
-<tr id="row_236_0_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structstd_1_1hash_3_01process_1_1network_1_1inet4_1_1Address_01_4.html" target="_self">std::hash< process::network::inet4::Address ></a></td><td class="desc"></td></tr>
-<tr id="row_236_1_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structstd_1_1hash_3_01process_1_1network_1_1inet6_1_1Address_01_4.html" target="_self">std::hash< process::network::inet6::Address ></a></td><td class="desc"></td></tr>
-<tr id="row_237_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structstd_1_1hash_3_01process_1_1UPID_01_4.html" target="_self">std::hash< process::UPID ></a></td><td class="desc"></td></tr>
-<tr id="row_238_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structstd_1_1hash_3_01routing_1_1filter_1_1ip_1_1PortRange_01_4.html" target="_self">std::hash< routing::filter::ip::PortRange ></a></td><td class="desc"></td></tr>
-<tr id="row_239_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structstd_1_1hash_3_01std_1_1pair_3_01mesos_1_1FrameworkID_00_01mesos_1_1ExecutorID_01_4_01_4.html" target="_self">std::hash< std::pair< mesos::FrameworkID, mesos::ExecutorID > ></a></td><td class="desc"></td></tr>
-<tr id="row_240_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structstd_1_1hash_3_01std_1_1pair_3_01mesos_1_1v1_1_1FrameworkID_00_01mesos_1_1v1_1_1ExecutorID_01_4_01_4.html" target="_self">std::hash< std::pair< mesos::v1::FrameworkID, mesos::v1::ExecutorID > ></a></td><td class="desc"></td></tr>
-<tr id="row_241_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structJSON_1_1internal_1_1HasMappedType.html" target="_self">JSON::internal::HasMappedType< T ></a></td><td class="desc"></td></tr>
-<tr id="row_242_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classHDFS.html" target="_self">HDFS</a></td><td class="desc"></td></tr>
-<tr id="row_243_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structprocess_1_1http_1_1authentication_1_1JWT_1_1Header.html" target="_self">process::http::authentication::JWT::Header</a></td><td class="desc"></td></tr>
-<tr id="row_244_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmesos_1_1internal_1_1checks_1_1HealthChecker.html" target="_self">mesos::internal::checks::HealthChecker</a></td><td class="desc"></td></tr>
-<tr id="row_245_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmesos_1_1Hook.html" target="_self">mesos::Hook</a></td><td class="desc"></td></tr>
-<tr id="row_246_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmesos_1_1internal_1_1HookManager.html" target="_self">mesos::internal::HookManager</a></td><td class="desc"></td></tr>
-<tr id="row_247_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmesos_1_1internal_1_1checks_1_1check_1_1Http.html" target="_self">mesos::internal::checks::check::Http</a></td><td class="desc"></td></tr>
-<tr id="row_248_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmesos_1_1internal_1_1slave_1_1Http.html" target="_self">mesos::internal::slave::Http</a></td><td class="desc"></td></tr>
-<tr id="row_249_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmesos_1_1internal_1_1slave_1_1HttpConnection.html" target="_self">mesos::internal::slave::HttpConnection</a></td><td class="desc"></td></tr>
-<tr id="row_250_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmesos_1_1internal_1_1master_1_1HttpConnection.html" target="_self">mesos::internal::master::HttpConnection</a></td><td class="desc"></td></tr>
-<tr id="row_251_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structprocess_1_1UPID_1_1ID.html" target="_self">process::UPID::ID</a></td><td class="desc"></td></tr>
-<tr id="row_252_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmesos_1_1IDAcceptor.html" target="_self">mesos::IDAcceptor< T ></a></td><td class="desc">Used to filter results for API handlers </td></tr>
-<tr id="row_253_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classDocker_1_1Image.html" target="_self">Docker::Image</a></td><td class="desc"></td></tr>
-<tr id="row_254_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmesos_1_1internal_1_1slave_1_1ImageInfo.html" target="_self">mesos::internal::slave::ImageInfo</a></td><td class="desc"></td></tr>
-<tr id="row_255_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmesos_1_1internal_1_1slave_1_1PosixFilesystemIsolatorProcess_1_1Info.html" target="_self">mesos::internal::slave::PosixFilesystemIsolatorProcess::Info</a></td><td class="desc"></td></tr>
-<tr id="row_256_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structrouting_1_1diagnosis_1_1socket_1_1Info.html" target="_self">routing::diagnosis::socket::Info</a></td><td class="desc"></td></tr>
-<tr id="row_257_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmesos_1_1internal_1_1cram__md5_1_1InMemoryAuxiliaryPropertyPlugin.html" target="_self">mesos::internal::cram_md5::InMemoryAuxiliaryPropertyPlugin</a></td><td class="desc"></td></tr>
-<tr id="row_258_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors.html" target="_self">process::Subprocess::IO::InputFileDescriptors</a></td><td class="desc">For input file descriptors a child reads from the <code>read</code> file descriptor and a parent may write to the <code>write</code> file descriptor if one is present </td></tr>
-<tr id="row_259_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structcpp14_1_1integer__sequence.html" target="_self">cpp14::integer_sequence< T, Is ></a></td><td class="desc"></td></tr>
-<tr id="row_260_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structcpp14_1_1internal_1_1IntegerSequenceGen.html" target="_self">cpp14::internal::IntegerSequenceGen< T, N, Is ></a></td><td class="desc"></td></tr>
-<tr id="row_261_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structcpp14_1_1internal_1_1IntegerSequenceGen_3_01T_00_010_00_01Is_8_8_8_01_4.html" target="_self">cpp14::internal::IntegerSequenceGen< T, 0, Is... ></a></td><td class="desc"></td></tr>
-<tr id="row_262_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmesos_1_1python_1_1InterpreterLock.html" target="_self">mesos::python::InterpreterLock</a></td><td class="desc">RAII utility class for acquiring the Python global interpreter lock </td></tr>
-<tr id="row_263_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classInterval.html" target="_self">Interval< T ></a></td><td class="desc"></td></tr>
-<tr id="row_264_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classInterval.html" target="_self">Interval< uint16_t ></a></td><td class="desc"></td></tr>
-<tr id="row_265_"><td class="entry"><span style="width:0px;display:inline-block;"> </span><span id="arr_265_" class="arrow" onclick="toggleFolder('265_')">►</span><span class="icona"><span class="icon">C</span></span><b>interval_bound_type</b></td><td class="desc"></td></tr>
-<tr id="row_265_0_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structboost_1_1icl_1_1interval__bound__type_3_01Interval_3_01T_01_4_01_4.html" target="_self">boost::icl::interval_bound_type< Interval< T > ></a></td><td class="desc"></td></tr>
-<tr id="row_266_" class="even"><td class="entry"><span style="width:0px;display:inline-block;"> </span><span id="arr_266_" class="arrow" onclick="toggleFolder('266_')">►</span><span class="icona"><span class="icon">C</span></span><b>interval_set</b></td><td class="desc"></td></tr>
-<tr id="row_266_0_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classIntervalSet.html" target="_self">IntervalSet< T ></a></td><td class="desc"></td></tr>
-<tr id="row_266_1_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classIntervalSet.html" target="_self">IntervalSet< prid_t ></a></td><td class="desc"></td></tr>
-<tr id="row_266_2_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classIntervalSet.html" target="_self">IntervalSet< uint16_t ></a></td><td class="desc"></td></tr>
-<tr id="row_266_3_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classIntervalSet.html" target="_self">IntervalSet< uint32_t ></a></td><td class="desc"></td></tr>
-<tr id="row_266_4_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classIntervalSet.html" target="_self">IntervalSet< uint64_t ></a></td><td class="desc"></td></tr>
-<tr id="row_267_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structboost_1_1icl_1_1interval__traits_3_01Interval_3_01T_01_4_01_4.html" target="_self">boost::icl::interval_traits< Interval< T > ></a></td><td class="desc"></td></tr>
-<tr id="row_268_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structlambda_1_1internal_1_1Invoke.html" target="_self">lambda::internal::Invoke< R ></a></td><td class="desc"></td></tr>
-<tr id="row_269_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structlambda_1_1internal_1_1Invoke_3_01void_01_4.html" target="_self">lambda::internal::Invoke< void ></a></td><td class="desc"></td></tr>
-<tr id="row_270_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1Subprocess_1_1IO.html" target="_self">process::Subprocess::IO</a></td><td class="desc">Describes how the I/O is redirected for stdin/stdout/stderr </td></tr>
-<tr id="row_271_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmesos_1_1slave_1_1ContainerIO_1_1IO.html" target="_self">mesos::slave::ContainerIO::IO</a></td><td class="desc">Describes how the containerizer redirects I/O for stdin/stdout/stderr of a container </td></tr>
-<tr id="row_272_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmesos_1_1internal_1_1slave_1_1IOSwitchboardServer.html" target="_self">mesos::internal::slave::IOSwitchboardServer</a></td><td class="desc"></td></tr>
-<tr id="row_273_"><td class="entry"><span style="width:0px;display:inline-block;"> </span><span id="arr_273_" class="arrow" onclick="toggleFolder('273_')">►</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classnet_1_1IP.html" target="_self">net::IP</a></td><td class="desc"></td></tr>
-<tr id="row_273_0_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classnet_1_1IPv4.html" target="_self">net::IPv4</a></td><td class="desc"></td></tr>
-<tr id="row_273_1_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classnet_1_1IPv6.html" target="_self">net::IPv6</a></td><td class="desc"></td></tr>
-<tr id="row_274_" class="even"><td class="entry"><span style="width:0px;display:inline-block;"> </span><span id="arr_274_" class="arrow" onclick="toggleFolder('274_')">►</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmesos_1_1slave_1_1Isolator.html" target="_self">mesos::slave::Isolator</a></td><td class="desc"></td></tr>
-<tr id="row_274_0_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmesos_1_1internal_1_1slave_1_1MesosIsolator.html" target="_self">mesos::internal::slave::MesosIsolator</a></td><td class="desc"></td></tr>
-<tr id="row_274_1_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmesos_1_1internal_1_1tests_1_1MockIsolator.html" target="_self">mesos::internal::tests::MockIsolator</a></td><td class="desc"></td></tr>
-<tr id="row_275_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structJSON_1_1internal_1_1IsSequence.html" target="_self">JSON::internal::IsSequence< T ></a></td><td class="desc"></td></tr>
-<tr id="row_276_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structJNI.html" target="_self">JNI</a></td><td class="desc"></td></tr>
-<tr id="row_277_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classJvm.html" target="_self">Jvm</a></td><td class="desc"></td></tr>
-<tr id="row_278_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1http_1_1authentication_1_1JWT.html" target="_self">process::http::authentication::JWT</a></td><td class="desc">A <a class="el" href="namespaceJSON.html">JSON</a> Web Token (<a class="el" href="classprocess_1_1http_1_1authentication_1_1JWT.html" title="A JSON Web Token (JWT) implementation. ">JWT</a>) implementation </td></tr>
-<tr id="row_279_"><td class="entry"><span style="width:0px;display:inline-block;"> </span><span id="arr_279_" class="arrow" onclick="toggleFolder('279_')">►</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classKernelSemaphore.html" target="_self">KernelSemaphore</a></td><td class="desc"></td></tr>
-<tr id="row_279_0_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classDecomissionableKernelSemaphore.html" target="_self">DecomissionableKernelSemaphore</a></td><td class="desc"></td></tr>
-<tr id="row_280_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structLambdaTraits.html" target="_self">LambdaTraits< T ></a></td><td class="desc"></td></tr>
-<tr id="row_281_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structLambdaTraits_3_01Result_07Class_1_1_5_08_07Args_8_8_8_08_01const_01_01_4.html" target="_self">LambdaTraits< Result(Class::*)(Args...) const ></a></td><td class="desc"></td></tr>
-<tr id="row_282_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classprocess_1_1Latch.html" target="_self">process::Latch</a></td><td class="desc"></td></tr>
-<tr id="row_283_"><td class="entry"><span style="width:0px;display:inline-block;"> </span><span id="arr_283_" class="arrow" onclick="toggleFolder('283_')">►</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmesos_1_1internal_1_1slave_1_1Launcher.html" target="_self">mesos::internal::slave::Launcher</a></td><td class="desc"></td></tr>
-<tr id="row_283_0_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmesos_1_1internal_1_1slave_1_1LinuxLauncher.html" target="_self">mesos::internal::slave::LinuxLauncher</a></td><td class="desc"></td></tr>
-<tr id="row_283_1_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmesos_1_1internal_1_1slave_1_1SubprocessLauncher.html" target="_self">mesos::internal::slave::SubprocessLauncher</a></td><td class="desc"></td></tr>
-<tr id="row_283_2_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmesos_1_1internal_1_1tests_1_1TestLauncher.html" target="_self">mesos::internal::tests::TestLauncher</a></td><td class="desc"></td></tr>
-<tr id="row_284_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classzookeeper_1_1LeaderContender.html" target="_self">zookeeper::LeaderContender</a></td><td class="desc"></td></tr>
-<tr id="row_285_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classzookeeper_1_1LeaderDetector.html" target="_self">zookeeper::LeaderDetector</a></td><td class="desc"></td></tr>
-<tr id="row_286_" class="even"><td class="entry"><span style="width:0px;display:inline-block;"> </span><span id="arr_286_" class="arrow" onclick="toggleFolder('286_')">►</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structJSON_1_1internal_1_1LessPrefer.html" target="_self">JSON::internal::LessPrefer</a></td><td class="desc"></td></tr>
-<tr id="row_286_0_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structJSON_1_1internal_1_1Prefer.html" target="_self">JSON::internal::Prefer</a></td><td class="desc"></td></tr>
-<tr id="row_287_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classLinkedHashMap.html" target="_self">LinkedHashMap< Key, Value ></a></td><td class="desc"></td></tr>
-<tr id="row_288_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classLinkedHashMap.html" target="_self">LinkedHashMap< SlaveID, TimeInfo ></a></td><td class="desc"></td></tr>
-<tr id="row_289_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classLinkedHashMap.html" target="_self">LinkedHashMap< TaskID, Task * ></a></td><td class="desc"></td></tr>
-<tr id="row_290_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classLinkedHashMap.html" target="_self">LinkedHashMap< TaskID, TaskInfo ></a></td><td class="desc"></td></tr>
-<tr id="row_291_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structos_1_1Load.html" target="_self">os::Load</a></td><td class="desc"></td></tr>
-<tr id="row_292_" class="even"><td class="entry"><span style="width:0px;display:inline-block;"> </span><span id="arr_292_" class="arrow" onclick="toggleFolder('292_')">►</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmesos_1_1internal_1_1LocalResourceProvider.html" target="_self">mesos::internal::LocalResourceProvider</a></td><td class="desc"></td></tr>
-<tr id="row_292_0_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmesos_1_1internal_1_1StorageLocalResourceProvider.html" target="_self">mesos::internal::StorageLocalResourceProvider</a></td><td class="desc"></td></tr>
-<tr id="row_293_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmesos_1_1internal_1_1LocalResourceProviderDaemon.html" target="_self">mesos::internal::LocalResourceProviderDaemon</a></td><td class="desc"></td></tr>
-<tr id="row_294_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmesos_1_1log_1_1Log.html" target="_self">mesos::log::Log</a></td><td class="desc"></td></tr>
-<tr id="row_295_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classnet_1_1MAC.html" target="_self">net::MAC</a></td><td class="desc"></td></tr>
-<tr id="row_296_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmesos_1_1internal_1_1master_1_1Machine.html" target="_self">mesos::internal::master::Machine</a></td><td class="desc"></td></tr>
-<tr id="row_297_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess_1_1Slave_1_1Maintenance.html" target="_self">mesos::internal::master::allocator::internal::HierarchicalAllocatorProcess::Slave::Maintenance</a></td><td class="desc"></td></tr>
-<tr id="row_298_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmesos_1_1internal_1_1tests_1_1cluster_1_1Master.html" target="_self">mesos::internal::tests::cluster::Master</a></td><td class="desc"></td></tr>
-<tr id="row_299_"><td class="entry"><span style="width:0px;display:inline-block;"> </span><span id="arr_299_" class="arrow" onclick="toggleFolder('299_')">►</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmesos_1_1master_1_1contender_1_1MasterContender.html" target="_self">mesos::master::contender::MasterContender</a></td><td class="desc">An abstraction for contending to be a leading master </td></tr>
-<tr id="row_299_0_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmesos_1_1master_1_1contender_1_1StandaloneMasterContender.html" target="_self">mesos::master::contender::StandaloneMasterContender</a></td><td class="desc"></td></tr>
-<tr id="row_299_1_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmesos_1_1master_1_1contender_1_1ZooKeeperMasterContender.html" target="_self">mesos::master::contender::ZooKeeperMasterContender</a></td><td class="desc"></td></tr>
-<tr id="row_300_" class="even"><td class="entry"><span style="width:0px;display:inline-block;"> </span><span id="arr_300_" class="arrow" onclick="toggleFolder('300_')">►</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmesos_1_1master_1_1detector_1_1MasterDetector.html" target="_self">mesos::master::detector::MasterDetector</a></td><td class="desc">An abstraction of a Master detector which can be used to detect the leading master from a group </td></tr>
-<tr id="row_300_0_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmesos_1_1master_1_1detector_1_1StandaloneMasterDetector.html" target="_self">mesos::master::detector::StandaloneMasterDetector</a></td><td class="desc"></td></tr>
-<tr id="row_300_1_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmesos_1_1master_1_1detector_1_1ZooKeeperMasterDetector.html" target="_self">mesos::master::detector::ZooKeeperMasterDetector</a></td><td class="desc"></td></tr>
-<tr id="row_301_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structzookeeper_1_1Group_1_1Membership.html" target="_self">zookeeper::Group::Membership</a></td><td class="desc"></td></tr>
-<tr id="row_302_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structos_1_1Memory.html" target="_self">os::Memory</a></td><td class="desc"></td></tr>
-<tr id="row_303_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structos_1_1Fork_1_1Tree_1_1Memory.html" target="_self">os::Fork::Tree::Memory</a></td><td class="desc"></td></tr>
-<tr id="row_304_" class="even"><td class="entry"><span style="width:0px;display:inline-block;"> </span><span id="arr_304_" class="arrow" onclick="toggleFolder('304_')">►</span><span class="icona"><span class="icon">C</span></span><b>Mesos</b></td><td class="desc"></td></tr>
-<tr id="row_304_0_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmesos_1_1internal_1_1tests_1_1executor_1_1TestMesos.html" target="_self">mesos::internal::tests::executor::TestMesos< Mesos, Event ></a></td><td class="desc"></td></tr>
-<tr id="row_304_1_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmesos_1_1internal_1_1tests_1_1scheduler_1_1TestMesos.html" target="_self">mesos::internal::tests::scheduler::TestMesos< Mesos, Event ></a></td><td class="desc"></td></tr>
-<tr id="row_305_"><td class="entry"><span style="width:0px;display:inline-block;"> </span><span id="arr_305_" class="arrow" onclick="toggleFolder('305_')">►</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmesos_1_1v1_1_1executor_1_1MesosBase.html" target="_self">mesos::v1::executor::MesosBase</a></td><td class="desc"></td></tr>
-<tr id="row_305_0_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmesos_1_1v1_1_1executor_1_1Mesos.html" target="_self">mesos::v1::executor::Mesos</a></td><td class="desc"></td></tr>
-<tr id="row_305_1_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmesos_1_1v1_1_1executor_1_1V0ToV1Adapter.html" target="_self">mesos::v1::executor::V0ToV1Adapter</a></td><td class="desc"></td></tr>
-<tr id="row_306_" class="even"><td class="entry"><span style="width:0px;display:inline-block;"> </span><span id="arr_306_" class="arrow" onclick="toggleFolder('306_')">►</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmesos_1_1v1_1_1scheduler_1_1MesosBase.html" target="_self">mesos::v1::scheduler::MesosBase</a></td><td class="desc"></td></tr>
-<tr id="row_306_0_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmesos_1_1v1_1_1scheduler_1_1Mesos.html" target="_self">mesos::v1::scheduler::Mesos</a></td><td class="desc"></td></tr>
-<tr id="row_307_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmesos_1_1python_1_1MesosExecutorDriverImpl.html" target="_self">mesos::python::MesosExecutorDriverImpl</a></td><td class="desc">Python object structure for <a class="el" href="structmesos_1_1python_1_1MesosExecutorDriverImpl.html" title="Python object structure for MesosExecutorDriverImpl objects. ">MesosExecutorDriverImpl</a> objects </td></tr>
-<tr id="row_308_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structmesos_1_1python_1_1MesosSchedulerDriverImpl.html" target="_self">mesos::python::MesosSchedulerDriverImpl</a></td><td class="desc">Python object structure for <a class="el" href="structmesos_1_1python_1_1MesosSchedulerDriverImpl.html" title="Python object structure for MesosSchedulerDriverImpl objects. ">MesosSchedulerDriverImpl</a> objects </td></tr>
-<tr id="row_309_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structprocess_1_1Message.html" target="_self">process::Message</a></td><td class="desc"></td></tr>
-<tr id="row_310_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classmesos_1_1internal_1_1slave_1_1docker_1_1MetadataManager.html" target="_self">mesos::internal::slave::docker::MetadataManager</a></td><td class="desc">The <a class="el" href="classmesos_1_1internal_1_1slave_1_1docker_1_1MetadataManager.html" title="The MetadataManager tracks the Docker images cached by the provisioner that are stored on disk...">MetadataManager</a> tracks the <a class="el" href="classDocker.html">Docker</a> images cached by the provisioner that are stored on disk </td></tr>
-<tr id="row_311_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classJvm_1_1Method.html" target="_self">Jvm::Method</a></td><td class="desc"></td></tr>
-<tr id="row_312_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classJvm_1_1MethodFinder.html" target="_self">Jvm::MethodFinder</a></td><td class="desc"></td></tr>
-<tr id="row_313_"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classJvm_1_1MethodSignature.html" target="_self">Jvm::MethodSignature</a></td><td class="desc"></td></tr>
-<tr id="row_314_" class="even"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="structprocess_1_1grpc_1_1client_1_1internal_1_1MethodTraits.html" target="_self">process::grpc::client::internal::MethodTraits< T ></a></td><td class="desc"></td></tr>
-<tr id
<TRUNCATED>
[09/50] mesos-site git commit: Updated the website built from mesos
SHA: 7c9c72d.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/subprocess__posix_8hpp_source.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/subprocess__posix_8hpp_source.html b/content/api/latest/c++/subprocess__posix_8hpp_source.html
deleted file mode 100644
index a28663c..0000000
--- a/content/api/latest/c++/subprocess__posix_8hpp_source.html
+++ /dev/null
@@ -1,137 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.11"/>
-<title>Apache Mesos: 3rdparty/libprocess/src/subprocess_posix.hpp Source File</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">Apache Mesos
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.11 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="pages.html"><span>Related Pages</span></a></li>
- <li><a href="namespaces.html"><span>Namespaces</span></a></li>
- <li><a href="annotated.html"><span>Classes</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li><a href="examples.html"><span>Examples</span></a></li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li><a href="globals.html"><span>File Members</span></a></li>
- </ul>
- </div>
-<div id="nav-path" class="navpath">
- <ul>
-<li class="navelem"><a class="el" href="dir_8cab8f464681f7cc51cee77e79a434cd.html">3rdparty</a></li><li class="navelem"><a class="el" href="dir_043a76de98701f9bddf61b5e98f305ff.html">libprocess</a></li><li class="navelem"><a class="el" href="dir_01cbbd8dcbf9de3825992568658f467e.html">src</a></li> </ul>
-</div>
-</div><!-- top -->
-<div class="header">
- <div class="headertitle">
-<div class="title">subprocess_posix.hpp</div> </div>
-</div><!--header-->
-<div class="contents">
-<a href="subprocess__posix_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// Licensed under the Apache License, Version 2.0 (the "License");</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// you may not use this file except in compliance with the License.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// You may obtain a copy of the License at</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comm
ent">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// Unless required by applicable law or agreed to in writing, software</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">// distributed under the License is distributed on an "AS IS" BASIS,</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">// See the License for the specific language governing permissions and</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// limitations under the License</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> </div><di
v class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#ifndef __PROCESS_POSIX_SUBPROCESS_HPP__</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#define __PROCESS_POSIX_SUBPROCESS_HPP__</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#ifdef __linux__</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include <sys/prctl.h></span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#endif // __linux__</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include <sys/types.h></span></div><div class="line"><a name="l00020"></
a><span class="lineno"> 20</span> </div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <string></span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <glog/logging.h></span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> </div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <<a class="code" href="subprocess_8hpp.html">process/subprocess.hpp</a>></span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <<a class="code" href="stout_2include_2stout_2check_8hpp.html">stout/check.hpp</a>>
</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include <<a class="code" href="error_8hpp.html">stout/error.hpp</a>></span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include <<a class="code" href="exit_8hpp.html">stout/exit.hpp</a>></span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include <<a class="code" href="foreach_8hpp.html">stout/foreach.hpp</a>></span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include <<a class="code" href="hashset_8hpp.html">stout/hashset.hpp</a>></span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#include <<a class="code" href="nothing_8hpp.html">stout/nothing.hpp</a>></span></div><div clas
s="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#include <<a class="code" href="lambda_8hpp.html">stout/lambda.hpp</a>></span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#include <<a class="code" href="none_8hpp.html">stout/none.hpp</a>></span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include <<a class="code" href="option_8hpp.html">stout/option.hpp</a>></span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#include <<a class="code" href="os_8hpp.html">stout/os.hpp</a>></span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#include <<a class="code" href="try_8hpp.html">stout/try.hpp</a>></span></div><div class="line"><a name="l00038"></a><span clas
s="lineno"> 38</span> <span class="preprocessor">#include <<a class="code" href="unreachable_8hpp.html">stout/unreachable.hpp</a>></span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> </div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="preprocessor">#include <<a class="code" href="close_8hpp.html">stout/os/close.hpp</a>></span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="preprocessor">#include <<a class="code" href="3rdparty_2stout_2include_2stout_2os_2environment_8hpp.html">stout/os/environment.hpp</a>></span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor">#include <<a class="code" href="fcntl_8hpp.html">stout/os/fcntl.hpp</a>></span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor">#include <<a
class="code" href="signals_8hpp.html">stout/os/signals.hpp</a>></span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="preprocessor">#include <<a class="code" href="strerror_8hpp.html">stout/os/strerror.hpp</a>></span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="keyword">namespace </span><a class="code" href="namespaceprocess.html">process</a> {</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="keyword">namespace </span><a class="code" href="namespaceinternal.html">internal</a> {</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> </div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="keyword">static</span> <span class="keywordtype">void</span> close(std::initializer_list<
int_fd> fds);</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> </div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="keyword">static</span> <span class="keywordtype">void</span> close(</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="keyword">const</span> <a class="code" href="namespaceprocess.html#afc6611c4913642642277b44447a16e55">Subprocess::IO::InputFileDescriptors</a>& stdinfds,</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="keyword">const</span> <a class="code" href="namespaceprocess.html#a882829822afa4f33b90aafc9c4ffa9af">Subprocess::IO::OutputFileDescriptors</a>& stdoutfds,</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="keyword">const</span> <a class="
code" href="namespaceprocess.html#a882829822afa4f33b90aafc9c4ffa9af">Subprocess::IO::OutputFileDescriptors</a>& stderrfds);</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span> </div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span> </div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="namespaceprocess_1_1internal.html#af2f19b6f367cddc0c8283560a9cd9215"> 58</a></span> <span class="keyword">inline</span> <a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ab03ced250ed239bc3b50b669493997f9">pid_t</a> <a class="code" href="namespaceprocess_1_1internal.html#af2f19b6f367cddc0c8283560a9cd9215">defaultClone</a>(<span class="keyword">const</span> lambda::function<<span class="keywordtype">int</span>()>& func)</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span> {</div><div class="line"><a name="l00060"></a><span class="lineno">
60</span>  <a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ab03ced250ed239bc3b50b669493997f9">pid_t</a> pid = ::fork();</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="keywordflow">if</span> (pid == -1) {</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="keywordflow">return</span> -1;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (pid == 0) {</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <span class="comment">// Child.</span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  ::exit(func());</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <a class="code" href="unreachable_8hpp.html#a0bc63b24b654ca433be7b97a3edde132">UNREACHABL
E</a>();</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <span class="comment">// Parent.</span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="keywordflow">return</span> pid;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  }</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span> }</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span> </div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="comment">// This function will invoke `os::cloexec` on all specified file</span></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <s
pan class="comment">// descriptors that are valid (i.e., not `None` and >= 0).</span></div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="namespaceprocess_1_1internal.html#a345a534b82b79bf20333fb6faef43e93"> 76</a></span> <span class="keyword">inline</span> <a class="code" href="classTry.html">Try<Nothing></a> <a class="code" href="namespaceprocess_1_1internal.html#a345a534b82b79bf20333fb6faef43e93">cloexec</a>(</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="keyword">const</span> <a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors.html">InputFileDescriptors</a>& stdinfds,</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <span class="keyword">const</span> <a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html">OutputFileDescriptors</a>& stdoutfds,</div><div class="line"><a name=
"l00079"></a><span class="lineno"> 79</span>  <span class="keyword">const</span> <a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html">OutputFileDescriptors</a>& stderrfds)</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span> {</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <a class="code" href="classhashset.html">hashset<int></a> fds = {</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  stdinfds.<a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors.html#a0a3f315345ef7b7ee6f3f1d4d337854d">read</a>,</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  stdinfds.<a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors.html#ab812da47364d793d9ec0471d3dc8c1bc">write</a>.<a class="code" href="classOption.html#abbbed1bc42634fa9092160b16be6ca7e">getOrElse
</a>(-1),</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  stdoutfds.<a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html#ac4af678c631a700d4be4410a250e3bce">read</a>.<a class="code" href="classOption.html#abbbed1bc42634fa9092160b16be6ca7e">getOrElse</a>(-1),</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  stdoutfds.<a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html#a5dabb8e3008efd61ce42478f260b54ac">write</a>,</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  stderrfds.<a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html#ac4af678c631a700d4be4410a250e3bce">read</a>.<a class="code" href="classOption.html#abbbed1bc42634fa9092160b16be6ca7e">getOrElse</a>(-1),</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  stderrfds.<a class="code" href=
"structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html#a5dabb8e3008efd61ce42478f260b54ac">write</a></div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  };</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span> </div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <span class="keywordflow">foreach</span> (<span class="keywordtype">int</span> fd, fds) {</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <span class="keywordflow">if</span> (fd >= 0) {</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  <a class="code" href="classTry.html">Try<Nothing></a> <a class="code" href="namespaceprocess_1_1internal.html#a345a534b82b79bf20333fb6faef43e93">cloexec</a> = <a class="code" href="namespaceos.html#a7d71bda07a41304403b0e13aa47f0764">os::cloexec</a>(fd);</div><div class="line"><a name="l00093"></a><span cla
ss="lineno"> 93</span>  <span class="keywordflow">if</span> (cloexec.<a class="code" href="classTry.html#a0b98f95163b8a38daafd1651b043a276">isError</a>()) {</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <span class="keywordflow">return</span> <a class="code" href="classError.html">Error</a>(cloexec.<a class="code" href="classTry.html#aec4a11ddd3c036e889d90b7eb6258ba7">error</a>());</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  }</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  }</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  }</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span> </div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <span class="keywordflow">return</span> <a class="code" href="structNothing.html">Nothing</a>();</div><div class="line"
><a name="l00100"></a><span class="lineno"> 100</span> }</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span> </div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span> </div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <span class="comment">// The main entry of the child process.</span></div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="comment">//</span></div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <span class="comment">// NOTE: This function has to be async signal safe.</span></div><div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="namespaceprocess_1_1internal.html#a902e2646d88c41ce674a3009cafe0aad"> 106</a></span> <span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="namespaceprocess_1_1internal.html#a902e2646d88c41ce674a3009caf
e0aad">childMain</a>(</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <span class="keyword">const</span> std::string& <a class="code" href="namespacepath.html">path</a>,</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <span class="keywordtype">char</span>** argv,</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <span class="keywordtype">char</span>** envp,</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <span class="keyword">const</span> <a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors.html">InputFileDescriptors</a>& stdinfds,</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <span class="keyword">const</span> <a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html">OutputFileDescriptors</a>& stdoutfds,</div><div class="li
ne"><a name="l00112"></a><span class="lineno"> 112</span>  <span class="keyword">const</span> <a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html">OutputFileDescriptors</a>& stderrfds,</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <span class="keywordtype">bool</span> blocking,</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <span class="keywordtype">int</span> pipes[2],</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <span class="keyword">const</span> std::vector<Subprocess::ChildHook>& child_hooks)</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span> {</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <span class="comment">// Close parent's end of the pipes.</span></div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span
>  <span class="keywordflow">if</span> (stdinfds.<a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors.html#ab812da47364d793d9ec0471d3dc8c1bc">write</a>.<a class="code" href="classOption.html#a4e3bf8416d95246f43c91f1b5c309323">isSome</a>()) {</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  ::close(stdinfds.<a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors.html#ab812da47364d793d9ec0471d3dc8c1bc">write</a>.<a class="code" href="classOption.html#a21358442c0fac1cc978a67a9a9089a79">get</a>());</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  }</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <span class="keywordflow">if</span> (stdoutfds.<a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html#ac4af678c631a700d4be4410a250e3bce">read</a>.<a class="code" href="classOption.html#a4e3bf8416d952
46f43c91f1b5c309323">isSome</a>()) {</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  ::close(stdoutfds.<a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html#ac4af678c631a700d4be4410a250e3bce">read</a>.<a class="code" href="classOption.html#a21358442c0fac1cc978a67a9a9089a79">get</a>());</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  }</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <span class="keywordflow">if</span> (stderrfds.<a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html#ac4af678c631a700d4be4410a250e3bce">read</a>.<a class="code" href="classOption.html#a4e3bf8416d95246f43c91f1b5c309323">isSome</a>()) {</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  ::close(stderrfds.<a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html#ac4af678c
631a700d4be4410a250e3bce">read</a>.<a class="code" href="classOption.html#a21358442c0fac1cc978a67a9a9089a79">get</a>());</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  }</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span> </div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <span class="comment">// Currently we will block the child's execution of the new process</span></div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <span class="comment">// until all the parent hooks (if any) have executed.</span></div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <span class="keywordflow">if</span> (blocking) {</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  ::close(pipes[1]);</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  }</div><div class="line"><
a name="l00133"></a><span class="lineno"> 133</span> </div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <span class="comment">// Redirect I/O for stdin/stdout/stderr.</span></div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <span class="keywordflow">while</span> (::<a class="code" href="namespaceos.html#a54f3320a4d6f88c14f80f5247aa879b9">dup2</a>(stdinfds.<a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors.html#a0a3f315345ef7b7ee6f3f1d4d337854d">read</a>, <a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#afcf80a6d91178952d107ad00b165752b">STDIN_FILENO</a>) == -1 && errno == EINTR);</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <span class="keywordflow">while</span> (::<a class="code" href="namespaceos.html#a54f3320a4d6f88c14f80f5247aa879b9">dup2</a>(stdoutfds.<a class="code" href="structprocess_1_1Subprocess_1_1
IO_1_1OutputFileDescriptors.html#a5dabb8e3008efd61ce42478f260b54ac">write</a>, <a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#abd165ee6474b5b75bf075842fff13a04">STDOUT_FILENO</a>) == -1 && errno == EINTR);</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <span class="keywordflow">while</span> (::<a class="code" href="namespaceos.html#a54f3320a4d6f88c14f80f5247aa879b9">dup2</a>(stderrfds.<a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html#a5dabb8e3008efd61ce42478f260b54ac">write</a>, <a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ae2fe1725bb5e9823d089c46b9ed5266e">STDERR_FILENO</a>) == -1 && errno == EINTR);</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span> </div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  <span class="comment">// Close the copies. We need to make sure that we do
not close the</span></div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  <span class="comment">// file descriptor assigned to stdin/stdout/stderr in case the</span></div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <span class="comment">// parent has closed stdin/stdout/stderr when calling this</span></div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <span class="comment">// function (in that case, a dup'ed file descriptor may have the</span></div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <span class="comment">// same file descriptor number as stdin/stdout/stderr).</span></div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <span class="comment">//</span></div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <span class="comment">// We also need to ensure that we don't "
;double close" any file</span></div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  <span class="comment">// descriptors in the case where one of stdinfds.read,</span></div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <span class="comment">// stdoutfds.write, or stdoutfds.write are equal.</span></div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  <span class="keywordflow">if</span> (stdinfds.<a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors.html#a0a3f315345ef7b7ee6f3f1d4d337854d">read</a> != <a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#afcf80a6d91178952d107ad00b165752b">STDIN_FILENO</a> &&</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  stdinfds.<a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors.html#a0a3f315345ef7b7ee6f3f1d4d337854d">read</a> !=
<a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#abd165ee6474b5b75bf075842fff13a04">STDOUT_FILENO</a> &&</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  stdinfds.<a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors.html#a0a3f315345ef7b7ee6f3f1d4d337854d">read</a> != <a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ae2fe1725bb5e9823d089c46b9ed5266e">STDERR_FILENO</a>) {</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  ::close(stdinfds.<a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors.html#a0a3f315345ef7b7ee6f3f1d4d337854d">read</a>);</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  }</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <span class="keywordflow">if</span> (stdoutfds.<a class="code" href="structprocess_1_1Subproc
ess_1_1IO_1_1OutputFileDescriptors.html#a5dabb8e3008efd61ce42478f260b54ac">write</a> != <a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#afcf80a6d91178952d107ad00b165752b">STDIN_FILENO</a> &&</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  stdoutfds.<a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html#a5dabb8e3008efd61ce42478f260b54ac">write</a> != <a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#abd165ee6474b5b75bf075842fff13a04">STDOUT_FILENO</a> &&</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  stdoutfds.<a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html#a5dabb8e3008efd61ce42478f260b54ac">write</a> != <a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ae2fe1725bb5e9823d089c46b9ed5266e">STDERR_FILENO</a> &&</div><div class="line"><a name="l
00156"></a><span class="lineno"> 156</span>  stdoutfds.<a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html#a5dabb8e3008efd61ce42478f260b54ac">write</a> != stdinfds.<a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors.html#a0a3f315345ef7b7ee6f3f1d4d337854d">read</a>) {</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  ::close(stdoutfds.<a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html#a5dabb8e3008efd61ce42478f260b54ac">write</a>);</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  }</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <span class="keywordflow">if</span> (stderrfds.<a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html#a5dabb8e3008efd61ce42478f260b54ac">write</a> != <a class="code" href="3rdparty_2stout_2include_2stout_2windows_8h
pp.html#afcf80a6d91178952d107ad00b165752b">STDIN_FILENO</a> &&</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  stderrfds.<a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html#a5dabb8e3008efd61ce42478f260b54ac">write</a> != <a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#abd165ee6474b5b75bf075842fff13a04">STDOUT_FILENO</a> &&</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  stderrfds.<a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html#a5dabb8e3008efd61ce42478f260b54ac">write</a> != <a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ae2fe1725bb5e9823d089c46b9ed5266e">STDERR_FILENO</a> &&</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  stderrfds.<a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html#a
5dabb8e3008efd61ce42478f260b54ac">write</a> != stdinfds.<a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors.html#a0a3f315345ef7b7ee6f3f1d4d337854d">read</a> &&</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  stderrfds.<a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html#a5dabb8e3008efd61ce42478f260b54ac">write</a> != stdoutfds.<a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html#a5dabb8e3008efd61ce42478f260b54ac">write</a>) {</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  ::close(stderrfds.<a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html#a5dabb8e3008efd61ce42478f260b54ac">write</a>);</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  }</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span> </div><div class
="line"><a name="l00167"></a><span class="lineno"> 167</span>  <span class="keywordflow">if</span> (blocking) {</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  <span class="comment">// Do a blocking read on the pipe until the parent signals us to</span></div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <span class="comment">// continue.</span></div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <span class="keywordtype">char</span> dummy;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#a894c4d58faeee7675b9e7e8244de1386">ssize_t</a> length;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  <span class="keywordflow">while</span> ((length = ::<a class="code" href="namespacemesos_1_1internal_1_1credentials.html#a137c93d60149
616181a10e9f39986f7f">read</a>(pipes[0], &dummy, <span class="keyword">sizeof</span>(dummy))) == -1 &&</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  errno == EINTR);</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span> </div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  <span class="keywordflow">if</span> (length != <span class="keyword">sizeof</span>(dummy)) {</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  <a class="code" href="abort_8hpp.html#a4d84a74fe6e4f84bc3d2f901b9e89f93">ABORT</a>(<span class="stringliteral">"Failed to synchronize with parent"</span>);</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  }</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span> </div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>
60; <span class="comment">// Now close the pipe as we don't need it anymore.</span></div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  ::close(pipes[0]);</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  }</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span> </div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <span class="comment">// Run the child hooks.</span></div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <span class="keywordflow">foreach</span> (<span class="keyword">const</span> <a class="code" href="classprocess_1_1Subprocess_1_1ChildHook.html">Subprocess::ChildHook</a>& hook, child_hooks) {</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <a class="code" href="classTry.html">Try<Nothing></a> callback = hook();</div><div class="line"><a name="l00186"></a
><span class="lineno"> 186</span> </div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  <span class="comment">// If the callback failed, we should abort execution.</span></div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  <span class="keywordflow">if</span> (callback.<a class="code" href="classTry.html#a0b98f95163b8a38daafd1651b043a276">isError</a>()) {</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  <a class="code" href="abort_8hpp.html#a4d84a74fe6e4f84bc3d2f901b9e89f93">ABORT</a>(<span class="stringliteral">"Failed to execute Subprocess::ChildHook: "</span> + callback.<a class="code" href="classTry.html#aec4a11ddd3c036e889d90b7eb6258ba7">error</a>());</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  }</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  }</div><div class="line"><a name="
l00192"></a><span class="lineno"> 192</span> </div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  <a class="code" href="namespaceos.html#aebc3586b2be0d2b9093ccfbf25dfcde8">os::execvpe</a>(path.c_str(), argv, envp);</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span> </div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  <a class="code" href="exit_8hpp.html#a637cd32ee4af0a5a1d1aea8a0d7f7564">SAFE_EXIT</a>(</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  errno, <span class="stringliteral">"Failed to os::execvpe on path '%s': %d"</span>, path.c_str(), errno);</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span> }</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span> </div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span> </div><div class="line
"><a name="l00200"></a><span class="lineno"><a class="line" href="namespaceprocess_1_1internal.html#afe2c3a3ffdd0ee6fda82e198ece80a37"> 200</a></span> <span class="keyword">inline</span> <a class="code" href="classTry.html">Try<pid_t></a> <a class="code" href="namespaceprocess_1_1internal.html#afe2c3a3ffdd0ee6fda82e198ece80a37">cloneChild</a>(</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  <span class="keyword">const</span> std::string& <a class="code" href="namespacepath.html">path</a>,</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  std::vector<std::string> argv,</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option</a><std::map<std::string, std::string>>& <a class="code" href="namespacemesos_1_1internal_1_1tests.html#a1396c5e3b0a179220de2792d74770ec2">
environment</a>,</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option</a><lambda::function<</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  <a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ab03ced250ed239bc3b50b669493997f9">pid_t</a>(<span class="keyword">const</span> lambda::function<<span class="keywordtype">int</span>()>&)>>& _clone,</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  <span class="keyword">const</span> std::vector<Subprocess::ParentHook>& parent_hooks,</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  <span class="keyword">const</span> std::vector<Subprocess::ChildHook>& child_hooks,</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span> 
<span class="keyword">const</span> <a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors.html">InputFileDescriptors</a> stdinfds,</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  <span class="keyword">const</span> <a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html">OutputFileDescriptors</a> stdoutfds,</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  <span class="keyword">const</span> <a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html">OutputFileDescriptors</a> stderrfds)</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span> {</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  <span class="comment">// The real arguments that will be passed to 'os::execvpe'. We need</span></div><div class="line"><a name="l00213"></a><span class="lineno"> 213</
span>  <span class="comment">// to construct them here before doing the clone as it might not be</span></div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  <span class="comment">// async signal safe to perform the memory allocation.</span></div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  <span class="keywordtype">char</span>** _argv = <span class="keyword">new</span> <span class="keywordtype">char</span>*[argv.size() + 1];</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i < argv.size(); i++) {</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  _argv[i] = (<span class="keywordtype">char</span>*) argv[i].c_str();</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  }</div><div class="line"><a name="l00219"></a><span class
="lineno"> 219</span>  _argv[argv.size()] = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span> </div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  <span class="comment">// Like above, we need to construct the environment that we'll pass</span></div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  <span class="comment">// to 'os::execvpe' as it might not be async-safe to perform the</span></div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  <span class="comment">// memory allocations.</span></div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  <span class="keywordtype">char</span>** envp = <a class="code" href="namespaceos_1_1raw.html#aad2bd3acb3ca09c75a1a1db58075f9f4">os::raw::environment</a>();</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</s
pan> </div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  <span class="keywordflow">if</span> (<a class="code" href="namespacemesos_1_1internal_1_1tests.html#a1396c5e3b0a179220de2792d74770ec2">environment</a>.isSome()) {</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  <span class="comment">// NOTE: We add 1 to the size for a `nullptr` terminator.</span></div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  envp = <span class="keyword">new</span> <span class="keywordtype">char</span>*[<a class="code" href="namespacemesos_1_1internal_1_1tests.html#a1396c5e3b0a179220de2792d74770ec2">environment</a>->size() + 1];</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span> </div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  <span class="keywordtype">size_t</span> <a class="code" href="namespacerouting_1_1link.html#a264
86cdba01ef1c80706b1e07e8a6d3f">index</a> = 0;</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  <a class="code" href="foreach_8hpp.html#a66900b166526abe66464d6597536b111">foreachpair</a> (</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  <span class="keyword">const</span> std::string& key,</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  <span class="keyword">const</span> std::string& value, <a class="code" href="namespacemesos_1_1internal_1_1tests.html#a1396c5e3b0a179220de2792d74770ec2">environment</a>.get()) {</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  std::string entry = key + <span class="stringliteral">"="</span> + value;</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  envp[<a class="code" href="namespacerouting_1_1link.html#a26486cdba01ef1c80706b1e07e8a6d
3f">index</a>] = <span class="keyword">new</span> <span class="keywordtype">char</span>[entry.size() + 1];</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  strncpy(envp[index], entry.c_str(), entry.size() + 1);</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  ++<a class="code" href="namespacerouting_1_1link.html#a26486cdba01ef1c80706b1e07e8a6d3f">index</a>;</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  }</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span> </div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  envp[<a class="code" href="namespacerouting_1_1link.html#a26486cdba01ef1c80706b1e07e8a6d3f">index</a>] = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  }</div><div class="line"><a name="l00242"></a><span class="lineno">
242</span> </div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  <span class="comment">// Determine the function to clone the child process. If the user</span></div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  <span class="comment">// does not specify the clone function, we will use the default.</span></div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  lambda::function<pid_t(const lambda::function<int()>&)> <a class="code" href="namespacens.html#a98bf4d9e11d546326250997a6493f835">clone</a> =</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  (_clone.isSome() ? _clone.get() : <a class="code" href="namespaceprocess_1_1internal.html#af2f19b6f367cddc0c8283560a9cd9215">defaultClone</a>);</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span> </div><div class="line"><a name="l00248"></a><span class="lineno
"> 248</span>  <span class="comment">// Currently we will block the child's execution of the new process</span></div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  <span class="comment">// until all the `parent_hooks` (if any) have executed.</span></div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  std::array<int, 2> pipes;</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  <span class="keyword">const</span> <span class="keywordtype">bool</span> blocking = !parent_hooks.empty();</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span> </div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  <span class="keywordflow">if</span> (blocking) {</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  <span class="comment">// We assume this should not fail under reasonable conditions so we<
/span></div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  <span class="comment">// use CHECK.</span></div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  <a class="code" href="classTry.html">Try<std::array<int, 2></a>> <a class="code" href="namespaceos.html#afefbea8a88b84bed66580372accb18a9">pipe</a> = <a class="code" href="namespaceos.html#afefbea8a88b84bed66580372accb18a9">os::pipe</a>();</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  <a class="code" href="stout_2include_2stout_2check_8hpp.html#aee320e7c6e107071f4b85d4cc135a265">CHECK_SOME</a>(pipe);</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span> </div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  pipes = pipe.<a class="code" href="classTry.html#a8bc7f43e75a47111ea18e9c83b007be5">get</a>();</div><div class="line"><a name="l00260"></a><span
class="lineno"> 260</span>  }</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span> </div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  <span class="comment">// Now, clone the child process.</span></div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  <a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ab03ced250ed239bc3b50b669493997f9">pid_t</a> pid = <a class="code" href="namespacens.html#a98bf4d9e11d546326250997a6493f835">clone</a>(<a class="code" href="namespaceprocess_1_1network.html#ad067110a4b38cc83785a43f49bf6c8e2">lambda::bind</a>(</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  &<a class="code" href="namespaceprocess_1_1internal.html#a902e2646d88c41ce674a3009cafe0aad">childMain</a>,</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  path,</div><div class="line"><a name="l
00266"></a><span class="lineno"> 266</span>  _argv,</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  envp,</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  stdinfds,</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  stdoutfds,</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  stderrfds,</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  blocking,</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  pipes.data(),</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  child_hooks));</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span> </div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  <span class="keyword">delete</span>[] _argv;</div><div class="lin
e"><a name="l00276"></a><span class="lineno"> 276</span> </div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  <span class="comment">// Need to delete 'envp' if we had environment variables passed to</span></div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  <span class="comment">// us and we needed to allocate the space.</span></div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  <span class="keywordflow">if</span> (<a class="code" href="namespacemesos_1_1internal_1_1tests.html#a1396c5e3b0a179220de2792d74770ec2">environment</a>.isSome()) {</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  CHECK_NE(<a class="code" href="namespaceos_1_1raw.html#aad2bd3acb3ca09c75a1a1db58075f9f4">os::raw::environment</a>(), envp);</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span> </div><div class="line"><a name="l00282"></a
><span class="lineno"> 282</span>  <span class="comment">// We ignore the last 'envp' entry since it is nullptr.</span></div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> <a class="code" href="namespacerouting_1_1link.html#a26486cdba01ef1c80706b1e07e8a6d3f">index</a> = 0; <a class="code" href="namespacerouting_1_1link.html#a26486cdba01ef1c80706b1e07e8a6d3f">index</a> < <a class="code" href="namespacemesos_1_1internal_1_1tests.html#a1396c5e3b0a179220de2792d74770ec2">environment</a>->size(); <a class="code" href="namespacerouting_1_1link.html#a26486cdba01ef1c80706b1e07e8a6d3f">index</a>++) {</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  <span class="keyword">delete</span>[] envp[<a class="code" href="namespacerouting_1_1link.html#a26486cdba01ef1c80706b1e07e8a6d3f">index</a>];</div><div class="line"><a name="
l00285"></a><span class="lineno"> 285</span>  }</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span> </div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  <span class="keyword">delete</span>[] envp;</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  }</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span> </div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  <span class="keywordflow">if</span> (pid == -1) {</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  <span class="comment">// Save the errno as 'close' below might overwrite it.</span></div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  <a class="code" href="classErrnoError.html">ErrnoError</a> <a class="code" href="namespacemesos_1_1internal_1_1slave_1_1cni_1_1spec.html#ae58e703656ab4a1
bd5d9870441236727">error</a>(<span class="stringliteral">"Failed to clone"</span>);</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  internal::close(stdinfds, stdoutfds, stderrfds);</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span> </div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  <span class="keywordflow">if</span> (blocking) {</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  <a class="code" href="namespaceos.html#a8df77ec6d6b8d32d9b287a41bc74cfdc">os::close</a>(pipes[0]);</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  <a class="code" href="namespaceos.html#a8df77ec6d6b8d32d9b287a41bc74cfdc">os::close</a>(pipes[1]);</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  }</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span> 
;</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  <span class="keywordflow">return</span> <a class="code" href="namespacemesos_1_1internal_1_1slave_1_1cni_1_1spec.html#ae58e703656ab4a1bd5d9870441236727">error</a>;</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  }</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span> </div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  <span class="comment">// Close the child-ends of the file descriptors that are created by</span></div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  <span class="comment">// this function.</span></div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  internal::close({stdinfds.<a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors.html#a0a3f315345ef7b7ee6f3f1d4d337854d">read</a>, stdoutfds.<a class
="code" href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html#a5dabb8e3008efd61ce42478f260b54ac">write</a>, stderrfds.<a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html#a5dabb8e3008efd61ce42478f260b54ac">write</a>});</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span> </div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  <span class="keywordflow">if</span> (blocking) {</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  <a class="code" href="namespaceos.html#a8df77ec6d6b8d32d9b287a41bc74cfdc">os::close</a>(pipes[0]);</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span> </div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  <span class="comment">// Run the parent hooks.</span></div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  <span class="
keywordflow">foreach</span> (<span class="keyword">const</span> <a class="code" href="structprocess_1_1Subprocess_1_1ParentHook.html">Subprocess::ParentHook</a>& hook, parent_hooks) {</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  <a class="code" href="classTry.html">Try<Nothing></a> parentSetup = hook.<a class="code" href="structprocess_1_1Subprocess_1_1ParentHook.html#aaf9ff141314d619cd65cd8ec9320fb7d">parent_setup</a>(pid);</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span> </div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  <span class="comment">// If the hook callback fails, we shouldn't proceed with the</span></div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  <span class="comment">// execution and hence the child process should be killed.</span></div><div class="line"><a name="l00316"></a><span class="lineno"> 316
</span>  <span class="keywordflow">if</span> (parentSetup.<a class="code" href="classTry.html#a0b98f95163b8a38daafd1651b043a276">isError</a>()) {</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  LOG(WARNING)</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  << <span class="stringliteral">"Failed to execute Subprocess::ParentHook in parent for child '"</span></div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  << pid << <span class="stringliteral">"': "</span> << parentSetup.<a class="code" href="classTry.html#aec4a11ddd3c036e889d90b7eb6258ba7">error</a>();</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span> </div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  <a class="code" href="namespaceos.html#a8df77ec6d6b8d32d9b287a41bc74cfd
c">os::close</a>(pipes[1]);</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span> </div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  <span class="comment">// Ensure the child is killed.</span></div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  <a class="code" href="namespacecgroups.html#ab75e1e2d1be63eec907bf12306a7c8a7">::kill</a>(pid, <a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#a1c2b5693161bbc9d516ef5d16c7b54f5">SIGKILL</a>);</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span> </div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  <span class="keywordflow">return</span> <a class="code" href="classError.html">Error</a>(</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  <span class="stringliteral">"Failed to execute Subprocess::Pa
rentHook in parent for child '"</span> +</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  <a class="code" href="namespacens.html#a28116b46e6543597a11733424cd1aa20">stringify</a>(pid) + <span class="stringliteral">"': "</span> + parentSetup.<a class="code" href="classTry.html#aec4a11ddd3c036e889d90b7eb6258ba7">error</a>());</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  }</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  }</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span> </div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  <span class="comment">// Now that we've executed the parent hooks, we can signal the child to</span></div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  <span class="comment">// continue by writing to the pipe.</s
pan></div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  <span class="keywordtype">char</span> dummy;</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>  <a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#a894c4d58faeee7675b9e7e8244de1386">ssize_t</a> length;</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  <span class="keywordflow">while</span> ((length = ::<a class="code" href="namespacemesos_1_1internal_1_1log_1_1protocol.html#a66ff2d5af4db53227f787281c0765d8d">write</a>(pipes[1], &dummy, <span class="keyword">sizeof</span>(dummy))) == -1 &&</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  errno == EINTR);</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span> </div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  <a class="code" href="
namespaceos.html#a8df77ec6d6b8d32d9b287a41bc74cfdc">os::close</a>(pipes[1]);</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span> </div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  <span class="keywordflow">if</span> (length != <span class="keyword">sizeof</span>(dummy)) {</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  <span class="comment">// Ensure the child is killed.</span></div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  <a class="code" href="namespacecgroups.html#ab75e1e2d1be63eec907bf12306a7c8a7">::kill</a>(pid, <a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#a1c2b5693161bbc9d516ef5d16c7b54f5">SIGKILL</a>);</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span> </div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  <span class="keywordflow">re
turn</span> <a class="code" href="classError.html">Error</a>(<span class="stringliteral">"Failed to synchronize child process"</span>);</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>  }</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>  }</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span> </div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  <span class="keywordflow">return</span> pid;</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span> }</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span> </div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span> } <span class="comment">// namespace internal {</span></div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span> } <span class="comment">// namespace process {</span></div><div class
="line"><a name="l00354"></a><span class="lineno"> 354</span> </div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span> <span class="preprocessor">#endif // __PROCESS_POSIX_SUBPROCESS_HPP__</span></div><div class="ttc" id="namespaceos_html_a54f3320a4d6f88c14f80f5247aa879b9"><div class="ttname"><a href="namespaceos.html#a54f3320a4d6f88c14f80f5247aa879b9">os::dup2</a></div><div class="ttdeci">Try< Nothing > dup2(int oldFd, int newFd)</div><div class="ttdef"><b>Definition:</b> os.hpp:434</div></div>
-<div class="ttc" id="3rdparty_2stout_2include_2stout_2windows_8hpp_html_a894c4d58faeee7675b9e7e8244de1386"><div class="ttname"><a href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#a894c4d58faeee7675b9e7e8244de1386">ssize_t</a></div><div class="ttdeci">SSIZE_T ssize_t</div><div class="ttdef"><b>Definition:</b> windows.hpp:186</div></div>
-<div class="ttc" id="namespacepath_html"><div class="ttname"><a href="namespacepath.html">path</a></div><div class="ttdef"><b>Definition:</b> path.hpp:26</div></div>
-<div class="ttc" id="structNothing_html"><div class="ttname"><a href="structNothing.html">Nothing</a></div><div class="ttdef"><b>Definition:</b> nothing.hpp:16</div></div>
-<div class="ttc" id="namespaceos_html_afefbea8a88b84bed66580372accb18a9"><div class="ttname"><a href="namespaceos.html#afefbea8a88b84bed66580372accb18a9">os::pipe</a></div><div class="ttdeci">Try< std::array< int, 2 > > pipe()</div><div class="ttdef"><b>Definition:</b> pipe.hpp:26</div></div>
-<div class="ttc" id="classError_html"><div class="ttname"><a href="classError.html">Error</a></div><div class="ttdef"><b>Definition:</b> errorbase.hpp:36</div></div>
-<div class="ttc" id="classOption_html"><div class="ttname"><a href="classOption.html">Option</a></div><div class="ttdef"><b>Definition:</b> option.hpp:28</div></div>
-<div class="ttc" id="namespacens_html_a98bf4d9e11d546326250997a6493f835"><div class="ttname"><a href="namespacens.html#a98bf4d9e11d546326250997a6493f835">ns::clone</a></div><div class="ttdeci">Try< pid_t > clone(pid_t target, int nstypes, const lambda::function< int()> &f, int flags)</div><div class="ttdoc">Performs an os::clone after entering a set of namespaces for the specified target process...</div></div>
-<div class="ttc" id="abort_8hpp_html_a4d84a74fe6e4f84bc3d2f901b9e89f93"><div class="ttname"><a href="abort_8hpp.html#a4d84a74fe6e4f84bc3d2f901b9e89f93">ABORT</a></div><div class="ttdeci">#define ABORT(...)</div><div class="ttdef"><b>Definition:</b> abort.hpp:40</div></div>
-<div class="ttc" id="classOption_html_abbbed1bc42634fa9092160b16be6ca7e"><div class="ttname"><a href="classOption.html#abbbed1bc42634fa9092160b16be6ca7e">Option::getOrElse</a></div><div class="ttdeci">T getOrElse(U &&u) const &</div><div class="ttdef"><b>Definition:</b> option.hpp:127</div></div>
-<div class="ttc" id="namespaceprocess_html_a882829822afa4f33b90aafc9c4ffa9af"><div class="ttname"><a href="namespaceprocess.html#a882829822afa4f33b90aafc9c4ffa9af">process::OutputFileDescriptors</a></div><div class="ttdeci">Subprocess::IO::OutputFileDescriptors OutputFileDescriptors</div><div class="ttdef"><b>Definition:</b> subprocess.hpp:344</div></div>
-<div class="ttc" id="classTry_html_a8bc7f43e75a47111ea18e9c83b007be5"><div class="ttname"><a href="classTry.html#a8bc7f43e75a47111ea18e9c83b007be5">Try::get</a></div><div class="ttdeci">T & get()&</div><div class="ttdef"><b>Definition:</b> try.hpp:73</div></div>
-<div class="ttc" id="3rdparty_2stout_2include_2stout_2windows_8hpp_html_a1c2b5693161bbc9d516ef5d16c7b54f5"><div class="ttname"><a href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#a1c2b5693161bbc9d516ef5d16c7b54f5">SIGKILL</a></div><div class="ttdeci">const mode_t SIGKILL</div><div class="ttdef"><b>Definition:</b> windows.hpp:335</div></div>
-<div class="ttc" id="classprocess_1_1Subprocess_1_1ChildHook_html"><div class="ttname"><a href="classprocess_1_1Subprocess_1_1ChildHook.html">process::Subprocess::ChildHook</a></div><div class="ttdoc">A ChildHook can be passed to a subprocess call. </div><div class="ttdef"><b>Definition:</b> subprocess.hpp:190</div></div>
-<div class="ttc" id="classTry_html"><div class="ttname"><a href="classTry.html">Try</a></div><div class="ttdef"><b>Definition:</b> check.hpp:33</div></div>
-<div class="ttc" id="classhashset_html"><div class="ttname"><a href="classhashset.html">hashset</a></div><div class="ttdef"><b>Definition:</b> hashset.hpp:53</div></div>
-<div class="ttc" id="subprocess_8hpp_html"><div class="ttname"><a href="subprocess_8hpp.html">subprocess.hpp</a></div></div>
-<div class="ttc" id="os_8hpp_html"><div class="ttname"><a href="os_8hpp.html">os.hpp</a></div></div>
-<div class="ttc" id="3rdparty_2stout_2include_2stout_2os_2environment_8hpp_html"><div class="ttname"><a href="3rdparty_2stout_2include_2stout_2os_2environment_8hpp.html">environment.hpp</a></div></div>
-<div class="ttc" id="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors_html_a0a3f315345ef7b7ee6f3f1d4d337854d"><div class="ttname"><a href="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors.html#a0a3f315345ef7b7ee6f3f1d4d337854d">process::Subprocess::IO::InputFileDescriptors::read</a></div><div class="ttdeci">int_fd read</div><div class="ttdef"><b>Definition:</b> subprocess.hpp:75</div></div>
-<div class="ttc" id="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors_html"><div class="ttname"><a href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html">process::Subprocess::IO::OutputFileDescriptors</a></div><div class="ttdoc">For output file descriptors a child writes to the write file descriptor and a parent may read from th...</div><div class="ttdef"><b>Definition:</b> subprocess.hpp:88</div></div>
-<div class="ttc" id="none_8hpp_html"><div class="ttname"><a href="none_8hpp.html">none.hpp</a></div></div>
-<div class="ttc" id="namespaceprocess_1_1internal_html_af2f19b6f367cddc0c8283560a9cd9215"><div class="ttname"><a href="namespaceprocess_1_1internal.html#af2f19b6f367cddc0c8283560a9cd9215">process::internal::defaultClone</a></div><div class="ttdeci">pid_t defaultClone(const lambda::function< int()> &func)</div><div class="ttdef"><b>Definition:</b> subprocess_posix.hpp:58</div></div>
-<div class="ttc" id="classErrnoError_html"><div class="ttname"><a href="classErrnoError.html">ErrnoError</a></div><div class="ttdef"><b>Definition:</b> errorbase.hpp:50</div></div>
-<div class="ttc" id="3rdparty_2stout_2include_2stout_2windows_8hpp_html_ae2fe1725bb5e9823d089c46b9ed5266e"><div class="ttname"><a href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ae2fe1725bb5e9823d089c46b9ed5266e">STDERR_FILENO</a></div><div class="ttdeci">#define STDERR_FILENO</div><div class="ttdef"><b>Definition:</b> windows.hpp:155</div></div>
-<div class="ttc" id="stout_2include_2stout_2check_8hpp_html"><div class="ttname"><a href="stout_2include_2stout_2check_8hpp.html">check.hpp</a></div></div>
-<div class="ttc" id="namespaceprocess_1_1internal_html_a345a534b82b79bf20333fb6faef43e93"><div class="ttname"><a href="namespaceprocess_1_1internal.html#a345a534b82b79bf20333fb6faef43e93">process::internal::cloexec</a></div><div class="ttdeci">Try< Nothing > cloexec(const InputFileDescriptors &stdinfds, const OutputFileDescriptors &stdoutfds, const OutputFileDescriptors &stderrfds)</div><div class="ttdef"><b>Definition:</b> subprocess_posix.hpp:76</div></div>
-<div class="ttc" id="lambda_8hpp_html"><div class="ttname"><a href="lambda_8hpp.html">lambda.hpp</a></div></div>
-<div class="ttc" id="close_8hpp_html"><div class="ttname"><a href="close_8hpp.html">close.hpp</a></div></div>
-<div class="ttc" id="classOption_html_a4e3bf8416d95246f43c91f1b5c309323"><div class="ttname"><a href="classOption.html#a4e3bf8416d95246f43c91f1b5c309323">Option::isSome</a></div><div class="ttdeci">bool isSome() const </div><div class="ttdef"><b>Definition:</b> option.hpp:115</div></div>
-<div class="ttc" id="namespaceprocess_html_afc6611c4913642642277b44447a16e55"><div class="ttname"><a href="namespaceprocess.html#afc6611c4913642642277b44447a16e55">process::InputFileDescriptors</a></div><div class="ttdeci">Subprocess::IO::InputFileDescriptors InputFileDescriptors</div><div class="ttdef"><b>Definition:</b> subprocess.hpp:343</div></div>
-<div class="ttc" id="strerror_8hpp_html"><div class="ttname"><a href="strerror_8hpp.html">strerror.hpp</a></div></div>
-<div class="ttc" id="namespacemesos_1_1internal_1_1tests_html_a1396c5e3b0a179220de2792d74770ec2"><div class="ttname"><a href="namespacemesos_1_1internal_1_1tests.html#a1396c5e3b0a179220de2792d74770ec2">mesos::internal::tests::environment</a></div><div class="ttdeci">Environment * environment</div></div>
-<div class="ttc" id="3rdparty_2stout_2include_2stout_2windows_8hpp_html_ab03ced250ed239bc3b50b669493997f9"><div class="ttname"><a href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ab03ced250ed239bc3b50b669493997f9">pid_t</a></div><div class="ttdeci">DWORD pid_t</div><div class="ttdef"><b>Definition:</b> windows.hpp:181</div></div>
-<div class="ttc" id="namespacerouting_1_1link_html_a26486cdba01ef1c80706b1e07e8a6d3f"><div class="ttname"><a href="namespacerouting_1_1link.html#a26486cdba01ef1c80706b1e07e8a6d3f">routing::link::index</a></div><div class="ttdeci">Result< int > index(const std::string &link)</div></div>
-<div class="ttc" id="stout_2include_2stout_2check_8hpp_html_aee320e7c6e107071f4b85d4cc135a265"><div class="ttname"><a href="stout_2include_2stout_2check_8hpp.html#aee320e7c6e107071f4b85d4cc135a265">CHECK_SOME</a></div><div class="ttdeci">#define CHECK_SOME(expression)</div><div class="ttdef"><b>Definition:</b> check.hpp:50</div></div>
-<div class="ttc" id="3rdparty_2stout_2include_2stout_2windows_8hpp_html_abd165ee6474b5b75bf075842fff13a04"><div class="ttname"><a href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#abd165ee6474b5b75bf075842fff13a04">STDOUT_FILENO</a></div><div class="ttdeci">#define STDOUT_FILENO</div><div class="ttdef"><b>Definition:</b> windows.hpp:154</div></div>
-<div class="ttc" id="fcntl_8hpp_html"><div class="ttname"><a href="fcntl_8hpp.html">fcntl.hpp</a></div></div>
-<div class="ttc" id="nothing_8hpp_html"><div class="ttname"><a href="nothing_8hpp.html">nothing.hpp</a></div></div>
-<div class="ttc" id="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors_html_a5dabb8e3008efd61ce42478f260b54ac"><div class="ttname"><a href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html#a5dabb8e3008efd61ce42478f260b54ac">process::Subprocess::IO::OutputFileDescriptors::write</a></div><div class="ttdeci">int_fd write</div><div class="ttdef"><b>Definition:</b> subprocess.hpp:91</div></div>
-<div class="ttc" id="namespaceos_html_a8df77ec6d6b8d32d9b287a41bc74cfdc"><div class="ttname"><a href="namespaceos.html#a8df77ec6d6b8d32d9b287a41bc74cfdc">os::close</a></div><div class="ttdeci">Try< Nothing > close(int fd)</div><div class="ttdef"><b>Definition:</b> close.hpp:24</div></div>
-<div class="ttc" id="namespaceos_html_a7d71bda07a41304403b0e13aa47f0764"><div class="ttname"><a href="namespaceos.html#a7d71bda07a41304403b0e13aa47f0764">os::cloexec</a></div><div class="ttdeci">Try< Nothing > cloexec(int fd)</div><div class="ttdef"><b>Definition:</b> fcntl.hpp:27</div></div>
-<div class="ttc" id="classOption_html_a21358442c0fac1cc978a67a9a9089a79"><div class="ttname"><a href="classOption.html#a21358442c0fac1cc978a67a9a9089a79">Option::get</a></div><div class="ttdeci">const T & get() const &</div><div class="ttdef"><b>Definition:</b> option.hpp:118</div></div>
-<div class="ttc" id="foreach_8hpp_html_a66900b166526abe66464d6597536b111"><div class="ttname"><a href="foreach_8hpp.html#a66900b166526abe66464d6597536b111">foreachpair</a></div><div class="ttdeci">#define foreachpair(KEY, VALUE, ELEMS)</div><div class="ttdef"><b>Definition:</b> foreach.hpp:51</div></div>
-<div class="ttc" id="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors_html"><div class="ttname"><a href="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors.html">process::Subprocess::IO::InputFileDescriptors</a></div><div class="ttdoc">For input file descriptors a child reads from the read file descriptor and a parent may write to the ...</div><div class="ttdef"><b>Definition:</b> subprocess.hpp:73</div></div>
-<div class="ttc" id="namespaceprocess_1_1internal_html_afe2c3a3ffdd0ee6fda82e198ece80a37"><div class="ttname"><a href="namespaceprocess_1_1internal.html#afe2c3a3ffdd0ee6fda82e198ece80a37">process::internal::cloneChild</a></div><div class="ttdeci">Try< pid_t > cloneChild(const std::string &path, std::vector< std::string > argv, const Option< std::map< std::string, std::string >> &environment, const Option< lambda::function< pid_t(const lambda::function< int()> &)>> &_clone, const std::vector< Subprocess::ParentHook > &parent_hooks, const std::vector< Subprocess::ChildHook > &child_hooks, const InputFileDescriptors stdinfds, const OutputFileDescriptors stdoutfds, const OutputFileDescriptors stderrfds)</div><div class="ttdef"><b>Definition:</b> subprocess_posix.hpp:200</div></div>
-<div class="ttc" id="option_8hpp_html"><div class="ttname"><a href="option_8hpp.html">option.hpp</a></div></div>
-<div class="ttc" id="3rdparty_2stout_2include_2stout_2windows_8hpp_html_afcf80a6d91178952d107ad00b165752b"><div class="ttname"><a href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#afcf80a6d91178952d107ad00b165752b">STDIN_FILENO</a></div><div class="ttdeci">#define STDIN_FILENO</div><div class="ttdef"><b>Definition:</b> windows.hpp:153</div></div>
-<div class="ttc" id="classTry_html_aec4a11ddd3c036e889d90b7eb6258ba7"><div class="ttname"><a href="classTry.html#aec4a11ddd3c036e889d90b7eb6258ba7">Try::error</a></div><div class="ttdeci">static Try error(const E &e)</div><div class="ttdef"><b>Definition:</b> try.hpp:42</div></div>
-<div class="ttc" id="unreachable_8hpp_html_a0bc63b24b654ca433be7b97a3edde132"><div class="ttname"><a href="unreachable_8hpp.html#a0bc63b24b654ca433be7b97a3edde132">UNREACHABLE</a></div><div class="ttdeci">#define UNREACHABLE()</div><div class="ttdef"><b>Definition:</b> unreachable.hpp:22</div></div>
-<div class="ttc" id="structprocess_1_1Subprocess_1_1ParentHook_html_aaf9ff141314d619cd65cd8ec9320fb7d"><div class="ttname"><a href="structprocess_1_1Subprocess_1_1ParentHook.html#aaf9ff141314d619cd65cd8ec9320fb7d">process::Subprocess::ParentHook::parent_setup</a></div><div class="ttdeci">const lambda::function< Try< Nothing >pid_t)> parent_setup</div><div class="ttdoc">The callback that must be specified for execution after the child has been cloned, but before it starts executing the new process. </div><div class="ttdef"><b>Definition:</b> subprocess.hpp:163</div></div>
-<div class="ttc" id="foreach_8hpp_html"><div class="ttname"><a href="foreach_8hpp.html">foreach.hpp</a></div></div>
-<div class="ttc" id="error_8hpp_html"><div class="ttname"><a href="error_8hpp.html">error.hpp</a></div></div>
-<div class="ttc" id="namespaceinternal_html"><div class="ttname"><a href="namespaceinternal.html">internal</a></div><div class="ttdef"><b>Definition:</b> attributes.hpp:24</div></div>
-<div class="ttc" id="classTry_html_a0b98f95163b8a38daafd1651b043a276"><div class="ttname"><a href="classTry.html#a0b98f95163b8a38daafd1651b043a276">Try::isError</a></div><div class="ttdeci">bool isError() const </div><div class="ttdef"><b>Definition:</b> try.hpp:71</div></div>
-<div class="ttc" id="namespacemesos_1_1internal_1_1credentials_html_a137c93d60149616181a10e9f39986f7f"><div class="ttname"><a href="namespacemesos_1_1internal_1_1credentials.html#a137c93d60149616181a10e9f39986f7f">mesos::internal::credentials::read</a></div><div class="ttdeci">Result< Credentials > read(const Path &path)</div><div class="ttdef"><b>Definition:</b> credentials.hpp:35</div></div>
-<div class="ttc" id="namespacemesos_1_1internal_1_1slave_1_1cni_1_1spec_html_ae58e703656ab4a1bd5d9870441236727"><div class="ttname"><a href="namespacemesos_1_1internal_1_1slave_1_1cni_1_1spec.html#ae58e703656ab4a1bd5d9870441236727">mesos::internal::slave::cni::spec::error</a></div><div class="ttdeci">std::string error(const std::string &msg, uint32_t code)</div></div>
-<div class="ttc" id="namespaceprocess_html"><div class="ttname"><a href="namespaceprocess.html">process</a></div><div class="ttdef"><b>Definition:</b> executor.hpp:48</div></div>
-<div class="ttc" id="exit_8hpp_html"><div class="ttname"><a href="exit_8hpp.html">exit.hpp</a></div></div>
-<div class="ttc" id="try_8hpp_html"><div class="ttname"><a href="try_8hpp.html">try.hpp</a></div></div>
-<div class="ttc" id="namespaceos_html_aebc3586b2be0d2b9093ccfbf25dfcde8"><div class="ttname"><a href="namespaceos.html#aebc3586b2be0d2b9093ccfbf25dfcde8">os::execvpe</a></div><div class="ttdeci">int execvpe(const std::string &command, const std::vector< std::string > &argv, const std::map< std::string, std::string > &envp)</div><div class="ttdef"><b>Definition:</b> shell.hpp:592</div></div>
-<div class="ttc" id="signals_8hpp_html"><div class="ttname"><a href="signals_8hpp.html">signals.hpp</a></div></div>
-<div class="ttc" id="hashset_8hpp_html"><div class="ttname"><a href="hashset_8hpp.html">hashset.hpp</a></div></div>
-<div class="ttc" id="namespacemesos_1_1internal_1_1log_1_1protocol_html_a66ff2d5af4db53227f787281c0765d8d"><div class="ttname"><a href="namespacemesos_1_1internal_1_1log_1_1protocol.html#a66ff2d5af4db53227f787281c0765d8d">mesos::internal::log::protocol::write</a></div><div class="ttdeci">Protocol< WriteRequest, WriteResponse > write</div></div>
-<div class="ttc" id="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors_html_ac4af678c631a700d4be4410a250e3bce"><div class="ttname"><a href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html#ac4af678c631a700d4be4410a250e3bce">process::Subprocess::IO::OutputFileDescriptors::read</a></div><div class="ttdeci">Option< int_fd > read</div><div class="ttdef"><b>Definition:</b> subprocess.hpp:90</div></div>
-<div class="ttc" id="namespacecgroups_html_ab75e1e2d1be63eec907bf12306a7c8a7"><div class="ttname"><a href="namespacecgroups.html#ab75e1e2d1be63eec907bf12306a7c8a7">cgroups::kill</a></div><div class="ttdeci">Try< Nothing > kill(const std::string &hierarchy, const std::string &cgroup, int signal)</div></div>
-<div class="ttc" id="namespaceprocess_1_1network_html_ad067110a4b38cc83785a43f49bf6c8e2"><div class="ttname"><a href="namespaceprocess_1_1network.html#ad067110a4b38cc83785a43f49bf6c8e2">process::network::bind</a></div><div class="ttdeci">Try< Nothing > bind(int_fd s, const Address &address)</div><div class="ttdef"><b>Definition:</b> network.hpp:46</div></div>
-<div class="ttc" id="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors_html_ab812da47364d793d9ec0471d3dc8c1bc"><div class="ttname"><a href="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors.html#ab812da47364d793d9ec0471d3dc8c1bc">process::Subprocess::IO::InputFileDescriptors::write</a></div><div class="ttdeci">Option< int_fd > write</div><div class="ttdef"><b>Definition:</b> subprocess.hpp:76</div></div>
-<div class="ttc" id="structprocess_1_1Subprocess_1_1ParentHook_html"><div class="ttname"><a href="structprocess_1_1Subprocess_1_1ParentHook.html">process::Subprocess::ParentHook</a></div><div class="ttdoc">A hook can be passed to a subprocess call. </div><div class="ttdef"><b>Definition:</b> subprocess.hpp:152</div></div>
-<div class="ttc" id="namespacens_html_a28116b46e6543597a11733424cd1aa20"><div class="ttname"><a href="namespacens.html#a28116b46e6543597a11733424cd1aa20">ns::stringify</a></div><div class="ttdeci">std::string stringify(int flags)</div></div>
-<div class="ttc" id="exit_8hpp_html_a637cd32ee4af0a5a1d1aea8a0d7f7564"><div class="ttname"><a href="exit_8hpp.html#a637cd32ee4af0a5a1d1aea8a0d7f7564">SAFE_EXIT</a></div><div class="ttdeci">#define SAFE_EXIT(status, fmt,...)</div><div class="ttdef"><b>Definition:</b> exit.hpp:42</div></div>
-<div class="ttc" id="unreachable_8hpp_html"><div class="ttname"><a href="unreachable_8hpp.html">unreachable.hpp</a></div></div>
-<div class="ttc" id="namespaceprocess_1_1internal_html_a902e2646d88c41ce674a3009cafe0aad"><div class="ttname"><a href="namespaceprocess_1_1internal.html#a902e2646d88c41ce674a3009cafe0aad">process::internal::childMain</a></div><div class="ttdeci">int childMain(const std::string &path, char **argv, char **envp, const InputFileDescriptors &stdinfds, const OutputFileDescriptors &stdoutfds, const OutputFileDescriptors &stderrfds, bool blocking, int pipes[2], const std::vector< Subprocess::ChildHook > &child_hooks)</div><div class="ttdef"><b>Definition:</b> subprocess_posix.hpp:106</div></div>
-<div class="ttc" id="namespaceos_1_1raw_html_aad2bd3acb3ca09c75a1a1db58075f9f4"><div class="ttname"><a href="namespaceos_1_1raw.html#aad2bd3acb3ca09c75a1a1db58075f9f4">os::raw::environment</a></div><div class="ttdeci">char ** environment()</div><div class="ttdef"><b>Definition:</b> environment.hpp:66</div></div>
-</div><!-- fragment --></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.11
-</small></address>
-</body>
-</html>
[13/50] mesos-site git commit: Updated the website built from mesos
SHA: 7c9c72d.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/src_2posix_2subprocess_8hpp_source.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/src_2posix_2subprocess_8hpp_source.html b/content/api/latest/c++/src_2posix_2subprocess_8hpp_source.html
new file mode 100644
index 0000000..b847497
--- /dev/null
+++ b/content/api/latest/c++/src_2posix_2subprocess_8hpp_source.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.11"/>
+<title>Apache Mesos: 3rdparty/libprocess/src/posix/subprocess.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">Apache Mesos
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="pages.html"><span>Related Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li><a href="examples.html"><span>Examples</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ <li><a href="globals.html"><span>File Members</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_8cab8f464681f7cc51cee77e79a434cd.html">3rdparty</a></li><li class="navelem"><a class="el" href="dir_043a76de98701f9bddf61b5e98f305ff.html">libprocess</a></li><li class="navelem"><a class="el" href="dir_01cbbd8dcbf9de3825992568658f467e.html">src</a></li><li class="navelem"><a class="el" href="dir_0ac73505685689cb4a842e520ca4cca6.html">posix</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">subprocess.hpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="src_2posix_2subprocess_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// Licensed under the Apache License, Version 2.0 (the "License");</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// you may not use this file except in compliance with the License.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// You may obtain a copy of the License at</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class=
"comment">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// Unless required by applicable law or agreed to in writing, software</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">// distributed under the License is distributed on an "AS IS" BASIS,</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">// See the License for the specific language governing permissions and</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// limitations under the License</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> </di
v><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#ifndef __PROCESS_POSIX_SUBPROCESS_HPP__</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#define __PROCESS_POSIX_SUBPROCESS_HPP__</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#ifdef __linux__</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include <sys/prctl.h></span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#endif // __linux__</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include <sys/types.h></span></div><div class="line"><a name="l0002
0"></a><span class="lineno"> 20</span> </div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <string></span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <glog/logging.h></span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> </div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <<a class="code" href="include_2process_2subprocess_8hpp.html">process/subprocess.hpp</a>></span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <<a class="code" href="stout_2include_2stout_2check_8hpp.html">
stout/check.hpp</a>></span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include <<a class="code" href="error_8hpp.html">stout/error.hpp</a>></span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include <<a class="code" href="exit_8hpp.html">stout/exit.hpp</a>></span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include <<a class="code" href="foreach_8hpp.html">stout/foreach.hpp</a>></span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include <<a class="code" href="hashset_8hpp.html">stout/hashset.hpp</a>></span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#include <<a class="code" href="nothing_8hpp.html">stout/nothing.hpp</a>>
;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#include <<a class="code" href="lambda_8hpp.html">stout/lambda.hpp</a>></span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#include <<a class="code" href="none_8hpp.html">stout/none.hpp</a>></span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include <<a class="code" href="option_8hpp.html">stout/option.hpp</a>></span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#include <<a class="code" href="os_8hpp.html">stout/os.hpp</a>></span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#include <<a class="code" href="try_8hpp.html">stout/try.hpp</a>></span></div><div class="line"><a name=
"l00038"></a><span class="lineno"> 38</span> <span class="preprocessor">#include <<a class="code" href="unreachable_8hpp.html">stout/unreachable.hpp</a>></span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> </div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="preprocessor">#include <<a class="code" href="close_8hpp.html">stout/os/close.hpp</a>></span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="preprocessor">#include <<a class="code" href="3rdparty_2stout_2include_2stout_2os_2environment_8hpp.html">stout/os/environment.hpp</a>></span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor">#include <<a class="code" href="fcntl_8hpp.html">stout/os/fcntl.hpp</a>></span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="prepro
cessor">#include <<a class="code" href="signals_8hpp.html">stout/os/signals.hpp</a>></span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="preprocessor">#include <<a class="code" href="strerror_8hpp.html">stout/os/strerror.hpp</a>></span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="keyword">namespace </span><a class="code" href="namespaceprocess.html">process</a> {</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="keyword">namespace </span><a class="code" href="namespaceinternal.html">internal</a> {</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> </div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="keyword">static</span> <span class="keywordtype">void</span> close(st
d::initializer_list<int_fd> fds);</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> </div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="keyword">static</span> <span class="keywordtype">void</span> close(</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="keyword">const</span> <a class="code" href="namespaceprocess.html#afc6611c4913642642277b44447a16e55">Subprocess::IO::InputFileDescriptors</a>& stdinfds,</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="keyword">const</span> <a class="code" href="namespaceprocess.html#a882829822afa4f33b90aafc9c4ffa9af">Subprocess::IO::OutputFileDescriptors</a>& stdoutfds,</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="keyword">
const</span> <a class="code" href="namespaceprocess.html#a882829822afa4f33b90aafc9c4ffa9af">Subprocess::IO::OutputFileDescriptors</a>& stderrfds);</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span> </div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span> </div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="namespaceprocess_1_1internal.html#af2f19b6f367cddc0c8283560a9cd9215"> 58</a></span> <span class="keyword">inline</span> <a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ab03ced250ed239bc3b50b669493997f9">pid_t</a> <a class="code" href="namespaceprocess_1_1internal.html#af2f19b6f367cddc0c8283560a9cd9215">defaultClone</a>(<span class="keyword">const</span> lambda::function<<span class="keywordtype">int</span>()>& func)</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span> {</div><div class="line"><a name="l00060"></a>
<span class="lineno"> 60</span>  <a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ab03ced250ed239bc3b50b669493997f9">pid_t</a> pid = ::fork();</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="keywordflow">if</span> (pid == -1) {</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="keywordflow">return</span> -1;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (pid == 0) {</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <span class="comment">// Child.</span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  ::exit(func());</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <a class="code" href="unreachable_8hpp.html#a0bc63b24b654ca433be7b
97a3edde132">UNREACHABLE</a>();</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <span class="comment">// Parent.</span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="keywordflow">return</span> pid;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  }</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span> }</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span> </div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="comment">// This function will invoke `os::cloexec` on all specified file</span></div><div class="line"><a name="l00075"></a><span class="linen
o"> 75</span> <span class="comment">// descriptors that are valid (i.e., not `None` and >= 0).</span></div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="namespaceprocess_1_1internal.html#a345a534b82b79bf20333fb6faef43e93"> 76</a></span> <span class="keyword">inline</span> <a class="code" href="classTry.html">Try<Nothing></a> <a class="code" href="namespaceprocess_1_1internal.html#a345a534b82b79bf20333fb6faef43e93">cloexec</a>(</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="keyword">const</span> <a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors.html">InputFileDescriptors</a>& stdinfds,</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <span class="keyword">const</span> <a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html">OutputFileDescriptors</a>& stdoutfds,</div><di
v class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <span class="keyword">const</span> <a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html">OutputFileDescriptors</a>& stderrfds)</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span> {</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <a class="code" href="classhashset.html">hashset<int></a> fds = {</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  stdinfds.<a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors.html#a0a3f315345ef7b7ee6f3f1d4d337854d">read</a>,</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  stdinfds.<a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors.html#ab812da47364d793d9ec0471d3dc8c1bc">write</a>.<a class="code" href="classOption.html#abbbed1bc42634fa90921
60b16be6ca7e">getOrElse</a>(-1),</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  stdoutfds.<a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html#ac4af678c631a700d4be4410a250e3bce">read</a>.<a class="code" href="classOption.html#abbbed1bc42634fa9092160b16be6ca7e">getOrElse</a>(-1),</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  stdoutfds.<a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html#a5dabb8e3008efd61ce42478f260b54ac">write</a>,</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  stderrfds.<a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html#ac4af678c631a700d4be4410a250e3bce">read</a>.<a class="code" href="classOption.html#abbbed1bc42634fa9092160b16be6ca7e">getOrElse</a>(-1),</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  stderrfd
s.<a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html#a5dabb8e3008efd61ce42478f260b54ac">write</a></div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  };</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span> </div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <span class="keywordflow">foreach</span> (<span class="keywordtype">int</span> fd, fds) {</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <span class="keywordflow">if</span> (fd >= 0) {</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  <a class="code" href="classTry.html">Try<Nothing></a> <a class="code" href="namespaceprocess_1_1internal.html#a345a534b82b79bf20333fb6faef43e93">cloexec</a> = <a class="code" href="namespaceos.html#a7d71bda07a41304403b0e13aa47f0764">os::cloexec</a>(fd);</div><div class="line"><a name
="l00093"></a><span class="lineno"> 93</span>  <span class="keywordflow">if</span> (cloexec.<a class="code" href="classTry.html#a0b98f95163b8a38daafd1651b043a276">isError</a>()) {</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <span class="keywordflow">return</span> <a class="code" href="classError.html">Error</a>(cloexec.<a class="code" href="classTry.html#aec4a11ddd3c036e889d90b7eb6258ba7">error</a>());</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  }</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  }</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  }</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span> </div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <span class="keywordflow">return</span> <a class="code" href="structNothing.html">Nothing</a>();
</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span> }</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span> </div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span> </div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <span class="comment">// The main entry of the child process.</span></div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="comment">//</span></div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <span class="comment">// NOTE: This function has to be async signal safe.</span></div><div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="namespaceprocess_1_1internal.html#a902e2646d88c41ce674a3009cafe0aad"> 106</a></span> <span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="namespaceprocess_1_1internal.html#a902e
2646d88c41ce674a3009cafe0aad">childMain</a>(</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <span class="keyword">const</span> std::string& <a class="code" href="namespacepath.html">path</a>,</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <span class="keywordtype">char</span>** argv,</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <span class="keywordtype">char</span>** envp,</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <span class="keyword">const</span> <a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors.html">InputFileDescriptors</a>& stdinfds,</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <span class="keyword">const</span> <a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html">OutputFileDescriptors</a>& stdoutf
ds,</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <span class="keyword">const</span> <a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html">OutputFileDescriptors</a>& stderrfds,</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <span class="keywordtype">bool</span> blocking,</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <span class="keywordtype">int</span> pipes[2],</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <span class="keyword">const</span> std::vector<Subprocess::ChildHook>& child_hooks)</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span> {</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <span class="comment">// Close parent's end of the pipes.</span></div><div class="line"><a name="l00118"></a><span cla
ss="lineno"> 118</span>  <span class="keywordflow">if</span> (stdinfds.<a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors.html#ab812da47364d793d9ec0471d3dc8c1bc">write</a>.<a class="code" href="classOption.html#a4e3bf8416d95246f43c91f1b5c309323">isSome</a>()) {</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  ::close(stdinfds.<a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors.html#ab812da47364d793d9ec0471d3dc8c1bc">write</a>.<a class="code" href="classOption.html#a21358442c0fac1cc978a67a9a9089a79">get</a>());</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  }</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <span class="keywordflow">if</span> (stdoutfds.<a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html#ac4af678c631a700d4be4410a250e3bce">read</a>.<a class="code" href="classOpt
ion.html#a4e3bf8416d95246f43c91f1b5c309323">isSome</a>()) {</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  ::close(stdoutfds.<a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html#ac4af678c631a700d4be4410a250e3bce">read</a>.<a class="code" href="classOption.html#a21358442c0fac1cc978a67a9a9089a79">get</a>());</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  }</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <span class="keywordflow">if</span> (stderrfds.<a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html#ac4af678c631a700d4be4410a250e3bce">read</a>.<a class="code" href="classOption.html#a4e3bf8416d95246f43c91f1b5c309323">isSome</a>()) {</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  ::close(stderrfds.<a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDes
criptors.html#ac4af678c631a700d4be4410a250e3bce">read</a>.<a class="code" href="classOption.html#a21358442c0fac1cc978a67a9a9089a79">get</a>());</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  }</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span> </div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <span class="comment">// Currently we will block the child's execution of the new process</span></div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <span class="comment">// until all the parent hooks (if any) have executed.</span></div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <span class="keywordflow">if</span> (blocking) {</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  ::close(pipes[1]);</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  }</
div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span> </div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <span class="comment">// Redirect I/O for stdin/stdout/stderr.</span></div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <span class="keywordflow">while</span> (::<a class="code" href="namespaceos.html#a54f3320a4d6f88c14f80f5247aa879b9">dup2</a>(stdinfds.<a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors.html#a0a3f315345ef7b7ee6f3f1d4d337854d">read</a>, <a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#afcf80a6d91178952d107ad00b165752b">STDIN_FILENO</a>) == -1 && errno == EINTR);</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <span class="keywordflow">while</span> (::<a class="code" href="namespaceos.html#a54f3320a4d6f88c14f80f5247aa879b9">dup2</a>(stdoutfds.<a class="code" href="structpr
ocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html#a5dabb8e3008efd61ce42478f260b54ac">write</a>, <a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#abd165ee6474b5b75bf075842fff13a04">STDOUT_FILENO</a>) == -1 && errno == EINTR);</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <span class="keywordflow">while</span> (::<a class="code" href="namespaceos.html#a54f3320a4d6f88c14f80f5247aa879b9">dup2</a>(stderrfds.<a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html#a5dabb8e3008efd61ce42478f260b54ac">write</a>, <a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ae2fe1725bb5e9823d089c46b9ed5266e">STDERR_FILENO</a>) == -1 && errno == EINTR);</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span> </div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  <span class="comment">// Close the copies. We need t
o make sure that we do not close the</span></div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  <span class="comment">// file descriptor assigned to stdin/stdout/stderr in case the</span></div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <span class="comment">// parent has closed stdin/stdout/stderr when calling this</span></div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <span class="comment">// function (in that case, a dup'ed file descriptor may have the</span></div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <span class="comment">// same file descriptor number as stdin/stdout/stderr).</span></div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <span class="comment">//</span></div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <span class="comment">// We also need to ensure
that we don't "double close" any file</span></div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  <span class="comment">// descriptors in the case where one of stdinfds.read,</span></div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <span class="comment">// stdoutfds.write, or stdoutfds.write are equal.</span></div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  <span class="keywordflow">if</span> (stdinfds.<a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors.html#a0a3f315345ef7b7ee6f3f1d4d337854d">read</a> != <a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#afcf80a6d91178952d107ad00b165752b">STDIN_FILENO</a> &&</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  stdinfds.<a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors.html#a0a3f315345ef7b7ee6f3f1
d4d337854d">read</a> != <a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#abd165ee6474b5b75bf075842fff13a04">STDOUT_FILENO</a> &&</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  stdinfds.<a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors.html#a0a3f315345ef7b7ee6f3f1d4d337854d">read</a> != <a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ae2fe1725bb5e9823d089c46b9ed5266e">STDERR_FILENO</a>) {</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  ::close(stdinfds.<a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors.html#a0a3f315345ef7b7ee6f3f1d4d337854d">read</a>);</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  }</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <span class="keywordflow">if</span> (stdoutfds.<a class="code" href="s
tructprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html#a5dabb8e3008efd61ce42478f260b54ac">write</a> != <a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#afcf80a6d91178952d107ad00b165752b">STDIN_FILENO</a> &&</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  stdoutfds.<a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html#a5dabb8e3008efd61ce42478f260b54ac">write</a> != <a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#abd165ee6474b5b75bf075842fff13a04">STDOUT_FILENO</a> &&</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  stdoutfds.<a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html#a5dabb8e3008efd61ce42478f260b54ac">write</a> != <a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ae2fe1725bb5e9823d089c46b9ed5266e">STDERR_FILENO</a> &&</div><div
class="line"><a name="l00156"></a><span class="lineno"> 156</span>  stdoutfds.<a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html#a5dabb8e3008efd61ce42478f260b54ac">write</a> != stdinfds.<a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors.html#a0a3f315345ef7b7ee6f3f1d4d337854d">read</a>) {</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  ::close(stdoutfds.<a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html#a5dabb8e3008efd61ce42478f260b54ac">write</a>);</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  }</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <span class="keywordflow">if</span> (stderrfds.<a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html#a5dabb8e3008efd61ce42478f260b54ac">write</a> != <a class="code" href="3rdparty_2stout_2inc
lude_2stout_2windows_8hpp.html#afcf80a6d91178952d107ad00b165752b">STDIN_FILENO</a> &&</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  stderrfds.<a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html#a5dabb8e3008efd61ce42478f260b54ac">write</a> != <a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#abd165ee6474b5b75bf075842fff13a04">STDOUT_FILENO</a> &&</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  stderrfds.<a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html#a5dabb8e3008efd61ce42478f260b54ac">write</a> != <a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ae2fe1725bb5e9823d089c46b9ed5266e">STDERR_FILENO</a> &&</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  stderrfds.<a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1Outpu
tFileDescriptors.html#a5dabb8e3008efd61ce42478f260b54ac">write</a> != stdinfds.<a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors.html#a0a3f315345ef7b7ee6f3f1d4d337854d">read</a> &&</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  stderrfds.<a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html#a5dabb8e3008efd61ce42478f260b54ac">write</a> != stdoutfds.<a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html#a5dabb8e3008efd61ce42478f260b54ac">write</a>) {</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  ::close(stderrfds.<a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html#a5dabb8e3008efd61ce42478f260b54ac">write</a>);</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  }</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span
> </div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  <span class="keywordflow">if</span> (blocking) {</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  <span class="comment">// Do a blocking read on the pipe until the parent signals us to</span></div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <span class="comment">// continue.</span></div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <span class="keywordtype">char</span> dummy;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#a894c4d58faeee7675b9e7e8244de1386">ssize_t</a> length;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  <span class="keywordflow">while</span> ((length = ::<a class="code" href="namespacemesos_1_1internal_1_1credent
ials.html#a137c93d60149616181a10e9f39986f7f">read</a>(pipes[0], &dummy, <span class="keyword">sizeof</span>(dummy))) == -1 &&</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  errno == EINTR);</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span> </div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  <span class="keywordflow">if</span> (length != <span class="keyword">sizeof</span>(dummy)) {</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  <a class="code" href="abort_8hpp.html#a4d84a74fe6e4f84bc3d2f901b9e89f93">ABORT</a>(<span class="stringliteral">"Failed to synchronize with parent"</span>);</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  }</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span> </div><div class="line"><a name="l00179"></a><span class="
lineno"> 179</span>  <span class="comment">// Now close the pipe as we don't need it anymore.</span></div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  ::close(pipes[0]);</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  }</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span> </div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <span class="comment">// Run the child hooks.</span></div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <span class="keywordflow">foreach</span> (<span class="keyword">const</span> <a class="code" href="classprocess_1_1Subprocess_1_1ChildHook.html">Subprocess::ChildHook</a>& hook, child_hooks) {</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <a class="code" href="classTry.html">Try<Nothing></a> callback = hook();</div><div class="lin
e"><a name="l00186"></a><span class="lineno"> 186</span> </div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  <span class="comment">// If the callback failed, we should abort execution.</span></div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  <span class="keywordflow">if</span> (callback.<a class="code" href="classTry.html#a0b98f95163b8a38daafd1651b043a276">isError</a>()) {</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  <a class="code" href="abort_8hpp.html#a4d84a74fe6e4f84bc3d2f901b9e89f93">ABORT</a>(<span class="stringliteral">"Failed to execute Subprocess::ChildHook: "</span> + callback.<a class="code" href="classTry.html#aec4a11ddd3c036e889d90b7eb6258ba7">error</a>());</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  }</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  }</div><div
class="line"><a name="l00192"></a><span class="lineno"> 192</span> </div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  <a class="code" href="namespaceos.html#aebc3586b2be0d2b9093ccfbf25dfcde8">os::execvpe</a>(path.c_str(), argv, envp);</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span> </div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  <a class="code" href="exit_8hpp.html#a637cd32ee4af0a5a1d1aea8a0d7f7564">SAFE_EXIT</a>(</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  errno, <span class="stringliteral">"Failed to os::execvpe on path '%s': %d"</span>, path.c_str(), errno);</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span> }</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span> </div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span> 
;</div><div class="line"><a name="l00200"></a><span class="lineno"><a class="line" href="namespaceprocess_1_1internal.html#afe2c3a3ffdd0ee6fda82e198ece80a37"> 200</a></span> <span class="keyword">inline</span> <a class="code" href="classTry.html">Try<pid_t></a> <a class="code" href="namespaceprocess_1_1internal.html#afe2c3a3ffdd0ee6fda82e198ece80a37">cloneChild</a>(</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  <span class="keyword">const</span> std::string& <a class="code" href="namespacepath.html">path</a>,</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  std::vector<std::string> argv,</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option</a><std::map<std::string, std::string>>& <a class="code" href="namespacemesos_1_1internal_1_1tests.html#a1396c5e3b0a
179220de2792d74770ec2">environment</a>,</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option</a><lambda::function<</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  <a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ab03ced250ed239bc3b50b669493997f9">pid_t</a>(<span class="keyword">const</span> lambda::function<<span class="keywordtype">int</span>()>&)>>& _clone,</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  <span class="keyword">const</span> std::vector<Subprocess::ParentHook>& parent_hooks,</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  <span class="keyword">const</span> std::vector<Subprocess::ChildHook>& child_hooks,</div><div class="line"><a name="l00208"></a><span class="linen
o"> 208</span>  <span class="keyword">const</span> <a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors.html">InputFileDescriptors</a> stdinfds,</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  <span class="keyword">const</span> <a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html">OutputFileDescriptors</a> stdoutfds,</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  <span class="keyword">const</span> <a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html">OutputFileDescriptors</a> stderrfds)</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span> {</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  <span class="comment">// The real arguments that will be passed to 'os::execvpe'. We need</span></div><div class="line"><a name="l00213"></a><span
class="lineno"> 213</span>  <span class="comment">// to construct them here before doing the clone as it might not be</span></div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  <span class="comment">// async signal safe to perform the memory allocation.</span></div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  <span class="keywordtype">char</span>** _argv = <span class="keyword">new</span> <span class="keywordtype">char</span>*[argv.size() + 1];</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i < argv.size(); i++) {</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  _argv[i] = (<span class="keywordtype">char</span>*) argv[i].c_str();</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  }</div><div class="line"><a name="
l00219"></a><span class="lineno"> 219</span>  _argv[argv.size()] = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span> </div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  <span class="comment">// Like above, we need to construct the environment that we'll pass</span></div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  <span class="comment">// to 'os::execvpe' as it might not be async-safe to perform the</span></div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  <span class="comment">// memory allocations.</span></div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  <span class="keywordtype">char</span>** envp = <a class="code" href="namespaceos_1_1raw.html#aad2bd3acb3ca09c75a1a1db58075f9f4">os::raw::environment</a>();</div><div class="line"><a name="l00225"></a><span
class="lineno"> 225</span> </div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  <span class="keywordflow">if</span> (<a class="code" href="namespacemesos_1_1internal_1_1tests.html#a1396c5e3b0a179220de2792d74770ec2">environment</a>.isSome()) {</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  <span class="comment">// NOTE: We add 1 to the size for a `nullptr` terminator.</span></div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  envp = <span class="keyword">new</span> <span class="keywordtype">char</span>*[<a class="code" href="namespacemesos_1_1internal_1_1tests.html#a1396c5e3b0a179220de2792d74770ec2">environment</a>->size() + 1];</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span> </div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  <span class="keywordtype">size_t</span> <a class="code" href="namespacero
uting_1_1link.html#a26486cdba01ef1c80706b1e07e8a6d3f">index</a> = 0;</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  <a class="code" href="foreach_8hpp.html#a66900b166526abe66464d6597536b111">foreachpair</a> (</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  <span class="keyword">const</span> std::string& key,</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  <span class="keyword">const</span> std::string& value, <a class="code" href="namespacemesos_1_1internal_1_1tests.html#a1396c5e3b0a179220de2792d74770ec2">environment</a>.get()) {</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  std::string entry = key + <span class="stringliteral">"="</span> + value;</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  envp[<a class="code" href="namespacerouting_1_1link.html#a26486cd
ba01ef1c80706b1e07e8a6d3f">index</a>] = <span class="keyword">new</span> <span class="keywordtype">char</span>[entry.size() + 1];</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  strncpy(envp[index], entry.c_str(), entry.size() + 1);</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  ++<a class="code" href="namespacerouting_1_1link.html#a26486cdba01ef1c80706b1e07e8a6d3f">index</a>;</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  }</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span> </div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  envp[<a class="code" href="namespacerouting_1_1link.html#a26486cdba01ef1c80706b1e07e8a6d3f">index</a>] = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  }</div><div class="line"><a name="l00242"></a>
<span class="lineno"> 242</span> </div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  <span class="comment">// Determine the function to clone the child process. If the user</span></div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  <span class="comment">// does not specify the clone function, we will use the default.</span></div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  lambda::function<pid_t(const lambda::function<int()>&)> <a class="code" href="namespacens.html#a98bf4d9e11d546326250997a6493f835">clone</a> =</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  (_clone.isSome() ? _clone.get() : <a class="code" href="namespaceprocess_1_1internal.html#af2f19b6f367cddc0c8283560a9cd9215">defaultClone</a>);</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span> </div><div class="line"><a name="l00248">
</a><span class="lineno"> 248</span>  <span class="comment">// Currently we will block the child's execution of the new process</span></div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  <span class="comment">// until all the `parent_hooks` (if any) have executed.</span></div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  std::array<int, 2> pipes;</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  <span class="keyword">const</span> <span class="keywordtype">bool</span> blocking = !parent_hooks.empty();</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span> </div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  <span class="keywordflow">if</span> (blocking) {</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  <span class="comment">// We assume this should not fail under reaso
nable conditions so we</span></div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  <span class="comment">// use CHECK.</span></div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  <a class="code" href="classTry.html">Try<std::array<int, 2></a>> <a class="code" href="namespaceos.html#afefbea8a88b84bed66580372accb18a9">pipe</a> = <a class="code" href="namespaceos.html#afefbea8a88b84bed66580372accb18a9">os::pipe</a>();</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  <a class="code" href="stout_2include_2stout_2check_8hpp.html#aee320e7c6e107071f4b85d4cc135a265">CHECK_SOME</a>(pipe);</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span> </div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  pipes = pipe.<a class="code" href="classTry.html#a8bc7f43e75a47111ea18e9c83b007be5">get</a>();</div><div class="line"><a n
ame="l00260"></a><span class="lineno"> 260</span>  }</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span> </div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  <span class="comment">// Now, clone the child process.</span></div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  <a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ab03ced250ed239bc3b50b669493997f9">pid_t</a> pid = <a class="code" href="namespacens.html#a98bf4d9e11d546326250997a6493f835">clone</a>(<a class="code" href="namespaceprocess_1_1network.html#ad067110a4b38cc83785a43f49bf6c8e2">lambda::bind</a>(</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  &<a class="code" href="namespaceprocess_1_1internal.html#a902e2646d88c41ce674a3009cafe0aad">childMain</a>,</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  path,</div><div
class="line"><a name="l00266"></a><span class="lineno"> 266</span>  _argv,</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  envp,</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  stdinfds,</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  stdoutfds,</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  stderrfds,</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  blocking,</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  pipes.data(),</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  child_hooks));</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span> </div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  <span class="keyword">delete</span>[] _arg
v;</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span> </div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  <span class="comment">// Need to delete 'envp' if we had environment variables passed to</span></div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  <span class="comment">// us and we needed to allocate the space.</span></div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  <span class="keywordflow">if</span> (<a class="code" href="namespacemesos_1_1internal_1_1tests.html#a1396c5e3b0a179220de2792d74770ec2">environment</a>.isSome()) {</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  CHECK_NE(<a class="code" href="namespaceos_1_1raw.html#aad2bd3acb3ca09c75a1a1db58075f9f4">os::raw::environment</a>(), envp);</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span> </div><div class="lin
e"><a name="l00282"></a><span class="lineno"> 282</span>  <span class="comment">// We ignore the last 'envp' entry since it is nullptr.</span></div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> <a class="code" href="namespacerouting_1_1link.html#a26486cdba01ef1c80706b1e07e8a6d3f">index</a> = 0; <a class="code" href="namespacerouting_1_1link.html#a26486cdba01ef1c80706b1e07e8a6d3f">index</a> < <a class="code" href="namespacemesos_1_1internal_1_1tests.html#a1396c5e3b0a179220de2792d74770ec2">environment</a>->size(); <a class="code" href="namespacerouting_1_1link.html#a26486cdba01ef1c80706b1e07e8a6d3f">index</a>++) {</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  <span class="keyword">delete</span>[] envp[<a class="code" href="namespacerouting_1_1link.html#a26486cdba01ef1c80706b1e07e8a6d3f">index</a>];</div><div
class="line"><a name="l00285"></a><span class="lineno"> 285</span>  }</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span> </div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  <span class="keyword">delete</span>[] envp;</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  }</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span> </div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  <span class="keywordflow">if</span> (pid == -1) {</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  <span class="comment">// Save the errno as 'close' below might overwrite it.</span></div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  <a class="code" href="classErrnoError.html">ErrnoError</a> <a class="code" href="namespacemesos_1_1internal_1_1slave_1_1cni_1_1spe
c.html#ae58e703656ab4a1bd5d9870441236727">error</a>(<span class="stringliteral">"Failed to clone"</span>);</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  internal::close(stdinfds, stdoutfds, stderrfds);</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span> </div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  <span class="keywordflow">if</span> (blocking) {</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  <a class="code" href="namespaceos.html#a8df77ec6d6b8d32d9b287a41bc74cfdc">os::close</a>(pipes[0]);</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  <a class="code" href="namespaceos.html#a8df77ec6d6b8d32d9b287a41bc74cfdc">os::close</a>(pipes[1]);</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  }</div><div class="line"><a name="l00299"></a><span class="li
neno"> 299</span> </div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  <span class="keywordflow">return</span> <a class="code" href="namespacemesos_1_1internal_1_1slave_1_1cni_1_1spec.html#ae58e703656ab4a1bd5d9870441236727">error</a>;</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  }</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span> </div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  <span class="comment">// Close the child-ends of the file descriptors that are created by</span></div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  <span class="comment">// this function.</span></div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  internal::close({stdinfds.<a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors.html#a0a3f315345ef7b7ee6f3f1d4d337854d">read<
/a>, stdoutfds.<a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html#a5dabb8e3008efd61ce42478f260b54ac">write</a>, stderrfds.<a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html#a5dabb8e3008efd61ce42478f260b54ac">write</a>});</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span> </div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  <span class="keywordflow">if</span> (blocking) {</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  <a class="code" href="namespaceos.html#a8df77ec6d6b8d32d9b287a41bc74cfdc">os::close</a>(pipes[0]);</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span> </div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  <span class="comment">// Run the parent hooks.</span></div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>
  <span class="keywordflow">foreach</span> (<span class="keyword">const</span> <a class="code" href="structprocess_1_1Subprocess_1_1ParentHook.html">Subprocess::ParentHook</a>& hook, parent_hooks) {</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  <a class="code" href="classTry.html">Try<Nothing></a> parentSetup = hook.<a class="code" href="structprocess_1_1Subprocess_1_1ParentHook.html#aaf9ff141314d619cd65cd8ec9320fb7d">parent_setup</a>(pid);</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span> </div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  <span class="comment">// If the hook callback fails, we shouldn't proceed with the</span></div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  <span class="comment">// execution and hence the child process should be killed.</span></div><div class="line"><a name="l00316"></a><sp
an class="lineno"> 316</span>  <span class="keywordflow">if</span> (parentSetup.<a class="code" href="classTry.html#a0b98f95163b8a38daafd1651b043a276">isError</a>()) {</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  LOG(WARNING)</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  << <span class="stringliteral">"Failed to execute Subprocess::ParentHook in parent for child '"</span></div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  << pid << <span class="stringliteral">"': "</span> << parentSetup.<a class="code" href="classTry.html#aec4a11ddd3c036e889d90b7eb6258ba7">error</a>();</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span> </div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  <a class="code" href="namespaceos.html#a8df77ec6
d6b8d32d9b287a41bc74cfdc">os::close</a>(pipes[1]);</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span> </div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  <span class="comment">// Ensure the child is killed.</span></div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  <a class="code" href="namespacecgroups.html#ab75e1e2d1be63eec907bf12306a7c8a7">::kill</a>(pid, <a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#a1c2b5693161bbc9d516ef5d16c7b54f5">SIGKILL</a>);</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span> </div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  <span class="keywordflow">return</span> <a class="code" href="classError.html">Error</a>(</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  <span class="stringliteral">"Failed to
execute Subprocess::ParentHook in parent for child '"</span> +</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  <a class="code" href="namespacens.html#a28116b46e6543597a11733424cd1aa20">stringify</a>(pid) + <span class="stringliteral">"': "</span> + parentSetup.<a class="code" href="classTry.html#aec4a11ddd3c036e889d90b7eb6258ba7">error</a>());</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  }</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  }</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span> </div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  <span class="comment">// Now that we've executed the parent hooks, we can signal the child to</span></div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  <span class="comment">// continue by
writing to the pipe.</span></div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  <span class="keywordtype">char</span> dummy;</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>  <a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#a894c4d58faeee7675b9e7e8244de1386">ssize_t</a> length;</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  <span class="keywordflow">while</span> ((length = ::<a class="code" href="namespacemesos_1_1internal_1_1log_1_1protocol.html#a66ff2d5af4db53227f787281c0765d8d">write</a>(pipes[1], &dummy, <span class="keyword">sizeof</span>(dummy))) == -1 &&</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  errno == EINTR);</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span> </div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span> 
<a class="code" href="namespaceos.html#a8df77ec6d6b8d32d9b287a41bc74cfdc">os::close</a>(pipes[1]);</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span> </div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  <span class="keywordflow">if</span> (length != <span class="keyword">sizeof</span>(dummy)) {</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  <span class="comment">// Ensure the child is killed.</span></div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  <a class="code" href="namespacecgroups.html#ab75e1e2d1be63eec907bf12306a7c8a7">::kill</a>(pid, <a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#a1c2b5693161bbc9d516ef5d16c7b54f5">SIGKILL</a>);</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span> </div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  <span
class="keywordflow">return</span> <a class="code" href="classError.html">Error</a>(<span class="stringliteral">"Failed to synchronize child process"</span>);</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>  }</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>  }</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span> </div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  <span class="keywordflow">return</span> pid;</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span> }</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span> </div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span> } <span class="comment">// namespace internal {</span></div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span> } <span class="comment">// namespace process {
</span></div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span> </div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span> <span class="preprocessor">#endif // __PROCESS_POSIX_SUBPROCESS_HPP__</span></div><div class="ttc" id="namespaceos_html_a54f3320a4d6f88c14f80f5247aa879b9"><div class="ttname"><a href="namespaceos.html#a54f3320a4d6f88c14f80f5247aa879b9">os::dup2</a></div><div class="ttdeci">Try< Nothing > dup2(int oldFd, int newFd)</div><div class="ttdef"><b>Definition:</b> os.hpp:434</div></div>
+<div class="ttc" id="3rdparty_2stout_2include_2stout_2windows_8hpp_html_a894c4d58faeee7675b9e7e8244de1386"><div class="ttname"><a href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#a894c4d58faeee7675b9e7e8244de1386">ssize_t</a></div><div class="ttdeci">SSIZE_T ssize_t</div><div class="ttdef"><b>Definition:</b> windows.hpp:186</div></div>
+<div class="ttc" id="namespacepath_html"><div class="ttname"><a href="namespacepath.html">path</a></div><div class="ttdef"><b>Definition:</b> path.hpp:26</div></div>
+<div class="ttc" id="structNothing_html"><div class="ttname"><a href="structNothing.html">Nothing</a></div><div class="ttdef"><b>Definition:</b> nothing.hpp:16</div></div>
+<div class="ttc" id="namespaceos_html_afefbea8a88b84bed66580372accb18a9"><div class="ttname"><a href="namespaceos.html#afefbea8a88b84bed66580372accb18a9">os::pipe</a></div><div class="ttdeci">Try< std::array< int, 2 > > pipe()</div><div class="ttdef"><b>Definition:</b> pipe.hpp:26</div></div>
+<div class="ttc" id="classError_html"><div class="ttname"><a href="classError.html">Error</a></div><div class="ttdef"><b>Definition:</b> errorbase.hpp:36</div></div>
+<div class="ttc" id="classOption_html"><div class="ttname"><a href="classOption.html">Option</a></div><div class="ttdef"><b>Definition:</b> option.hpp:28</div></div>
+<div class="ttc" id="namespacens_html_a98bf4d9e11d546326250997a6493f835"><div class="ttname"><a href="namespacens.html#a98bf4d9e11d546326250997a6493f835">ns::clone</a></div><div class="ttdeci">Try< pid_t > clone(pid_t target, int nstypes, const lambda::function< int()> &f, int flags)</div><div class="ttdoc">Performs an os::clone after entering a set of namespaces for the specified target process...</div></div>
+<div class="ttc" id="abort_8hpp_html_a4d84a74fe6e4f84bc3d2f901b9e89f93"><div class="ttname"><a href="abort_8hpp.html#a4d84a74fe6e4f84bc3d2f901b9e89f93">ABORT</a></div><div class="ttdeci">#define ABORT(...)</div><div class="ttdef"><b>Definition:</b> abort.hpp:40</div></div>
+<div class="ttc" id="classOption_html_abbbed1bc42634fa9092160b16be6ca7e"><div class="ttname"><a href="classOption.html#abbbed1bc42634fa9092160b16be6ca7e">Option::getOrElse</a></div><div class="ttdeci">T getOrElse(U &&u) const &</div><div class="ttdef"><b>Definition:</b> option.hpp:127</div></div>
+<div class="ttc" id="namespaceprocess_html_a882829822afa4f33b90aafc9c4ffa9af"><div class="ttname"><a href="namespaceprocess.html#a882829822afa4f33b90aafc9c4ffa9af">process::OutputFileDescriptors</a></div><div class="ttdeci">Subprocess::IO::OutputFileDescriptors OutputFileDescriptors</div><div class="ttdef"><b>Definition:</b> subprocess.hpp:344</div></div>
+<div class="ttc" id="classTry_html_a8bc7f43e75a47111ea18e9c83b007be5"><div class="ttname"><a href="classTry.html#a8bc7f43e75a47111ea18e9c83b007be5">Try::get</a></div><div class="ttdeci">T & get()&</div><div class="ttdef"><b>Definition:</b> try.hpp:73</div></div>
+<div class="ttc" id="3rdparty_2stout_2include_2stout_2windows_8hpp_html_a1c2b5693161bbc9d516ef5d16c7b54f5"><div class="ttname"><a href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#a1c2b5693161bbc9d516ef5d16c7b54f5">SIGKILL</a></div><div class="ttdeci">const mode_t SIGKILL</div><div class="ttdef"><b>Definition:</b> windows.hpp:335</div></div>
+<div class="ttc" id="classprocess_1_1Subprocess_1_1ChildHook_html"><div class="ttname"><a href="classprocess_1_1Subprocess_1_1ChildHook.html">process::Subprocess::ChildHook</a></div><div class="ttdoc">A ChildHook can be passed to a subprocess call. </div><div class="ttdef"><b>Definition:</b> subprocess.hpp:190</div></div>
+<div class="ttc" id="classTry_html"><div class="ttname"><a href="classTry.html">Try</a></div><div class="ttdef"><b>Definition:</b> check.hpp:33</div></div>
+<div class="ttc" id="classhashset_html"><div class="ttname"><a href="classhashset.html">hashset</a></div><div class="ttdef"><b>Definition:</b> hashset.hpp:53</div></div>
+<div class="ttc" id="include_2process_2subprocess_8hpp_html"><div class="ttname"><a href="include_2process_2subprocess_8hpp.html">subprocess.hpp</a></div></div>
+<div class="ttc" id="os_8hpp_html"><div class="ttname"><a href="os_8hpp.html">os.hpp</a></div></div>
+<div class="ttc" id="3rdparty_2stout_2include_2stout_2os_2environment_8hpp_html"><div class="ttname"><a href="3rdparty_2stout_2include_2stout_2os_2environment_8hpp.html">environment.hpp</a></div></div>
+<div class="ttc" id="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors_html_a0a3f315345ef7b7ee6f3f1d4d337854d"><div class="ttname"><a href="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors.html#a0a3f315345ef7b7ee6f3f1d4d337854d">process::Subprocess::IO::InputFileDescriptors::read</a></div><div class="ttdeci">int_fd read</div><div class="ttdef"><b>Definition:</b> subprocess.hpp:75</div></div>
+<div class="ttc" id="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors_html"><div class="ttname"><a href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html">process::Subprocess::IO::OutputFileDescriptors</a></div><div class="ttdoc">For output file descriptors a child writes to the write file descriptor and a parent may read from th...</div><div class="ttdef"><b>Definition:</b> subprocess.hpp:88</div></div>
+<div class="ttc" id="none_8hpp_html"><div class="ttname"><a href="none_8hpp.html">none.hpp</a></div></div>
+<div class="ttc" id="namespaceprocess_1_1internal_html_af2f19b6f367cddc0c8283560a9cd9215"><div class="ttname"><a href="namespaceprocess_1_1internal.html#af2f19b6f367cddc0c8283560a9cd9215">process::internal::defaultClone</a></div><div class="ttdeci">pid_t defaultClone(const lambda::function< int()> &func)</div><div class="ttdef"><b>Definition:</b> subprocess.hpp:58</div></div>
+<div class="ttc" id="classErrnoError_html"><div class="ttname"><a href="classErrnoError.html">ErrnoError</a></div><div class="ttdef"><b>Definition:</b> errorbase.hpp:50</div></div>
+<div class="ttc" id="3rdparty_2stout_2include_2stout_2windows_8hpp_html_ae2fe1725bb5e9823d089c46b9ed5266e"><div class="ttname"><a href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ae2fe1725bb5e9823d089c46b9ed5266e">STDERR_FILENO</a></div><div class="ttdeci">#define STDERR_FILENO</div><div class="ttdef"><b>Definition:</b> windows.hpp:155</div></div>
+<div class="ttc" id="stout_2include_2stout_2check_8hpp_html"><div class="ttname"><a href="stout_2include_2stout_2check_8hpp.html">check.hpp</a></div></div>
+<div class="ttc" id="namespaceprocess_1_1internal_html_a345a534b82b79bf20333fb6faef43e93"><div class="ttname"><a href="namespaceprocess_1_1internal.html#a345a534b82b79bf20333fb6faef43e93">process::internal::cloexec</a></div><div class="ttdeci">Try< Nothing > cloexec(const InputFileDescriptors &stdinfds, const OutputFileDescriptors &stdoutfds, const OutputFileDescriptors &stderrfds)</div><div class="ttdef"><b>Definition:</b> subprocess.hpp:76</div></div>
+<div class="ttc" id="lambda_8hpp_html"><div class="ttname"><a href="lambda_8hpp.html">lambda.hpp</a></div></div>
+<div class="ttc" id="close_8hpp_html"><div class="ttname"><a href="close_8hpp.html">close.hpp</a></div></div>
+<div class="ttc" id="classOption_html_a4e3bf8416d95246f43c91f1b5c309323"><div class="ttname"><a href="classOption.html#a4e3bf8416d95246f43c91f1b5c309323">Option::isSome</a></div><div class="ttdeci">bool isSome() const </div><div class="ttdef"><b>Definition:</b> option.hpp:115</div></div>
+<div class="ttc" id="namespaceprocess_html_afc6611c4913642642277b44447a16e55"><div class="ttname"><a href="namespaceprocess.html#afc6611c4913642642277b44447a16e55">process::InputFileDescriptors</a></div><div class="ttdeci">Subprocess::IO::InputFileDescriptors InputFileDescriptors</div><div class="ttdef"><b>Definition:</b> subprocess.hpp:343</div></div>
+<div class="ttc" id="strerror_8hpp_html"><div class="ttname"><a href="strerror_8hpp.html">strerror.hpp</a></div></div>
+<div class="ttc" id="namespacemesos_1_1internal_1_1tests_html_a1396c5e3b0a179220de2792d74770ec2"><div class="ttname"><a href="namespacemesos_1_1internal_1_1tests.html#a1396c5e3b0a179220de2792d74770ec2">mesos::internal::tests::environment</a></div><div class="ttdeci">Environment * environment</div></div>
+<div class="ttc" id="3rdparty_2stout_2include_2stout_2windows_8hpp_html_ab03ced250ed239bc3b50b669493997f9"><div class="ttname"><a href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ab03ced250ed239bc3b50b669493997f9">pid_t</a></div><div class="ttdeci">DWORD pid_t</div><div class="ttdef"><b>Definition:</b> windows.hpp:181</div></div>
+<div class="ttc" id="namespacerouting_1_1link_html_a26486cdba01ef1c80706b1e07e8a6d3f"><div class="ttname"><a href="namespacerouting_1_1link.html#a26486cdba01ef1c80706b1e07e8a6d3f">routing::link::index</a></div><div class="ttdeci">Result< int > index(const std::string &link)</div></div>
+<div class="ttc" id="stout_2include_2stout_2check_8hpp_html_aee320e7c6e107071f4b85d4cc135a265"><div class="ttname"><a href="stout_2include_2stout_2check_8hpp.html#aee320e7c6e107071f4b85d4cc135a265">CHECK_SOME</a></div><div class="ttdeci">#define CHECK_SOME(expression)</div><div class="ttdef"><b>Definition:</b> check.hpp:50</div></div>
+<div class="ttc" id="3rdparty_2stout_2include_2stout_2windows_8hpp_html_abd165ee6474b5b75bf075842fff13a04"><div class="ttname"><a href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#abd165ee6474b5b75bf075842fff13a04">STDOUT_FILENO</a></div><div class="ttdeci">#define STDOUT_FILENO</div><div class="ttdef"><b>Definition:</b> windows.hpp:154</div></div>
+<div class="ttc" id="fcntl_8hpp_html"><div class="ttname"><a href="fcntl_8hpp.html">fcntl.hpp</a></div></div>
+<div class="ttc" id="nothing_8hpp_html"><div class="ttname"><a href="nothing_8hpp.html">nothing.hpp</a></div></div>
+<div class="ttc" id="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors_html_a5dabb8e3008efd61ce42478f260b54ac"><div class="ttname"><a href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html#a5dabb8e3008efd61ce42478f260b54ac">process::Subprocess::IO::OutputFileDescriptors::write</a></div><div class="ttdeci">int_fd write</div><div class="ttdef"><b>Definition:</b> subprocess.hpp:91</div></div>
+<div class="ttc" id="namespaceos_html_a8df77ec6d6b8d32d9b287a41bc74cfdc"><div class="ttname"><a href="namespaceos.html#a8df77ec6d6b8d32d9b287a41bc74cfdc">os::close</a></div><div class="ttdeci">Try< Nothing > close(int fd)</div><div class="ttdef"><b>Definition:</b> close.hpp:24</div></div>
+<div class="ttc" id="namespaceos_html_a7d71bda07a41304403b0e13aa47f0764"><div class="ttname"><a href="namespaceos.html#a7d71bda07a41304403b0e13aa47f0764">os::cloexec</a></div><div class="ttdeci">Try< Nothing > cloexec(int fd)</div><div class="ttdef"><b>Definition:</b> fcntl.hpp:27</div></div>
+<div class="ttc" id="classOption_html_a21358442c0fac1cc978a67a9a9089a79"><div class="ttname"><a href="classOption.html#a21358442c0fac1cc978a67a9a9089a79">Option::get</a></div><div class="ttdeci">const T & get() const &</div><div class="ttdef"><b>Definition:</b> option.hpp:118</div></div>
+<div class="ttc" id="foreach_8hpp_html_a66900b166526abe66464d6597536b111"><div class="ttname"><a href="foreach_8hpp.html#a66900b166526abe66464d6597536b111">foreachpair</a></div><div class="ttdeci">#define foreachpair(KEY, VALUE, ELEMS)</div><div class="ttdef"><b>Definition:</b> foreach.hpp:51</div></div>
+<div class="ttc" id="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors_html"><div class="ttname"><a href="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors.html">process::Subprocess::IO::InputFileDescriptors</a></div><div class="ttdoc">For input file descriptors a child reads from the read file descriptor and a parent may write to the ...</div><div class="ttdef"><b>Definition:</b> subprocess.hpp:73</div></div>
+<div class="ttc" id="namespaceprocess_1_1internal_html_afe2c3a3ffdd0ee6fda82e198ece80a37"><div class="ttname"><a href="namespaceprocess_1_1internal.html#afe2c3a3ffdd0ee6fda82e198ece80a37">process::internal::cloneChild</a></div><div class="ttdeci">Try< pid_t > cloneChild(const std::string &path, std::vector< std::string > argv, const Option< std::map< std::string, std::string >> &environment, const Option< lambda::function< pid_t(const lambda::function< int()> &)>> &_clone, const std::vector< Subprocess::ParentHook > &parent_hooks, const std::vector< Subprocess::ChildHook > &child_hooks, const InputFileDescriptors stdinfds, const OutputFileDescriptors stdoutfds, const OutputFileDescriptors stderrfds)</div><div class="ttdef"><b>Definition:</b> subprocess.hpp:200</div></div>
+<div class="ttc" id="option_8hpp_html"><div class="ttname"><a href="option_8hpp.html">option.hpp</a></div></div>
+<div class="ttc" id="3rdparty_2stout_2include_2stout_2windows_8hpp_html_afcf80a6d91178952d107ad00b165752b"><div class="ttname"><a href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#afcf80a6d91178952d107ad00b165752b">STDIN_FILENO</a></div><div class="ttdeci">#define STDIN_FILENO</div><div class="ttdef"><b>Definition:</b> windows.hpp:153</div></div>
+<div class="ttc" id="classTry_html_aec4a11ddd3c036e889d90b7eb6258ba7"><div class="ttname"><a href="classTry.html#aec4a11ddd3c036e889d90b7eb6258ba7">Try::error</a></div><div class="ttdeci">static Try error(const E &e)</div><div class="ttdef"><b>Definition:</b> try.hpp:42</div></div>
+<div class="ttc" id="unreachable_8hpp_html_a0bc63b24b654ca433be7b97a3edde132"><div class="ttname"><a href="unreachable_8hpp.html#a0bc63b24b654ca433be7b97a3edde132">UNREACHABLE</a></div><div class="ttdeci">#define UNREACHABLE()</div><div class="ttdef"><b>Definition:</b> unreachable.hpp:22</div></div>
+<div class="ttc" id="structprocess_1_1Subprocess_1_1ParentHook_html_aaf9ff141314d619cd65cd8ec9320fb7d"><div class="ttname"><a href="structprocess_1_1Subprocess_1_1ParentHook.html#aaf9ff141314d619cd65cd8ec9320fb7d">process::Subprocess::ParentHook::parent_setup</a></div><div class="ttdeci">const lambda::function< Try< Nothing >pid_t)> parent_setup</div><div class="ttdoc">The callback that must be specified for execution after the child has been cloned, but before it starts executing the new process. </div><div class="ttdef"><b>Definition:</b> subprocess.hpp:163</div></div>
+<div class="ttc" id="foreach_8hpp_html"><div class="ttname"><a href="foreach_8hpp.html">foreach.hpp</a></div></div>
+<div class="ttc" id="error_8hpp_html"><div class="ttname"><a href="error_8hpp.html">error.hpp</a></div></div>
+<div class="ttc" id="namespaceinternal_html"><div class="ttname"><a href="namespaceinternal.html">internal</a></div><div class="ttdef"><b>Definition:</b> attributes.hpp:24</div></div>
+<div class="ttc" id="classTry_html_a0b98f95163b8a38daafd1651b043a276"><div class="ttname"><a href="classTry.html#a0b98f95163b8a38daafd1651b043a276">Try::isError</a></div><div class="ttdeci">bool isError() const </div><div class="ttdef"><b>Definition:</b> try.hpp:71</div></div>
+<div class="ttc" id="namespacemesos_1_1internal_1_1credentials_html_a137c93d60149616181a10e9f39986f7f"><div class="ttname"><a href="namespacemesos_1_1internal_1_1credentials.html#a137c93d60149616181a10e9f39986f7f">mesos::internal::credentials::read</a></div><div class="ttdeci">Result< Credentials > read(const Path &path)</div><div class="ttdef"><b>Definition:</b> credentials.hpp:35</div></div>
+<div class="ttc" id="namespacemesos_1_1internal_1_1slave_1_1cni_1_1spec_html_ae58e703656ab4a1bd5d9870441236727"><div class="ttname"><a href="namespacemesos_1_1internal_1_1slave_1_1cni_1_1spec.html#ae58e703656ab4a1bd5d9870441236727">mesos::internal::slave::cni::spec::error</a></div><div class="ttdeci">std::string error(const std::string &msg, uint32_t code)</div></div>
+<div class="ttc" id="namespaceprocess_html"><div class="ttname"><a href="namespaceprocess.html">process</a></div><div class="ttdef"><b>Definition:</b> executor.hpp:48</div></div>
+<div class="ttc" id="exit_8hpp_html"><div class="ttname"><a href="exit_8hpp.html">exit.hpp</a></div></div>
+<div class="ttc" id="try_8hpp_html"><div class="ttname"><a href="try_8hpp.html">try.hpp</a></div></div>
+<div class="ttc" id="namespaceos_html_aebc3586b2be0d2b9093ccfbf25dfcde8"><div class="ttname"><a href="namespaceos.html#aebc3586b2be0d2b9093ccfbf25dfcde8">os::execvpe</a></div><div class="ttdeci">int execvpe(const std::string &command, const std::vector< std::string > &argv, const std::map< std::string, std::string > &envp)</div><div class="ttdef"><b>Definition:</b> shell.hpp:592</div></div>
+<div class="ttc" id="signals_8hpp_html"><div class="ttname"><a href="signals_8hpp.html">signals.hpp</a></div></div>
+<div class="ttc" id="hashset_8hpp_html"><div class="ttname"><a href="hashset_8hpp.html">hashset.hpp</a></div></div>
+<div class="ttc" id="namespacemesos_1_1internal_1_1log_1_1protocol_html_a66ff2d5af4db53227f787281c0765d8d"><div class="ttname"><a href="namespacemesos_1_1internal_1_1log_1_1protocol.html#a66ff2d5af4db53227f787281c0765d8d">mesos::internal::log::protocol::write</a></div><div class="ttdeci">Protocol< WriteRequest, WriteResponse > write</div></div>
+<div class="ttc" id="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors_html_ac4af678c631a700d4be4410a250e3bce"><div class="ttname"><a href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html#ac4af678c631a700d4be4410a250e3bce">process::Subprocess::IO::OutputFileDescriptors::read</a></div><div class="ttdeci">Option< int_fd > read</div><div class="ttdef"><b>Definition:</b> subprocess.hpp:90</div></div>
+<div class="ttc" id="namespacecgroups_html_ab75e1e2d1be63eec907bf12306a7c8a7"><div class="ttname"><a href="namespacecgroups.html#ab75e1e2d1be63eec907bf12306a7c8a7">cgroups::kill</a></div><div class="ttdeci">Try< Nothing > kill(const std::string &hierarchy, const std::string &cgroup, int signal)</div></div>
+<div class="ttc" id="namespaceprocess_1_1network_html_ad067110a4b38cc83785a43f49bf6c8e2"><div class="ttname"><a href="namespaceprocess_1_1network.html#ad067110a4b38cc83785a43f49bf6c8e2">process::network::bind</a></div><div class="ttdeci">Try< Nothing > bind(int_fd s, const Address &address)</div><div class="ttdef"><b>Definition:</b> network.hpp:46</div></div>
+<div class="ttc" id="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors_html_ab812da47364d793d9ec0471d3dc8c1bc"><div class="ttname"><a href="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors.html#ab812da47364d793d9ec0471d3dc8c1bc">process::Subprocess::IO::InputFileDescriptors::write</a></div><div class="ttdeci">Option< int_fd > write</div><div class="ttdef"><b>Definition:</b> subprocess.hpp:76</div></div>
+<div class="ttc" id="structprocess_1_1Subprocess_1_1ParentHook_html"><div class="ttname"><a href="structprocess_1_1Subprocess_1_1ParentHook.html">process::Subprocess::ParentHook</a></div><div class="ttdoc">A hook can be passed to a subprocess call. </div><div class="ttdef"><b>Definition:</b> subprocess.hpp:152</div></div>
+<div class="ttc" id="namespacens_html_a28116b46e6543597a11733424cd1aa20"><div class="ttname"><a href="namespacens.html#a28116b46e6543597a11733424cd1aa20">ns::stringify</a></div><div class="ttdeci">std::string stringify(int flags)</div></div>
+<div class="ttc" id="exit_8hpp_html_a637cd32ee4af0a5a1d1aea8a0d7f7564"><div class="ttname"><a href="exit_8hpp.html#a637cd32ee4af0a5a1d1aea8a0d7f7564">SAFE_EXIT</a></div><div class="ttdeci">#define SAFE_EXIT(status, fmt,...)</div><div class="ttdef"><b>Definition:</b> exit.hpp:42</div></div>
+<div class="ttc" id="unreachable_8hpp_html"><div class="ttname"><a href="unreachable_8hpp.html">unreachable.hpp</a></div></div>
+<div class="ttc" id="namespaceprocess_1_1internal_html_a902e2646d88c41ce674a3009cafe0aad"><div class="ttname"><a href="namespaceprocess_1_1internal.html#a902e2646d88c41ce674a3009cafe0aad">process::internal::childMain</a></div><div class="ttdeci">int childMain(const std::string &path, char **argv, char **envp, const InputFileDescriptors &stdinfds, const OutputFileDescriptors &stdoutfds, const OutputFileDescriptors &stderrfds, bool blocking, int pipes[2], const std::vector< Subprocess::ChildHook > &child_hooks)</div><div class="ttdef"><b>Definition:</b> subprocess.hpp:106</div></div>
+<div class="ttc" id="namespaceos_1_1raw_html_aad2bd3acb3ca09c75a1a1db58075f9f4"><div class="ttname"><a href="namespaceos_1_1raw.html#aad2bd3acb3ca09c75a1a1db58075f9f4">os::raw::environment</a></div><div class="ttdeci">char ** environment()</div><div class="ttdef"><b>Definition:</b> environment.hpp:66</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.11
+</small></address>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/src_2tests_2mesos_8hpp.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/src_2tests_2mesos_8hpp.html b/content/api/latest/c++/src_2tests_2mesos_8hpp.html
index 870341e..f4659aa 100644
--- a/content/api/latest/c++/src_2tests_2mesos_8hpp.html
+++ b/content/api/latest/c++/src_2tests_2mesos_8hpp.html
@@ -84,7 +84,7 @@
<code>#include <<a class="el" href="3rdparty_2libprocess_2include_2process_2pid_8hpp_source.html">process/pid.hpp</a>></code><br />
<code>#include <<a class="el" href="libprocess_2include_2process_2process_8hpp_source.html">process/process.hpp</a>></code><br />
<code>#include <<a class="el" href="queue_8hpp_source.html">process/queue.hpp</a>></code><br />
-<code>#include <<a class="el" href="subprocess_8hpp_source.html">process/subprocess.hpp</a>></code><br />
+<code>#include <<a class="el" href="include_2process_2subprocess_8hpp_source.html">process/subprocess.hpp</a>></code><br />
<code>#include <<a class="el" href="3rdparty_2libprocess_2include_2process_2ssl_2flags_8hpp_source.html">process/ssl/flags.hpp</a>></code><br />
<code>#include <<a class="el" href="libprocess_2include_2process_2ssl_2gtest_8hpp_source.html">process/ssl/gtest.hpp</a>></code><br />
<code>#include <<a class="el" href="bytes_8hpp_source.html">stout/bytes.hpp</a>></code><br />
[49/50] mesos-site git commit: Updated the website built from mesos
SHA: 7c9c72d.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/3rdparty_2libprocess_2include_2process_2http_8hpp_source.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/3rdparty_2libprocess_2include_2process_2http_8hpp_source.html b/content/api/latest/c++/3rdparty_2libprocess_2include_2process_2http_8hpp_source.html
index 0d78bc5..4ff519e 100644
--- a/content/api/latest/c++/3rdparty_2libprocess_2include_2process_2http_8hpp_source.html
+++ b/content/api/latest/c++/3rdparty_2libprocess_2include_2process_2http_8hpp_source.html
@@ -52,7 +52,7 @@
<div class="title">http.hpp</div> </div>
</div><!--header-->
<div class="contents">
-<a href="3rdparty_2libprocess_2include_2process_2http_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// Licensed under the Apache License, Version 2.0 (the "License");</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// you may not use this file except in compliance with the License.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// You may obtain a copy of the License at</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</s
pan> <span class="comment">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// Unless required by applicable law or agreed to in writing, software</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">// distributed under the License is distributed on an "AS IS" BASIS,</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">// See the License for the specific language governing permissions and</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// limitations under the License</span></div><div class="line"><a name="l00012"></a><span class="lineno">
12</span> </div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#ifndef __PROCESS_HTTP_HPP__</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#define __PROCESS_HTTP_HPP__</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include <ctype.h></span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include <stdint.h></span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> </div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include <atomic></span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span cla
ss="preprocessor">#include <initializer_list></span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <iosfwd></span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <memory></span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <queue></span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <string></span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <vector></span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <boost/functional/hash.hpp&g
t;</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> </div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include <<a class="code" href="address_8hpp.html">process/address.hpp</a>></span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include <<a class="code" href="future_8hpp.html">process/future.hpp</a>></span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include <<a class="code" href="owned_8hpp.html">process/owned.hpp</a>></span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#include <<a class="code" href="3rdparty_2libprocess_2include_2process_2pid_8hpp.html">process/pid.hpp</a>></span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>
0;<span class="preprocessor">#include <<a class="code" href="libprocess_2include_2process_2socket_8hpp.html">process/socket.hpp</a>></span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include <<a class="code" href="error_8hpp.html">stout/error.hpp</a>></span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#include <<a class="code" href="hashmap_8hpp.html">stout/hashmap.hpp</a>></span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#include <<a class="code" href="3rdparty_2stout_2include_2stout_2ip_8hpp.html">stout/ip.hpp</a>></span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor">#include <<a class="code" href="json_8hpp.ht
ml">stout/json.hpp</a>></span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor">#include <<a class="code" href="jsonify_8hpp.html">stout/jsonify.hpp</a>></span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="preprocessor">#include <<a class="code" href="none_8hpp.html">stout/none.hpp</a>></span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="preprocessor">#include <<a class="code" href="nothing_8hpp.html">stout/nothing.hpp</a>></span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor">#include <<a class="code" href="option_8hpp.html">stout/option.hpp</a>></span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor">#include <<a class="code" href="stringify_8hpp.html">stout/stringify.h
pp</a>></span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="preprocessor">#include <<a class="code" href="strings_8hpp.html">stout/strings.hpp</a>></span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#include <<a class="code" href="try_8hpp.html">stout/try.hpp</a>></span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> </div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="keyword">namespace </span><a class="code" href="namespaceprocess.html">process</a> {</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> </div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="comment">// Forward declaration to break cyclic dependency.</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>
0;<span class="keyword">template</span> <<span class="keyword">typename</span> T></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="keyword">class </span>Future;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="keyword">namespace </span><a class="code" href="namespacemesos_1_1uri.html#a5dff7c4a2df7be12fb642b5801c34f9f">http</a> {</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span> </div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="namespaceprocess_1_1http.html#acc0a9c62d4bef93195e93af072f0cda5"> 55</a></span> <span class="keyword">enum class</span> <a class="code" href="namespaceprocess_1_1http.html#acc0a9c62d4bef93195e93af072f0cda5">Scheme</a> {</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span> 
<a class="code" href="namespaceprocess_1_1http.html#acc0a9c62d4bef93195e93af072f0cda5a293c9ea246ff9985dc6f62a650f78986">HTTP</a>,</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="preprocessor">#ifdef USE_SSL_SOCKET</span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  HTTPS</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span> };</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="keyword">namespace </span>authentication {</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span> </div><div class="line"><a name="l00
065"></a><span class="lineno"> 65</span> <span class="keyword">class </span>Authenticator;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span> </div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="keyword">struct </span>Principal;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span> </div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <a class="code" href="classprocess_1_1Future.html">Future<Nothing></a> <a class="code" href="namespaceprocess_1_1http_1_1authentication.html#a77c8aabd89ad49fb5bbc727924042cc8">setAuthenticator</a>(</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="keyword">const</span> std::string& realm,</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <a class="code" href="classprocess_1_1Owned.html">Owned<Authenticator></a>
authenticator);</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span> </div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span> </div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <a class="code" href="classprocess_1_1Future.html">Future<Nothing></a> <a class="code" href="namespaceprocess_1_1http_1_1authentication.html#a33ca9afbbd1aceb21aa64c2069973a24">unsetAuthenticator</a>(<span class="keyword">const</span> std::string& realm);</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span> </div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span> } <span class="comment">// namespace authentication {</span></div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span> </div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <span class="comment">// Forward declaration.</span></div><div class="
line"><a name="l00092"></a><span class="lineno"> 92</span> <span class="keyword">struct </span><a class="code" href="structprocess_1_1http_1_1Request.html">Request</a>;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span> </div><div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="namespaceprocess_1_1http_1_1authorization.html"> 94</a></span> <span class="keyword">namespace </span>authorization {</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span> </div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span> <span class="comment">// The `AuthorizationCallbacks` type is used for a set of authorization</span></div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="comment">// callbacks used by libprocess to authorize HTTP endpoints. The key of the map</span></div><div class="line"><a name="l00098"></a><span class="lineno">
98</span> <span class="comment">// contains the endpoint's path, while the value contains the callback.</span></div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <span class="keyword">typedef</span> <a class="code" href="classhashmap.html">hashmap</a><std::string,</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  lambda::function<process::Future<bool>(</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <span class="keyword">const</span> <a class="code" href="structprocess_1_1http_1_1Request.html">Request</a>,</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<authentication::Principal></a>)>></div><div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="namespa
ceprocess_1_1http_1_1authorization.html#affe51580eadc8728411234d784808ece"> 103</a></span>  <a class="code" href="classhashmap.html">AuthorizationCallbacks</a>;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span> </div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span> </div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <span class="comment">// Set authorization callbacks for HTTP endpoints. These can be used to call out</span></div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <span class="comment">// to an external, application-level authorizer. The callbacks should accept an</span></div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span> <span class="comment">// HTTP request and an optional principal, and they should return a</span></div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <span class="
comment">// `Future<bool>` representing whether or not authorization was successful.</span></div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="keywordtype">void</span> <a class="code" href="namespaceprocess_1_1http_1_1authorization.html#a5c0dc8d25fb3556f4be432507c6f0f2c">setCallbacks</a>(<span class="keyword">const</span> <a class="code" href="classhashmap.html">AuthorizationCallbacks</a>&);</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span> </div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span> </div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span> <span class="comment">// Remove any authorization callbacks which were previously installed in</span></div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span> <span class="comment">// libprocess.</span></div><div class="line"><a name="l00115"></a><span class="lineno">
115</span> <span class="keywordtype">void</span> <a class="code" href="namespaceprocess_1_1http_1_1authorization.html#a0083eba64f0133537ce496006258a344">unsetCallbacks</a>();</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span> </div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span> } <span class="comment">// namespace authorization {</span></div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span> </div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span> <span class="comment">// Checks if the given status code is defined by RFC 2616.</span></div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceprocess_1_1http.html#ad1e795f8cd92c0d2c95aaedab510d4f6">isValidStatus</a>(uint16_t code);</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span> </div><div
class="line"><a name="l00122"></a><span class="lineno"> 122</span> <span class="comment">// Represents a Uniform Resource Locator:</span></div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span> <span class="comment">// scheme://domain|ip:port/path?query#fragment</span></div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span> <span class="comment">//</span></div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span> <span class="comment">// This is actually a URI-reference (see 4.1 of RFC 3986).</span></div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span> <span class="comment">//</span></div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span> <span class="comment">// TODO(bmahler): The default port should depend on the scheme!</span></div><div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="structprocess_1_1http_1_1UR
L.html"> 128</a></span> <span class="keyword">struct </span><a class="code" href="structprocess_1_1http_1_1URL.html">URL</a></div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span> {</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <a class="code" href="structprocess_1_1http_1_1URL.html">URL</a>() = <span class="keywordflow">default</span>;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span> </div><div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="structprocess_1_1http_1_1URL.html#a0405a5eae13705f0cfe7b78e2928bc5f"> 132</a></span>  <a class="code" href="structprocess_1_1http_1_1URL.html#a0405a5eae13705f0cfe7b78e2928bc5f">URL</a>(<span class="keyword">const</span> std::string& _scheme,</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <span class="keyword">const</span> std::string& _domain,</div><div c
lass="line"><a name="l00134"></a><span class="lineno"> 134</span>  <span class="keyword">const</span> uint16_t _port = 80,</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <span class="keyword">const</span> std::string& _path = <span class="stringliteral">"/"</span>,</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <span class="keyword">const</span> <a class="code" href="classhashmap.html">hashmap<std::string, std::string></a>& _query =</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  (<a class="code" href="classhashmap.html">hashmap<std::string, std::string></a>()),</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a>& _fragment = <a class="code" href="structNone.html">None</a>()
)</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  : scheme(_scheme),</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  domain(_domain),</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  port(_port),</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <a class="code" href="namespacepath.html">path</a>(_path),</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  query(_query),</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <a class="code" href="namespacemesos_1_1internal_1_1tests.html#ab70487cb3ac225692ff7b0ea9923eb23">fragment</a>(_fragment) {}</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span> </div><div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="structprocess_1_1http_1_1URL.html#a5670b901f
50b1cc161664b930411e156"> 146</a></span>  <a class="code" href="structprocess_1_1http_1_1URL.html#a5670b901f50b1cc161664b930411e156">URL</a>(<span class="keyword">const</span> std::string& _scheme,</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <span class="keyword">const</span> <a class="code" href="classnet_1_1IP.html">net::IP</a>& _ip,</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  <span class="keyword">const</span> uint16_t _port = 80,</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  <span class="keyword">const</span> std::string& _path = <span class="stringliteral">"/"</span>,</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <span class="keyword">const</span> <a class="code" href="classhashmap.html">hashmap<std::string, std::string></a>& _query =</div><div class="line"><a name="
l00151"></a><span class="lineno"> 151</span>  (<a class="code" href="classhashmap.html">hashmap<std::string, std::string></a>()),</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a>& _fragment = <a class="code" href="structNone.html">None</a>())</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  : scheme(_scheme),</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  ip(_ip),</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  port(_port),</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <a class="code" href="namespacepath.html">path</a>(_path),</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  query(_query),</div><div class="line"><a na
me="l00158"></a><span class="lineno"> 158</span>  <a class="code" href="namespacemesos_1_1internal_1_1tests.html#ab70487cb3ac225692ff7b0ea9923eb23">fragment</a>(_fragment) {}</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span> </div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  <span class="keyword">static</span> <a class="code" href="classTry.html">Try<URL></a> <a class="code" href="namespaceprocess_1_1http_1_1path.html#a2410072cba7b95c5d555a0747ef33b50">parse</a>(<span class="keyword">const</span> std::string& urlString);</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span> </div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <span class="keywordtype">bool</span> isAbsolute() <span class="keyword">const</span>;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span> </div><div class="line"><a name="l00168"><
/a><span class="lineno"><a class="line" href="structprocess_1_1http_1_1URL.html#a499516725a6f0065c90520fe484cf7f5"> 168</a></span>  <a class="code" href="classOption.html">Option<std::string></a> <a class="code" href="structprocess_1_1http_1_1URL.html#a499516725a6f0065c90520fe484cf7f5">scheme</a>;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span> </div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <span class="comment">// TODO(benh): Consider using unrestricted union for 'domain' and 'ip'.</span></div><div class="line"><a name="l00171"></a><span class="lineno"><a class="line" href="structprocess_1_1http_1_1URL.html#a800e017253a838fc29a2c8d30e49564e"> 171</a></span>  <a class="code" href="classOption.html">Option<std::string></a> <a class="code" href="structprocess_1_1http_1_1URL.html#a800e017253a838fc29a2c8d30e49564e">domain</a>;</div><div class="line"><a name="l00172"></a><s
pan class="lineno"><a class="line" href="structprocess_1_1http_1_1URL.html#ac0416d6239dbcd64e0b2d8dc4f151ef8"> 172</a></span>  <a class="code" href="classOption.html">Option<net::IP></a> <a class="code" href="structprocess_1_1http_1_1URL.html#ac0416d6239dbcd64e0b2d8dc4f151ef8">ip</a>;</div><div class="line"><a name="l00173"></a><span class="lineno"><a class="line" href="structprocess_1_1http_1_1URL.html#ad1926a8cdc7de53e09cbd954b302b511"> 173</a></span>  <a class="code" href="classOption.html">Option<uint16_t></a> <a class="code" href="structprocess_1_1http_1_1URL.html#ad1926a8cdc7de53e09cbd954b302b511">port</a>;</div><div class="line"><a name="l00174"></a><span class="lineno"><a class="line" href="structprocess_1_1http_1_1URL.html#a184ec5f02b451f1d53b1ac5032a68dac"> 174</a></span>  std::string <a class="code" href="structprocess_1_1http_1_1URL.html#a184ec5f02b451f1d53b1ac5032a68dac">path</a>;</div><div class="line"><a name="l00175"></a><span class="
lineno"><a class="line" href="structprocess_1_1http_1_1URL.html#af2d0454d281cfe79f382c0dbc91bc251"> 175</a></span>  <a class="code" href="classhashmap.html">hashmap<std::string, std::string></a> <a class="code" href="structprocess_1_1http_1_1URL.html#af2d0454d281cfe79f382c0dbc91bc251">query</a>;</div><div class="line"><a name="l00176"></a><span class="lineno"><a class="line" href="structprocess_1_1http_1_1URL.html#ae1a6af7f79e3e3662345f71cd4782c92"> 176</a></span>  <a class="code" href="classOption.html">Option<std::string></a> <a class="code" href="structprocess_1_1http_1_1URL.html#ae1a6af7f79e3e3662345f71cd4782c92">fragment</a>;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span> };</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span> </div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span> </div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&
#160;std::ostream& <a class="code" href="namespaceprocess_1_1http.html#a64211e6e3428968c27b5753f05cbcf45">operator<<</a>(std::ostream& stream, <span class="keyword">const</span> <a class="code" href="structprocess_1_1http_1_1URL.html">URL</a>& url);</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span> </div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span> </div><div class="line"><a name="l00183"></a><span class="lineno"><a class="line" href="structprocess_1_1http_1_1CaseInsensitiveHash.html"> 183</a></span> <span class="keyword">struct </span><a class="code" href="structprocess_1_1http_1_1CaseInsensitiveHash.html">CaseInsensitiveHash</a></div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span> {</div><div class="line"><a name="l00185"></a><span class="lineno"><a class="line" href="structprocess_1_1http_1_1CaseInsensitiveHash.html#aaa3077605157ee04498242975d8734c5"> 185</a></
span>  <span class="keywordtype">size_t</span> <a class="code" href="structprocess_1_1http_1_1CaseInsensitiveHash.html#aaa3077605157ee04498242975d8734c5">operator()</a>(<span class="keyword">const</span> std::string& key)<span class="keyword"> const</span></div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  <span class="keywordtype">size_t</span> seed = 0;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  <span class="keywordflow">foreach</span> (<span class="keywordtype">char</span> c, key) {</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  boost::hash_combine(seed, ::tolower(c));</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  }</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>
0; <span class="keywordflow">return</span> seed;</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  }</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span> };</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span> </div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span> </div><div class="line"><a name="l00196"></a><span class="lineno"><a class="line" href="structprocess_1_1http_1_1CaseInsensitiveEqual.html"> 196</a></span> <span class="keyword">struct </span><a class="code" href="structprocess_1_1http_1_1CaseInsensitiveEqual.html">CaseInsensitiveEqual</a></div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span> {</div><div class="line"><a name="l00198"></a><span class="lineno"><a class="line" href="structprocess_1_1http_1_1CaseInsensitiveEqual.html#a167f121f66fb0f7eac7b7ee8827ace5c"> 198</a></span>  <span class="keywordtype">
bool</span> <a class="code" href="structprocess_1_1http_1_1CaseInsensitiveEqual.html#a167f121f66fb0f7eac7b7ee8827ace5c">operator()</a>(<span class="keyword">const</span> std::string& left, <span class="keyword">const</span> std::string& right)<span class="keyword"> const</span></div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  <span class="keywordflow">if</span> (left.size() != right.size()) {</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  }</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i < left.s
ize(); ++i) {</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  <span class="keywordflow">if</span> (::tolower(left[i]) != ::tolower(right[i])) {</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  }</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  }</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  }</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span> };</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span> </div><div class="line"><a name="l00212"></a><s
pan class="lineno"> 212</span> </div><div class="line"><a name="l00213"></a><span class="lineno"><a class="line" href="structprocess_1_1http_1_1Status.html"> 213</a></span> <span class="keyword">struct </span><a class="code" href="structprocess_1_1http_1_1Status.html">Status</a></div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span> {</div><div class="line"><a name="l00215"></a><span class="lineno"><a class="line" href="structprocess_1_1http_1_1Status.html#a838b0372c2834ebe254930cff1ec8bd4"> 215</a></span>  <span class="keyword">static</span> <span class="keyword">const</span> uint16_t <a class="code" href="structprocess_1_1http_1_1Status.html#a838b0372c2834ebe254930cff1ec8bd4">CONTINUE</a>;</div><div class="line"><a name="l00216"></a><span class="lineno"><a class="line" href="structprocess_1_1http_1_1Status.html#ac1989e4156b3c5b009e5a0ab15d61ff1"> 216</a></span>  <span class="keyword">static</span> <span class="keyword">const</s
pan> uint16_t <a class="code" href="structprocess_1_1http_1_1Status.html#ac1989e4156b3c5b009e5a0ab15d61ff1">SWITCHING_PROTOCOLS</a>;</div><div class="line"><a name="l00217"></a><span class="lineno"><a class="line" href="structprocess_1_1http_1_1Status.html#ae105d018cfcf82f5c19c79196101fd9b"> 217</a></span>  <span class="keyword">static</span> <span class="keyword">const</span> uint16_t <a class="code" href="structprocess_1_1http_1_1Status.html#ae105d018cfcf82f5c19c79196101fd9b">OK</a>;</div><div class="line"><a name="l00218"></a><span class="lineno"><a class="line" href="structprocess_1_1http_1_1Status.html#af8f62dd7f1179ffc32c58aceef60decb"> 218</a></span>  <span class="keyword">static</span> <span class="keyword">const</span> uint16_t <a class="code" href="structprocess_1_1http_1_1Status.html#af8f62dd7f1179ffc32c58aceef60decb">CREATED</a>;</div><div class="line"><a name="l00219"></a><span class="lineno"><a class="line" href="structprocess_1_1http_1_1Status.html#a5d2b
09dd7b99e2519b641b682dc976b0"> 219</a></span>  <span class="keyword">static</span> <span class="keyword">const</span> uint16_t <a class="code" href="structprocess_1_1http_1_1Status.html#a5d2b09dd7b99e2519b641b682dc976b0">ACCEPTED</a>;</div><div class="line"><a name="l00220"></a><span class="lineno"><a class="line" href="structprocess_1_1http_1_1Status.html#ae73df769517624433b4f20af3dd17803"> 220</a></span>  <span class="keyword">static</span> <span class="keyword">const</span> uint16_t <a class="code" href="structprocess_1_1http_1_1Status.html#ae73df769517624433b4f20af3dd17803">NON_AUTHORITATIVE_INFORMATION</a>;</div><div class="line"><a name="l00221"></a><span class="lineno"><a class="line" href="structprocess_1_1http_1_1Status.html#acbed897ae92821a24aced2e4dc633dad"> 221</a></span>  <span class="keyword">static</span> <span class="keyword">const</span> uint16_t <a class="code" href="structprocess_1_1http_1_1Status.html#acbed897ae92821a24aced2e4dc633dad">NO_CON
TENT</a>;</div><div class="line"><a name="l00222"></a><span class="lineno"><a class="line" href="structprocess_1_1http_1_1Status.html#adf7f64f0d95bae2b22dde9b5db8e892c"> 222</a></span>  <span class="keyword">static</span> <span class="keyword">const</span> uint16_t <a class="code" href="structprocess_1_1http_1_1Status.html#adf7f64f0d95bae2b22dde9b5db8e892c">RESET_CONTENT</a>;</div><div class="line"><a name="l00223"></a><span class="lineno"><a class="line" href="structprocess_1_1http_1_1Status.html#ac65b51669b169159644d53b15932fd98"> 223</a></span>  <span class="keyword">static</span> <span class="keyword">const</span> uint16_t <a class="code" href="structprocess_1_1http_1_1Status.html#ac65b51669b169159644d53b15932fd98">PARTIAL_CONTENT</a>;</div><div class="line"><a name="l00224"></a><span class="lineno"><a class="line" href="structprocess_1_1http_1_1Status.html#a8feae2af2cdeaf0c0ddbd5f80c9f5ff5"> 224</a></span>  <span class="keyword">static</span> <span class="k
eyword">const</span> uint16_t <a class="code" href="structprocess_1_1http_1_1Status.html#a8feae2af2cdeaf0c0ddbd5f80c9f5ff5">MULTIPLE_CHOICES</a>;</div><div class="line"><a name="l00225"></a><span class="lineno"><a class="line" href="structprocess_1_1http_1_1Status.html#aa8ef81ebd5c8e73eff805b126abcfde2"> 225</a></span>  <span class="keyword">static</span> <span class="keyword">const</span> uint16_t <a class="code" href="structprocess_1_1http_1_1Status.html#aa8ef81ebd5c8e73eff805b126abcfde2">MOVED_PERMANENTLY</a>;</div><div class="line"><a name="l00226"></a><span class="lineno"><a class="line" href="structprocess_1_1http_1_1Status.html#a2fde9047b9350b005c9f2d0e74aa49d4"> 226</a></span>  <span class="keyword">static</span> <span class="keyword">const</span> uint16_t <a class="code" href="structprocess_1_1http_1_1Status.html#a2fde9047b9350b005c9f2d0e74aa49d4">FOUND</a>;</div><div class="line"><a name="l00227"></a><span class="lineno"><a class="line" href="structprocess_1_
1http_1_1Status.html#a3cc43c9b0a051240b63bf536ff355aa3"> 227</a></span>  <span class="keyword">static</span> <span class="keyword">const</span> uint16_t <a class="code" href="structprocess_1_1http_1_1Status.html#a3cc43c9b0a051240b63bf536ff355aa3">SEE_OTHER</a>;</div><div class="line"><a name="l00228"></a><span class="lineno"><a class="line" href="structprocess_1_1http_1_1Status.html#aaa40446a9ede5dc719b34d58300d9766"> 228</a></span>  <span class="keyword">static</span> <span class="keyword">const</span> uint16_t <a class="code" href="structprocess_1_1http_1_1Status.html#aaa40446a9ede5dc719b34d58300d9766">NOT_MODIFIED</a>;</div><div class="line"><a name="l00229"></a><span class="lineno"><a class="line" href="structprocess_1_1http_1_1Status.html#a0f5bf0546812f869183e41132bb6044d"> 229</a></span>  <span class="keyword">static</span> <span class="keyword">const</span> uint16_t <a class="code" href="structprocess_1_1http_1_1Status.html#a0f5bf0546812f869183e41132bb604
4d">USE_PROXY</a>;</div><div class="line"><a name="l00230"></a><span class="lineno"><a class="line" href="structprocess_1_1http_1_1Status.html#ae6e1e6f8b96f39b3ce6685de41ab1060"> 230</a></span>  <span class="keyword">static</span> <span class="keyword">const</span> uint16_t <a class="code" href="structprocess_1_1http_1_1Status.html#ae6e1e6f8b96f39b3ce6685de41ab1060">TEMPORARY_REDIRECT</a>;</div><div class="line"><a name="l00231"></a><span class="lineno"><a class="line" href="structprocess_1_1http_1_1Status.html#a5cc8f560c42aa82042f347ceca649ff5"> 231</a></span>  <span class="keyword">static</span> <span class="keyword">const</span> uint16_t <a class="code" href="structprocess_1_1http_1_1Status.html#a5cc8f560c42aa82042f347ceca649ff5">BAD_REQUEST</a>;</div><div class="line"><a name="l00232"></a><span class="lineno"><a class="line" href="structprocess_1_1http_1_1Status.html#a370088c7f9891cd5363ce2f59b39b8ab"> 232</a></span>  <span class="keyword">static</span> <spa
n class="keyword">const</span> uint16_t <a class="code" href="structprocess_1_1http_1_1Status.html#a370088c7f9891cd5363ce2f59b39b8ab">UNAUTHORIZED</a>;</div><div class="line"><a name="l00233"></a><span class="lineno"><a class="line" href="structprocess_1_1http_1_1Status.html#a1c4709730f229f14c36644bc971645b9"> 233</a></span>  <span class="keyword">static</span> <span class="keyword">const</span> uint16_t <a class="code" href="structprocess_1_1http_1_1Status.html#a1c4709730f229f14c36644bc971645b9">PAYMENT_REQUIRED</a>;</div><div class="line"><a name="l00234"></a><span class="lineno"><a class="line" href="structprocess_1_1http_1_1Status.html#a30d5c1ab390d0ede2e99e3838a5f2973"> 234</a></span>  <span class="keyword">static</span> <span class="keyword">const</span> uint16_t <a class="code" href="structprocess_1_1http_1_1Status.html#a30d5c1ab390d0ede2e99e3838a5f2973">FORBIDDEN</a>;</div><div class="line"><a name="l00235"></a><span class="lineno"><a class="line" href="structp
rocess_1_1http_1_1Status.html#ab9caadbc291e8d0e7d633faada0119a0"> 235</a></span>  <span class="keyword">static</span> <span class="keyword">const</span> uint16_t <a class="code" href="structprocess_1_1http_1_1Status.html#ab9caadbc291e8d0e7d633faada0119a0">NOT_FOUND</a>;</div><div class="line"><a name="l00236"></a><span class="lineno"><a class="line" href="structprocess_1_1http_1_1Status.html#a7ec542fce3fdf8c25bd870a160f569f7"> 236</a></span>  <span class="keyword">static</span> <span class="keyword">const</span> uint16_t <a class="code" href="structprocess_1_1http_1_1Status.html#a7ec542fce3fdf8c25bd870a160f569f7">METHOD_NOT_ALLOWED</a>;</div><div class="line"><a name="l00237"></a><span class="lineno"><a class="line" href="structprocess_1_1http_1_1Status.html#a725667e70ba51ea7ab33416675de05db"> 237</a></span>  <span class="keyword">static</span> <span class="keyword">const</span> uint16_t <a class="code" href="structprocess_1_1http_1_1Status.html#a725667e70ba51ea
7ab33416675de05db">NOT_ACCEPTABLE</a>;</div><div class="line"><a name="l00238"></a><span class="lineno"><a class="line" href="structprocess_1_1http_1_1Status.html#a2a724a29d7c8d8e047e009a897252280"> 238</a></span>  <span class="keyword">static</span> <span class="keyword">const</span> uint16_t <a class="code" href="structprocess_1_1http_1_1Status.html#a2a724a29d7c8d8e047e009a897252280">PROXY_AUTHENTICATION_REQUIRED</a>;</div><div class="line"><a name="l00239"></a><span class="lineno"><a class="line" href="structprocess_1_1http_1_1Status.html#ab95e476fae088bc934ac7d72886233fd"> 239</a></span>  <span class="keyword">static</span> <span class="keyword">const</span> uint16_t <a class="code" href="structprocess_1_1http_1_1Status.html#ab95e476fae088bc934ac7d72886233fd">REQUEST_TIMEOUT</a>;</div><div class="line"><a name="l00240"></a><span class="lineno"><a class="line" href="structprocess_1_1http_1_1Status.html#a711a886455704253efaa63254f6347e8"> 240</a></span>  <span
class="keyword">static</span> <span class="keyword">const</span> uint16_t <a class="code" href="structprocess_1_1http_1_1Status.html#a711a886455704253efaa63254f6347e8">CONFLICT</a>;</div><div class="line"><a name="l00241"></a><span class="lineno"><a class="line" href="structprocess_1_1http_1_1Status.html#a84baf6a6f631e460bb85bea1d546bd97"> 241</a></span>  <span class="keyword">static</span> <span class="keyword">const</span> uint16_t <a class="code" href="structprocess_1_1http_1_1Status.html#a84baf6a6f631e460bb85bea1d546bd97">GONE</a>;</div><div class="line"><a name="l00242"></a><span class="lineno"><a class="line" href="structprocess_1_1http_1_1Status.html#a10336f87c20b50fd38fdec4f1c94be3d"> 242</a></span>  <span class="keyword">static</span> <span class="keyword">const</span> uint16_t <a class="code" href="structprocess_1_1http_1_1Status.html#a10336f87c20b50fd38fdec4f1c94be3d">LENGTH_REQUIRED</a>;</div><div class="line"><a name="l00243"></a><span class="lineno"><a c
lass="line" href="structprocess_1_1http_1_1Status.html#a52227b30875d794c719a53fc2c7f42eb"> 243</a></span>  <span class="keyword">static</span> <span class="keyword">const</span> uint16_t <a class="code" href="structprocess_1_1http_1_1Status.html#a52227b30875d794c719a53fc2c7f42eb">PRECONDITION_FAILED</a>;</div><div class="line"><a name="l00244"></a><span class="lineno"><a class="line" href="structprocess_1_1http_1_1Status.html#af15751921c14230c0974a97dfc2f9144"> 244</a></span>  <span class="keyword">static</span> <span class="keyword">const</span> uint16_t <a class="code" href="structprocess_1_1http_1_1Status.html#af15751921c14230c0974a97dfc2f9144">REQUEST_ENTITY_TOO_LARGE</a>;</div><div class="line"><a name="l00245"></a><span class="lineno"><a class="line" href="structprocess_1_1http_1_1Status.html#a5e86bdc9477d1e574ca545d2e3b5d522"> 245</a></span>  <span class="keyword">static</span> <span class="keyword">const</span> uint16_t <a class="code" href="structproces
s_1_1http_1_1Status.html#a5e86bdc9477d1e574ca545d2e3b5d522">REQUEST_URI_TOO_LARGE</a>;</div><div class="line"><a name="l00246"></a><span class="lineno"><a class="line" href="structprocess_1_1http_1_1Status.html#addffbea97c092bf92955b7f513208ceb"> 246</a></span>  <span class="keyword">static</span> <span class="keyword">const</span> uint16_t <a class="code" href="structprocess_1_1http_1_1Status.html#addffbea97c092bf92955b7f513208ceb">UNSUPPORTED_MEDIA_TYPE</a>;</div><div class="line"><a name="l00247"></a><span class="lineno"><a class="line" href="structprocess_1_1http_1_1Status.html#a877f7875ccf8eb543acc3dc542ce4082"> 247</a></span>  <span class="keyword">static</span> <span class="keyword">const</span> uint16_t <a class="code" href="structprocess_1_1http_1_1Status.html#a877f7875ccf8eb543acc3dc542ce4082">REQUESTED_RANGE_NOT_SATISFIABLE</a>;</div><div class="line"><a name="l00248"></a><span class="lineno"><a class="line" href="structprocess_1_1http_1_1Status.html#ab544df
e7c9a7484671cf288500a93fce"> 248</a></span>  <span class="keyword">static</span> <span class="keyword">const</span> uint16_t <a class="code" href="structprocess_1_1http_1_1Status.html#ab544dfe7c9a7484671cf288500a93fce">EXPECTATION_FAILED</a>;</div><div class="line"><a name="l00249"></a><span class="lineno"><a class="line" href="structprocess_1_1http_1_1Status.html#ae1c6540846d05803ff13c01a17be2df7"> 249</a></span>  <span class="keyword">static</span> <span class="keyword">const</span> uint16_t <a class="code" href="structprocess_1_1http_1_1Status.html#ae1c6540846d05803ff13c01a17be2df7">INTERNAL_SERVER_ERROR</a>;</div><div class="line"><a name="l00250"></a><span class="lineno"><a class="line" href="structprocess_1_1http_1_1Status.html#a4b9ac228c6172625a36f454797b1b33c"> 250</a></span>  <span class="keyword">static</span> <span class="keyword">const</span> uint16_t <a class="code" href="structprocess_1_1http_1_1Status.html#a4b9ac228c6172625a36f454797b1b33c">NOT_IM
PLEMENTED</a>;</div><div class="line"><a name="l00251"></a><span class="lineno"><a class="line" href="structprocess_1_1http_1_1Status.html#a12afe0fc9b46decff08215e12bdb00ac"> 251</a></span>  <span class="keyword">static</span> <span class="keyword">const</span> uint16_t <a class="code" href="structprocess_1_1http_1_1Status.html#a12afe0fc9b46decff08215e12bdb00ac">BAD_GATEWAY</a>;</div><div class="line"><a name="l00252"></a><span class="lineno"><a class="line" href="structprocess_1_1http_1_1Status.html#ac38d2d21e08b9d2af0511c216613db0f"> 252</a></span>  <span class="keyword">static</span> <span class="keyword">const</span> uint16_t <a class="code" href="structprocess_1_1http_1_1Status.html#ac38d2d21e08b9d2af0511c216613db0f">SERVICE_UNAVAILABLE</a>;</div><div class="line"><a name="l00253"></a><span class="lineno"><a class="line" href="structprocess_1_1http_1_1Status.html#a2b8bca1da1c541e2b042bc7f7e36b562"> 253</a></span>  <span class="keyword">static</span> <span c
lass="keyword">const</span> uint16_t <a class="code" href="structprocess_1_1http_1_1Status.html#a2b8bca1da1c541e2b042bc7f7e36b562">GATEWAY_TIMEOUT</a>;</div><div class="line"><a name="l00254"></a><span class="lineno"><a class="line" href="structprocess_1_1http_1_1Status.html#a587b0f84081baf8fe273378aa839dceb"> 254</a></span>  <span class="keyword">static</span> <span class="keyword">const</span> uint16_t <a class="code" href="structprocess_1_1http_1_1Status.html#a587b0f84081baf8fe273378aa839dceb">HTTP_VERSION_NOT_SUPPORTED</a>;</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span> </div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  <span class="keyword">static</span> std::string string(uint16_t code);</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span> };</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span> </div><div class="line"><a name="l00259"></a><s
pan class="lineno"> 259</span> </div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span> <span class="comment">// Represents an asynchronous in-memory unbuffered Pipe, currently</span></div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span> <span class="comment">// used for streaming HTTP responses via chunked encoding. Note that</span></div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span> <span class="comment">// being an in-memory pipe means that this cannot be used across OS</span></div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span> <span class="comment">// processes.</span></div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span> <span class="comment">//</span></div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span> <span class="comment">// Much like unix pipes, data is read until end-of-file is</span></div><d
iv class="line"><a name="l00266"></a><span class="lineno"> 266</span> <span class="comment">// encountered; this occurs when the write-end of the pipe is</span></div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span> <span class="comment">// closed and there is no outstanding data left to read.</span></div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span> <span class="comment">//</span></div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span> <span class="comment">// Unlike unix pipes, if the read-end of the pipe is closed before</span></div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span> <span class="comment">// the write-end is closed, rather than receiving SIGPIPE or EPIPE</span></div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span> <span class="comment">// during a write, the writer is notified via a future. This future</span></div><di
v class="line"><a name="l00272"></a><span class="lineno"> 272</span> <span class="comment">// is discarded if the write-end is closed first.</span></div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span> <span class="comment">//</span></div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span> <span class="comment">// No buffering means that each non-empty write to the pipe will</span></div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span> <span class="comment">// correspond to to an equivalent read from the pipe, and the</span></div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span> <span class="comment">// reader must "keep up" with the writer in order to avoid</span></div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span> <span class="comment">// unbounded memory growth.</span></div><div class="line"><a name="l00278"></a><span class=
"lineno"> 278</span> <span class="comment">//</span></div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span> <span class="comment">// The writer can induce a failure on the reader in order to signal</span></div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span> <span class="comment">// that an error has occurred. For example, if we are receiving a</span></div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span> <span class="comment">// response but a disconnection occurs before the response is</span></div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span> <span class="comment">// completed, we want the reader to detect that a disconnection</span></div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span> <span class="comment">// occurred!</span></div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span> <span class="comment">
//</span></div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span> <span class="comment">// TODO(bmahler): Consider aggregating writes into larger reads to</span></div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span> <span class="comment">// help the reader keep up (a process::Stream abstraction with</span></div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span> <span class="comment">// backpressure would obviate the need for this).</span></div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span> <span class="comment">//</span></div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span> <span class="comment">// TODO(bmahler): Add a more general process::Stream<T> abstraction</span></div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span> <span class="comment">// to represent asynchronous finite/infinite streams (possibly</s
pan></div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span> <span class="comment">// with "backpressure" on the writer). This is broadly useful</span></div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span> <span class="comment">// (e.g. allocator can expose Stream<Allocation>, http::Pipe</span></div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span> <span class="comment">// becomes Stream<string>, process::Queue<T> is just an infinite</span></div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span> <span class="comment">// Stream<T> (i.e. completion and error semantics hidden)).</span></div><div class="line"><a name="l00295"></a><span class="lineno"><a class="line" href="classprocess_1_1http_1_1Pipe.html"> 295</a></span> <span class="keyword">class </span><a class="code" href="classprocess_1_1http_1_1Pipe.html">Pipe</a></div><div class="
line"><a name="l00296"></a><span class="lineno"> 296</span> {</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  <span class="keyword">struct </span>Data; <span class="comment">// Forward declaration.</span></div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span> </div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00301"></a><span class="lineno"><a class="line" href="classprocess_1_1http_1_1Pipe_1_1Reader.html"> 301</a></span>  <span class="keyword">class </span><a class="code" href="classprocess_1_1http_1_1Pipe_1_1Reader.html">Reader</a></div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  {</div><div class="line"><a name="l00303"></a><span class="lineno"> 3
03</span>  <span class="keyword">public</span>:</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  <span class="comment">// Returns data written to the pipe.</span></div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  <span class="comment">// Returns an empty read when end-of-file is reached.</span></div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  <span class="comment">// Returns Failure if the writer failed, or the read-end</span></div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  <span class="comment">// is closed.</span></div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  <a class="code" href="classprocess_1_1Future.html">Future<std::string></a> <a class="code" href="namespacemesos_1_1internal_1_1credentials.html#a137c93d60149616181a10e9f39986f7f">read</a>();</div><div class="line"><a name="l
00309"></a><span class="lineno"> 309</span> </div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  <span class="comment">// Performs a series of asynchronous reads, until EOF is reached.</span></div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  <span class="comment">// Returns the concatenated result of the reads.</span></div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  <span class="comment">// Returns Failure if the writer failed, or the read-end</span></div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  <span class="comment">// is closed.</span></div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  <a class="code" href="classprocess_1_1Future.html">Future<std::string></a> readAll();</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span> </div><div class="line"><a name="l
00316"></a><span class="lineno"> 316</span>  <span class="comment">// Closing the read-end of the pipe before the write-end closes</span></div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  <span class="comment">// or fails will notify the writer that the reader is no longer</span></div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  <span class="comment">// interested. Returns false if the read-end was already closed.</span></div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  <span class="keywordtype">bool</span> close();</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span> </div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  <span class="comment">// Comparison operators useful for checking connection equality.</span></div><div class="line"><a name="l00322"></a><span class="lineno"><a class="line" href="cla
ssprocess_1_1http_1_1Pipe_1_1Reader.html#ab05ad7874980715328153d42c6b138be"> 322</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classprocess_1_1http_1_1Pipe_1_1Reader.html#ab05ad7874980715328153d42c6b138be">operator==</a>(<span class="keyword">const</span> <a class="code" href="classprocess_1_1http_1_1Pipe_1_1Reader.html">Reader</a>& other)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> data == other.data; }</div><div class="line"><a name="l00323"></a><span class="lineno"><a class="line" href="classprocess_1_1http_1_1Pipe_1_1Reader.html#ac118f7e5f511e0840b7e4460f3287aa5"> 323</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classprocess_1_1http_1_1Pipe_1_1Reader.html#ac118f7e5f511e0840b7e4460f3287aa5">operator!=</a>(<span class="keyword">const</span> <a class="code" href="classprocess_1_1http_1_1Pipe_1_1Reader.html">Reader</a>& other)<span class="keyword"> const </span>{ <span cla
ss="keywordflow">return</span> !(*<span class="keyword">this</span> == other); }</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span> </div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  <span class="keyword">private</span>:</div><div class="line"><a name="l00326"></a><span class="lineno"><a class="line" href="classprocess_1_1http_1_1Pipe_1_1Reader.html#adb788d0aa2d64624d3602a985936d7da"> 326</a></span>  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classprocess_1_1http_1_1Pipe.html">Pipe</a>;</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span> </div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  <span class="keyword">enum</span> State</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  {</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#
160; OPEN,</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>  CLOSED,</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  };</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span> </div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  <span class="keyword">explicit</span> <a class="code" href="classprocess_1_1http_1_1Pipe_1_1Reader.html">Reader</a>(<span class="keyword">const</span> std::shared_ptr<Data>& _data) : data(_data) {}</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span> </div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  std::shared_ptr<Data> data;</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  };</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span> </div><div class="line"><a name="l00339
"></a><span class="lineno"><a class="line" href="classprocess_1_1http_1_1Pipe_1_1Writer.html"> 339</a></span>  <span class="keyword">class </span><a class="code" href="classprocess_1_1http_1_1Pipe_1_1Writer.html">Writer</a></div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  {</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  <span class="keyword">public</span>:</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  <span class="comment">// Returns false if the data could not be written because</span></div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  <span class="comment">// either end of the pipe was already closed. Note that an</span></div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  <span class="comment">// empty write has no effect.</span></div><div class="line"><a name="l00345"></a><span class="linen
o"> 345</span>  <span class="keywordtype">bool</span> <a class="code" href="namespacemesos_1_1internal_1_1log_1_1protocol.html#a66ff2d5af4db53227f787281c0765d8d">write</a>(std::string s);</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span> </div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>  <span class="comment">// Closing the write-end of the pipe will send end-of-file</span></div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>  <span class="comment">// to the reader. Returns false if the write-end of the pipe</span></div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  <span class="comment">// was already closed or failed.</span></div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>  <span class="keywordtype">bool</span> close();</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>
0;</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>  <span class="comment">// Closes the write-end of the pipe but sends a failure</span></div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>  <span class="comment">// to the reader rather than end-of-file. Returns false</span></div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  <span class="comment">// if the write-end of the pipe was already closed or failed.</span></div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  <span class="keywordtype">bool</span> fail(<span class="keyword">const</span> std::string& message);</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span> </div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  <span class="comment">// Returns Nothing when the read-end of the pipe is closed</span></div><div class="line
"><a name="l00358"></a><span class="lineno"> 358</span>  <span class="comment">// before the write-end is closed, which means the reader</span></div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>  <span class="comment">// was unable to continue reading!</span></div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  <a class="code" href="classprocess_1_1Future.html">Future<Nothing></a> readerClosed() <span class="keyword">const</span>;</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span> </div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  <span class="comment">// Comparison operators useful for checking connection equality.</span></div><div class="line"><a name="l00363"></a><span class="lineno"><a class="line" href="classprocess_1_1http_1_1Pipe_1_1Writer.html#af9693ab7e438233a3e8244f3c650df7d"> 363</a></span>  <span class="keywordt
ype">bool</span> <a class="code" href="classprocess_1_1http_1_1Pipe_1_1Writer.html#af9693ab7e438233a3e8244f3c650df7d">operator==</a>(<span class="keyword">const</span> <a class="code" href="classprocess_1_1http_1_1Pipe_1_1Writer.html">Writer</a>& other)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> data == other.data; }</div><div class="line"><a name="l00364"></a><span class="lineno"><a class="line" href="classprocess_1_1http_1_1Pipe_1_1Writer.html#a1d21b4591e3eae83215f95a34855b465"> 364</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classprocess_1_1http_1_1Pipe_1_1Writer.html#a1d21b4591e3eae83215f95a34855b465">operator!=</a>(<span class="keyword">const</span> <a class="code" href="classprocess_1_1http_1_1Pipe_1_1Writer.html">Writer</a>& other)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> !(*<span class="keyword">this</span> == other); }</div><div class="line"><a name="l00365"></
a><span class="lineno"> 365</span>  <span class="keyword">private</span>:</div><div class="line"><a name="l00366"></a><span class="lineno"><a class="line" href="classprocess_1_1http_1_1Pipe_1_1Writer.html#adb788d0aa2d64624d3602a985936d7da"> 366</a></span>  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classprocess_1_1http_1_1Pipe.html">Pipe</a>;</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span> </div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  <span class="keyword">enum</span> State</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  {</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>  OPEN,</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  CLOSED,</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  FAILE
D,</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  };</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span> </div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  <span class="keyword">explicit</span> <a class="code" href="classprocess_1_1http_1_1Pipe_1_1Writer.html">Writer</a>(<span class="keyword">const</span> std::shared_ptr<Data>& _data) : data(_data) {}</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span> </div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  std::shared_ptr<Data> data;</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  };</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span> </div><div class="line"><a name="l00380"></a><span class="lineno"><a class="line" href="classprocess_1_1http_1_1Pipe.html#ac4d65a3bbbdfba2bfeb755aedb
5153da"> 380</a></span>  <a class="code" href="classprocess_1_1http_1_1Pipe.html#ac4d65a3bbbdfba2bfeb755aedb5153da">Pipe</a>() : data(new Data()) {}</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span> </div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  <a class="code" href="classprocess_1_1http_1_1Pipe_1_1Reader.html">Reader</a> reader() <span class="keyword">const</span>;</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>  <a class="code" href="classprocess_1_1http_1_1Pipe_1_1Writer.html">Writer</a> writer() <span class="keyword">const</span>;</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span> </div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>  <span class="comment">// Comparison operators useful for checking connection equality.</span></div><div class="line"><a name="l00386"></a><span class="lineno"><a class="lin
e" href="classprocess_1_1http_1_1Pipe.html#a4dfc8ee332d8e02d63079491086d3a3b"> 386</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classprocess_1_1http_1_1Pipe.html#a4dfc8ee332d8e02d63079491086d3a3b">operator==</a>(<span class="keyword">const</span> <a class="code" href="classprocess_1_1http_1_1Pipe.html">Pipe</a>& other)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> data == other.data; }</div><div class="line"><a name="l00387"></a><span class="lineno"><a class="line" href="classprocess_1_1http_1_1Pipe.html#a140c24540da2515a1c9835b594bc4df2"> 387</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classprocess_1_1http_1_1Pipe.html#a140c24540da2515a1c9835b594bc4df2">operator!=</a>(<span class="keyword">const</span> <a class="code" href="classprocess_1_1http_1_1Pipe.html">Pipe</a>& other)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> !(*<span class="keyword">
this</span> == other); }</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  <span class="keyword">struct </span>Data</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  {</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  Data()</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  : readEnd(Reader::OPEN),</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>  writeEnd(Writer::OPEN) {}</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span> </div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  <span class="comment">// Rather than use a process to serialize access to the pipe's</span></div><div class="line"><a name="l00396"></a><s
pan class="lineno"> 396</span>  <span class="comment">// internal data we use a 'std::atomic_flag'.</span></div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>  std::atomic_flag lock = ATOMIC_FLAG_INIT;</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span> </div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  Reader::State readEnd;</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  Writer::State writeEnd;</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span> </div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>  <span class="comment">// Represents readers waiting for data from the pipe.</span></div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>  std::queue<Owned<Promise<std::string>>> reads;</div><div class="line"><a name="l
00404"></a><span class="lineno"> 404</span> </div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>  <span class="comment">// Represents unread writes in the pipe. Note that we omit</span></div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>  <span class="comment">// empty strings as they serve as a signal for end-of-file.</span></div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  std::queue<std::string> writes;</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span> </div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>  <span class="comment">// Signals when the read-end is closed before the write-end.</span></div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  <a class="code" href="classprocess_1_1Promise.html">Promise<Nothing></a> readerClosure;</div><div class="line"><a na
me="l00411"></a><span class="lineno"> 411</span> </div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  <span class="comment">// Failure reason when the 'writeEnd' is FAILED.</span></div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>  <a class="code" href="classOption.html">Option<Failure></a> failure;</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>  };</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span> </div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>  std::shared_ptr<Data> data;</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span> };</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span> </div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span> </div><div class="line"><a name="l00420"></a><span class="line
no"><a class="line" href="namespaceprocess_1_1http_1_1header.html"> 420</a></span> <span class="keyword">namespace </span>header {</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span> </div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span> <span class="comment">// https://tools.ietf.org/html/rfc2617.</span></div><div class="line"><a name="l00423"></a><span class="lineno"><a class="line" href="classprocess_1_1http_1_1header_1_1WWWAuthenticate.html"> 423</a></span> <span class="keyword">class </span><a class="code" href="classprocess_1_1http_1_1header_1_1WWWAuthenticate.html">WWWAuthenticate</a></div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span> {</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00426"></a><span class="lineno"><a class="line" href="classprocess_1_1http_1_1header_1_1
WWWAuthenticate.html#aa25cdb0353e7e0b131a4528ca8ad3d68"> 426</a></span>  <span class="keyword">static</span> constexpr <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="namespacemesos_1_1internal_1_1logger_1_1rotate.html#aee5dc359a1b6d22c5d912b166c895854">NAME</a> = <span class="stringliteral">"WWW-Authenticate"</span>;</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span> </div><div class="line"><a name="l00428"></a><span class="lineno"><a class="line" href="classprocess_1_1http_1_1header_1_1WWWAuthenticate.html#a1694b4ae16e6aa84cbec3bcda360e913"> 428</a></span>  <a class="code" href="classprocess_1_1http_1_1header_1_1WWWAuthenticate.html#a1694b4ae16e6aa84cbec3bcda360e913">WWWAuthenticate</a>(</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>  <span class="keyword">const</span> std::string& authScheme,</div><div class="line"><a name="l00430"><
/a><span class="lineno"> 430</span>  <span class="keyword">const</span> <a class="code" href="classhashmap.html">hashmap<std::string, std::string></a>& authParam)</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>  : authScheme_(authScheme),</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>  authParam_(authParam) {}</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span> </div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>  <span class="keyword">static</span> <a class="code" href="classTry.html">Try<WWWAuthenticate></a> <a class="code" href="namespacecgroups.html#a2ecc89636706df947027a4c3c2100fbe">create</a>(<span class="keyword">const</span> std::string& value);</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span> </div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&
#160; std::string authScheme();</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>  <a class="code" href="classhashmap.html">hashmap<std::string, std::string></a> authParam();</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span> </div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>  <span class="comment">// According to RFC, HTTP/1.1 server may return multiple challenges</span></div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>  <span class="comment">// with a 401 (Authenticate) response. Each challenage is in the</span></div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>  <span class="comment">// format of 'auth-scheme 1*SP 1#auth-param' and each challenage may</span></div><div class="line"><
a name="l00443"></a><span class="lineno"> 443</span>  <span class="comment">// use a different auth-scheme.</span></div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>  <span class="comment">// https://tools.ietf.org/html/rfc2617#section-4.6</span></div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>  <span class="comment">//</span></div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>  <span class="comment">// TODO(gilbert): We assume there is only one authenticate challenge.</span></div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>  <span class="comment">// Multiple challenges should be supported as well.</span></div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>  std::string authScheme_;</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>  <a class="code" href="classhashmap.html">hashmap
<std::string, std::string></a> authParam_;</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span> };</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span> </div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span> } <span class="comment">// namespace header {</span></div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span> </div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span> </div><div class="line"><a name="l00455"></a><span class="lineno"><a class="line" href="classprocess_1_1http_1_1Headers.html"> 455</a></span> <span class="keyword">class </span><a class="code" href="classprocess_1_1http_1_1Headers.html">Headers</a> : <span class="keyword">public</span> <a class="code" href="classhashmap.html">hashmap</a><</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>  std::string,</div><div class="line"><a
name="l00457"></a><span class="lineno"> 457</span>  std::string,</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>  CaseInsensitiveHash,</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>  CaseInsensitiveEqual></div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span> {</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00462"></a><span class="lineno"><a class="line" href="classprocess_1_1http_1_1Headers.html#a8ebd5d74c3557ec3ee54daf933c5e51c"> 462</a></span>  <a class="code" href="classprocess_1_1http_1_1Headers.html#a8ebd5d74c3557ec3ee54daf933c5e51c">Headers</a>() {}</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span> </div><div class="line"><a name="l00464"></a><span class="lineno"><a class="line" href="classprocess_1_1http_1_1Headers.
html#abf4e64a7f7a09f6d99497296f9ab4911"> 464</a></span>  <a class="code" href="classprocess_1_1http_1_1Headers.html#abf4e64a7f7a09f6d99497296f9ab4911">Headers</a>(<span class="keyword">const</span> std::map<std::string, std::string>& <a class="code" href="namespacelambda.html#a6030d65051d5968ada4d2e528b2fcd57">map</a>)</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>  : <a class="code" href="classhashmap.html">hashmap</a><</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>  <a class="code" href="namespacestd.html">std</a>::string,</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>  <a class="code" href="namespacestd.html">std</a>::string,</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>  <a class="code" href="structprocess_1_1http_1_1CaseInsensitiveHash.html">CaseInsensitiveHash</a>,</div><div class="lin
e"><a name="l00469"></a><span class="lineno"> 469</span>  <a class="code" href="structprocess_1_1http_1_1CaseInsensitiveEqual.html">CaseInsensitiveEqual</a>>(map) {}</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span> </div><div class="line"><a name="l00471"></a><span class="lineno"><a class="line" href="classprocess_1_1http_1_1Headers.html#a03479d96b4c86a55083f0ac993891186"> 471</a></span>  <a class="code" href="classprocess_1_1http_1_1Headers.html#a03479d96b4c86a55083f0ac993891186">Headers</a>(std::map<std::string, std::string>&& <a class="code" href="namespacelambda.html#a6030d65051d5968ada4d2e528b2fcd57">map</a>)</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>  : <a class="code" href="classhashmap.html">hashmap</a><</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>  <a class="code" href="namespacestd.html">std</a>::string,</div>
<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>  <a class="code" href="namespacestd.html">std</a>::string,</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>  <a class="code" href="structprocess_1_1http_1_1CaseInsensitiveHash.html">CaseInsensitiveHash</a>,</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>  <a class="code" href="structprocess_1_1http_1_1CaseInsensitiveEqual.html">CaseInsensitiveEqual</a>>(<a class="code" href="namespacelambda.html#a6030d65051d5968ada4d2e528b2fcd57">map</a>) {}</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span> </div><div class="line"><a name="l00478"></a><span class="lineno"><a class="line" href="classprocess_1_1http_1_1Headers.html#afcda2f597b4567f9959fffcdb3845cf6"> 478</a></span>  <a class="code" href="classprocess_1_1http_1_1Headers.html#afcda2f597b4567f9959fffcdb3845cf6">Headers</a>(s
td::initializer_list<std::pair<std::string, std::string>> <a class="code" href="namespacecgroups_1_1devices.html#a22494291bc2cb89697dcd2b5f288bdd3">list</a>)</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>  : <a class="code" href="classhashmap.html">hashmap</a><</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>  <a class="code" href="namespacestd.html">std</a>::string,</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>  <a class="code" href="namespacestd.html">std</a>::string,</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>  <a class="code" href="structprocess_1_1http_1_1CaseInsensitiveHash.html">CaseInsensitiveHash</a>,</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>  <a class="code" href="structprocess_1_1http_1_1CaseInsensitiveEqual.html">CaseInsensitiveEqual
</a>>(<a class="code" href="namespacecgroups_1_1devices.html#a22494291bc2cb89697dcd2b5f288bdd3">list</a>) {}</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span> </div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T></div><div class="line"><a name="l00486"></a><span class="lineno"><a class="line" href="classprocess_1_1http_1_1Headers.html#ace314043b5f44f854097d321246a26c0"> 486</a></span>  <a class="code" href="classResult.html">Result<T></a> <span class="keyword">get</span>() <span class="keyword">const</span></div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>  {</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>  <a class="code" href="classOption.html">Option<std::string></a> value = <span class="keyword">get</span>(<a class="code" href="namespacem
esos_1_1internal_1_1logger_1_1rotate.html#aee5dc359a1b6d22c5d912b166c895854">T::NAME</a>);</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>  <span class="keywordflow">if</span> (value.<a class="code" href="classOption.html#a06eab791122ebc1f8af4ad310e5e7d7e">isNone</a>()) {</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>  <span class="keywordflow">return</span> <a class="code" href="structNone.html">None</a>();</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>  }</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>  <a class="code" href="classTry.html">Try<T></a> header = <a class="code" href="namespacecgroups.html#a2ecc89636706df947027a4c3c2100fbe">T::create</a>(value.<a class="code" href="classOption.html#a21358442c0fac1cc978a67a9a9089a79">get</a>());</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span> 
; <span class="keywordflow">if</span> (header.<a class="code" href="classTry.html#a0b98f95163b8a38daafd1651b043a276">isError</a>()) {</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>  <span class="keywordflow">return</span> <a class="code" href="classError.html">Error</a>(header.<a class="code" href="classTry.html#aec4a11ddd3c036e889d90b7eb6258ba7">error</a>());</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>  }</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>  <span class="keywordflow">return</span> header.<a class="code" href="classTry.html#a8bc7f43e75a47111ea18e9c83b007be5">get</a>();</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>  }</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span> </div><div class="line"><a name="l00499"></a><span class="lineno"><a class="line" href="classprocess_1_1http_1_1Hea
ders.html#a93cdd375ffca86b0ffc3822ebc232be6"> 499</a></span>  <a class="code" href="classOption.html">Option<std::string></a> <span class="keyword">get</span>(<span class="keyword">const</span> std::string& key) <span class="keyword">const</span></div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>  {</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>  <span class="keywordflow">return</span> <a class="code" href="classhashmap.html">hashmap</a><</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>  std::string,</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>  std::string,</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>  <a class="code" href="structprocess_1_1http_1_1CaseInsensitiveHash.html">CaseInsensitiveHash</a>,</div><div class="line"><a name="l00505"></a><span class="lineno">
505</span>  <a cl
<TRUNCATED>
[41/50] mesos-site git commit: Updated the website built from mesos
SHA: 7c9c72d.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/cni_8hpp_source.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/cni_8hpp_source.html b/content/api/latest/c++/cni_8hpp_source.html
index 2f66264..ec8c4c2 100644
--- a/content/api/latest/c++/cni_8hpp_source.html
+++ b/content/api/latest/c++/cni_8hpp_source.html
@@ -52,7 +52,7 @@
<div class="title">cni.hpp</div> </div>
</div><!--header-->
<div class="contents">
-<a href="cni_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// or more contributor license agreements. See the NOTICE file</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// distributed with this work for additional information</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">// regarding copyright ownership. The ASF licenses this file</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00006"></a><span class="
lineno"> 6</span> <span class="comment">// "License"); you may not use this file except in compliance</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// with the License. You may obtain a copy of the License at</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">//</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// Unless required by applicable law or agreed to in writing, software</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment">// distributed u
nder the License is distributed on an "AS IS" BASIS,</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">// See the License for the specific language governing permissions and</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// limitations under the License.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#ifndef __NETWORK_CNI_ISOLATOR_HPP__</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#define __NETWORK_CNI_ISOLATOR_HPP__</span></div><div class="l
ine"><a name="l00019"></a><span class="lineno"> 19</span> </div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include <<a class="code" href="id_8hpp.html">process/id.hpp</a>></span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <<a class="code" href="subprocess_8hpp.html">process/subprocess.hpp</a>></span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <<a class="code" href="subcommand_8hpp.html">stout/subcommand.hpp</a>></span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> </div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include "<a class="code" href="src_2slave_2flags_8
hpp.html">slave/flags.hpp</a>"</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include "<a class="code" href="src_2slave_2containerizer_2mesos_2isolator_8hpp.html">slave/containerizer/mesos/isolator.hpp</a>"</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> </div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include "<a class="code" href="src_2slave_2containerizer_2mesos_2isolators_2network_2cni_2spec_8hpp.html">slave/containerizer/mesos/isolators/network/cni/spec.hpp</a>"</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include "<a class="code" href="slave_2containerizer_2mesos_2isolators_2network_2cni_2paths_8hpp.html">slave/container
izer/mesos/isolators/network/cni/paths.hpp</a>"</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> </div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="keyword">namespace </span><a class="code" href="namespacemesos.html">mesos</a> {</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="keyword">namespace </span><a class="code" href="namespaceinternal.html">internal</a> {</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="keyword">namespace </span>slave {</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> </div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="comment">// Forward declarations.</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="keyword">class </span>NetworkCniIsolatorSetup;
</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> </div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="comment">// This isolator implements support for Container Network Interface (CNI)</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="comment">// specification <https://github.com/appc/cni/blob/master/SPEC.md> . It</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="comment">// provides network isolation to containers by creating a network namespace</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="comment">// for each container, and then adding the container to the CNI network</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>
60;<span class="comment">// specified in the NetworkInfo for the container. It adds the container to</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="comment">// a CNI network by using CNI plugins specified by the operator for the</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="comment">// corresponding CNI network.</span></div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1NetworkCniIsolatorProcess.html"> 47</a></span> <span class="keyword">class </span><a class="code" href="classmesos_1_1internal_1_1slave_1_1NetworkCniIsolatorProcess.html">NetworkCniIsolatorProcess</a> : <span class="keyword">public</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1MesosIsolatorProcess.html">MesosIsolatorProcess</a></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> {</
div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <span class="keyword">static</span> <a class="code" href="classTry.html">Try<mesos::slave::Isolator*></a> <a class="code" href="classmesos_1_1internal_1_1slave_1_1NetworkCniIsolatorProcess.html#a12a31bdd9d873ebe68c492c1eea562de">create</a>(<span class="keyword">const</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Flags.html">Flags</a>& <a class="code" href="namespaceflags.html">flags</a>);</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1NetworkCniIsolatorProcess.html#a5cb876e852d66514a64562bf46cc92c4"> 52</a></span>  <span class="keyword">virtual</span> <a class="code" href="classmesos_1_1inte
rnal_1_1slave_1_1NetworkCniIsolatorProcess.html#a5cb876e852d66514a64562bf46cc92c4">~NetworkCniIsolatorProcess</a>() {}</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span> </div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1NetworkCniIsolatorProcess.html#ae38922e85a5082b87910c53ed3614e09">supportsNesting</a>();</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <span class="keyword">virtual</span> <a class="code" href="classprocess_1_1Future.html">process::Future<Nothing></a> <a class="code" href="classmesos_1_1internal_1_1slave_1_1NetworkCniIsolatorProcess.html#af94c99e1b44722fd577aa9be6e97eb8e">recover</a>(</div><div class="line"><a name="l00057"></a><span class="lin
eno"> 57</span>  <span class="keyword">const</span> std::vector<mesos::slave::ContainerState>& states,</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="keyword">const</span> <a class="code" href="classhashset.html">hashset<ContainerID></a>& orphans);</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <span class="keyword">virtual</span> <a class="code" href="classprocess_1_1Future.html">process::Future<Option<mesos::slave::ContainerLaunchInfo></a>> <a class="code" href="classmesos_1_1internal_1_1slave_1_1NetworkCniIsolatorProcess.html#a5c646c0b22fc11d8abf3feddab473ee0">prepare</a>(</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="keyword">const</span> ContainerID& containerId,</div><div class="line"><a name="l00062"
></a><span class="lineno"> 62</span>  <span class="keyword">const</span> mesos::slave::ContainerConfig& containerConfig);</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span> </div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <span class="keyword">virtual</span> <a class="code" href="classprocess_1_1Future.html">process::Future<Nothing></a> <a class="code" href="classmesos_1_1internal_1_1slave_1_1NetworkCniIsolatorProcess.html#a4d2771d57033cea741ec6dd2bc6f738d">isolate</a>(</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <span class="keyword">const</span> ContainerID& containerId,</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ab03ced250ed239bc3b50b669493997f9">pid_t</a> pid);</div><div class="line"><a name="l00067"></a><span class="lineno"
> 67</span> </div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <span class="keyword">virtual</span> <a class="code" href="classprocess_1_1Future.html">process::Future<ContainerStatus></a> <a class="code" href="classmesos_1_1internal_1_1slave_1_1NetworkCniIsolatorProcess.html#aac3a4e9bacac1572ee598bf6d3a75ce4">status</a>(</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="keyword">const</span> ContainerID& containerId);</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span> </div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="keyword">virtual</span> <a class="code" href="classprocess_1_1Future.html">process::Future<Nothing></a> <a class="code" href="classmesos_1_1internal_1_1slave_1_1NetworkCniIsolatorProcess.html#a54854512f8a210b41c3645409f170a2e">cleanup</a>(</div><div class="line"><a name="l00072"></a
><span class="lineno"> 72</span>  <span class="keyword">const</span> ContainerID& containerId);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <span class="keyword">struct </span>ContainerNetwork</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  {</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="comment">// CNI network name.</span></div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  std::string networkName;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span> </div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="comment">// Interface
name.</span></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  std::string ifName;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span> </div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <span class="comment">// NetworkInfo copied from the ExecutorInfo.containerInfo.network_infos</span></div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <span class="comment">// in 'prepare()' and '_recover()'.</span></div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <a class="code" href="classOption.html">Option<mesos::NetworkInfo></a> networkInfo;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span> </div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="comment">// Protobuf of CNI network information returned by CNI plugin.</spa
n></div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <a class="code" href="classOption.html">Option<cni::spec::NetworkInfo></a> cniNetworkInfo;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  };</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span> </div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <span class="keyword">struct </span>Info</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  {</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  Info (<span class="keyword">const</span> <a class="code" href="classhashmap.html">hashmap<std::string, ContainerNetwork></a>& _containerNetworks,</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std:
:string></a>& _rootfs = <a class="code" href="structNone.html">None</a>(),</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a>& _hostname = <a class="code" href="structNone.html">None</a>(),</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <span class="keywordtype">bool</span> _joinsParentsNetwork = <span class="keyword">false</span>)</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  : containerNetworks (_containerNetworks),</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  rootfs(_rootfs),</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <a class="code" href="namespacenet.html#a28018530986e91a179ea6239fdf0a447">hostname</a>(_hostname),</div><div class="line"><a nam
e="l00100"></a><span class="lineno"> 100</span>  joinsParentsNetwork(_joinsParentsNetwork) {}</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span> </div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <span class="comment">// CNI network information keyed by network name.</span></div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <span class="comment">//</span></div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <span class="comment">// NOTE: For nested containers, since the container shares the</span></div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <span class="comment">// network namespace with the root container of its hierarchy,</span></div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <span class="comment">// this should simply be a copy of the `containerNetwo
rks` of its</span></div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <span class="comment">// root container.</span></div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <a class="code" href="classhashmap.html">hashmap<std::string, ContainerNetwork></a> containerNetworks;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span> </div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <span class="comment">// Rootfs of the container file system. In case the container uses</span></div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <span class="comment">// the host file system, this will be `None`.</span></div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a> rootfs;</div><div class="l
ine"><a name="l00113"></a><span class="lineno"> 113</span> </div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a> <a class="code" href="namespacenet.html#a28018530986e91a179ea6239fdf0a447">hostname</a>;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <span class="keyword">const</span> <span class="keywordtype">bool</span> joinsParentsNetwork;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  };</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span> </div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <span class="comment">// Reads each CNI config present in `configDir`, validates if the</span></div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <span class="comment">// `plugin
` is present in the search path associated with</span></div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <span class="comment">// `pluginDir` and adds the CNI network config to `networkConfigs`</span></div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <span class="comment">// if the validation passes. If there is an error while reading the</span></div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <span class="comment">// CNI config, or if the plugin is not found, we log an error and the</span></div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <span class="comment">// CNI network config is not added to `networkConfigs`.</span></div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <span class="keyword">static</span> <a class="code" href="classTry.html">Try<hashmap<std::string, std::string></a>> loadNetworkC
onfigs(</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <span class="keyword">const</span> std::string& configDir,</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <span class="keyword">const</span> std::string& pluginDir);</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span> </div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <a class="code" href="classmesos_1_1internal_1_1slave_1_1NetworkCniIsolatorProcess.html">NetworkCniIsolatorProcess</a>(</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <span class="keyword">const</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Flags.html">Flags</a>& _flags,</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <span class="keyword">const</span> <a class="code" href="classhashmap.html">hashmap<std
::string, std::string></a>& _networkConfigs,</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  <span class="keyword">const</span> <a class="code" href="classhashmap.html">hashmap<std::string, ContainerDNSInfo::MesosInfo></a>& _cniDNSMap,</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<ContainerDNSInfo::MesosInfo></a>& _defaultCniDNS = <a class="code" href="structNone.html">None</a>(),</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a>& _rootDir = <a class="code" href="structNone.html">None</a>(),</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <span class="keyword">const</span> <a class="code" href="classOption.h
tml">Option<std::string></a>& _pluginDir = <a class="code" href="structNone.html">None</a>())</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  : <a class="code" href="classprocess_1_1ProcessBase.html#a318038bacd95e4260864533f7cfe12fd">ProcessBase</a>(<a class="code" href="namespaceprocess_1_1ID.html#aeb11a48c9def1da169d8455a30d0ee39">process::ID::generate</a>(<span class="stringliteral">"mesos-network-cni-isolator"</span>)),</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  flags(_flags),</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  networkConfigs(_networkConfigs),</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  cniDNSMap(_cniDNSMap),</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  defaultCniDNS(_defaultCniDNS),</div><div class="line"><a name="l00140"></a><span cl
ass="lineno"> 140</span>  rootDir(_rootDir),</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  pluginDir(_pluginDir) {}</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span> </div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <a class="code" href="classprocess_1_1Future.html">process::Future<Nothing></a> _isolate(</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <span class="keyword">const</span> ContainerID& containerId,</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ab03ced250ed239bc3b50b669493997f9">pid_t</a> pid,</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  <span class="keyword">const</span> std::vector<<a class="code" href="classprocess_1_1Future.html">proces
s::Future<Nothing></a>>& attaches);</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span> </div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  <a class="code" href="classprocess_1_1Future.html">process::Future<Nothing></a> __isolate(</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  <span class="keyword">const</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1NetworkCniIsolatorSetup.html">NetworkCniIsolatorSetup</a>& setup);</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span> </div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <a class="code" href="classTry.html">Try<Nothing></a> _recover(</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  <span class="keyword">const</span> ContainerID& containerId,</div><div class="line"><a name="l0015
3"></a><span class="lineno"> 153</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<mesos::slave::ContainerState></a>& state = <a class="code" href="structNone.html">None</a>());</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span> </div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <a class="code" href="classprocess_1_1Future.html">process::Future<Nothing></a> attach(</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <span class="keyword">const</span> ContainerID& containerId,</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <span class="keyword">const</span> std::string& networkName,</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <span class="keyword">const</span> std::string& netNsHandle);</div><div class="line"><a name="
l00159"></a><span class="lineno"> 159</span> </div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  <a class="code" href="classprocess_1_1Future.html">process::Future<Nothing></a> _attach(</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  <span class="keyword">const</span> ContainerID& containerId,</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  <span class="keyword">const</span> std::string& networkName,</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  <span class="keyword">const</span> std::string& plugin,</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  <span class="keyword">const</span> std::tuple<</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <a class="code" href="classprocess_1_1Future.html">process::Future</a><<a
class="code" href="classOption.html">Option<int></a>>,</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <a class="code" href="classprocess_1_1Future.html">process::Future<std::string></a>,</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  <a class="code" href="classprocess_1_1Future.html">process::Future<std::string></a>>& t);</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span> </div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <a class="code" href="classprocess_1_1Future.html">process::Future<Nothing></a> detach(</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <span class="keyword">const</span> ContainerID& containerId,</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <span class="keyword">const</span> std::string
& networkName);</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span> </div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  <a class="code" href="classprocess_1_1Future.html">process::Future<Nothing></a> _detach(</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  <span class="keyword">const</span> ContainerID& containerId,</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  <span class="keyword">const</span> std::string& networkName,</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  <span class="keyword">const</span> std::string& plugin,</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  <span class="keyword">const</span> std::tuple<</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  <a class="code" href="cl
assprocess_1_1Future.html">process::Future</a><<a class="code" href="classOption.html">Option<int></a>>,</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  <a class="code" href="classprocess_1_1Future.html">process::Future<std::string></a>,</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  <a class="code" href="classprocess_1_1Future.html">process::Future<std::string></a>>& t);</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span> </div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  <a class="code" href="classprocess_1_1Future.html">process::Future<Nothing></a> _cleanup(</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <span class="keyword">const</span> ContainerID& containerId,</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>
0; <span class="keyword">const</span> std::vector<<a class="code" href="classprocess_1_1Future.html">process::Future<Nothing></a>>& detaches);</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span> </div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  <span class="comment">// Searches the `networkConfigs` hashmap for a CNI network. If the</span></div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  <span class="comment">// hashmap doesn't contain the network, will try to load all the CNI</span></div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  <span class="comment">// configs from `flags.network_cni_config_dir`, and will then</span></div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  <span class="comment">// perform another search of the `networkConfigs` hashmap to see if</span></div><div class="line">
<a name="l00190"></a><span class="lineno"> 190</span>  <span class="comment">// the missing network was present on disk.</span></div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  <a class="code" href="classTry.html">Try<JSON::Object></a> getNetworkConfigJSON(<span class="keyword">const</span> std::string& network);</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span> </div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  <span class="comment">// Given a network name and the path for the CNI network</span></div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <span class="comment">// configuration file, reads the file, parses the JSON and</span></div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  <span class="comment">// validates the name of the network to which this configuration</span></div><div class="line"
><a name="l00196"></a><span class="lineno"> 196</span>  <span class="comment">// file belongs.</span></div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  <a class="code" href="classTry.html">Try<JSON::Object></a> getNetworkConfigJSON(</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  <span class="keyword">const</span> std::string& network,</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  <span class="keyword">const</span> std::string& <a class="code" href="namespacepath.html">path</a>);</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span> </div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  <span class="keyword">const</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Flags.html">Flags</a> flags;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span> 
;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  <span class="comment">// A map storing the path to CNI network configuration files keyed</span></div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  <span class="comment">// by the network name.</span></div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  <a class="code" href="classhashmap.html">hashmap<std::string, std::string></a> networkConfigs;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span> </div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  <span class="comment">// DNS informations of CNI networks keyed by CNI network name.</span></div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  <a class="code" href="classhashmap.html">hashmap<std::string, ContainerDNSInfo::MesosInfo></a> cniDNSMap;</div><div class="line"><a name="
l00209"></a><span class="lineno"> 209</span> </div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  <span class="comment">// Default DNS information for all CNI networks.</span></div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<ContainerDNSInfo::MesosInfo></a> defaultCniDNS;</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span> </div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  <span class="comment">// CNI network information root directory.</span></div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a> rootDir;</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span> </div><div class="line"><a name="l0021
6"></a><span class="lineno"> 216</span>  <span class="comment">// CNI plugins directory.</span></div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a> pluginDir;</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span> </div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  <span class="comment">// Information of CNI networks that each container joins.</span></div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  <a class="code" href="classhashmap.html">hashmap<ContainerID, process::Owned<Info></a>> infos;</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span> };</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span> </div><div class="line"><a name="l00223"></a><span class="lineno"> 223</spa
n> </div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span> <span class="comment">// A subcommand to setup container hostname and mount the hosts,</span></div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span> <span class="comment">// resolv.conf and hostname from the host file system into the</span></div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span> <span class="comment">// container's file system. The hostname needs to be setup in the</span></div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span> <span class="comment">// container's UTS namespace, and the files need to be bind mounted in</span></div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span> <span class="comment">// the container's mnt namespace.</span></div><div class="line"><a name="l00229"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1sla
ve_1_1NetworkCniIsolatorSetup.html"> 229</a></span> <span class="keyword">class </span><a class="code" href="classmesos_1_1internal_1_1slave_1_1NetworkCniIsolatorSetup.html">NetworkCniIsolatorSetup</a> : <span class="keyword">public</span> <a class="code" href="classSubcommand.html">Subcommand</a></div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span> {</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00232"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1NetworkCniIsolatorSetup.html#a08701ae426a20e5f13f4a4996c146bb3"> 232</a></span>  <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classmesos_1_1internal_1_1slave_1_1NetworkCniIsolatorSetup.html#a08701ae426a20e5f13f4a4996c146bb3">NAME</a>;</div><div class="line"><a name="l002
33"></a><span class="lineno"> 233</span> </div><div class="line"><a name="l00234"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1NetworkCniIsolatorSetup_1_1Flags.html"> 234</a></span>  <span class="keyword">struct </span><a class="code" href="structmesos_1_1internal_1_1slave_1_1NetworkCniIsolatorSetup_1_1Flags.html">Flags</a> : <span class="keyword">public</span> <span class="keyword">virtual</span> <a class="code" href="classflags_1_1FlagsBase.html">flags::FlagsBase</a></div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  {</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  <a class="code" href="structmesos_1_1internal_1_1slave_1_1NetworkCniIsolatorSetup_1_1Flags.html">Flags</a>();</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span> </div><div class="line"><a name="l00238"></a><span class="lineno"><a class="line" href="structmesos_1_1in
ternal_1_1slave_1_1NetworkCniIsolatorSetup_1_1Flags.html#af126df40a2701d5f9af197b739707faf"> 238</a></span>  <a class="code" href="classOption.html">Option<pid_t></a> <a class="code" href="structmesos_1_1internal_1_1slave_1_1NetworkCniIsolatorSetup_1_1Flags.html#af126df40a2701d5f9af197b739707faf">pid</a>;</div><div class="line"><a name="l00239"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1NetworkCniIsolatorSetup_1_1Flags.html#a064b784c19753d64ba05cc9e237bbe95"> 239</a></span>  <a class="code" href="classOption.html">Option<std::string></a> <a class="code" href="structmesos_1_1internal_1_1slave_1_1NetworkCniIsolatorSetup_1_1Flags.html#a064b784c19753d64ba05cc9e237bbe95">hostname</a>;</div><div class="line"><a name="l00240"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1NetworkCniIsolatorSetup_1_1Flags.html#a792e873bae0fe54efee978120acb69fa"> 240</a></span>  <a class="code"
href="classOption.html">Option<std::string></a> <a class="code" href="structmesos_1_1internal_1_1slave_1_1NetworkCniIsolatorSetup_1_1Flags.html#a792e873bae0fe54efee978120acb69fa">rootfs</a>;</div><div class="line"><a name="l00241"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1NetworkCniIsolatorSetup_1_1Flags.html#a5b39398b8277620eadce2c6799585c5c"> 241</a></span>  <a class="code" href="classOption.html">Option<std::string></a> <a class="code" href="structmesos_1_1internal_1_1slave_1_1NetworkCniIsolatorSetup_1_1Flags.html#a5b39398b8277620eadce2c6799585c5c">etc_hosts_path</a>;</div><div class="line"><a name="l00242"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1NetworkCniIsolatorSetup_1_1Flags.html#ad4fb436bb59e678ca7121740608cd478"> 242</a></span>  <a class="code" href="classOption.html">Option<std::string></a> <a class="code" href="structmesos_1_1internal_1_1slave_1_1Network
CniIsolatorSetup_1_1Flags.html#ad4fb436bb59e678ca7121740608cd478">etc_hostname_path</a>;</div><div class="line"><a name="l00243"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1NetworkCniIsolatorSetup_1_1Flags.html#a4f8462d186e873b26b40c767f15cf6a5"> 243</a></span>  <a class="code" href="classOption.html">Option<std::string></a> <a class="code" href="structmesos_1_1internal_1_1slave_1_1NetworkCniIsolatorSetup_1_1Flags.html#a4f8462d186e873b26b40c767f15cf6a5">etc_resolv_conf</a>;</div><div class="line"><a name="l00244"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1NetworkCniIsolatorSetup_1_1Flags.html#ad773b1f2abf19b8e241c8e5ee6ed4df3"> 244</a></span>  <span class="keywordtype">bool</span> <a class="code" href="structmesos_1_1internal_1_1slave_1_1NetworkCniIsolatorSetup_1_1Flags.html#ad773b1f2abf19b8e241c8e5ee6ed4df3">bind_host_files</a>;</div><div class="line"><a name="l00245"></a><span cl
ass="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1NetworkCniIsolatorSetup_1_1Flags.html#aa8e1aa95039b355c2f6dff0efd45e959"> 245</a></span>  <span class="keywordtype">bool</span> <a class="code" href="structmesos_1_1internal_1_1slave_1_1NetworkCniIsolatorSetup_1_1Flags.html#aa8e1aa95039b355c2f6dff0efd45e959">bind_readonly</a>;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  };</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span> </div><div class="line"><a name="l00248"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1NetworkCniIsolatorSetup.html#a97b960ca59cacb4f3ad6f43e6fd8bc38"> 248</a></span>  <a class="code" href="classmesos_1_1internal_1_1slave_1_1NetworkCniIsolatorSetup.html#a97b960ca59cacb4f3ad6f43e6fd8bc38">NetworkCniIsolatorSetup</a>() : <a class="code" href="classSubcommand.html">Subcommand</a>(NAME) {}</div><div class="line"><a name="l002
49"></a><span class="lineno"> 249</span> </div><div class="line"><a name="l00250"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1NetworkCniIsolatorSetup.html#abc7e1f0ba2294714bbec61bdfcd625b3"> 250</a></span>  <a class="code" href="structmesos_1_1internal_1_1slave_1_1NetworkCniIsolatorSetup_1_1Flags.html">Flags</a> <a class="code" href="classmesos_1_1internal_1_1slave_1_1NetworkCniIsolatorSetup.html#abc7e1f0ba2294714bbec61bdfcd625b3">flags</a>;</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span> </div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span> <span class="keyword">protected</span>:</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="namespacemesos_1_1internal_1_1tests.html#a1526213546914662d7a58263f68d11bc">execute</a>();</div><div class="line
"><a name="l00254"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1NetworkCniIsolatorSetup.html#ace4821b9d55c795a74e09b8d1dd07d6e"> 254</a></span>  <span class="keyword">virtual</span> <a class="code" href="classflags_1_1FlagsBase.html">flags::FlagsBase</a>* <a class="code" href="classmesos_1_1internal_1_1slave_1_1NetworkCniIsolatorSetup.html#ace4821b9d55c795a74e09b8d1dd07d6e">getFlags</a>() { <span class="keywordflow">return</span> &flags; }</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span> };</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span> </div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span> } <span class="comment">// namespace slave {</span></div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span> } <span class="comment">// namespace internal {</span></div><div class="line"><a name="l00259"></a><span class="linen
o"> 259</span> } <span class="comment">// namespace mesos {</span></div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span> </div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span> <span class="preprocessor">#endif // __NETWORK_CNI_ISOLATOR_HPP__</span></div><div class="ttc" id="namespacepath_html"><div class="ttname"><a href="namespacepath.html">path</a></div><div class="ttdef"><b>Definition:</b> path.hpp:26</div></div>
+<a href="cni_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// or more contributor license agreements. See the NOTICE file</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// distributed with this work for additional information</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">// regarding copyright ownership. The ASF licenses this file</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00006"></a><span class="
lineno"> 6</span> <span class="comment">// "License"); you may not use this file except in compliance</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// with the License. You may obtain a copy of the License at</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">//</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// Unless required by applicable law or agreed to in writing, software</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment">// distributed u
nder the License is distributed on an "AS IS" BASIS,</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">// See the License for the specific language governing permissions and</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// limitations under the License.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#ifndef __NETWORK_CNI_ISOLATOR_HPP__</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#define __NETWORK_CNI_ISOLATOR_HPP__</span></div><div class="l
ine"><a name="l00019"></a><span class="lineno"> 19</span> </div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include <<a class="code" href="id_8hpp.html">process/id.hpp</a>></span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <<a class="code" href="include_2process_2subprocess_8hpp.html">process/subprocess.hpp</a>></span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <<a class="code" href="subcommand_8hpp.html">stout/subcommand.hpp</a>></span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> </div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include "<a class="code" href="s
rc_2slave_2flags_8hpp.html">slave/flags.hpp</a>"</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include "<a class="code" href="src_2slave_2containerizer_2mesos_2isolator_8hpp.html">slave/containerizer/mesos/isolator.hpp</a>"</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> </div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include "<a class="code" href="src_2slave_2containerizer_2mesos_2isolators_2network_2cni_2spec_8hpp.html">slave/containerizer/mesos/isolators/network/cni/spec.hpp</a>"</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include "<a class="code" href="slave_2containerizer_2mesos_2isolators_2network_2cni_2paths_8hpp.htm
l">slave/containerizer/mesos/isolators/network/cni/paths.hpp</a>"</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> </div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="keyword">namespace </span><a class="code" href="namespacemesos.html">mesos</a> {</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="keyword">namespace </span><a class="code" href="namespaceinternal.html">internal</a> {</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="keyword">namespace </span>slave {</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> </div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="comment">// Forward declarations.</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="keyword">class </span>Networ
kCniIsolatorSetup;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> </div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="comment">// This isolator implements support for Container Network Interface (CNI)</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="comment">// specification <https://github.com/appc/cni/blob/master/SPEC.md> . It</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="comment">// provides network isolation to containers by creating a network namespace</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="comment">// for each container, and then adding the container to the CNI network</span></div><div class="line"><a name="l00044"></a><span class="linen
o"> 44</span> <span class="comment">// specified in the NetworkInfo for the container. It adds the container to</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="comment">// a CNI network by using CNI plugins specified by the operator for the</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="comment">// corresponding CNI network.</span></div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1NetworkCniIsolatorProcess.html"> 47</a></span> <span class="keyword">class </span><a class="code" href="classmesos_1_1internal_1_1slave_1_1NetworkCniIsolatorProcess.html">NetworkCniIsolatorProcess</a> : <span class="keyword">public</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1MesosIsolatorProcess.html">MesosIsolatorProcess</a></div><div class="line"><a name="l00048"></a><span class="lineno">
48</span> {</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <span class="keyword">static</span> <a class="code" href="classTry.html">Try<mesos::slave::Isolator*></a> <a class="code" href="classmesos_1_1internal_1_1slave_1_1NetworkCniIsolatorProcess.html#a12a31bdd9d873ebe68c492c1eea562de">create</a>(<span class="keyword">const</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Flags.html">Flags</a>& <a class="code" href="namespaceflags.html">flags</a>);</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1NetworkCniIsolatorProcess.html#a5cb876e852d66514a64562bf46cc92c4"> 52</a></span>  <span class="keyword">virtual</span> <a class="code" href="
classmesos_1_1internal_1_1slave_1_1NetworkCniIsolatorProcess.html#a5cb876e852d66514a64562bf46cc92c4">~NetworkCniIsolatorProcess</a>() {}</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span> </div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1NetworkCniIsolatorProcess.html#ae38922e85a5082b87910c53ed3614e09">supportsNesting</a>();</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <span class="keyword">virtual</span> <a class="code" href="classprocess_1_1Future.html">process::Future<Nothing></a> <a class="code" href="classmesos_1_1internal_1_1slave_1_1NetworkCniIsolatorProcess.html#af94c99e1b44722fd577aa9be6e97eb8e">recover</a>(</div><div class="line"><a name="l00057"></
a><span class="lineno"> 57</span>  <span class="keyword">const</span> std::vector<mesos::slave::ContainerState>& states,</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="keyword">const</span> <a class="code" href="classhashset.html">hashset<ContainerID></a>& orphans);</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <span class="keyword">virtual</span> <a class="code" href="classprocess_1_1Future.html">process::Future<Option<mesos::slave::ContainerLaunchInfo></a>> <a class="code" href="classmesos_1_1internal_1_1slave_1_1NetworkCniIsolatorProcess.html#a5c646c0b22fc11d8abf3feddab473ee0">prepare</a>(</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="keyword">const</span> ContainerID& containerId,</div><div class="line
"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="keyword">const</span> mesos::slave::ContainerConfig& containerConfig);</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span> </div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <span class="keyword">virtual</span> <a class="code" href="classprocess_1_1Future.html">process::Future<Nothing></a> <a class="code" href="classmesos_1_1internal_1_1slave_1_1NetworkCniIsolatorProcess.html#a4d2771d57033cea741ec6dd2bc6f738d">isolate</a>(</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <span class="keyword">const</span> ContainerID& containerId,</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ab03ced250ed239bc3b50b669493997f9">pid_t</a> pid);</div><div class="line"><a name="l00067"></a><s
pan class="lineno"> 67</span> </div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <span class="keyword">virtual</span> <a class="code" href="classprocess_1_1Future.html">process::Future<ContainerStatus></a> <a class="code" href="classmesos_1_1internal_1_1slave_1_1NetworkCniIsolatorProcess.html#aac3a4e9bacac1572ee598bf6d3a75ce4">status</a>(</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="keyword">const</span> ContainerID& containerId);</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span> </div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="keyword">virtual</span> <a class="code" href="classprocess_1_1Future.html">process::Future<Nothing></a> <a class="code" href="classmesos_1_1internal_1_1slave_1_1NetworkCniIsolatorProcess.html#a54854512f8a210b41c3645409f170a2e">cleanup</a>(</div><div class="line"><a
name="l00072"></a><span class="lineno"> 72</span>  <span class="keyword">const</span> ContainerID& containerId);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <span class="keyword">struct </span>ContainerNetwork</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  {</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="comment">// CNI network name.</span></div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  std::string networkName;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span> </div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="comm
ent">// Interface name.</span></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  std::string ifName;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span> </div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <span class="comment">// NetworkInfo copied from the ExecutorInfo.containerInfo.network_infos</span></div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <span class="comment">// in 'prepare()' and '_recover()'.</span></div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <a class="code" href="classOption.html">Option<mesos::NetworkInfo></a> networkInfo;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span> </div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="comment">// Protobuf of CNI network information returned b
y CNI plugin.</span></div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <a class="code" href="classOption.html">Option<cni::spec::NetworkInfo></a> cniNetworkInfo;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  };</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span> </div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <span class="keyword">struct </span>Info</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  {</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  Info (<span class="keyword">const</span> <a class="code" href="classhashmap.html">hashmap<std::string, ContainerNetwork></a>& _containerNetworks,</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <span class="keyword">const</span> <a class="code" href="classOption.ht
ml">Option<std::string></a>& _rootfs = <a class="code" href="structNone.html">None</a>(),</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a>& _hostname = <a class="code" href="structNone.html">None</a>(),</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <span class="keywordtype">bool</span> _joinsParentsNetwork = <span class="keyword">false</span>)</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  : containerNetworks (_containerNetworks),</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  rootfs(_rootfs),</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <a class="code" href="namespacenet.html#a28018530986e91a179ea6239fdf0a447">hostname</a>(_hostname),</div><div c
lass="line"><a name="l00100"></a><span class="lineno"> 100</span>  joinsParentsNetwork(_joinsParentsNetwork) {}</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span> </div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <span class="comment">// CNI network information keyed by network name.</span></div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <span class="comment">//</span></div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <span class="comment">// NOTE: For nested containers, since the container shares the</span></div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <span class="comment">// network namespace with the root container of its hierarchy,</span></div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <span class="comment">// this should simply be a copy of t
he `containerNetworks` of its</span></div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <span class="comment">// root container.</span></div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <a class="code" href="classhashmap.html">hashmap<std::string, ContainerNetwork></a> containerNetworks;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span> </div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <span class="comment">// Rootfs of the container file system. In case the container uses</span></div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <span class="comment">// the host file system, this will be `None`.</span></div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a> rootfs;<
/div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span> </div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a> <a class="code" href="namespacenet.html#a28018530986e91a179ea6239fdf0a447">hostname</a>;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <span class="keyword">const</span> <span class="keywordtype">bool</span> joinsParentsNetwork;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  };</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span> </div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <span class="comment">// Reads each CNI config present in `configDir`, validates if the</span></div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <span class="c
omment">// `plugin` is present in the search path associated with</span></div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <span class="comment">// `pluginDir` and adds the CNI network config to `networkConfigs`</span></div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <span class="comment">// if the validation passes. If there is an error while reading the</span></div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <span class="comment">// CNI config, or if the plugin is not found, we log an error and the</span></div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <span class="comment">// CNI network config is not added to `networkConfigs`.</span></div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <span class="keyword">static</span> <a class="code" href="classTry.html">Try<hashmap<std::string, std::string></a
>> loadNetworkConfigs(</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <span class="keyword">const</span> std::string& configDir,</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <span class="keyword">const</span> std::string& pluginDir);</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span> </div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <a class="code" href="classmesos_1_1internal_1_1slave_1_1NetworkCniIsolatorProcess.html">NetworkCniIsolatorProcess</a>(</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <span class="keyword">const</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Flags.html">Flags</a>& _flags,</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <span class="keyword">const</span> <a class="code" href="classhashmap.ht
ml">hashmap<std::string, std::string></a>& _networkConfigs,</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  <span class="keyword">const</span> <a class="code" href="classhashmap.html">hashmap<std::string, ContainerDNSInfo::MesosInfo></a>& _cniDNSMap,</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<ContainerDNSInfo::MesosInfo></a>& _defaultCniDNS = <a class="code" href="structNone.html">None</a>(),</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a>& _rootDir = <a class="code" href="structNone.html">None</a>(),</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <span class="keyword">const</span> <a class="code" h
ref="classOption.html">Option<std::string></a>& _pluginDir = <a class="code" href="structNone.html">None</a>())</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  : <a class="code" href="classprocess_1_1ProcessBase.html#a318038bacd95e4260864533f7cfe12fd">ProcessBase</a>(<a class="code" href="namespaceprocess_1_1ID.html#aeb11a48c9def1da169d8455a30d0ee39">process::ID::generate</a>(<span class="stringliteral">"mesos-network-cni-isolator"</span>)),</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  flags(_flags),</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  networkConfigs(_networkConfigs),</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  cniDNSMap(_cniDNSMap),</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  defaultCniDNS(_defaultCniDNS),</div><div class="line"><a name="l0
0140"></a><span class="lineno"> 140</span>  rootDir(_rootDir),</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  pluginDir(_pluginDir) {}</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span> </div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <a class="code" href="classprocess_1_1Future.html">process::Future<Nothing></a> _isolate(</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <span class="keyword">const</span> ContainerID& containerId,</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ab03ced250ed239bc3b50b669493997f9">pid_t</a> pid,</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  <span class="keyword">const</span> std::vector<<a class="code" href="classprocess_1_1F
uture.html">process::Future<Nothing></a>>& attaches);</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span> </div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  <a class="code" href="classprocess_1_1Future.html">process::Future<Nothing></a> __isolate(</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  <span class="keyword">const</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1NetworkCniIsolatorSetup.html">NetworkCniIsolatorSetup</a>& setup);</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span> </div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <a class="code" href="classTry.html">Try<Nothing></a> _recover(</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  <span class="keyword">const</span> ContainerID& containerId,</div><div class="li
ne"><a name="l00153"></a><span class="lineno"> 153</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<mesos::slave::ContainerState></a>& state = <a class="code" href="structNone.html">None</a>());</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span> </div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <a class="code" href="classprocess_1_1Future.html">process::Future<Nothing></a> attach(</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <span class="keyword">const</span> ContainerID& containerId,</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <span class="keyword">const</span> std::string& networkName,</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <span class="keyword">const</span> std::string& netNsHandle);</div><div clas
s="line"><a name="l00159"></a><span class="lineno"> 159</span> </div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  <a class="code" href="classprocess_1_1Future.html">process::Future<Nothing></a> _attach(</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  <span class="keyword">const</span> ContainerID& containerId,</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  <span class="keyword">const</span> std::string& networkName,</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  <span class="keyword">const</span> std::string& plugin,</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  <span class="keyword">const</span> std::tuple<</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <a class="code" href="classprocess_1_1Future.html">process
::Future</a><<a class="code" href="classOption.html">Option<int></a>>,</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <a class="code" href="classprocess_1_1Future.html">process::Future<std::string></a>,</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  <a class="code" href="classprocess_1_1Future.html">process::Future<std::string></a>>& t);</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span> </div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <a class="code" href="classprocess_1_1Future.html">process::Future<Nothing></a> detach(</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <span class="keyword">const</span> ContainerID& containerId,</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <span class="keyword">const<
/span> std::string& networkName);</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span> </div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  <a class="code" href="classprocess_1_1Future.html">process::Future<Nothing></a> _detach(</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  <span class="keyword">const</span> ContainerID& containerId,</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  <span class="keyword">const</span> std::string& networkName,</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  <span class="keyword">const</span> std::string& plugin,</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  <span class="keyword">const</span> std::tuple<</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  <a cla
ss="code" href="classprocess_1_1Future.html">process::Future</a><<a class="code" href="classOption.html">Option<int></a>>,</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  <a class="code" href="classprocess_1_1Future.html">process::Future<std::string></a>,</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  <a class="code" href="classprocess_1_1Future.html">process::Future<std::string></a>>& t);</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span> </div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  <a class="code" href="classprocess_1_1Future.html">process::Future<Nothing></a> _cleanup(</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <span class="keyword">const</span> ContainerID& containerId,</div><div class="line"><a name="l00184"></a><span class="lineno
"> 184</span>  <span class="keyword">const</span> std::vector<<a class="code" href="classprocess_1_1Future.html">process::Future<Nothing></a>>& detaches);</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span> </div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  <span class="comment">// Searches the `networkConfigs` hashmap for a CNI network. If the</span></div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  <span class="comment">// hashmap doesn't contain the network, will try to load all the CNI</span></div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  <span class="comment">// configs from `flags.network_cni_config_dir`, and will then</span></div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  <span class="comment">// perform another search of the `networkConfigs` hashmap to see if</span></div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  <span class="comment">// the missing network was present on disk.</span></div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  <a class="code" href="classTry.html">Try<JSON::Object></a> getNetworkConfigJSON(<span class="keyword">const</span> std::string& network);</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span> </div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  <span class="comment">// Given a network name and the path for the CNI network</span></div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <span class="comment">// configuration file, reads the file, parses the JSON and</span></div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  <span class="comment">// validates the name of the network to which this configuration</span></div
><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  <span class="comment">// file belongs.</span></div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  <a class="code" href="classTry.html">Try<JSON::Object></a> getNetworkConfigJSON(</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  <span class="keyword">const</span> std::string& network,</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  <span class="keyword">const</span> std::string& <a class="code" href="namespacepath.html">path</a>);</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span> </div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  <span class="keyword">const</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Flags.html">Flags</a> flags;</div><div class="line"><a name="l00202"></a><span class="lineno"
> 202</span> </div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  <span class="comment">// A map storing the path to CNI network configuration files keyed</span></div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  <span class="comment">// by the network name.</span></div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  <a class="code" href="classhashmap.html">hashmap<std::string, std::string></a> networkConfigs;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span> </div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  <span class="comment">// DNS informations of CNI networks keyed by CNI network name.</span></div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  <a class="code" href="classhashmap.html">hashmap<std::string, ContainerDNSInfo::MesosInfo></a> cniDNSMap;</div><div clas
s="line"><a name="l00209"></a><span class="lineno"> 209</span> </div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  <span class="comment">// Default DNS information for all CNI networks.</span></div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<ContainerDNSInfo::MesosInfo></a> defaultCniDNS;</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span> </div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  <span class="comment">// CNI network information root directory.</span></div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a> rootDir;</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span> </div><div class="li
ne"><a name="l00216"></a><span class="lineno"> 216</span>  <span class="comment">// CNI plugins directory.</span></div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a> pluginDir;</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span> </div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  <span class="comment">// Information of CNI networks that each container joins.</span></div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  <a class="code" href="classhashmap.html">hashmap<ContainerID, process::Owned<Info></a>> infos;</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span> };</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span> </div><div class="line"><a name="l00223"></a><span class="
lineno"> 223</span> </div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span> <span class="comment">// A subcommand to setup container hostname and mount the hosts,</span></div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span> <span class="comment">// resolv.conf and hostname from the host file system into the</span></div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span> <span class="comment">// container's file system. The hostname needs to be setup in the</span></div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span> <span class="comment">// container's UTS namespace, and the files need to be bind mounted in</span></div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span> <span class="comment">// the container's mnt namespace.</span></div><div class="line"><a name="l00229"></a><span class="lineno"><a class="line" href="classmesos_
1_1internal_1_1slave_1_1NetworkCniIsolatorSetup.html"> 229</a></span> <span class="keyword">class </span><a class="code" href="classmesos_1_1internal_1_1slave_1_1NetworkCniIsolatorSetup.html">NetworkCniIsolatorSetup</a> : <span class="keyword">public</span> <a class="code" href="classSubcommand.html">Subcommand</a></div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span> {</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00232"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1NetworkCniIsolatorSetup.html#a08701ae426a20e5f13f4a4996c146bb3"> 232</a></span>  <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classmesos_1_1internal_1_1slave_1_1NetworkCniIsolatorSetup.html#a08701ae426a20e5f13f4a4996c146bb3">NAME</a>;</div><div class="l
ine"><a name="l00233"></a><span class="lineno"> 233</span> </div><div class="line"><a name="l00234"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1NetworkCniIsolatorSetup_1_1Flags.html"> 234</a></span>  <span class="keyword">struct </span><a class="code" href="structmesos_1_1internal_1_1slave_1_1NetworkCniIsolatorSetup_1_1Flags.html">Flags</a> : <span class="keyword">public</span> <span class="keyword">virtual</span> <a class="code" href="classflags_1_1FlagsBase.html">flags::FlagsBase</a></div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  {</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  <a class="code" href="structmesos_1_1internal_1_1slave_1_1NetworkCniIsolatorSetup_1_1Flags.html">Flags</a>();</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span> </div><div class="line"><a name="l00238"></a><span class="lineno"><a class="line" href=
"structmesos_1_1internal_1_1slave_1_1NetworkCniIsolatorSetup_1_1Flags.html#af126df40a2701d5f9af197b739707faf"> 238</a></span>  <a class="code" href="classOption.html">Option<pid_t></a> <a class="code" href="structmesos_1_1internal_1_1slave_1_1NetworkCniIsolatorSetup_1_1Flags.html#af126df40a2701d5f9af197b739707faf">pid</a>;</div><div class="line"><a name="l00239"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1NetworkCniIsolatorSetup_1_1Flags.html#a064b784c19753d64ba05cc9e237bbe95"> 239</a></span>  <a class="code" href="classOption.html">Option<std::string></a> <a class="code" href="structmesos_1_1internal_1_1slave_1_1NetworkCniIsolatorSetup_1_1Flags.html#a064b784c19753d64ba05cc9e237bbe95">hostname</a>;</div><div class="line"><a name="l00240"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1NetworkCniIsolatorSetup_1_1Flags.html#a792e873bae0fe54efee978120acb69fa"> 240</a></span> 
<a class="code" href="classOption.html">Option<std::string></a> <a class="code" href="structmesos_1_1internal_1_1slave_1_1NetworkCniIsolatorSetup_1_1Flags.html#a792e873bae0fe54efee978120acb69fa">rootfs</a>;</div><div class="line"><a name="l00241"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1NetworkCniIsolatorSetup_1_1Flags.html#a5b39398b8277620eadce2c6799585c5c"> 241</a></span>  <a class="code" href="classOption.html">Option<std::string></a> <a class="code" href="structmesos_1_1internal_1_1slave_1_1NetworkCniIsolatorSetup_1_1Flags.html#a5b39398b8277620eadce2c6799585c5c">etc_hosts_path</a>;</div><div class="line"><a name="l00242"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1NetworkCniIsolatorSetup_1_1Flags.html#ad4fb436bb59e678ca7121740608cd478"> 242</a></span>  <a class="code" href="classOption.html">Option<std::string></a> <a class="code" href="structmesos_1_1internal_1
_1slave_1_1NetworkCniIsolatorSetup_1_1Flags.html#ad4fb436bb59e678ca7121740608cd478">etc_hostname_path</a>;</div><div class="line"><a name="l00243"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1NetworkCniIsolatorSetup_1_1Flags.html#a4f8462d186e873b26b40c767f15cf6a5"> 243</a></span>  <a class="code" href="classOption.html">Option<std::string></a> <a class="code" href="structmesos_1_1internal_1_1slave_1_1NetworkCniIsolatorSetup_1_1Flags.html#a4f8462d186e873b26b40c767f15cf6a5">etc_resolv_conf</a>;</div><div class="line"><a name="l00244"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1slave_1_1NetworkCniIsolatorSetup_1_1Flags.html#ad773b1f2abf19b8e241c8e5ee6ed4df3">
<TRUNCATED>
[27/50] mesos-site git commit: Updated the website built from mesos
SHA: 7c9c72d.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/libprocess_2include_2process_2process_8hpp_source.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/libprocess_2include_2process_2process_8hpp_source.html b/content/api/latest/c++/libprocess_2include_2process_2process_8hpp_source.html
index 26d2207..831b30f 100644
--- a/content/api/latest/c++/libprocess_2include_2process_2process_8hpp_source.html
+++ b/content/api/latest/c++/libprocess_2include_2process_2process_8hpp_source.html
@@ -52,7 +52,7 @@
<div class="title">process.hpp</div> </div>
</div><!--header-->
<div class="contents">
-<a href="libprocess_2include_2process_2process_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// Licensed under the Apache License, Version 2.0 (the "License");</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// you may not use this file except in compliance with the License.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// You may obtain a copy of the License at</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>
60;<span class="comment">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// Unless required by applicable law or agreed to in writing, software</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">// distributed under the License is distributed on an "AS IS" BASIS,</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">// See the License for the specific language governing permissions and</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// limitations under the License</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</
span> </div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#ifndef __PROCESS_PROCESS_HPP__</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#define __PROCESS_PROCESS_HPP__</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include <stdint.h></span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> </div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include <memory></span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include <map></span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="p
reprocessor">#include <queue></span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <vector></span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <<a class="code" href="address_8hpp.html">process/address.hpp</a>></span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <<a class="code" href="3rdparty_2libprocess_2include_2process_2authenticator_8hpp.html">process/authenticator.hpp</a>></span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <<a class="code" href="clock_8hpp.html">process/clock.hpp</a>></span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <
span class="preprocessor">#include <<a class="code" href="event_8hpp.html">process/event.hpp</a>></span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <<a class="code" href="3rdparty_2libprocess_2include_2process_2filter_8hpp.html">process/filter.hpp</a>></span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include <<a class="code" href="firewall_8hpp.html">process/firewall.hpp</a>></span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include <<a class="code" href="3rdparty_2libprocess_2include_2process_2http_8hpp.html">process/http.hpp</a>></span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include <<a class="code" href="3rdparty_2libprocess_2include_2process_2message_8hpp.html">process/mes
sage.hpp</a>></span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include <<a class="code" href="mime_8hpp.html">process/mime.hpp</a>></span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#include <<a class="code" href="owned_8hpp.html">process/owned.hpp</a>></span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#include <<a class="code" href="3rdparty_2libprocess_2include_2process_2pid_8hpp.html">process/pid.hpp</a>></span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include <<a class="code" href="duration_8hpp.html">stout/duration.hpp</a>></span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36<
/span> <span class="preprocessor">#include <<a class="code" href="hashmap_8hpp.html">stout/hashmap.hpp</a>></span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#include <<a class="code" href="lambda_8hpp.html">stout/lambda.hpp</a>></span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor">#include <<a class="code" href="option_8hpp.html">stout/option.hpp</a>></span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor">#include <<a class="code" href="synchronized_8hpp.html">stout/synchronized.hpp</a>></span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="keyword">namespace </span><a class="code" href="namespaceprocess.html">process</a> {</div><div
class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="comment">// Forward declaration.</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="keyword">class </span>EventQueue;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="keyword">class </span>Gate;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="keyword">class </span>Logging;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="keyword">class </span>Sequence;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> </div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="keyword">namespace </span>firewall {</div><div class="line"><a name="l00050"></a><span class="lin
eno"> 50</span> </div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="keywordtype">void</span> <a class="code" href="namespaceprocess_1_1firewall.html#a99a70c4d8e775bb1692693ec278d0877">install</a>(std::vector<Owned<FirewallRule>>&& rules);</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span> </div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span> } <span class="comment">// namespace firewall {</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span> </div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="classprocess_1_1ProcessBase.html"> 72</a></span> <span class="keyword">class </span><a class="code" href="classprocess_1_1ProcessBase.html">ProcessBase</a> : <span class="keyword">public</span> <a class="code" href="structprocess_1_1EventConsumer.html">EventConsumer</a></div><div class
="line"><a name="l00073"></a><span class="lineno"> 73</span> {</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <span class="keyword">explicit</span> <a class="code" href="classprocess_1_1ProcessBase.html">ProcessBase</a>(<span class="keyword">const</span> std::string& <span class="keywordtype">id</span> = <span class="stringliteral">""</span>);</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span> </div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="keyword">virtual</span> ~<a class="code" href="classprocess_1_1ProcessBase.html">ProcessBase</a>();</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span> </div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="classprocess_1_1Pro
cessBase.html#a7ff87364baa79991901b8d73dc5c5fca"> 79</a></span>  <span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">UPID</a>& <span class="keyword">self</span>() <span class="keyword">const</span> { <span class="keywordflow">return</span> pid; }</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span> </div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="keyword">protected</span>:</div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="classprocess_1_1ProcessBase.html#a2accda04cb99a8337c501958ff85ce01"> 85</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classprocess_1_1ProcessBase.html#a2accda04cb99a8337c501958ff85ce01">serve</a>(<a class="code" href="structprocess_1_1Event.html">Event</a>&& event)</div><div class="line"><a name="l00086"></a><span class="lineno">
86</span>  {</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  std::move(event).consume(<span class="keyword">this</span>);</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  }</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span> </div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <span class="comment">// Callbacks used to consume (i.e., handle) a specific event.</span></div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <span class="keywordtype">void</span> consume(<a class="code" href="structprocess_1_1MessageEvent.html">MessageEvent</a>&& event) <span class="keyword">override</span>;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  <span class="keywordtype">void</span> consume(<a class="code" href="structprocess_1_1DispatchEvent.html">DispatchEvent</a>&& e
vent) <span class="keyword">override</span>;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <span class="keywordtype">void</span> consume(<a class="code" href="structprocess_1_1HttpEvent.html">HttpEvent</a>&& event) <span class="keyword">override</span>;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <span class="keywordtype">void</span> consume(<a class="code" href="structprocess_1_1ExitedEvent.html">ExitedEvent</a>&& event) <span class="keyword">override</span>;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <span class="keywordtype">void</span> consume(<a class="code" href="structprocess_1_1TerminateEvent.html">TerminateEvent</a>&& event) <span class="keyword">override</span>;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span> </div><div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href=
"classprocess_1_1ProcessBase.html#a6baf49d6234eb638d068a98514e4ae3f"> 100</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classprocess_1_1ProcessBase.html#a6baf49d6234eb638d068a98514e4ae3f">initialize</a>() {}</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span> </div><div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="classprocess_1_1ProcessBase.html#a07ac3fd4eededbb6015c305e12411b98"> 108</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classprocess_1_1ProcessBase.html#a07ac3fd4eededbb6015c305e12411b98">finalize</a>() {}</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span> </div><div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="classprocess_1_1ProcessBase.html#a0a0053b515e25f366a29a6897467bebc"> 124</a></span>  <span clas
s="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classprocess_1_1ProcessBase.html#a0a0053b515e25f366a29a6897467bebc">exited</a>(<span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">UPID</a>&) {}</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span> </div><div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="classprocess_1_1ProcessBase.html#a38a4b602aa7e2656a647323da1bacf50"> 133</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classprocess_1_1ProcessBase.html#a38a4b602aa7e2656a647323da1bacf50">lost</a>(<span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">UPID</a>&) {}</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span> </div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <span class="keywor
dtype">void</span> <a class="code" href="namespacenet.html#aa0a46766b4aca53ea50e1921567ddb40">send</a>(</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">UPID</a>& to,</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <span class="keyword">const</span> std::string& <a class="code" href="namespaceos_1_1Shell.html#acfe16ef2b1146ad49a8651c0a457ce46">name</a>,</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <span class="keyword">const</span> <span class="keywordtype">char</span>* data = <span class="keyword">nullptr</span>,</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <span class="keywordtype">size_t</span> length = 0);</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span> </div><div class="line"><a name="l
00147"></a><span class="lineno"> 147</span>  <span class="keywordtype">void</span> <a class="code" href="namespacenet.html#aa0a46766b4aca53ea50e1921567ddb40">send</a>(</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  <span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">UPID</a>& to,</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  std::string&& name);</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span> </div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <span class="keywordtype">void</span> <a class="code" href="namespacenet.html#aa0a46766b4aca53ea50e1921567ddb40">send</a>(</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  <span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">UPID</a>& to,</div><div class="line"><a na
me="l00153"></a><span class="lineno"> 153</span>  std::string&& name,</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  std::string&& data);</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span> </div><div class="line"><a name="l00161"></a><span class="lineno"><a class="line" href="classprocess_1_1ProcessBase.html#a39f8e327dc132dd4a3a95fee650458f8"> 161</a></span>  <span class="keyword">enum class</span> <a class="code" href="classprocess_1_1ProcessBase.html#a39f8e327dc132dd4a3a95fee650458f8">RemoteConnection</a></div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  {</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  REUSE,</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span> </div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  RECONNECT,</div><div cla
ss="line"><a name="l00181"></a><span class="lineno"> 181</span>  };</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span> </div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  <a class="code" href="structprocess_1_1UPID.html">UPID</a> link(</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  <span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">UPID</a>& pid,</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  <span class="keyword">const</span> <a class="code" href="classprocess_1_1ProcessBase.html#a39f8e327dc132dd4a3a95fee650458f8">RemoteConnection</a> remote = RemoteConnection::REUSE);</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span> </div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  <span class="keyword">typedef</span> lambda::function<
;void(const UPID&, const std::string&)></div><div class="line"><a name="l00211"></a><span class="lineno"><a class="line" href="classprocess_1_1ProcessBase.html#ab7ca53e513d7ead18e05466c60e51891"> 211</a></span>  <a class="code" href="classprocess_1_1ProcessBase.html#ab7ca53e513d7ead18e05466c60e51891">MessageHandler</a>;</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span> </div><div class="line"><a name="l00216"></a><span class="lineno"><a class="line" href="classprocess_1_1ProcessBase.html#a591501723f8320f0b29e2a7c64a501eb"> 216</a></span>  <span class="keywordtype">void</span> <a class="code" href="classprocess_1_1ProcessBase.html#a591501723f8320f0b29e2a7c64a501eb">install</a>(</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  <span class="keyword">const</span> std::string& name,</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  <span class="keyw
ord">const</span> <a class="code" href="classprocess_1_1ProcessBase.html#ab7ca53e513d7ead18e05466c60e51891">MessageHandler</a>& handler)</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  {</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  handlers.message[<a class="code" href="namespaceos_1_1Shell.html#acfe16ef2b1146ad49a8651c0a457ce46">name</a>] = handler;</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  }</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span> </div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T></div><div class="line"><a name="l00227"></a><span class="lineno"><a class="line" href="classprocess_1_1ProcessBase.html#a8dfef5689de05716f582fa737f165133"> 227</a></span>  <span class="keywordtype">void</span> <a
class="code" href="classprocess_1_1ProcessBase.html#a8dfef5689de05716f582fa737f165133">install</a>(</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  <span class="keyword">const</span> std::string& name,</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  <span class="keywordtype">void</span> (T::*method)(<span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">UPID</a>&, <span class="keyword">const</span> std::string&))</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  {</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  <span class="comment">// Note that we use dynamic_cast here so a process can use</span></div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  <span class="comment">// multiple inheritance if it sees so fit (e.g., to implement</span></div><div class
="line"><a name="l00233"></a><span class="lineno"> 233</span>  <span class="comment">// multiple callback interfaces).</span></div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  <a class="code" href="classprocess_1_1ProcessBase.html#ab7ca53e513d7ead18e05466c60e51891">MessageHandler</a> handler =</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  <a class="code" href="namespaceprocess_1_1network.html#ad067110a4b38cc83785a43f49bf6c8e2">lambda::bind</a>(method, dynamic_cast<T*>(<span class="keyword">this</span>), lambda::_1, lambda::_2);</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  <a class="code" href="namespaceprocess_1_1firewall.html#a99a70c4d8e775bb1692693ec278d0877">install</a>(name, handler);</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  }</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</spa
n> </div><div class="line"><a name="l00242"></a><span class="lineno"><a class="line" href="classprocess_1_1ProcessBase.html#a685d23d0dc0f42a0038dda0724e5d783"> 242</a></span>  <span class="keywordtype">void</span> <a class="code" href="classprocess_1_1ProcessBase.html#a685d23d0dc0f42a0038dda0724e5d783">delegate</a>(<span class="keyword">const</span> std::string& name, <span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">UPID</a>& pid)</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  {</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  delegates[<a class="code" href="namespaceos_1_1Shell.html#acfe16ef2b1146ad49a8651c0a457ce46">name</a>] = pid;</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  }</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span> </div><div class="line"><a name="l00256"></a><span c
lass="lineno"> 256</span>  <span class="keyword">typedef</span> lambda::function<Future<http::Response>(<span class="keyword">const</span> <a class="code" href="structprocess_1_1http_1_1Request.html">http::Request</a>&)></div><div class="line"><a name="l00257"></a><span class="lineno"><a class="line" href="classprocess_1_1ProcessBase.html#a083d8346a62ad423899f6f9e9ee08806"> 257</a></span>  <a class="code" href="classprocess_1_1ProcessBase.html#a083d8346a62ad423899f6f9e9ee08806">HttpRequestHandler</a>;</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span> </div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  <span class="comment">// Options to control the behavior of a route.</span></div><div class="line"><a name="l00260"></a><span class="lineno"><a class="line" href="structprocess_1_1ProcessBase_1_1RouteOptions.html"> 260</a></span>  <span class="keyword">struct </span><a class="code" h
ref="structprocess_1_1ProcessBase_1_1RouteOptions.html">RouteOptions</a></div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  {</div><div class="line"><a name="l00262"></a><span class="lineno"><a class="line" href="structprocess_1_1ProcessBase_1_1RouteOptions.html#a9c202f7f06a7cb90499e3365ce338475"> 262</a></span>  <a class="code" href="structprocess_1_1ProcessBase_1_1RouteOptions.html#a9c202f7f06a7cb90499e3365ce338475">RouteOptions</a>()</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  : requestStreaming(false) {}</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span> </div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  <span class="comment">// Set to true if the endpoint supports request streaming.</span></div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  <span class="comment">// Default: false.</span></
div><div class="line"><a name="l00267"></a><span class="lineno"><a class="line" href="structprocess_1_1ProcessBase_1_1RouteOptions.html#ad4c6afac4c87de57deae76b67dc09610"> 267</a></span>  <span class="keywordtype">bool</span> <a class="code" href="structprocess_1_1ProcessBase_1_1RouteOptions.html#ad4c6afac4c87de57deae76b67dc09610">requestStreaming</a>;</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  };</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span> </div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  <span class="keywordtype">void</span> route(</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  <span class="keyword">const</span> std::string& name,</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::strin
g></a>& help,</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  <span class="keyword">const</span> <a class="code" href="classprocess_1_1ProcessBase.html#a083d8346a62ad423899f6f9e9ee08806">HttpRequestHandler</a>& handler,</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  <span class="keyword">const</span> <a class="code" href="structprocess_1_1ProcessBase_1_1RouteOptions.html">RouteOptions</a>& options = <a class="code" href="structprocess_1_1ProcessBase_1_1RouteOptions.html">RouteOptions</a>());</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span> </div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T></div><div class="line"><a name="l00286"></a><span class="lineno"><a class="line" href="classprocess_1_1ProcessBase.html#a70ff038897726b5ff2713e5d56
02efa6"> 286</a></span>  <span class="keywordtype">void</span> <a class="code" href="classprocess_1_1ProcessBase.html#a70ff038897726b5ff2713e5d5602efa6">route</a>(</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  <span class="keyword">const</span> std::string& name,</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a>& help,</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  <a class="code" href="classprocess_1_1Future.html">Future<http::Response></a> (T::*method)(<span class="keyword">const</span> <a class="code" href="structprocess_1_1http_1_1Request.html">http::Request</a>&),</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  <span class="keyword">const</span> <a class="code" href="structprocess_1_1Proc
essBase_1_1RouteOptions.html">RouteOptions</a>& options = <a class="code" href="structprocess_1_1ProcessBase_1_1RouteOptions.html">RouteOptions</a>())</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  {</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  <span class="comment">// Note that we use dynamic_cast here so a process can use</span></div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  <span class="comment">// multiple inheritance if it sees so fit (e.g., to implement</span></div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  <span class="comment">// multiple callback interfaces).</span></div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  <a class="code" href="classprocess_1_1ProcessBase.html#a083d8346a62ad423899f6f9e9ee08806">HttpRequestHandler</a> handler =</div><div class="line"><a name="l00296"></
a><span class="lineno"> 296</span>  <a class="code" href="namespaceprocess_1_1network.html#ad067110a4b38cc83785a43f49bf6c8e2">lambda::bind</a>(method, dynamic_cast<T*>(<span class="keyword">this</span>), lambda::_1);</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  route(name, help, handler, options);</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  }</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span> </div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  <span class="keyword">typedef</span> lambda::function<Future<http::Response>(</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  <span class="keyword">const</span> <a class="code" href="structprocess_1_1http_1_1Request.html">http::Request</a>&,</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span> 
<span class="keyword">const</span> <a class="code" href="classOption.html">Option<http::authentication::Principal></a>&)></div><div class="line"><a name="l00323"></a><span class="lineno"><a class="line" href="classprocess_1_1ProcessBase.html#a0834b08377ce20a01893a033c46898f6"> 323</a></span>  <a class="code" href="classprocess_1_1ProcessBase.html#a0834b08377ce20a01893a033c46898f6">AuthenticatedHttpRequestHandler</a>;</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span> </div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  <span class="comment">// TODO(arojas): Consider introducing an `authentication::Realm` type.</span></div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  <span class="comment">// TODO(bevers): Consider changing the type of the second argument to</span></div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  <span cl
ass="comment">// `const Option<std::string>&` for consistency with the version below.</span></div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  <span class="keywordtype">void</span> route(</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  <span class="keyword">const</span> std::string& name,</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  <span class="keyword">const</span> std::string& realm,</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a>& help,</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  <span class="keyword">const</span> <a class="code" href="classprocess_1_1ProcessBase.html#a0834b08377ce20a01893a033c46898f6">AuthenticatedHttpRequestHandler</a>& handler,<
/div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  <span class="keyword">const</span> <a class="code" href="structprocess_1_1ProcessBase_1_1RouteOptions.html">RouteOptions</a>& options = <a class="code" href="structprocess_1_1ProcessBase_1_1RouteOptions.html">RouteOptions</a>());</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span> </div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  <span class="keyword">template</span><<span class="keyword">typename</span> T></div><div class="line"><a name="l00340"></a><span class="lineno"><a class="line" href="classprocess_1_1ProcessBase.html#a37cf86bbf94884960c041e081a34bee4"> 340</a></span>  <span class="keywordtype">void</span> <a class="code" href="classprocess_1_1ProcessBase.html#a37cf86bbf94884960c041e081a34bee4">route</a>(</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  <span class="ke
yword">const</span> std::string& name,</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a>& realm,</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a>& help,</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  <a class="code" href="classprocess_1_1Future.html">Future<http::Response></a>(T::*method)(</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  <span class="keyword">const</span> http::Request&, <span class="keyword">const</span> <a class="code" href="classOption.html">Option<http::authentication::Principal></a>&),</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span> 
<span class="keyword">const</span> <a class="code" href="structprocess_1_1ProcessBase_1_1RouteOptions.html">RouteOptions</a>& options = <a class="code" href="structprocess_1_1ProcessBase_1_1RouteOptions.html">RouteOptions</a>())</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>  {</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>  <span class="comment">// Note that we use dynamic_cast here so a process can use</span></div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  <span class="comment">// multiple inheritance if it sees so fit (e.g., to implement</span></div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>  <span class="comment">// multiple callback interfaces).</span></div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  <span class="keywordflow">if</span> (realm.<a class="code" href="classOption.html#a4e
3bf8416d95246f43c91f1b5c309323">isSome</a>()) {</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>  <a class="code" href="classprocess_1_1ProcessBase.html#a0834b08377ce20a01893a033c46898f6">AuthenticatedHttpRequestHandler</a> handler =</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>  <a class="code" href="namespaceprocess_1_1network.html#ad067110a4b38cc83785a43f49bf6c8e2">lambda::bind</a>(method, dynamic_cast<T*>(<span class="keyword">this</span>), lambda::_1, lambda::_2);</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  route(name, realm.<a class="code" href="classOption.html#a21358442c0fac1cc978a67a9a9089a79">get</a>(), help, handler, options);</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span> 
<a class="code" href="classprocess_1_1ProcessBase.html#a083d8346a62ad423899f6f9e9ee08806">HttpRequestHandler</a> handler =</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  <a class="code" href="namespaceprocess_1_1network.html#ad067110a4b38cc83785a43f49bf6c8e2">lambda::bind</a>(method, dynamic_cast<T*>(<span class="keyword">this</span>), lambda::_1, <a class="code" href="structNone.html">None</a>());</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  route(name, help, handler, options);</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>  }</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  }</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span> </div><div class="line"><a name="l00376"></a><span class="lineno"><a class="line" href="classprocess_1_1ProcessBase.html#a6b32f94df3a92225825a1cc426b060c8"> 3
76</a></span>  <span class="keywordtype">void</span> <a class="code" href="classprocess_1_1ProcessBase.html#a6b32f94df3a92225825a1cc426b060c8">provide</a>(</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  <span class="keyword">const</span> std::string& name,</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  <span class="keyword">const</span> std::string& <a class="code" href="namespacepath.html">path</a>,</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  <span class="keyword">const</span> std::map<std::string, std::string>& <a class="code" href="namespaceprocess_1_1mime.html#aa12bd84b9c99ba313fbbf8c56bc411cb">types</a> = <a class="code" href="namespaceprocess_1_1mime.html#aa12bd84b9c99ba313fbbf8c56bc411cb">mime::types</a>)</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>  {</div><div class="line"><a name="l00
381"></a><span class="lineno"> 381</span>  <span class="comment">// TODO(benh): Check that name is only alphanumeric (i.e., has no</span></div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  <span class="comment">// '/') and that path is absolute.</span></div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>  Asset asset;</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>  asset.path = path;</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>  asset.types = <a class="code" href="namespaceprocess_1_1mime.html#aa12bd84b9c99ba313fbbf8c56bc411cb">types</a>;</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  assets[<a class="code" href="namespaceos_1_1Shell.html#acfe16ef2b1146ad49a8651c0a457ce46">name</a>] = asset;</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  }</di
v><div class="line"><a name="l00388"></a><span class="lineno"> 388</span> </div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> T></div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  <span class="keywordtype">size_t</span> eventCount();</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span> </div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00398"></a><span class="lineno"><a class="line" href="classprocess_1_1ProcessBase.html#a43e117b196c850619d5255046edb3e79"> 398</a></span>  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classprocess_1_1SocketManager.html">SocketManager</a>;</div><div class="line"><a name="l00399"></a><span class="lineno"><a class=
"line" href="classprocess_1_1ProcessBase.html#ae1701c7594fe2cf1c96b951a52eb0396"> 399</a></span>  <span class="keyword">friend</span> <span class="keyword">class </span>ProcessManager;</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  <span class="keyword">friend</span> <span class="keywordtype">void</span>* <a class="code" href="namespacemesos_1_1internal_1_1master_1_1maintenance_1_1validation.html#a2305ebada64e853abc6548e118ad08ee">schedule</a>(<span class="keywordtype">void</span>*);</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span> </div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>  <span class="comment">// Process states.</span></div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>  <span class="comment">//</span></div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>  <span class="comment">// Transitioning from
BLOCKED to READY also requires enqueueing the</span></div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>  <span class="comment">// process in the run queue otherwise the events will never be</span></div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>  <span class="comment">// processed!</span></div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  <span class="keyword">enum class</span> State</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>  {</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>  BOTTOM, <span class="comment">// Uninitialized but events may be enqueued.</span></div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  BLOCKED, <span class="comment">// Initialized, no events enqueued.</span></div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  READ
Y, <span class="comment">// Initialized, events enqueued.</span></div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  TERMINATING <span class="comment">// Initialized, no more events will be enqueued.</span></div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>  };</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span> </div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>  std::atomic<State> state = ATOMIC_VAR_INIT(State::BOTTOM);</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span> </div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  <span class="comment">// Flag for indicating that a terminate event has been injected.</span></div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  std::atomic<bool> termination = ATOMIC_VAR_INIT(<span class="keyword">false</sp
an>);</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span> </div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>  <span class="comment">// Enqueue the specified message, request, or function call.</span></div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>  <span class="keywordtype">void</span> enqueue(<a class="code" href="structprocess_1_1Event.html">Event</a>* event);</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span> </div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>  <span class="comment">// Delegates for messages.</span></div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  std::map<std::string, UPID> delegates;</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span> </div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>  <span c
lass="comment">// Definition of an HTTP endpoint. The endpoint can be</span></div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>  <span class="comment">// associated with an authentication realm, in which case:</span></div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>  <span class="comment">//</span></div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>  <span class="comment">// (1) `realm` and `authenticatedHandler` will be set.</span></div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>  <span class="comment">// Libprocess will perform HTTP authentication for</span></div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>  <span class="comment">// all requests to this endpoint (by default during</span></div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>  <span class="comment">// Http
Event consumption). The authentication principal</span></div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>  <span class="comment">// will be passed to the `authenticatedHandler`.</span></div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>  <span class="comment">//</span></div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>  <span class="comment">// Otherwise, if the endpoint is not associated with an</span></div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>  <span class="comment">// authentication realm:</span></div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>  <span class="comment">//</span></div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>  <span class="comment">// (2) Only `handler` will be set, and no authentication</span></div><div class="line"><a name="l00439"></a><span class=
"lineno"> 439</span>  <span class="comment">// takes place.</span></div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>  <span class="keyword">struct </span>HttpEndpoint</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>  {</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>  <a class="code" href="classOption.html">Option<HttpRequestHandler></a> handler;</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span> </div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>  <a class="code" href="classOption.html">Option<std::string></a> realm;</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>  <a class="code" href="classOption.html">Option<AuthenticatedHttpRequestHandler></a> authenticatedHandler;</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>
  <a class="code" href="structprocess_1_1ProcessBase_1_1RouteOptions.html">RouteOptions</a> options;</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>  };</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span> </div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>  <span class="comment">// Handlers for messages and HTTP requests.</span></div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>  <span class="keyword">struct </span>{</div><div class="line"><a name="l00451"></a><span class="lineno"><a class="line" href="classprocess_1_1ProcessBase.html#afb219ae4b5e8dab3f724e78032e03d0c"> 451</a></span>  <a class="code" href="classhashmap.html">hashmap<std::string, MessageHandler></a> <a class="code" href="classprocess_1_1ProcessBase.html#afb219ae4b5e8dab3f724e78032e03d0c">message</a>;</div><div class="line"><a name="l00452"></a><span class="lineno
"><a class="line" href="classprocess_1_1ProcessBase.html#a2f0e2769d84e1491c180d0da6458624b"> 452</a></span>  <a class="code" href="classhashmap.html">hashmap<std::string, HttpEndpoint></a> <a class="code" href="classprocess_1_1ProcessBase.html#a2f0e2769d84e1491c180d0da6458624b">http</a>;</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span> </div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>  <span class="comment">// Used for delivering HTTP requests in the correct order.</span></div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>  <span class="comment">// Initialized lazily to avoid ProcessBase requiring</span></div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>  <span class="comment">// another Process!</span></div><div class="line"><a name="l00457"></a><span class="lineno"><a class="line" href="classprocess_1_1ProcessBase.html#a55a5326c
3f9b66bc56cc13c7bf4c350d"> 457</a></span>  <a class="code" href="classprocess_1_1Owned.html">Owned<Sequence></a> <a class="code" href="classprocess_1_1ProcessBase.html#a55a5326c3f9b66bc56cc13c7bf4c350d">httpSequence</a>;</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>  } handlers;</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span> </div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>  <span class="comment">// Definition of a static asset.</span></div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>  <span class="keyword">struct </span>Asset</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>  {</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>  std::string <a class="code" href="namespacepath.html">path</a>;</div><div class="line"><a name="l00464"></a><span class="lineno"> 4
64</span>  std::map<std::string, std::string> <a class="code" href="namespaceprocess_1_1mime.html#aa12bd84b9c99ba313fbbf8c56bc411cb">types</a>;</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>  };</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span> </div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>  <span class="comment">// Continuation for `consume(HttpEvent&&)`.</span></div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>  <a class="code" href="classprocess_1_1Future.html">Future<http::Response></a> _consume(</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>  <span class="keyword">const</span> HttpEndpoint& endpoint,</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>  <span class="keyword">const</span> std::string& name,</div><div class="line">
<a name="l00471"></a><span class="lineno"> 471</span>  <span class="keyword">const</span> <a class="code" href="classprocess_1_1Owned.html">Owned<http::Request></a>& <a class="code" href="namespaceprocess_1_1http.html#ad8f400b5e54038df7e5662ec35da05fa">request</a>);</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span> </div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>  <span class="comment">// JSON representation of process. MUST be invoked from within the</span></div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>  <span class="comment">// process itself in order to safely examine events.</span></div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>  <span class="keyword">operator</span> <a class="code" href="structJSON_1_1Object.html">JSON::Object</a>();</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span> </
div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>  <span class="comment">// Static assets(s) to provide.</span></div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>  std::map<std::string, Asset> assets;</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span> </div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>  <span class="comment">// Queue of received events. We employ the PIMPL idiom here and use</span></div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>  <span class="comment">// a pointer so we can hide the implementation of `EventQueue`.</span></div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>  std::unique_ptr<EventQueue> events;</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span> </div><div class="line"><a name="l00484"></a><span class="lineno"> 48
4</span>  <span class="comment">// NOTE: this is a shared pointer to a _pointer_, hence this is not</span></div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>  <span class="comment">// responsible for the ProcessBase itself.</span></div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>  std::shared_ptr<ProcessBase*> reference;</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span> </div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>  std::shared_ptr<Gate> gate;</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span> </div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>  <span class="comment">// Whether or not the runtime should delete this process after it</span></div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>  <span class="comment">// has terminated. No
te that failure to spawn the process will leave</span></div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>  <span class="comment">// the process unmanaged and thus it may leak!</span></div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>  <span class="keywordtype">bool</span> manage = <span class="keyword">false</span>;</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span> </div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>  <span class="comment">// Process PID.</span></div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>  <a class="code" href="structprocess_1_1UPID.html">UPID</a> pid;</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span> };</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span> </div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>
60;</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div><div class="line"><a name="l00501"></a><span class="lineno"><a class="line" href="classprocess_1_1Process.html"> 501</a></span> <span class="keyword">class </span><a class="code" href="classprocess_1_1Process.html">Process</a> : <span class="keyword">public</span> <span class="keyword">virtual</span> <a class="code" href="classprocess_1_1ProcessBase.html">ProcessBase</a> {</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00503"></a><span class="lineno"><a class="line" href="classprocess_1_1Process.html#a919f2834843f8620784c58aee7db2371"> 503</a></span>  <span class="keyword">virtual</span> <a class="code" href="classprocess_1_1Process.html#a919f2834843f8620784c58aee7db2371">~Process</a>() {}</
div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span> </div><div class="line"><a name="l00510"></a><span class="lineno"><a class="line" href="classprocess_1_1Process.html#abef2d54388c5262af19b057b1a6eee8e"> 510</a></span>  <a class="code" href="structprocess_1_1PID.html">PID<T></a> <span class="keyword">self</span>() <span class="keyword">const</span> { <span class="keywordflow">return</span> <a class="code" href="structprocess_1_1PID.html">PID<T></a>(<span class="keyword">static_cast<</span><span class="keyword">const </span>T*<span class="keyword">></span>(<span class="keyword">this</span>)); }</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span> </div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span> <span class="keyword">protected</span>:</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>  <span class="comment">// Useful typedefs for dis
patch/delay/defer to self()/this.</span></div><div class="line"><a name="l00514"></a><span class="lineno"><a class="line" href="classprocess_1_1Process.html#a0ff94db0ab3ccea7ba6fd8cba68b6b9e"> 514</a></span>  <span class="keyword">typedef</span> T <a class="code" href="classprocess_1_1Process.html#a0ff94db0ab3ccea7ba6fd8cba68b6b9e">Self</a>;</div><div class="line"><a name="l00515"></a><span class="lineno"><a class="line" href="classprocess_1_1Process.html#a1e9980d5d873c695d4a1749971e18cd9"> 515</a></span>  <span class="keyword">typedef</span> T <a class="code" href="classprocess_1_1Process.html#a1e9980d5d873c695d4a1749971e18cd9">This</a>;</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span> };</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span> </div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span> </div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span> 
;<span class="keywordtype">bool</span> <a class="code" href="namespaceprocess.html#a6c9cd01950a98038b2a6df3e5066418f">initialize</a>(</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a>& delegate = <a class="code" href="structNone.html">None</a>(),</div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a>& readwriteAuthenticationRealm = <a class="code" href="structNone.html">None</a>(),</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a>& readonlyAuthenticationRealm = <a class="code" href="structNone.html">None</a>());</div><div class="line"><a name="l00543"></a><s
pan class="lineno"> 543</span> </div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span> </div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span> <span class="keywordtype">void</span> <a class="code" href="namespaceprocess.html#a238371634a6637198c58ea740b0890ca">finalize</a>(<span class="keywordtype">bool</span> finalize_wsa = <span class="keyword">false</span>);</div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span> </div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span> </div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span> std::string <a class="code" href="namespaceprocess.html#a112cf0f14ff608d490b910aab93d8e0d">absolutePath</a>(<span class="keyword">const</span> std::string& <a class="code" href="namespacepath.html">path</a>);</div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span> </div><div class="line"><
a name="l00559"></a><span class="lineno"> 559</span> </div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span> <a class="code" href="classprocess_1_1network_1_1inet_1_1Address.html">network::inet::Address</a> <a class="code" href="namespaceprocess.html#afdecc57ab065ab5d354e728d0ef0ff34">address</a>();</div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span> </div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span> </div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span> <a class="code" href="structprocess_1_1PID.html">PID<Logging></a> <a class="code" href="namespaceprocess.html#a283af87525d9611f5d27b9a7dd6b967e">logging</a>();</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span> </div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span> </div><div class="line"><a name="l00577"></a><span class="lineno"> 577</span>
 <span class="keywordtype">long</span> <a class="code" href="namespaceprocess.html#a18419acc52ca1e339e684f8d9208207e">workers</a>();</div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span> </div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span> </div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span> <a class="code" href="structprocess_1_1UPID.html">UPID</a> <a class="code" href="namespaceprocess.html#aff22904a83567125d3b4d0d88e5a2270">spawn</a>(<a class="code" href="classprocess_1_1ProcessBase.html">ProcessBase</a>* <a class="code" href="namespaceprocess.html">process</a>, <span class="keywordtype">bool</span> manage = <span class="keyword">false</span>);</div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span> </div><div class="line"><a name="l00589"></a><span class="lineno"><a class="line" href="namespaceprocess.html#aa3e3f539080a94857e07401dd26b2f8f"> 589</a></span>&
#160;<span class="keyword">inline</span> <a class="code" href="structprocess_1_1UPID.html">UPID</a> <a class="code" href="namespaceprocess.html#aff22904a83567125d3b4d0d88e5a2270">spawn</a>(<a class="code" href="classprocess_1_1ProcessBase.html">ProcessBase</a>& <a class="code" href="namespaceprocess.html">process</a>, <span class="keywordtype">bool</span> manage = <span class="keyword">false</span>)</div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span> {</div><div class="line"><a name="l00591"></a><span class="lineno"> 591</span>  <span class="keywordflow">return</span> <a class="code" href="namespaceprocess.html#aff22904a83567125d3b4d0d88e5a2270">spawn</a>(&process, manage);</div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span> }</div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span> </div><div class="line"><a name="l00594"></a><span class="lineno"> 594</span> <span class="key
word">template</span> <<span class="keyword">typename</span> T></div><div class="line"><a name="l00595"></a><span class="lineno"><a class="line" href="namespaceprocess.html#a271f92d7aab3c157b237ac5c48a0f6be"> 595</a></span> <a class="code" href="structprocess_1_1PID.html">PID<T></a> <a class="code" href="namespaceprocess.html#aff22904a83567125d3b4d0d88e5a2270">spawn</a>(T* t, <span class="keywordtype">bool</span> manage = <span class="keyword">false</span>)</div><div class="line"><a name="l00596"></a><span class="lineno"> 596</span> {</div><div class="line"><a name="l00597"></a><span class="lineno"> 597</span>  <span class="comment">// We save the pid before spawn is called because it's possible that</span></div><div class="line"><a name="l00598"></a><span class="lineno"> 598</span>  <span class="comment">// the process has already been deleted after spawn returns (e.g.,</span></div><div class="line"><a name="l00599"></a><span class="lineno"
> 599</span>  <span class="comment">// if 'manage' is true).</span></div><div class="line"><a name="l00600"></a><span class="lineno"> 600</span>  <a class="code" href="structprocess_1_1PID.html">PID<T></a> pid(t);</div><div class="line"><a name="l00601"></a><span class="lineno"> 601</span> </div><div class="line"><a name="l00602"></a><span class="lineno"> 602</span>  <span class="keywordflow">if</span> (!<a class="code" href="namespaceprocess.html#aff22904a83567125d3b4d0d88e5a2270">spawn</a>(static_cast<ProcessBase*>(t), manage)) {</div><div class="line"><a name="l00603"></a><span class="lineno"> 603</span>  <span class="keywordflow">return</span> <a class="code" href="structprocess_1_1PID.html">PID<T></a>();</div><div class="line"><a name="l00604"></a><span class="lineno"> 604</span>  }</div><div class="line"><a name="l00605"></a><span class="lineno"> 605</span> </div><div class="line"><a name="l00606"></a><
span class="lineno"> 606</span>  <span class="keywordflow">return</span> pid;</div><div class="line"><a name="l00607"></a><span class="lineno"> 607</span> }</div><div class="line"><a name="l00608"></a><span class="lineno"> 608</span> </div><div class="line"><a name="l00609"></a><span class="lineno"> 609</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div><div class="line"><a name="l00610"></a><span class="lineno"><a class="line" href="namespaceprocess.html#a0458ac577eb50d91c829967c1d7ca3dd"> 610</a></span> <a class="code" href="structprocess_1_1PID.html">PID<T></a> <a class="code" href="namespaceprocess.html#aff22904a83567125d3b4d0d88e5a2270">spawn</a>(T& t, <span class="keywordtype">bool</span> manage = <span class="keyword">false</span>)</div><div class="line"><a name="l00611"></a><span class="lineno"> 611</span> {</div><div class="line"><a name="l00612"></a><span class="lineno"> 612</spa
n>  <span class="keywordflow">return</span> <a class="code" href="namespaceprocess.html#aff22904a83567125d3b4d0d88e5a2270">spawn</a>(&t, manage);</div><div class="line"><a name="l00613"></a><span class="lineno"> 613</span> }</div><div class="line"><a name="l00614"></a><span class="lineno"> 614</span> </div><div class="line"><a name="l00615"></a><span class="lineno"> 615</span> </div><div class="line"><a name="l00629"></a><span class="lineno"> 629</span> <span class="keywordtype">void</span> <a class="code" href="namespaceprocess.html#a20443908afa3212215166e26065349e5">terminate</a>(<span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">UPID</a>& pid, <span class="keywordtype">bool</span> inject = <span class="keyword">true</span>);</div><div class="line"><a name="l00630"></a><span class="lineno"> 630</span> <span class="keywordtype">void</span> <a class="code" href="namespaceprocess.html#a20443908afa3212215166
e26065349e5">terminate</a>(<span class="keyword">const</span> <a class="code" href="classprocess_1_1ProcessBase.html">ProcessBase</a>& <a class="code" href="namespaceprocess.html">process</a>, <span class="keywordtype">bool</span> inject = <span class="keyword">true</span>);</div><div class="line"><a name="l00631"></a><span class="lineno"> 631</span> <span class="keywordtype">void</span> <a class="code" href="namespaceprocess.html#a20443908afa3212215166e26065349e5">terminate</a>(<span class="keyword">const</span> <a class="code" href="classprocess_1_1ProcessBase.html">ProcessBase</a>* process, <span class="keywordtype">bool</span> inject = <span class="keyword">true</span>);</div><div class="line"><a name="l00632"></a><span class="lineno"> 632</span> </div><div class="line"><a name="l00633"></a><span class="lineno"> 633</span> </div><div class="line"><a name="l00642"></a><span class="lineno"> 642</span> <span class="keywordtype">bool</span> <a class="code
" href="namespaceprocess.html#a07833fb41a8b0c1f18fa5485ca8c18d4">wait</a>(<span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">UPID</a>& pid, <span class="keyword">const</span> <a class="code" href="classDuration.html">Duration</a>& duration = <a class="code" href="classSeconds.html">Seconds</a>(-1));</div><div class="line"><a name="l00643"></a><span class="lineno"> 643</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceprocess.html#a07833fb41a8b0c1f18fa5485ca8c18d4">wait</a>(<span class="keyword">const</span> <a class="code" href="classprocess_1_1ProcessBase.html">ProcessBase</a>& process, <span class="keyword">const</span> <a class="code" href="classDuration.html">Duration</a>& duration = <a class="code" href="classSeconds.html">Seconds</a>(-1));</div><div class="line"><a name="l00644"></a><span class="lineno"> 644</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceprocess
.html#a07833fb41a8b0c1f18fa5485ca8c18d4">wait</a>(<span class="keyword">const</span> <a class="code" href="classprocess_1_1ProcessBase.html">ProcessBase</a>* process, <span class="keyword">const</span> <a class="code" href="classDuration.html">Duration</a>& duration = <a class="code" href="classSeconds.html">Seconds</a>(-1));</div><div class="line"><a name="l00645"></a><span class="lineno"> 645</span> </div><div class="line"><a name="l00646"></a><span class="lineno"> 646</span> </div><div class="line"><a name="l00655"></a><span class="lineno"> 655</span> <span class="keywordtype">void</span> <a class="code" href="namespaceprocess.html#a2b0f5478fa6a52497167aa994ff600d9">post</a>(<span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">UPID</a>& to,</div><div class="line"><a name="l00656"></a><span class="lineno"> 656</span>  <span class="keyword">const</span> std::string& name,</div><div class="line"><a name="l0
0657"></a><span class="lineno"> 657</span>  <span class="keyword">const</span> <span class="keywordtype">char</span>* data = <span class="keyword">nullptr</span>,</div><div class="line"><a name="l00658"></a><span class="lineno"> 658</span>  <span class="keywordtype">size_t</span> length = 0);</div><div class="line"><a name="l00659"></a><span class="lineno"> 659</span> </div><div class="line"><a name="l00660"></a><span class="lineno"> 660</span> </div><div class="line"><a name="l00661"></a><span class="lineno"> 661</span> <span class="keywordtype">void</span> <a class="code" href="namespaceprocess.html#a2b0f5478fa6a52497167aa994ff600d9">post</a>(<span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">UPID</a>& from,</div><div class="line"><a name="l00662"></a><span class="lineno"> 662</span>  <span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">UPID</a>&
to,</div><div class="line"><a name="l00663"></a><span class="lineno"> 663</span>  <span class="keyword">const</span> std::string& name,</div><div class="line"><a name="l00664"></a><span class="lineno"> 664</span>  <span class="keyword">const</span> <span class="keywordtype">char</span>* data = <span class="keyword">nullptr</span>,</div><div class="line"><a name="l00665"></a><span class="lineno"> 665</span>  <span class="keywordtype">size_t</span> length = 0);</div><div class="line"><a name="l00666"></a><span class="lineno"> 666</span> </div><div class="line"><a name="l00667"></a><span class="lineno"> 667</span> </div><div class="line"><a name="l00671"></a><span class="lineno"><a class="line" href="namespaceprocess.html#ab170f191c9401ac8aebe6c998f037e05"> 671</a></span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespaceprocess.html#a20443908afa3212215166e26065349
e5">terminate</a>(<span class="keyword">const</span> <a class="code" href="classprocess_1_1ProcessBase.html">ProcessBase</a>& process, <span class="keywordtype">bool</span> inject)</div><div class="line"><a name="l00672"></a><span class="lineno"> 672</span> {</div><div class="line"><a name="l00673"></a><span class="lineno"> 673</span>  <a class="code" href="namespaceprocess.html#a20443908afa3212215166e26065349e5">terminate</a>(process.<a class="code" href="classprocess_1_1ProcessBase.html#a7ff87364baa79991901b8d73dc5c5fca">self</a>(), inject);</div><div class="line"><a name="l00674"></a><span class="lineno"> 674</span> }</div><div class="line"><a name="l00675"></a><span class="lineno"> 675</span> </div><div class="line"><a name="l00676"></a><span class="lineno"> 676</span> </div><div class="line"><a name="l00680"></a><span class="lineno"><a class="line" href="namespaceprocess.html#ad221ec78e643363af8ef18d303a2bd62"> 680</a></span> <span class
="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespaceprocess.html#a20443908afa3212215166e26065349e5">terminate</a>(<span class="keyword">const</span> <a class="code" href="classprocess_1_1ProcessBase.html">ProcessBase</a>* process, <span class="keywordtype">bool</span> inject)</div><div class="line"><a name="l00681"></a><span class="lineno"> 681</span> {</div><div class="line"><a name="l00682"></a><span class="lineno"> 682</span>  <a class="code" href="namespaceprocess.html#a20443908afa3212215166e26065349e5">terminate</a>(process-><a class="code" href="classprocess_1_1ProcessBase.html#a7ff87364baa79991901b8d73dc5c5fca">self</a>(), inject);</div><div class="line"><a name="l00683"></a><span class="lineno"> 683</span> }</div><div class="line"><a name="l00684"></a><span class="lineno"> 684</span> </div><div class="line"><a name="l00685"></a><span class="lineno"> 685</span> </div><div class="line"><a name="l00689"
></a><span class="lineno"><a class="line" href="namespaceprocess.html#ae8b73cb98b07f3db5ebda5086a16ca37"> 689</a></span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceprocess.html#a07833fb41a8b0c1f18fa5485ca8c18d4">wait</a>(<span class="keyword">const</span> <a class="code" href="classprocess_1_1ProcessBase.html">ProcessBase</a>& process, <span class="keyword">const</span> <a class="code" href="classDuration.html">Duration</a>& duration)</div><div class="line"><a name="l00690"></a><span class="lineno"> 690</span> {</div><div class="line"><a name="l00691"></a><span class="lineno"> 691</span>  <span class="keywordflow">return</span> <a class="code" href="namespaceprocess.html#a07833fb41a8b0c1f18fa5485ca8c18d4">process::wait</a>(process.<a class="code" href="classprocess_1_1ProcessBase.html#a7ff87364baa79991901b8d73dc5c5fca">self</a>(), duration); <span class="comment">// Explicit to disambiguate.</sp
an></div><div class="line"><a name="l00692"></a><span class="lineno"> 692</span> }</div><div class="line"><a name="l00693"></a><span class="lineno"> 693</span> </div><div class="line"><a name="l00694"></a><span class="lineno"> 694</span> </div><div class="line"><a name="l00698"></a><span class="lineno"><a class="line" href="namespaceprocess.html#a40ab1ce6cd5b7a2d4aebbeae60987bb1"> 698</a></span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceprocess.html#a07833fb41a8b0c1f18fa5485ca8c18d4">wait</a>(<span class="keyword">const</span> <a class="code" href="classprocess_1_1ProcessBase.html">ProcessBase</a>* process, <span class="keyword">const</span> <a class="code" href="classDuration.html">Duration</a>& duration)</div><div class="line"><a name="l00699"></a><span class="lineno"> 699</span> {</div><div class="line"><a name="l00700"></a><span class="lineno"> 700</span>  <span class="keyword
flow">return</span> <a class="code" href="namespaceprocess.html#a07833fb41a8b0c1f18fa5485ca8c18d4">process::wait</a>(process-><a class="code" href="classprocess_1_1ProcessBase.html#a7ff87364baa79991901b8d73dc5c5fca">self</a>(), duration); <span class="comment">// Explicit to disambiguate.</span></div><div class="line"><a name="l00701"></a><span class="lineno"> 701</span> }</div><div class="line"><a name="l00702"></a><span class="lineno"> 702</span> </div><div class="line"><a name="l00703"></a><span class="lineno"> 703</span> </div><div class="line"><a name="l00704"></a><span class="lineno"> 704</span> <span class="comment">// Per thread process pointer.</span></div><div class="line"><a name="l00705"></a><span class="lineno"> 705</span> <span class="keyword">extern</span> thread_local <a class="code" href="classprocess_1_1ProcessBase.html">ProcessBase</a>* <a class="code" href="namespaceprocess.html#a38fe32525523cce698493f5825a72a32">__process__</a>;<
/div><div class="line"><a name="l00706"></a><span class="lineno"> 706</span> </div><div class="line"><a name="l00707"></a><span class="lineno"> 707</span> <span class="comment">// NOTE: Methods in this namespace should only be used in tests to</span></div><div class="line"><a name="l00708"></a><span class="lineno"> 708</span> <span class="comment">// inject arbitrary events.</span></div><div class="line"><a name="l00709"></a><span class="lineno"><a class="line" href="namespaceprocess_1_1inject.html"> 709</a></span> <span class="keyword">namespace </span>inject {</div><div class="line"><a name="l00710"></a><span class="lineno"> 710</span> </div><div class="line"><a name="l00717"></a><span class="lineno"> 717</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceprocess_1_1inject.html#a17e94a83c103ebde55dfd48d9a6e4988">exited</a>(<span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">UPID</a>&
from, <span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">UPID</a>& to);</div><div class="line"><a name="l00718"></a><span class="lineno"> 718</span> </div><div class="line"><a name="l00719"></a><span class="lineno"> 719</span> } <span class="comment">// namespace inject {</span></div><div class="line"><a name="l00720"></a><span class="lineno"> 720</span> </div><div class="line"><a name="l00721"></a><span class="lineno"> 721</span> } <span class="comment">// namespace process {</span></div><div class="line"><a name="l00722"></a><span class="lineno"> 722</span> </div><div class="line"><a name="l00723"></a><span class="lineno"> 723</span> <span class="preprocessor">#endif // __PROCESS_PROCESS_HPP__</span></div><div class="ttc" id="synchronized_8hpp_html"><div class="ttname"><a href="synchronized_8hpp.html">synchronized.hpp</a></div></div>
+<a href="libprocess_2include_2process_2process_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// Licensed under the Apache License, Version 2.0 (the "License");</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// you may not use this file except in compliance with the License.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// You may obtain a copy of the License at</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>
60;<span class="comment">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// Unless required by applicable law or agreed to in writing, software</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">// distributed under the License is distributed on an "AS IS" BASIS,</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">// See the License for the specific language governing permissions and</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// limitations under the License</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</
span> </div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#ifndef __PROCESS_PROCESS_HPP__</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#define __PROCESS_PROCESS_HPP__</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include <stdint.h></span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> </div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include <memory></span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include <map></span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="p
reprocessor">#include <queue></span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <vector></span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <<a class="code" href="address_8hpp.html">process/address.hpp</a>></span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <<a class="code" href="3rdparty_2libprocess_2include_2process_2authenticator_8hpp.html">process/authenticator.hpp</a>></span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <<a class="code" href="clock_8hpp.html">process/clock.hpp</a>></span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <
span class="preprocessor">#include <<a class="code" href="event_8hpp.html">process/event.hpp</a>></span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <<a class="code" href="3rdparty_2libprocess_2include_2process_2filter_8hpp.html">process/filter.hpp</a>></span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include <<a class="code" href="firewall_8hpp.html">process/firewall.hpp</a>></span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include <<a class="code" href="3rdparty_2libprocess_2include_2process_2http_8hpp.html">process/http.hpp</a>></span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include <<a class="code" href="3rdparty_2libprocess_2include_2process_2message_8hpp.html">process/mes
sage.hpp</a>></span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include <<a class="code" href="mime_8hpp.html">process/mime.hpp</a>></span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#include <<a class="code" href="owned_8hpp.html">process/owned.hpp</a>></span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#include <<a class="code" href="3rdparty_2libprocess_2include_2process_2pid_8hpp.html">process/pid.hpp</a>></span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include <<a class="code" href="duration_8hpp.html">stout/duration.hpp</a>></span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36<
/span> <span class="preprocessor">#include <<a class="code" href="hashmap_8hpp.html">stout/hashmap.hpp</a>></span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#include <<a class="code" href="lambda_8hpp.html">stout/lambda.hpp</a>></span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor">#include <<a class="code" href="option_8hpp.html">stout/option.hpp</a>></span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor">#include <<a class="code" href="synchronized_8hpp.html">stout/synchronized.hpp</a>></span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="keyword">namespace </span><a class="code" href="namespaceprocess.html">process</a> {</div><div
class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="comment">// Forward declaration.</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="keyword">class </span>EventQueue;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="keyword">class </span>Gate;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="keyword">class </span>Logging;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="keyword">class </span>Sequence;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> </div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="keyword">namespace </span>firewall {</div><div class="line"><a name="l00050"></a><span class="lin
eno"> 50</span> </div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="keywordtype">void</span> <a class="code" href="namespaceprocess_1_1firewall.html#a99a70c4d8e775bb1692693ec278d0877">install</a>(std::vector<Owned<FirewallRule>>&& rules);</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span> </div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span> } <span class="comment">// namespace firewall {</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span> </div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="classprocess_1_1ProcessBase.html"> 72</a></span> <span class="keyword">class </span><a class="code" href="classprocess_1_1ProcessBase.html">ProcessBase</a> : <span class="keyword">public</span> <a class="code" href="structprocess_1_1EventConsumer.html">EventConsumer</a></div><div class
="line"><a name="l00073"></a><span class="lineno"> 73</span> {</div><div class="line"><a name="l00074"></a><span class="lineno">
<TRUNCATED>
[19/50] mesos-site git commit: Updated the website built from mesos
SHA: 7c9c72d.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/posix_2os_8hpp_source.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/posix_2os_8hpp_source.html b/content/api/latest/c++/posix_2os_8hpp_source.html
index 764ada5..c0da05d 100644
--- a/content/api/latest/c++/posix_2os_8hpp_source.html
+++ b/content/api/latest/c++/posix_2os_8hpp_source.html
@@ -112,7 +112,7 @@
<div class="ttc" id="namespaceos_html_a2cc6177f60b8bd36990aab876a3c3c3f"><div class="ttname"><a href="namespaceos.html#a2cc6177f60b8bd36990aab876a3c3c3f">os::setctty</a></div><div class="ttdeci">Try< Nothing > setctty(int fd)</div><div class="ttdef"><b>Definition:</b> os.hpp:464</div></div>
<div class="ttc" id="classOption_html_a21358442c0fac1cc978a67a9a9089a79"><div class="ttname"><a href="classOption.html#a21358442c0fac1cc978a67a9a9089a79">Option::get</a></div><div class="ttdeci">const T & get() const &</div><div class="ttdef"><b>Definition:</b> option.hpp:118</div></div>
<div class="ttc" id="namespaceos_html_add69634db977768c56f0367b4bb03cd5"><div class="ttname"><a href="namespaceos.html#add69634db977768c56f0367b4bb03cd5">os::getenv</a></div><div class="ttdeci">Option< std::string > getenv(const std::string &key)</div><div class="ttdef"><b>Definition:</b> getenv.hpp:29</div></div>
-<div class="ttc" id="namespaceos_html_aede9f61dcb4b7d1f276302a7bce37446"><div class="ttname"><a href="namespaceos.html#aede9f61dcb4b7d1f276302a7bce37446">os::random</a></div><div class="ttdeci">int random()</div><div class="ttdef"><b>Definition:</b> os.hpp:550</div></div>
+<div class="ttc" id="namespaceos_html_aede9f61dcb4b7d1f276302a7bce37446"><div class="ttname"><a href="namespaceos.html#aede9f61dcb4b7d1f276302a7bce37446">os::random</a></div><div class="ttdeci">int random()</div><div class="ttdef"><b>Definition:</b> os.hpp:580</div></div>
<div class="ttc" id="namespaceos_html_a079aa1b108c567735620a14ea2a2e506"><div class="ttname"><a href="namespaceos.html#a079aa1b108c567735620a14ea2a2e506">os::release</a></div><div class="ttdeci">Try< Version > release()</div><div class="ttdef"><b>Definition:</b> os.hpp:399</div></div>
<div class="ttc" id="classDuration_html_a31ebb8d92dc93914cb830d70753d802b"><div class="ttname"><a href="classDuration.html#a31ebb8d92dc93914cb830d70753d802b">Duration::secs</a></div><div class="ttdeci">double secs() const </div><div class="ttdef"><b>Definition:</b> duration.hpp:49</div></div>
<div class="ttc" id="namespaceos_html_a48c86262928f59c5c54d0cb0012e2aba"><div class="ttname"><a href="namespaceos.html#a48c86262928f59c5c54d0cb0012e2aba">os::waitpid</a></div><div class="ttdeci">Result< pid_t > waitpid(pid_t pid, int *status, int options)</div><div class="ttdef"><b>Definition:</b> os.hpp:141</div></div>
@@ -147,7 +147,7 @@
<div class="ttc" id="namespaceos_html_a788e763662cf01a30bcd06baa95332bb"><div class="ttname"><a href="namespaceos.html#a788e763662cf01a30bcd06baa95332bb">os::setWindowSize</a></div><div class="ttdeci">Try< Nothing > setWindowSize(int fd, unsigned short rows, unsigned short columns)</div><div class="ttdef"><b>Definition:</b> os.hpp:476</div></div>
<div class="ttc" id="3rdparty_2stout_2include_2stout_2os_2raw_2environment_8hpp_html"><div class="ttname"><a href="3rdparty_2stout_2include_2stout_2os_2raw_2environment_8hpp.html">environment.hpp</a></div></div>
<div class="ttc" id="structos_1_1UTSInfo_html"><div class="ttname"><a href="structos_1_1UTSInfo.html">os::UTSInfo</a></div><div class="ttdef"><b>Definition:</b> os.hpp:44</div></div>
-<div class="ttc" id="namespaceos_html_a5e0295f0e3bae2bd29d86803f9293b5d"><div class="ttname"><a href="namespaceos.html#a5e0295f0e3bae2bd29d86803f9293b5d">os::gmtime_r</a></div><div class="ttdeci">tm * gmtime_r(const time_t *timep, tm *result)</div><div class="ttdef"><b>Definition:</b> os.hpp:401</div></div>
+<div class="ttc" id="namespaceos_html_a5e0295f0e3bae2bd29d86803f9293b5d"><div class="ttname"><a href="namespaceos.html#a5e0295f0e3bae2bd29d86803f9293b5d">os::gmtime_r</a></div><div class="ttdeci">tm * gmtime_r(const time_t *timep, tm *result)</div><div class="ttdef"><b>Definition:</b> os.hpp:431</div></div>
<div class="ttc" id="structos_1_1Load_html_ac65d8819bbf8201cfa6975d853061e93"><div class="ttname"><a href="structos_1_1Load.html#ac65d8819bbf8201cfa6975d853061e93">os::Load::one</a></div><div class="ttdeci">double one</div><div class="ttdef"><b>Definition:</b> os.hpp:26</div></div>
<div class="ttc" id="namespaceos_html_a07a766e0355221b949e5fe6fdfca63f2"><div class="ttname"><a href="namespaceos.html#a07a766e0355221b949e5fe6fdfca63f2">os::ptsname</a></div><div class="ttdeci">Try< std::string > ptsname(int master)</div><div class="ttdef"><b>Definition:</b> os.hpp:447</div></div>
<div class="ttc" id="namespaceos_1_1raw_html_aad2bd3acb3ca09c75a1a1db58075f9f4"><div class="ttname"><a href="namespaceos_1_1raw.html#aad2bd3acb3ca09c75a1a1db58075f9f4">os::raw::environment</a></div><div class="ttdeci">char ** environment()</div><div class="ttdef"><b>Definition:</b> environment.hpp:66</div></div>
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/rwlock_8hpp_source.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/rwlock_8hpp_source.html b/content/api/latest/c++/rwlock_8hpp_source.html
index 076f544..67d4fd1 100644
--- a/content/api/latest/c++/rwlock_8hpp_source.html
+++ b/content/api/latest/c++/rwlock_8hpp_source.html
@@ -52,7 +52,7 @@
<div class="title">rwlock.hpp</div> </div>
</div><!--header-->
<div class="contents">
-<a href="rwlock_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// Licensed under the Apache License, Version 2.0 (the "License");</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// you may not use this file except in compliance with the License.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// You may obtain a copy of the License at</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">//</sp
an></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// Unless required by applicable law or agreed to in writing, software</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">// distributed under the License is distributed on an "AS IS" BASIS,</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">// See the License for the specific language governing permissions and</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// limitations under the License</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> </div><div class="li
ne"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#ifndef __PROCESS_RWMUTEX_HPP__</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#define __PROCESS_RWMUTEX_HPP__</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include <atomic></span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include <memory></span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include <queue></span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> </div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include <<a cl
ass="code" href="future_8hpp.html">process/future.hpp</a>></span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <<a class="code" href="owned_8hpp.html">process/owned.hpp</a>></span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <<a class="code" href="nothing_8hpp.html">stout/nothing.hpp</a>></span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <<a class="code" href="synchronized_8hpp.html">stout/synchronized.hpp</a>></span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="keyword">namespace </span><a class="code" href="namespaceprocess.
html">process</a> {</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div><div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="classprocess_1_1ReadWriteLock.html"> 36</a></span> <span class="keyword">class </span><a class="code" href="classprocess_1_1ReadWriteLock.html">ReadWriteLock</a></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> {</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="classprocess_1_1ReadWriteLock.html#a2c1a84b19cb55c94833a0072bc2de379"> 39</a></span>  <a class="code" href="classprocess_1_1ReadWriteLock.html#a2c1a84b19cb55c94833a0072bc2de379">ReadWriteLock</a>() : data(new Data()) {}</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div><div class="line"><a name="l
00041"></a><span class="lineno"> 41</span>  <span class="comment">// TODO(bmahler): Consider returning a 'Locked' object in the</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <span class="comment">// future as the mechanism for unlocking, rather than exposing</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <span class="comment">// unlocking functions for all to call.</span></div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="classprocess_1_1ReadWriteLock.html#af45c888bb43a25164ca4f9eacfbf139c"> 44</a></span>  <a class="code" href="classprocess_1_1Future.html">Future<Nothing></a> <a class="code" href="classprocess_1_1ReadWriteLock.html#af45c888bb43a25164ca4f9eacfbf139c">write_lock</a>()</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  {</div><div class="line"><a name="l00046"></a><span class="line
no"> 46</span>  <a class="code" href="classprocess_1_1Future.html">Future<Nothing></a> future = <a class="code" href="structNothing.html">Nothing</a>();</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <span class="keyword">synchronized</span> (data->lock) {</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <span class="keywordflow">if</span> (!data->write_locked && data->read_locked == 0u) {</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  data->write_locked = <span class="keyword">true</span>;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  Waiter w{<a class="code" href="name
spaceprocess_1_1io.html#ab005316d71b45c5b05de0a6234c6f8fc">Waiter::WRITE</a>};</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  future = w.promise.future();</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  data->waiters.push(std::move(w));</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  }</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  }</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span> </div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="keywordflow">return</span> future;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  }</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span> </div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="classprocess_
1_1ReadWriteLock.html#af09e2143c4590ce6417b98e5db62a5c7"> 61</a></span>  <span class="keywordtype">void</span> <a class="code" href="classprocess_1_1ReadWriteLock.html#af09e2143c4590ce6417b98e5db62a5c7">write_unlock</a>()</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  {</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="comment">// NOTE: We need to satisfy the waiter(s) futures outside the</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <span class="comment">// critical section because it might trigger callbacks which</span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <span class="comment">// try to reacquire a read or write lock.</span></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  std::queue<Waiter> unblocked;</div><div class="line"><a name="l00067"></a>
<span class="lineno"> 67</span> </div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <span class="keyword">synchronized</span> (data->lock) {</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  CHECK(data->write_locked);</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  CHECK_EQ(data->read_locked, 0u);</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span> </div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  data->write_locked = <span class="keyword">false</span>;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="keywordflow">if</span> (!data->waiters.empty()) {</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <sp
an class="keywordflow">switch</span> (data->waiters.front().type) {</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <span class="keywordflow">case</span> <a class="code" href="namespaceprocess_1_1io.html#aca1f059ca9f0d7360631c621debeb879">Waiter::READ</a>:</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="comment">// Dequeue the group of readers at the front.</span></div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <span class="keywordflow">while</span> (!data->waiters.empty() &&</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  data->waiters.front().type == <a class="code" href="namespaceprocess_1_1io.html#aca1f059ca9f0d7360631c621debeb879">Waiter::READ</a>) {</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  unblocked.pus
h(std::move(data->waiters.front()));</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  data->waiters.pop();</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  }</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span> </div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  data->read_locked = unblocked.size();</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span> </div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span> </div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <span class="keywordflow">case</span> <a class="code" href="namespaceprocess_1_1io.html#ab005316d71b45c5b05de0a6234c6f8fc">
Waiter::WRITE</a>:</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  unblocked.push(std::move(data->waiters.front()));</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  data->waiters.pop();</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  data->write_locked = <span class="keyword">true</span>;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span> </div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  CHECK_EQ(data->read_locked, 0u);</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span> </div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  }</div><div class="line"><a na
me="l00097"></a><span class="lineno"> 97</span>  }</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  }</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span> </div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <span class="keywordflow">while</span> (!unblocked.empty()) {</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  unblocked.front().promise.set(<a class="code" href="structNothing.html">Nothing</a>());</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  unblocked.pop();</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  }</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  }</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span> </div><div class="line"><a name="l00106"></a><span class="lineno"> 10
6</span>  <span class="comment">// TODO(bmahler): Consider returning a 'Locked' object in the</span></div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <span class="comment">// future as the mechanism for unlocking, rather than exposing</span></div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <span class="comment">// unlocking functions for all to call.</span></div><div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="classprocess_1_1ReadWriteLock.html#a29e6aba787b76777a262a9bd90072b4d"> 109</a></span>  <a class="code" href="classprocess_1_1Future.html">Future<Nothing></a> <a class="code" href="classprocess_1_1ReadWriteLock.html#a29e6aba787b76777a262a9bd90072b4d">read_lock</a>()</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  {</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <a class="c
ode" href="classprocess_1_1Future.html">Future<Nothing></a> future = <a class="code" href="structNothing.html">Nothing</a>();</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span> </div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <span class="keyword">synchronized</span> (data->lock) {</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <span class="keywordflow">if</span> (!data->write_locked && data->waiters.empty()) {</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  data->read_locked++;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  Waiter w{<a class="code" href="namespaceprocess_1_1io.html#aca1f059ca9f0d7360631c621debeb879">Waiter::READ</a
>};</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  future = w.promise.future();</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  data->waiters.push(std::move(w));</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  }</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  }</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span> </div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <span class="keywordflow">return</span> future;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  }</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span> </div><div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="classprocess_1_1ReadWriteLock.html#a841b5c49017a94a710df66a04f8c498e"> 126</a></span>&#
160; <span class="keywordtype">void</span> <a class="code" href="classprocess_1_1ReadWriteLock.html#a841b5c49017a94a710df66a04f8c498e">read_unlock</a>()</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  {</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <span class="comment">// NOTE: We need to satisfy the waiter future outside the</span></div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <span class="comment">// critical section because it might trigger callbacks which</span></div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <span class="comment">// try to reacquire a read or write lock.</span></div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  <a class="code" href="classOption.html">Option<Waiter></a> waiter;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span> </di
v><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <span class="keyword">synchronized</span> (data->lock) {</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  CHECK(!data->write_locked);</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  CHECK_GT(data->read_locked, 0u);</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span> </div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  data->read_locked--;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span> </div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  <span class="keywordflow">if</span> (data->read_locked == 0u && !data->waiters.empty()) {</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  CHECK_EQ(data->waiters.front().type, <a
class="code" href="namespaceprocess_1_1io.html#ab005316d71b45c5b05de0a6234c6f8fc">Waiter::WRITE</a>);</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span> </div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  waiter = std::move(data->waiters.front());</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  data->waiters.pop();</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  data->write_locked = <span class="keyword">true</span>;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  }</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  }</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span> </div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  <span class="keywordflow">if</span> (waiter.<a class="code
" href="classOption.html#a4e3bf8416d95246f43c91f1b5c309323">isSome</a>()) {</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  waiter->promise.set(<a class="code" href="structNothing.html">Nothing</a>());</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  }</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  }</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span> </div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  <span class="keyword">struct </span>Waiter</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  {</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <span class="keyword">enum</span> { READ, WRITE } <a class="code" hr
ef="namespacemesos_1_1internal_1_1fs.html#a2343e2642db514496ba8380776487fba">type</a>;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <a class="code" href="classprocess_1_1Promise.html">Promise<Nothing></a> <a class="code" href="namespacemesos_1_1internal_1_1log_1_1protocol.html#a3b1f8bd7b18c51af9d1f58842950b545">promise</a>;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  };</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span> </div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  <span class="keyword">struct </span>Data</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  {</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  Data() : read_locked(0), write_locked(<span class="keyword">false</span>) {}</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</sp
an> </div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  ~Data()</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  {</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <span class="comment">// TODO(zhitao): Fail promises?</span></div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  }</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span> </div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <span class="comment">// The state of the lock can be either:</span></div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <span class="comment">// (1) Unlocked: an incoming read or write grabs the lock.</span></div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <span class="comment">//</span></div><div class="line"><a na
me="l00172"></a><span class="lineno"> 172</span>  <span class="comment">// (2) Read locked (by one or more readers): an incoming write</span></div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  <span class="comment">// will queue in the waiters. An incoming read will proceed</span></div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  <span class="comment">// if no one is waiting, otherwise it will queue.</span></div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  <span class="comment">//</span></div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  <span class="comment">// (3) Write locked: incoming reads and writes will queue.</span></div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span> </div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  <span class="keywordtyp
e">size_t</span> read_locked;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  <span class="keywordtype">bool</span> write_locked;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  std::queue<Waiter> waiters;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span> </div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  <span class="comment">// Rather than use a process to serialize access to the</span></div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <span class="comment">// internal data we use a 'std::atomic_flag'.</span></div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  std::atomic_flag lock = ATOMIC_FLAG_INIT;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  };</div><div class="line"><a name="l00186"></a><span class="lineno"
> 186</span> </div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  std::shared_ptr<Data> data;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span> };</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span> </div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span> } <span class="comment">// namespace process {</span></div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span> </div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span> <span class="preprocessor">#endif // __PROCESS_RWMUTEX_HPP__</span></div><div class="ttc" id="namespaceprocess_1_1io_html_aca1f059ca9f0d7360631c621debeb879"><div class="ttname"><a href="namespaceprocess_1_1io.html#aca1f059ca9f0d7360631c621debeb879">process::io::READ</a></div><div class="ttdeci">const short READ</div><div class="ttdoc">A possible event while polling. </div><div clas
s="ttdef"><b>Definition:</b> io.hpp:34</div></div>
+<a href="rwlock_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// Licensed under the Apache License, Version 2.0 (the "License");</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// you may not use this file except in compliance with the License.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// You may obtain a copy of the License at</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">//</sp
an></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// Unless required by applicable law or agreed to in writing, software</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">// distributed under the License is distributed on an "AS IS" BASIS,</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">// See the License for the specific language governing permissions and</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// limitations under the License</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> </div><div class="li
ne"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#ifndef __PROCESS_RWMUTEX_HPP__</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#define __PROCESS_RWMUTEX_HPP__</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include <atomic></span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include <memory></span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include <queue></span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> </div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include <<a cl
ass="code" href="future_8hpp.html">process/future.hpp</a>></span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <<a class="code" href="owned_8hpp.html">process/owned.hpp</a>></span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <<a class="code" href="nothing_8hpp.html">stout/nothing.hpp</a>></span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <<a class="code" href="synchronized_8hpp.html">stout/synchronized.hpp</a>></span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="keyword">namespace </span><a class="code" href="namespaceprocess.
html">process</a> {</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div><div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="classprocess_1_1ReadWriteLock.html"> 36</a></span> <span class="keyword">class </span><a class="code" href="classprocess_1_1ReadWriteLock.html">ReadWriteLock</a></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> {</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="classprocess_1_1ReadWriteLock.html#a2c1a84b19cb55c94833a0072bc2de379"> 39</a></span>  <a class="code" href="classprocess_1_1ReadWriteLock.html#a2c1a84b19cb55c94833a0072bc2de379">ReadWriteLock</a>() : data(new Data()) {}</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div><div class="line"><a name="l
00041"></a><span class="lineno"> 41</span>  <span class="comment">// TODO(bmahler): Consider returning a 'Locked' object in the</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <span class="comment">// future as the mechanism for unlocking, rather than exposing</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <span class="comment">// unlocking functions for all to call.</span></div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="classprocess_1_1ReadWriteLock.html#af45c888bb43a25164ca4f9eacfbf139c"> 44</a></span>  <a class="code" href="classprocess_1_1Future.html">Future<Nothing></a> <a class="code" href="classprocess_1_1ReadWriteLock.html#af45c888bb43a25164ca4f9eacfbf139c">write_lock</a>()</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  {</div><div class="line"><a name="l00046"></a><span class="line
no"> 46</span>  <a class="code" href="classprocess_1_1Future.html">Future<Nothing></a> future = <a class="code" href="structNothing.html">Nothing</a>();</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <span class="keyword">synchronized</span> (data->lock) {</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <span class="keywordflow">if</span> (!data->write_locked && data->read_locked == 0u) {</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  data->write_locked = <span class="keyword">true</span>;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  Waiter w{<a class="code" href="name
spaceprocess_1_1io.html#ab005316d71b45c5b05de0a6234c6f8fc">Waiter::WRITE</a>};</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  future = w.promise.future();</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  data->waiters.push(std::move(w));</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  }</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  }</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span> </div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="keywordflow">return</span> future;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  }</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span> </div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="classprocess_
1_1ReadWriteLock.html#af09e2143c4590ce6417b98e5db62a5c7"> 61</a></span>  <span class="keywordtype">void</span> <a class="code" href="classprocess_1_1ReadWriteLock.html#af09e2143c4590ce6417b98e5db62a5c7">write_unlock</a>()</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  {</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="comment">// NOTE: We need to satisfy the waiter(s) futures outside the</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <span class="comment">// critical section because it might trigger callbacks which</span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <span class="comment">// try to reacquire a read or write lock.</span></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  std::queue<Waiter> unblocked;</div><div class="line"><a name="l00067"></a>
<span class="lineno"> 67</span> </div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <span class="keyword">synchronized</span> (data->lock) {</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  CHECK(data->write_locked);</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  CHECK_EQ(data->read_locked, 0u);</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span> </div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  data->write_locked = <span class="keyword">false</span>;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="keywordflow">if</span> (!data->waiters.empty()) {</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <sp
an class="keywordflow">switch</span> (data->waiters.front().type) {</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <span class="keywordflow">case</span> <a class="code" href="namespaceprocess_1_1io.html#aca1f059ca9f0d7360631c621debeb879">Waiter::READ</a>:</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="comment">// Dequeue the group of readers at the front.</span></div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <span class="keywordflow">while</span> (!data->waiters.empty() &&</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  data->waiters.front().type == <a class="code" href="namespaceprocess_1_1io.html#aca1f059ca9f0d7360631c621debeb879">Waiter::READ</a>) {</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  unblocked.pus
h(std::move(data->waiters.front()));</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  data->waiters.pop();</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  }</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span> </div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  data->read_locked = unblocked.size();</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span> </div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span> </div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <span class="keywordflow">case</span> <a class="code" href="namespaceprocess_1_1io.html#ab005316d71b45c5b05de0a6234c6f8fc">
Waiter::WRITE</a>:</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  unblocked.push(std::move(data->waiters.front()));</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  data->waiters.pop();</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  data->write_locked = <span class="keyword">true</span>;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span> </div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  CHECK_EQ(data->read_locked, 0u);</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span> </div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  }</div><div class="line"><a na
me="l00097"></a><span class="lineno"> 97</span>  }</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  }</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span> </div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <span class="keywordflow">while</span> (!unblocked.empty()) {</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  unblocked.front().promise.set(<a class="code" href="structNothing.html">Nothing</a>());</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  unblocked.pop();</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  }</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  }</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span> </div><div class="line"><a name="l00106"></a><span class="lineno"> 10
6</span>  <span class="comment">// TODO(bmahler): Consider returning a 'Locked' object in the</span></div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <span class="comment">// future as the mechanism for unlocking, rather than exposing</span></div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <span class="comment">// unlocking functions for all to call.</span></div><div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="classprocess_1_1ReadWriteLock.html#a29e6aba787b76777a262a9bd90072b4d"> 109</a></span>  <a class="code" href="classprocess_1_1Future.html">Future<Nothing></a> <a class="code" href="classprocess_1_1ReadWriteLock.html#a29e6aba787b76777a262a9bd90072b4d">read_lock</a>()</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  {</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <a class="c
ode" href="classprocess_1_1Future.html">Future<Nothing></a> future = <a class="code" href="structNothing.html">Nothing</a>();</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span> </div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <span class="keyword">synchronized</span> (data->lock) {</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <span class="keywordflow">if</span> (!data->write_locked && data->waiters.empty()) {</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  data->read_locked++;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  Waiter w{<a class="code" href="namespaceprocess_1_1io.html#aca1f059ca9f0d7360631c621debeb879">Waiter::READ</a
>};</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  future = w.promise.future();</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  data->waiters.push(std::move(w));</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  }</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  }</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span> </div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <span class="keywordflow">return</span> future;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  }</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span> </div><div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="classprocess_1_1ReadWriteLock.html#a841b5c49017a94a710df66a04f8c498e"> 126</a></span>&#
160; <span class="keywordtype">void</span> <a class="code" href="classprocess_1_1ReadWriteLock.html#a841b5c49017a94a710df66a04f8c498e">read_unlock</a>()</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  {</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <span class="comment">// NOTE: We need to satisfy the waiter future outside the</span></div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <span class="comment">// critical section because it might trigger callbacks which</span></div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <span class="comment">// try to reacquire a read or write lock.</span></div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  <a class="code" href="classOption.html">Option<Waiter></a> waiter;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span> </di
v><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <span class="keyword">synchronized</span> (data->lock) {</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  CHECK(!data->write_locked);</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  CHECK_GT(data->read_locked, 0u);</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span> </div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  data->read_locked--;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span> </div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  <span class="keywordflow">if</span> (data->read_locked == 0u && !data->waiters.empty()) {</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  CHECK_EQ(data->waiters.front().type, <a
class="code" href="namespaceprocess_1_1io.html#ab005316d71b45c5b05de0a6234c6f8fc">Waiter::WRITE</a>);</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span> </div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  waiter = std::move(data->waiters.front());</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  data->waiters.pop();</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  data->write_locked = <span class="keyword">true</span>;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  }</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  }</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span> </div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  <span class="keywordflow">if</span> (waiter.<a class="code
" href="classOption.html#a4e3bf8416d95246f43c91f1b5c309323">isSome</a>()) {</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  waiter->promise.set(<a class="code" href="structNothing.html">Nothing</a>());</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  }</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  }</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span> </div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  <span class="keyword">struct </span>Waiter</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  {</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <span class="keyword">enum</span> { READ, WRITE } <a class="code" hr
ef="namespacemesos_1_1internal_1_1fs.html#a2343e2642db514496ba8380776487fba">type</a>;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <a class="code" href="classprocess_1_1Promise.html">Promise<Nothing></a> <a class="code" href="namespacemesos_1_1internal_1_1log_1_1protocol.html#a3b1f8bd7b18c51af9d1f58842950b545">promise</a>;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  };</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span> </div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  <span class="keyword">struct </span>Data</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  {</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  Data() : read_locked(0), write_locked(<span class="keyword">false</span>) {}</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</sp
an> </div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  ~Data()</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  {</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <span class="comment">// TODO(zhitao): Fail promises?</span></div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  }</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span> </div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <span class="comment">// The state of the lock can be either:</span></div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <span class="comment">// (1) Unlocked: an incoming read or write grabs the lock.</span></div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <span class="comment">//</span></div><div class="line"><a na
me="l00172"></a><span class="lineno"> 172</span>  <span class="comment">// (2) Read locked (by one or more readers): an incoming write</span></div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  <span class="comment">// will queue in the waiters. An incoming read will proceed</span></div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  <span class="comment">// if no one is waiting, otherwise it will queue.</span></div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  <span class="comment">//</span></div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  <span class="comment">// (3) Write locked: incoming reads and writes will queue.</span></div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span> </div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  <span class="keywordtyp
e">size_t</span> read_locked;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  <span class="keywordtype">bool</span> write_locked;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  std::queue<Waiter> waiters;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span> </div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  <span class="comment">// Rather than use a process to serialize access to the</span></div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <span class="comment">// internal data we use a 'std::atomic_flag'.</span></div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  std::atomic_flag lock = ATOMIC_FLAG_INIT;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  };</div><div class="line"><a name="l00186"></a><span class="lineno"
> 186</span> </div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  std::shared_ptr<Data> data;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span> };</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span> </div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span> } <span class="comment">// namespace process {</span></div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span> </div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span> <span class="preprocessor">#endif // __PROCESS_RWMUTEX_HPP__</span></div><div class="ttc" id="namespaceprocess_1_1io_html_aca1f059ca9f0d7360631c621debeb879"><div class="ttname"><a href="namespaceprocess_1_1io.html#aca1f059ca9f0d7360631c621debeb879">process::io::READ</a></div><div class="ttdeci">const short READ</div><div class="ttdoc">A possible event while polling. </div><div clas
s="ttdef"><b>Definition:</b> io.hpp:35</div></div>
<div class="ttc" id="synchronized_8hpp_html"><div class="ttname"><a href="synchronized_8hpp.html">synchronized.hpp</a></div></div>
<div class="ttc" id="classprocess_1_1ReadWriteLock_html_a29e6aba787b76777a262a9bd90072b4d"><div class="ttname"><a href="classprocess_1_1ReadWriteLock.html#a29e6aba787b76777a262a9bd90072b4d">process::ReadWriteLock::read_lock</a></div><div class="ttdeci">Future< Nothing > read_lock()</div><div class="ttdef"><b>Definition:</b> rwlock.hpp:109</div></div>
<div class="ttc" id="structNothing_html"><div class="ttname"><a href="structNothing.html">Nothing</a></div><div class="ttdef"><b>Definition:</b> nothing.hpp:16</div></div>
@@ -62,7 +62,7 @@
<div class="ttc" id="classOption_html_a4e3bf8416d95246f43c91f1b5c309323"><div class="ttname"><a href="classOption.html#a4e3bf8416d95246f43c91f1b5c309323">Option::isSome</a></div><div class="ttdeci">bool isSome() const </div><div class="ttdef"><b>Definition:</b> option.hpp:115</div></div>
<div class="ttc" id="nothing_8hpp_html"><div class="ttname"><a href="nothing_8hpp.html">nothing.hpp</a></div></div>
<div class="ttc" id="classprocess_1_1ReadWriteLock_html_af45c888bb43a25164ca4f9eacfbf139c"><div class="ttname"><a href="classprocess_1_1ReadWriteLock.html#af45c888bb43a25164ca4f9eacfbf139c">process::ReadWriteLock::write_lock</a></div><div class="ttdeci">Future< Nothing > write_lock()</div><div class="ttdef"><b>Definition:</b> rwlock.hpp:44</div></div>
-<div class="ttc" id="namespaceprocess_1_1io_html_ab005316d71b45c5b05de0a6234c6f8fc"><div class="ttname"><a href="namespaceprocess_1_1io.html#ab005316d71b45c5b05de0a6234c6f8fc">process::io::WRITE</a></div><div class="ttdeci">const short WRITE</div><div class="ttdoc">A possible event while polling. </div><div class="ttdef"><b>Definition:</b> io.hpp:39</div></div>
+<div class="ttc" id="namespaceprocess_1_1io_html_ab005316d71b45c5b05de0a6234c6f8fc"><div class="ttname"><a href="namespaceprocess_1_1io.html#ab005316d71b45c5b05de0a6234c6f8fc">process::io::WRITE</a></div><div class="ttdeci">const short WRITE</div><div class="ttdoc">A possible event while polling. </div><div class="ttdef"><b>Definition:</b> io.hpp:40</div></div>
<div class="ttc" id="classprocess_1_1Promise_html"><div class="ttname"><a href="classprocess_1_1Promise.html">process::Promise< Nothing ></a></div></div>
<div class="ttc" id="namespacemesos_1_1internal_1_1log_1_1protocol_html_a3b1f8bd7b18c51af9d1f58842950b545"><div class="ttname"><a href="namespacemesos_1_1internal_1_1log_1_1protocol.html#a3b1f8bd7b18c51af9d1f58842950b545">mesos::internal::log::protocol::promise</a></div><div class="ttdeci">Protocol< PromiseRequest, PromiseResponse > promise</div></div>
<div class="ttc" id="future_8hpp_html"><div class="ttname"><a href="future_8hpp.html">future.hpp</a></div></div>
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/sandbox_8hpp.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/sandbox_8hpp.html b/content/api/latest/c++/sandbox_8hpp.html
index 492e79d..774b813 100644
--- a/content/api/latest/c++/sandbox_8hpp.html
+++ b/content/api/latest/c++/sandbox_8hpp.html
@@ -63,7 +63,7 @@
<code>#include <<a class="el" href="include_2mesos_2slave_2containerizer_8hpp_source.html">mesos/slave/containerizer.hpp</a>></code><br />
<code>#include <<a class="el" href="future_8hpp_source.html">process/future.hpp</a>></code><br />
<code>#include <<a class="el" href="owned_8hpp_source.html">process/owned.hpp</a>></code><br />
-<code>#include <<a class="el" href="subprocess_8hpp_source.html">process/subprocess.hpp</a>></code><br />
+<code>#include <<a class="el" href="include_2process_2subprocess_8hpp_source.html">process/subprocess.hpp</a>></code><br />
<code>#include <<a class="el" href="try_8hpp_source.html">stout/try.hpp</a>></code><br />
<code>#include <<a class="el" href="nothing_8hpp_source.html">stout/nothing.hpp</a>></code><br />
<code>#include <<a class="el" href="option_8hpp_source.html">stout/option.hpp</a>></code><br />
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/sandbox_8hpp_source.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/sandbox_8hpp_source.html b/content/api/latest/c++/sandbox_8hpp_source.html
index 5d89c2c..e55eddc 100644
--- a/content/api/latest/c++/sandbox_8hpp_source.html
+++ b/content/api/latest/c++/sandbox_8hpp_source.html
@@ -52,10 +52,10 @@
<div class="title">sandbox.hpp</div> </div>
</div><!--header-->
<div class="contents">
-<a href="sandbox_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// or more contributor license agreements. See the NOTICE file</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// distributed with this work for additional information</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">// regarding copyright ownership. The ASF licenses this file</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00006"></a><span cla
ss="lineno"> 6</span> <span class="comment">// "License"); you may not use this file except in compliance</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// with the License. You may obtain a copy of the License at</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">//</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// Unless required by applicable law or agreed to in writing, software</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment">// distribut
ed under the License is distributed on an "AS IS" BASIS,</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">// See the License for the specific language governing permissions and</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// limitations under the License.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#ifndef __SLAVE_CONTAINER_LOGGERS_SANDBOX_HPP__</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#define __SLAVE_CONTAINER_LOGGERS_SANDBOX_HPP__
</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> </div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include <map></span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <string></span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <vector></span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> </div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <<a class="code" href="include_2mesos_2mesos_8hpp.html">mesos/mesos.hpp</a>></span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor
">#include <<a class="code" href="slave_2container__logger_8hpp.html">mesos/slave/container_logger.hpp</a>></span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <<a class="code" href="include_2mesos_2slave_2containerizer_8hpp.html">mesos/slave/containerizer.hpp</a>></span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> </div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include <<a class="code" href="future_8hpp.html">process/future.hpp</a>></span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include <<a class="code" href="owned_8hpp.html">process/owned.hpp</a>></span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include <<a class="code" href="subprocess_8hpp.h
tml">process/subprocess.hpp</a>></span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#include <<a class="code" href="try_8hpp.html">stout/try.hpp</a>></span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#include <<a class="code" href="nothing_8hpp.html">stout/nothing.hpp</a>></span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include <<a class="code" href="option_8hpp.html">stout/option.hpp</a>></span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> </div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="keyword">namespace </span><a class="code" href="namespacemesos.html">mesos</a> {</div><div class="line"><a na
me="l00038"></a><span class="lineno"> 38</span> <span class="keyword">namespace </span><a class="code" href="namespaceinternal.html">internal</a> {</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="keyword">namespace </span>slave {</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="comment">// Forward declaration.</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="keyword">class </span>SandboxContainerLoggerProcess;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="comment">// The default container logger.</span></div><div class="line"><a name
="l00046"></a><span class="lineno"> 46</span> <span class="comment">//</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="comment">// Containers launched through this container logger will have their</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="comment">// stdout and stderr piped to the files "stdout" and "stderr",</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="comment">// respectively, in the sandbox. These logs are accessible via the</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="comment">// agent's `/files` endpoint.</span></div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1SandboxContainerLogger.html"> 51</a></span> <span class="keyword">class </span><a
class="code" href="classmesos_1_1internal_1_1slave_1_1SandboxContainerLogger.html">SandboxContainerLogger</a> : <span class="keyword">public</span> <a class="code" href="classmesos_1_1slave_1_1ContainerLogger.html">mesos::slave::ContainerLogger</a></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span> {</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <a class="code" href="classmesos_1_1internal_1_1slave_1_1SandboxContainerLogger.html#a1b8a9a82650a01ad58e6e83a76b249e9">SandboxContainerLogger</a>();</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="keyword">virtual</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1SandboxContainerLogger.html#a49bed83196f230c48c0363464b6c2e32">~SandboxContainerLogger</a>();</div><div class="line"><a name="l00
056"></a><span class="lineno"> 56</span> </div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <span class="comment">// This is a noop. The sandbox container logger has nothing to initialize.</span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="keyword">virtual</span> <a class="code" href="classTry.html">Try<Nothing></a> <a class="code" href="classmesos_1_1internal_1_1slave_1_1SandboxContainerLogger.html#a5fbef8dfa4909eb4130c233d6cea4533">initialize</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <span class="comment">// Tells the subprocess to redirect the container's stdout and</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="comment">// stderr to separate "s
tdout" and "stderr" files in the sandbox.</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="comment">// The `path`, `argv`, and `environment` are not changed.</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="keyword">virtual</span> <a class="code" href="classprocess_1_1Future.html">process::Future<mesos::slave::ContainerIO></a> <a class="code" href="classmesos_1_1internal_1_1slave_1_1SandboxContainerLogger.html#a39b565314089f86ba74a70abb4ea9458">prepare</a>(</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <span class="keyword">const</span> ContainerID& containerId,</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <span class="keyword">const</span> mesos::slave::ContainerConfig& containerConfig) <span class="keyword">override</span>;</div><div class="line"><a name="l
00066"></a><span class="lineno"> 66</span> </div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="keyword">protected</span>:</div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1SandboxContainerLogger.html#ae6d52b98a684d49fa90ea828cf8a6b8c"> 68</a></span>  <a class="code" href="classprocess_1_1Owned.html">process::Owned<SandboxContainerLoggerProcess></a> <a class="code" href="classmesos_1_1internal_1_1slave_1_1SandboxContainerLogger.html#ae6d52b98a684d49fa90ea828cf8a6b8c">process</a>;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span> };</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span> </div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span> </div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span> } <span class="comment">// namespace s
lave {</span></div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span> } <span class="comment">// namespace internal {</span></div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span> } <span class="comment">// namespace mesos {</span></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span> </div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="preprocessor">#endif // __SLAVE_CONTAINER_LOGGERS_SANDBOX_HPP__</span></div><div class="ttc" id="classTry_html"><div class="ttname"><a href="classTry.html">Try</a></div><div class="ttdef"><b>Definition:</b> check.hpp:33</div></div>
+<a href="sandbox_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// or more contributor license agreements. See the NOTICE file</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// distributed with this work for additional information</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">// regarding copyright ownership. The ASF licenses this file</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00006"></a><span cla
ss="lineno"> 6</span> <span class="comment">// "License"); you may not use this file except in compliance</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// with the License. You may obtain a copy of the License at</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">//</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// Unless required by applicable law or agreed to in writing, software</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment">// distribut
ed under the License is distributed on an "AS IS" BASIS,</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">// See the License for the specific language governing permissions and</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// limitations under the License.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#ifndef __SLAVE_CONTAINER_LOGGERS_SANDBOX_HPP__</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#define __SLAVE_CONTAINER_LOGGERS_SANDBOX_HPP__
</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> </div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include <map></span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <string></span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <vector></span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> </div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <<a class="code" href="include_2mesos_2mesos_8hpp.html">mesos/mesos.hpp</a>></span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor
">#include <<a class="code" href="slave_2container__logger_8hpp.html">mesos/slave/container_logger.hpp</a>></span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <<a class="code" href="include_2mesos_2slave_2containerizer_8hpp.html">mesos/slave/containerizer.hpp</a>></span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> </div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include <<a class="code" href="future_8hpp.html">process/future.hpp</a>></span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include <<a class="code" href="owned_8hpp.html">process/owned.hpp</a>></span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include <<a class="code" href="include_2process_
2subprocess_8hpp.html">process/subprocess.hpp</a>></span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#include <<a class="code" href="try_8hpp.html">stout/try.hpp</a>></span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#include <<a class="code" href="nothing_8hpp.html">stout/nothing.hpp</a>></span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include <<a class="code" href="option_8hpp.html">stout/option.hpp</a>></span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> </div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="keyword">namespace </span><a class="code" href="namespacemesos.html">mesos</a> {</div><div
class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="keyword">namespace </span><a class="code" href="namespaceinternal.html">internal</a> {</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="keyword">namespace </span>slave {</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="comment">// Forward declaration.</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="keyword">class </span>SandboxContainerLoggerProcess;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="comment">// The default container logger.</span></div><div cl
ass="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="comment">//</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="comment">// Containers launched through this container logger will have their</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="comment">// stdout and stderr piped to the files "stdout" and "stderr",</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="comment">// respectively, in the sandbox. These logs are accessible via the</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="comment">// agent's `/files` endpoint.</span></div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1SandboxContainerLogger.html"> 51</a></span> <span class="keyword
">class </span><a class="code" href="classmesos_1_1internal_1_1slave_1_1SandboxContainerLogger.html">SandboxContainerLogger</a> : <span class="keyword">public</span> <a class="code" href="classmesos_1_1slave_1_1ContainerLogger.html">mesos::slave::ContainerLogger</a></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span> {</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <a class="code" href="classmesos_1_1internal_1_1slave_1_1SandboxContainerLogger.html#a1b8a9a82650a01ad58e6e83a76b249e9">SandboxContainerLogger</a>();</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="keyword">virtual</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1SandboxContainerLogger.html#a49bed83196f230c48c0363464b6c2e32">~SandboxContainerLogger</a>();</div><div class="
line"><a name="l00056"></a><span class="lineno"> 56</span> </div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <span class="comment">// This is a noop. The sandbox container logger has nothing to initialize.</span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="keyword">virtual</span> <a class="code" href="classTry.html">Try<Nothing></a> <a class="code" href="classmesos_1_1internal_1_1slave_1_1SandboxContainerLogger.html#a5fbef8dfa4909eb4130c233d6cea4533">initialize</a>() <span class="keyword">override</span>;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <span class="comment">// Tells the subprocess to redirect the container's stdout and</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="comment">// stderr t
o separate "stdout" and "stderr" files in the sandbox.</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="comment">// The `path`, `argv`, and `environment` are not changed.</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="keyword">virtual</span> <a class="code" href="classprocess_1_1Future.html">process::Future<mesos::slave::ContainerIO></a> <a class="code" href="classmesos_1_1internal_1_1slave_1_1SandboxContainerLogger.html#a39b565314089f86ba74a70abb4ea9458">prepare</a>(</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <span class="keyword">const</span> ContainerID& containerId,</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <span class="keyword">const</span> mesos::slave::ContainerConfig& containerConfig) <span class="keyword">override</span>;</div><div class
="line"><a name="l00066"></a><span class="lineno"> 66</span> </div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="keyword">protected</span>:</div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1slave_1_1SandboxContainerLogger.html#ae6d52b98a684d49fa90ea828cf8a6b8c"> 68</a></span>  <a class="code" href="classprocess_1_1Owned.html">process::Owned<SandboxContainerLoggerProcess></a> <a class="code" href="classmesos_1_1internal_1_1slave_1_1SandboxContainerLogger.html#ae6d52b98a684d49fa90ea828cf8a6b8c">process</a>;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span> };</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span> </div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span> </div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span> } <span class="comme
nt">// namespace slave {</span></div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span> } <span class="comment">// namespace internal {</span></div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span> } <span class="comment">// namespace mesos {</span></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span> </div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="preprocessor">#endif // __SLAVE_CONTAINER_LOGGERS_SANDBOX_HPP__</span></div><div class="ttc" id="classTry_html"><div class="ttname"><a href="classTry.html">Try</a></div><div class="ttdef"><b>Definition:</b> check.hpp:33</div></div>
<div class="ttc" id="classmesos_1_1internal_1_1slave_1_1SandboxContainerLogger_html_ae6d52b98a684d49fa90ea828cf8a6b8c"><div class="ttname"><a href="classmesos_1_1internal_1_1slave_1_1SandboxContainerLogger.html#ae6d52b98a684d49fa90ea828cf8a6b8c">mesos::internal::slave::SandboxContainerLogger::process</a></div><div class="ttdeci">process::Owned< SandboxContainerLoggerProcess > process</div><div class="ttdef"><b>Definition:</b> sandbox.hpp:68</div></div>
-<div class="ttc" id="subprocess_8hpp_html"><div class="ttname"><a href="subprocess_8hpp.html">subprocess.hpp</a></div></div>
<div class="ttc" id="classmesos_1_1internal_1_1slave_1_1SandboxContainerLogger_html_a39b565314089f86ba74a70abb4ea9458"><div class="ttname"><a href="classmesos_1_1internal_1_1slave_1_1SandboxContainerLogger.html#a39b565314089f86ba74a70abb4ea9458">mesos::internal::slave::SandboxContainerLogger::prepare</a></div><div class="ttdeci">virtual process::Future< mesos::slave::ContainerIO > prepare(const ContainerID &containerId, const mesos::slave::ContainerConfig &containerConfig) override</div></div>
+<div class="ttc" id="include_2process_2subprocess_8hpp_html"><div class="ttname"><a href="include_2process_2subprocess_8hpp.html">subprocess.hpp</a></div></div>
<div class="ttc" id="include_2mesos_2mesos_8hpp_html"><div class="ttname"><a href="include_2mesos_2mesos_8hpp.html">mesos.hpp</a></div></div>
<div class="ttc" id="classmesos_1_1internal_1_1slave_1_1SandboxContainerLogger_html"><div class="ttname"><a href="classmesos_1_1internal_1_1slave_1_1SandboxContainerLogger.html">mesos::internal::slave::SandboxContainerLogger</a></div><div class="ttdef"><b>Definition:</b> sandbox.hpp:51</div></div>
<div class="ttc" id="classmesos_1_1internal_1_1slave_1_1SandboxContainerLogger_html_a1b8a9a82650a01ad58e6e83a76b249e9"><div class="ttname"><a href="classmesos_1_1internal_1_1slave_1_1SandboxContainerLogger.html#a1b8a9a82650a01ad58e6e83a76b249e9">mesos::internal::slave::SandboxContainerLogger::SandboxContainerLogger</a></div><div class="ttdeci">SandboxContainerLogger()</div></div>
[39/50] mesos-site git commit: Updated the website built from mesos
SHA: 7c9c72d.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/docker_2docker_8hpp_source.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/docker_2docker_8hpp_source.html b/content/api/latest/c++/docker_2docker_8hpp_source.html
index e10c4fc..41a1142 100644
--- a/content/api/latest/c++/docker_2docker_8hpp_source.html
+++ b/content/api/latest/c++/docker_2docker_8hpp_source.html
@@ -52,7 +52,7 @@
<div class="title">docker.hpp</div> </div>
</div><!--header-->
<div class="contents">
-<a href="docker_2docker_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// or more contributor license agreements. See the NOTICE file</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// distributed with this work for additional information</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">// regarding copyright ownership. The ASF licenses this file</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00006"></a><s
pan class="lineno"> 6</span> <span class="comment">// "License"); you may not use this file except in compliance</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// with the License. You may obtain a copy of the License at</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">//</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// Unless required by applicable law or agreed to in writing, software</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment">// di
stributed under the License is distributed on an "AS IS" BASIS,</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">// See the License for the specific language governing permissions and</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// limitations under the License.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#ifndef __DOCKER_HPP__</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#define __DOCKER_HPP__</span></div><div class="line"><a name="l00
019"></a><span class="lineno"> 19</span> </div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include <map></span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <mutex></span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <string></span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <utility></span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <vector></span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include <<a class="code" href="future_8hpp.html"
>process/future.hpp</a>></span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <<a class="code" href="owned_8hpp.html">process/owned.hpp</a>></span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include <<a class="code" href="subprocess_8hpp.html">process/subprocess.hpp</a>></span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> </div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include <<a class="code" href="duration_8hpp.html">stout/duration.hpp</a>></span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include <<a class="code" href="json_8hpp.html">stout/json.hpp</a>></span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span
class="preprocessor">#include <<a class="code" href="none_8hpp.html">stout/none.hpp</a>></span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#include <<a class="code" href="nothing_8hpp.html">stout/nothing.hpp</a>></span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#include <<a class="code" href="option_8hpp.html">stout/option.hpp</a>></span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include <<a class="code" href="path_8hpp.html">stout/path.hpp</a>></span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#include <<a class="code" href="3rdparty_2stout_2include_2stout_2version_8hpp.html">stout/version.hpp</a>></span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>
0;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor">#include <<a class="code" href="rm_8hpp.html">stout/os/rm.hpp</a>></span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> </div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="preprocessor">#include "<a class="code" href="resources_8hpp.html">mesos/resources.hpp</a>"</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> </div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor">#include "<a class="code" href="src_2messages_2flags_8hpp.html">messages/flags.hpp</a>"</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="comment">// OS-specific default pref
ix to be used for the DOCKER_HOST environment</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="comment">// variable. Note that on Linux, the default prefix is the only prefix</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="comment">// available; only Windows supports multiple prefixes.</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="comment">// TODO(hausdorff): Add support for the Windows `tcp://` prefix as well.</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor">#ifdef __WINDOWS__</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span> constexpr <span class="keywordtype">char</span> <a class="code" href="docker_2docker_8hpp.html#aaa33f928061d14ba4d30c9d242ab3af6">DEFAULT_DOCKER_HOST_PREFIX</a>[] = <span class="stringlitera
l">"npipe://"</span>;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="docker_2docker_8hpp.html#aaa33f928061d14ba4d30c9d242ab3af6"> 51</a></span> constexpr <span class="keywordtype">char</span> <a class="code" href="docker_2docker_8hpp.html#aaa33f928061d14ba4d30c9d242ab3af6">DEFAULT_DOCKER_HOST_PREFIX</a>[] = <span class="stringliteral">"unix://"</span>;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="preprocessor">#endif // __WINDOWS__</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span> </div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="comment">// Abstraction for working with Docker (modeled on CLI).</span></div><div class="line"><a name="l00055"></a><span class="lin
eno"> 55</span> <span class="comment">//</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="comment">// TODO(benh): Make futures returned by functions be discardable.</span></div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="classDocker.html"> 57</a></span> <span class="keyword">class </span><a class="code" href="classDocker.html">Docker</a></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span> {</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <span class="comment">// Create Docker abstraction and optionally validate docker.</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="keyword">static</span> <a class="code" href="classTry.html">Try<proces
s::Owned<Docker></a>> <a class="code" href="classDocker.html#a370c1d613e35cc8b8e393dc8c83876e6">create</a>(</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="keyword">const</span> std::string& <a class="code" href="namespacepath.html">path</a>,</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="keyword">const</span> std::string& socket,</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <span class="keywordtype">bool</span> <a class="code" href="namespaceappc_1_1spec.html#a1f003511d7ad7c4792223d0b11b60f62">validate</a> = <span class="keyword">true</span>,</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<JSON::Object></a>& config = <a class="code" href="structNone.html">None</a>());</div><div class=
"line"><a name="l00066"></a><span class="lineno"> 66</span> </div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="classDocker.html#abf91637f3f62b14134f06987e2d6cf16"> 67</a></span>  <span class="keyword">virtual</span> <a class="code" href="classDocker.html#abf91637f3f62b14134f06987e2d6cf16">~Docker</a>() {}</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span> </div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="structDocker_1_1Device.html"> 69</a></span>  <span class="keyword">struct </span><a class="code" href="structDocker_1_1Device.html">Device</a></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  {</div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="structDocker_1_1Device.html#aae6d15031248e229009ba54e7897ec81"> 71</a></span>  <a class="code" href="classPath.html">Path</a> <a cla
ss="code" href="structDocker_1_1Device.html#aae6d15031248e229009ba54e7897ec81">hostPath</a>;</div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="structDocker_1_1Device.html#a6d9a10b7266815d0e38624401fcee248"> 72</a></span>  <a class="code" href="classPath.html">Path</a> <a class="code" href="structDocker_1_1Device.html#a6d9a10b7266815d0e38624401fcee248">containerPath</a>;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="structDocker_1_1Device_1_1Access.html"> 74</a></span>  <span class="keyword">struct </span><a class="code" href="structDocker_1_1Device_1_1Access.html">Access</a></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  {</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="structDocker_1_1Device_1_1Access.html#aaf338c2ce317697079
99e451d72b2072"> 76</a></span>  <a class="code" href="structDocker_1_1Device_1_1Access.html#aaf338c2ce31769707999e451d72b2072">Access</a>() : <a class="code" href="structDocker_1_1Device_1_1Access.html#ab4a1a1a34181c1b542803ba637b3640b">read</a>(false), <a class="code" href="structDocker_1_1Device_1_1Access.html#a50be7cc67a985ab3fbc1a119e7c18bb6">write</a>(false), <a class="code" href="structDocker_1_1Device_1_1Access.html#a454de7a52e5aeae079b6487eaa8e993f">mknod</a>(false) {}</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span> </div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="structDocker_1_1Device_1_1Access.html#ab4a1a1a34181c1b542803ba637b3640b"> 78</a></span>  <span class="keywordtype">bool</span> <a class="code" href="structDocker_1_1Device_1_1Access.html#ab4a1a1a34181c1b542803ba637b3640b">read</a>;</div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="s
tructDocker_1_1Device_1_1Access.html#a50be7cc67a985ab3fbc1a119e7c18bb6"> 79</a></span>  <span class="keywordtype">bool</span> <a class="code" href="structDocker_1_1Device_1_1Access.html#a50be7cc67a985ab3fbc1a119e7c18bb6">write</a>;</div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="structDocker_1_1Device_1_1Access.html#a454de7a52e5aeae079b6487eaa8e993f"> 80</a></span>  <span class="keywordtype">bool</span> <a class="code" href="structDocker_1_1Device_1_1Access.html#a454de7a52e5aeae079b6487eaa8e993f">mknod</a>;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  } <a class="code" href="structDocker_1_1Device.html#aba8dd66fc4f724c34d896f8e87cce72e">access</a>;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  };</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span> </div><div class="line"><a name="l00084"></a><span class="lineno
"><a class="line" href="structDocker_1_1PortMapping.html"> 84</a></span>  <span class="keyword">struct </span><a class="code" href="structDocker_1_1PortMapping.html">PortMapping</a></div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  {</div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="structDocker_1_1PortMapping.html#a83397b57136d2d1801ff776e05e8aaee"> 86</a></span>  uint32_t <a class="code" href="structDocker_1_1PortMapping.html#a83397b57136d2d1801ff776e05e8aaee">hostPort</a>;</div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="structDocker_1_1PortMapping.html#a5f73ec1d00e9bebe33b963a5f0bf04dc"> 87</a></span>  uint32_t <a class="code" href="structDocker_1_1PortMapping.html#a5f73ec1d00e9bebe33b963a5f0bf04dc">containerPort</a>;</div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="structDocker_1_1PortMapping.html#a2af6ba
4b5d848dacd369567906b127fc"> 88</a></span>  <a class="code" href="classOption.html">Option<std::string></a> <a class="code" href="structDocker_1_1PortMapping.html#a2af6ba4b5d848dacd369567906b127fc">protocol</a>;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  };</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span> </div><div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="classDocker_1_1Container.html"> 91</a></span>  <span class="keyword">class </span><a class="code" href="classDocker_1_1Container.html">Container</a></div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  {</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <span class="keyword">public</span>:</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <span class="keyword">static</span> <a class="code" href=
"classTry.html">Try<Container></a> <a class="code" href="classDocker.html#a370c1d613e35cc8b8e393dc8c83876e6">create</a>(</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <span class="keyword">const</span> std::string& output);</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span> </div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <span class="comment">// Returns the docker inspect output.</span></div><div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="classDocker_1_1Container.html#a3c7827975fc6182997b44752c96ec1df"> 98</a></span>  <span class="keyword">const</span> std::string <a class="code" href="classDocker_1_1Container.html#a3c7827975fc6182997b44752c96ec1df">output</a>;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span> </div><div class="line"><a name="l00100"></a><span class="lineno"> 100</
span>  <span class="comment">// Returns the ID of the container.</span></div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="classDocker_1_1Container.html#a2d8c2defc4769ffe5374b269e46780cd"> 101</a></span>  <span class="keyword">const</span> std::string <a class="code" href="classDocker_1_1Container.html#a2d8c2defc4769ffe5374b269e46780cd">id</a>;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span> </div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <span class="comment">// Returns the name of the container.</span></div><div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="classDocker_1_1Container.html#a2d653bf9d523e3c35536b3c56d8abdce"> 104</a></span>  <span class="keyword">const</span> std::string <a class="code" href="classDocker_1_1Container.html#a2d653bf9d523e3c35536b3c56d8abdce">name</a>;</div><div class="line"><a name="l0010
5"></a><span class="lineno"> 105</span> </div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <span class="comment">// Returns the pid of the container, or None if the container is</span></div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <span class="comment">// not running.</span></div><div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="classDocker_1_1Container.html#a825f1f81694908ea0d47a889f6cb71ea"> 108</a></span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<pid_t></a> <a class="code" href="classDocker_1_1Container.html#a825f1f81694908ea0d47a889f6cb71ea">pid</a>;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span> </div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <span class="comment">// Returns if the container has already started. This field is</span></
div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <span class="comment">// needed since pid is empty when the container terminates.</span></div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="classDocker_1_1Container.html#a3bb01922d502d092b8be21cef3a2c45c"> 112</a></span>  <span class="keyword">const</span> <span class="keywordtype">bool</span> <a class="code" href="classDocker_1_1Container.html#a3bb01922d502d092b8be21cef3a2c45c">started</a>;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span> </div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <span class="comment">// Returns the IPv4 address of the container, or `None()` if no</span></div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <span class="comment">// IPv4 address has been assigned.</span></div><div class="line"><a name="l00116"></a><span class=
"lineno"><a class="line" href="classDocker_1_1Container.html#a3f16c086b28059796d404e040612a8a2"> 116</a></span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a> <a class="code" href="classDocker_1_1Container.html#a3f16c086b28059796d404e040612a8a2">ipAddress</a>;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span> </div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <span class="comment">// Returns the IPv6 address of the container, or `None()` if no</span></div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <span class="comment">// IPv6 address has been assigned.</span></div><div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="classDocker_1_1Container.html#a78062b6302fdb628685c36a4b9e13e43"> 120</a></span>  <span class="keyword">const</span> <a class="code" href="classOption.html">
Option<std::string></a> <a class="code" href="classDocker_1_1Container.html#a78062b6302fdb628685c36a4b9e13e43">ip6Address</a>;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span> </div><div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="classDocker_1_1Container.html#a90c09ee24a831bd1c053234e51e66544"> 122</a></span>  <span class="keyword">const</span> std::vector<Device> <a class="code" href="classDocker_1_1Container.html#a90c09ee24a831bd1c053234e51e66544">devices</a>;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span> </div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <span class="comment">// Returns the DNS nameservers set by "--dns" option.</span></div><div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="classDocker_1_1Container.html#a434939f30a9e9119fd06c54b81e117d3"> 125</a></span> 
<span class="keyword">const</span> std::vector<std::string> <a class="code" href="classDocker_1_1Container.html#a434939f30a9e9119fd06c54b81e117d3">dns</a>;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span> </div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <span class="comment">// Returns the DNS options set by "--dns-option" option.</span></div><div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="classDocker_1_1Container.html#adb6b9484d8ccab9cf108594617d0b3ea"> 128</a></span>  <span class="keyword">const</span> std::vector<std::string> <a class="code" href="classDocker_1_1Container.html#adb6b9484d8ccab9cf108594617d0b3ea">dnsOptions</a>;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span> </div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <span class="comment">// Returns the DNS search d
omains set by "--dns-search" option.</span></div><div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="classDocker_1_1Container.html#a57b751988fd965a91bcff284bba745a9"> 131</a></span>  <span class="keyword">const</span> std::vector<std::string> <a class="code" href="classDocker_1_1Container.html#a57b751988fd965a91bcff284bba745a9">dnsSearch</a>;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span> </div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <span class="keyword">private</span>:</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <a class="code" href="classDocker_1_1Container.html">Container</a>(</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <span class="keyword">const</span> std::string& _output,</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span> 
<span class="keyword">const</span> std::string& _id,</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <span class="keyword">const</span> std::string& _name,</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<pid_t></a>& _pid,</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  <span class="keywordtype">bool</span> _started,</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a>& _ipAddress,</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a>& _ip6Address,</div><div class
="line"><a name="l00142"></a><span class="lineno"> 142</span>  <span class="keyword">const</span> std::vector<Device>& _devices,</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <span class="keyword">const</span> std::vector<std::string>& _dns,</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <span class="keyword">const</span> std::vector<std::string>& _dnsOptions,</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <span class="keyword">const</span> std::vector<std::string>& _dnsSearch)</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  : output(_output),</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  id(_id),</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  name(_name),</div><div class=
"line"><a name="l00149"></a><span class="lineno"> 149</span>  pid(_pid),</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  started(_started),</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  ipAddress(_ipAddress),</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  ip6Address(_ip6Address),</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  devices(_devices),</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  dns(_dns),</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  dnsOptions(_dnsOptions),</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  dnsSearch(_dnsSearch) {}</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  };</div><div class="line"><a name="l00158"
></a><span class="lineno"> 158</span> </div><div class="line"><a name="l00159"></a><span class="lineno"><a class="line" href="classDocker_1_1Image.html"> 159</a></span>  <span class="keyword">class </span><a class="code" href="classDocker_1_1Image.html">Image</a></div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  {</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  <span class="keyword">public</span>:</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  <span class="keyword">static</span> <a class="code" href="classTry.html">Try<Image></a> <a class="code" href="classDocker.html#a370c1d613e35cc8b8e393dc8c83876e6">create</a>(<span class="keyword">const</span> <a class="code" href="structJSON_1_1Object.html">JSON::Object</a>& <a class="code" href="namespacemesos_1_1internal.html#a3752d85ef726065c6c1b946eef1ba87a">json</a>);</div><div class="line"><a name="l00163"
></a><span class="lineno"> 163</span> </div><div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="classDocker_1_1Image.html#a43aec521773705fa0148bacdc493e5a9"> 164</a></span>  <a class="code" href="classOption.html">Option<std::vector<std::string></a>> <a class="code" href="classDocker_1_1Image.html#a43aec521773705fa0148bacdc493e5a9">entrypoint</a>;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span> </div><div class="line"><a name="l00166"></a><span class="lineno"><a class="line" href="classDocker_1_1Image.html#a1f2babd3821e80ddf36c1f129528d5ef"> 166</a></span>  <a class="code" href="classOption.html">Option<std::map<std::string, std::string></a>> <a class="code" href="classDocker_1_1Image.html#a1f2babd3821e80ddf36c1f129528d5ef">environment</a>;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span> </div><div class="line"><a name="l00168"></a><span
class="lineno"> 168</span>  <span class="keyword">private</span>:</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <a class="code" href="classDocker_1_1Image.html">Image</a>(<span class="keyword">const</span> <a class="code" href="classOption.html">Option</a><std::vector<std::string>>& _entrypoint,</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option</a><std::map<std::string, std::string>>& _environment)</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  : entrypoint(_entrypoint),</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  environment(_environment) {}</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  };</div><div class="line"><a name="l00174"></a><span class="lineno">
174</span> </div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  <span class="comment">// See https://docs.docker.com/engine/reference/run for a complete</span></div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  <span class="comment">// explanation of each option.</span></div><div class="line"><a name="l00177"></a><span class="lineno"><a class="line" href="classDocker_1_1RunOptions.html"> 177</a></span>  <span class="keyword">class </span><a class="code" href="classDocker_1_1RunOptions.html">RunOptions</a></div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  {</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  <span class="keyword">public</span>:</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  <span class="keyword">static</span> <a class="code" href="classTry.html">Try<RunOptions></a> <a class="
code" href="classDocker.html#a370c1d613e35cc8b8e393dc8c83876e6">create</a>(</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  <span class="keyword">const</span> mesos::ContainerInfo& containerInfo,</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  <span class="keyword">const</span> mesos::CommandInfo& commandInfo,</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <span class="keyword">const</span> std::string& containerName,</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <span class="keyword">const</span> std::string& sandboxDirectory,</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <span class="keyword">const</span> std::string& mappedDirectory,</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  <span class="keyword"
>const</span> <a class="code" href="classOption.html">Option<mesos::Resources></a>& resources = <a class="code" href="structNone.html">None</a>(),</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  <span class="keywordtype">bool</span> enableCfsQuota = <span class="keyword">false</span>,</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option</a><std::map<std::string, std::string>>& env = <a class="code" href="structNone.html">None</a>(),</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option</a><std::vector<Device>>& devices = <a class="code" href="structNone.html">None</a>(),</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  <spa
n class="keyword">const</span> <a class="code" href="classOption.html">Option<mesos::internal::ContainerDNSInfo></a>& defaultContainerDNS = <a class="code" href="structNone.html">None</a>()); <span class="comment">// NOLINT(whitespace/line_length)</span></div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span> </div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  <span class="comment">// "--privileged" option.</span></div><div class="line"><a name="l00193"></a><span class="lineno"><a class="line" href="classDocker_1_1RunOptions.html#a33f18cefbc3ca182e25e11864aaf6b7c"> 193</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classDocker_1_1RunOptions.html#a33f18cefbc3ca182e25e11864aaf6b7c">privileged</a>;</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span> </div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  <spa
n class="comment">// "--cpu-shares" option.</span></div><div class="line"><a name="l00196"></a><span class="lineno"><a class="line" href="classDocker_1_1RunOptions.html#a9e9766db7938907f2c817285a23e7da4"> 196</a></span>  <a class="code" href="classOption.html">Option<uint64_t></a> <a class="code" href="classDocker_1_1RunOptions.html#a9e9766db7938907f2c817285a23e7da4">cpuShares</a>;</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span> </div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  <span class="comment">// "--cpu-quota" option.</span></div><div class="line"><a name="l00199"></a><span class="lineno"><a class="line" href="classDocker_1_1RunOptions.html#a38e3dcda8fe4518da90882bf7c3c4fa6"> 199</a></span>  <a class="code" href="classOption.html">Option<uint64_t></a> <a class="code" href="classDocker_1_1RunOptions.html#a38e3dcda8fe4518da90882bf7c3c4fa6">cpuQuota</a>;</div
><div class="line"><a name="l00200"></a><span class="lineno"> 200</span> </div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  <span class="comment">// "--memory" option.</span></div><div class="line"><a name="l00202"></a><span class="lineno"><a class="line" href="classDocker_1_1RunOptions.html#a3646ddc4c72adc0ca32892889ecaaf42"> 202</a></span>  <a class="code" href="classOption.html">Option<Bytes></a> <a class="code" href="classDocker_1_1RunOptions.html#a3646ddc4c72adc0ca32892889ecaaf42">memory</a>;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span> </div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  <span class="comment">// Environment variable overrides. These overrides will be passed</span></div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  <span class="comment">// to docker container through "--env-file&quo
t; option.</span></div><div class="line"><a name="l00206"></a><span class="lineno"><a class="line" href="classDocker_1_1RunOptions.html#a755d1afbb3adbf654734d77834c2a5a6"> 206</a></span>  std::map<std::string, std::string> <a class="code" href="classDocker_1_1RunOptions.html#a755d1afbb3adbf654734d77834c2a5a6">env</a>;</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span> </div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  <span class="comment">// "--volume" option.</span></div><div class="line"><a name="l00209"></a><span class="lineno"><a class="line" href="classDocker_1_1RunOptions.html#ab3f8493699e9598e9f8cccf21370a446"> 209</a></span>  std::vector<std::string> <a class="code" href="classDocker_1_1RunOptions.html#ab3f8493699e9598e9f8cccf21370a446">volumes</a>;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span> </div><div class="line"><a name="l00
211"></a><span class="lineno"> 211</span>  <span class="comment">// "--volume-driver" option.</span></div><div class="line"><a name="l00212"></a><span class="lineno"><a class="line" href="classDocker_1_1RunOptions.html#a7423333c41f76267f5d5d7471598df2e"> 212</a></span>  <a class="code" href="classOption.html">Option<std::string></a> <a class="code" href="classDocker_1_1RunOptions.html#a7423333c41f76267f5d5d7471598df2e">volumeDriver</a>;</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span> </div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  <span class="comment">// "--network" option.</span></div><div class="line"><a name="l00215"></a><span class="lineno"><a class="line" href="classDocker_1_1RunOptions.html#a220a2058369e4c4c0470c2af55bd70b0"> 215</a></span>  <a class="code" href="classOption.html">Option<std::string></a> <a class="code" href="classDocker_1_1Run
Options.html#a220a2058369e4c4c0470c2af55bd70b0">network</a>;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span> </div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  <span class="comment">// "--hostname" option.</span></div><div class="line"><a name="l00218"></a><span class="lineno"><a class="line" href="classDocker_1_1RunOptions.html#aaec598bf7739b0ebfbe35910dc9ebcd1"> 218</a></span>  <a class="code" href="classOption.html">Option<std::string></a> <a class="code" href="classDocker_1_1RunOptions.html#aaec598bf7739b0ebfbe35910dc9ebcd1">hostname</a>;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span> </div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  <span class="comment">// "--dns" option.</span></div><div class="line"><a name="l00221"></a><span class="lineno"><a class="line" href="classDocker_1_1RunOptions.html#a2b7
4b9166bedf91ee6095aaf0f360ec1"> 221</a></span>  std::vector<std::string> <a class="code" href="classDocker_1_1RunOptions.html#a2b74b9166bedf91ee6095aaf0f360ec1">dns</a>;</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span> </div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  <span class="comment">// "--dns-search" option.</span></div><div class="line"><a name="l00224"></a><span class="lineno"><a class="line" href="classDocker_1_1RunOptions.html#a63a9cb71e8f2d710c2fa42d8ba40c819"> 224</a></span>  std::vector<std::string> <a class="code" href="classDocker_1_1RunOptions.html#a63a9cb71e8f2d710c2fa42d8ba40c819">dnsSearch</a>;</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span> </div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  <span class="comment">// "--dns-opt" option.</span></div><div class="line"><a name
="l00227"></a><span class="lineno"><a class="line" href="classDocker_1_1RunOptions.html#ad5224b97473b64a722903ae1fba7da6e"> 227</a></span>  std::vector<std::string> <a class="code" href="classDocker_1_1RunOptions.html#ad5224b97473b64a722903ae1fba7da6e">dnsOpt</a>;</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span> </div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  <span class="comment">// Port mappings for "-p" option.</span></div><div class="line"><a name="l00230"></a><span class="lineno"><a class="line" href="classDocker_1_1RunOptions.html#ae237a5dab57584fae5f4dfb6ebebad82"> 230</a></span>  std::vector<PortMapping> <a class="code" href="classDocker_1_1RunOptions.html#ae237a5dab57584fae5f4dfb6ebebad82">portMappings</a>;</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span> </div><div class="line"><a name="l00232"></a><span class="lineno"> 232</s
pan>  <span class="comment">// "--device" option.</span></div><div class="line"><a name="l00233"></a><span class="lineno"><a class="line" href="classDocker_1_1RunOptions.html#ac50c34a9f1f091f506e46b4c42cbc223"> 233</a></span>  std::vector<Device> <a class="code" href="classDocker_1_1RunOptions.html#ac50c34a9f1f091f506e46b4c42cbc223">devices</a>;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span> </div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  <span class="comment">// "--entrypoint" option.</span></div><div class="line"><a name="l00236"></a><span class="lineno"><a class="line" href="classDocker_1_1RunOptions.html#a60d3e2000dd5ab9edf5f7b8a8286746c"> 236</a></span>  <a class="code" href="classOption.html">Option<std::string></a> <a class="code" href="classDocker_1_1RunOptions.html#a60d3e2000dd5ab9edf5f7b8a8286746c">entrypoint</a>;</div><div class="line"><a n
ame="l00237"></a><span class="lineno"> 237</span> </div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  <span class="comment">// "--name" option.</span></div><div class="line"><a name="l00239"></a><span class="lineno"><a class="line" href="classDocker_1_1RunOptions.html#a0602b9e86eddf481d959af3a0b90d6b0"> 239</a></span>  <a class="code" href="classOption.html">Option<std::string></a> <a class="code" href="classDocker_1_1RunOptions.html#a0602b9e86eddf481d959af3a0b90d6b0">name</a>;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span> </div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  <span class="comment">// Additional docker options passed through containerizer.</span></div><div class="line"><a name="l00242"></a><span class="lineno"><a class="line" href="classDocker_1_1RunOptions.html#a048706a19cef73f4e674424c996e5c89"> 242</a></span>  std::vect
or<std::string> <a class="code" href="classDocker_1_1RunOptions.html#a048706a19cef73f4e674424c996e5c89">additionalOptions</a>;</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span> </div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  <span class="comment">// "IMAGE[:TAG|@DIGEST]" part of docker run.</span></div><div class="line"><a name="l00245"></a><span class="lineno"><a class="line" href="classDocker_1_1RunOptions.html#a984870e15fbad2697a42f013258a6d93"> 245</a></span>  std::string <a class="code" href="classDocker_1_1RunOptions.html#a984870e15fbad2697a42f013258a6d93">image</a>;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span> </div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  <span class="comment">// Arguments for docker run.</span></div><div class="line"><a name="l00248"></a><span class="lineno"><a class="line" href="cla
ssDocker_1_1RunOptions.html#a2a59bd841ae0bb5b77b83639b61e42ec"> 248</a></span>  std::vector<std::string> <a class="code" href="classDocker_1_1RunOptions.html#a2a59bd841ae0bb5b77b83639b61e42ec">arguments</a>;</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  };</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span> </div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  <span class="comment">// Performs 'docker run IMAGE'. Returns the exit status of the</span></div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  <span class="comment">// container. Note that currently the exit status may correspond</span></div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  <span class="comment">// to the exit code from a failure of the docker client or daemon</span></div><div class="line"><a name="l00254"></a><span class="l
ineno"> 254</span>  <span class="comment">// rather than the container. Docker >= 1.10 [1] uses the following</span></div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  <span class="comment">// exit statuses inherited from 'chroot':</span></div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  <span class="comment">// 125 if the error is with Docker daemon itself.</span></div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  <span class="comment">// 126 if the contained command cannot be invoked.</span></div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  <span class="comment">// 127 if the contained command cannot be found.</span></div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  <span class="comment">// Exit code of contained command otherwise.</span></div><div class="line"><a name="l00260"
></a><span class="lineno"> 260</span>  <span class="comment">//</span></div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  <span class="comment">// [1]: https://github.com/docker/docker/pull/14012</span></div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  <span class="keyword">virtual</span> <a class="code" href="classprocess_1_1Future.html">process::Future<Option<int></a>> <a class="code" href="classDocker.html#a4c921c0018b3ca12ad726617d2938710">run</a>(</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  <span class="keyword">const</span> <a class="code" href="classDocker_1_1RunOptions.html">RunOptions</a>& options,</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  <span class="keyword">const</span> <a class="code" href="classprocess_1_1Subprocess_1_1IO.html">process::Subprocess::IO</a>& _stdout =</div><div class="
line"><a name="l00265"></a><span class="lineno"> 265</span>  <a class="code" href="classprocess_1_1Subprocess.html#aaa6e1b76ef54ed6db34d595811122ce0">process::Subprocess::FD</a>(<a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#abd165ee6474b5b75bf075842fff13a04">STDOUT_FILENO</a>),</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  <span class="keyword">const</span> <a class="code" href="classprocess_1_1Subprocess_1_1IO.html">process::Subprocess::IO</a>& _stderr =</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  <a class="code" href="classprocess_1_1Subprocess.html#aaa6e1b76ef54ed6db34d595811122ce0">process::Subprocess::FD</a>(<a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ae2fe1725bb5e9823d089c46b9ed5266e">STDERR_FILENO</a>)) <span class="keyword">const</span>;</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&
#160;</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  <span class="comment">// Returns the current docker version.</span></div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  <span class="keyword">virtual</span> <a class="code" href="classprocess_1_1Future.html">process::Future<Version></a> <a class="code" href="classDocker.html#ac1d7d1dd254601751fe8af8048734345">version</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span> </div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  <span class="comment">// Performs 'docker stop -t TIMEOUT CONTAINER'. If remove is true then a rm -f</span></div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  <span class="comment">// will be called when stop failed, otherwise a failure is returned. The</span></div><div class="line"><a name="l0
0274"></a><span class="lineno"> 274</span>  <span class="comment">// timeout parameter will be passed through to docker and is the amount of</span></div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  <span class="comment">// time for docker to wait after stopping a container before killing it.</span></div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  <span class="comment">// A value of zero (the default value) is the same as issuing a</span></div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  <span class="comment">// 'docker kill CONTAINER'.</span></div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  <span class="keyword">virtual</span> <a class="code" href="classprocess_1_1Future.html">process::Future<Nothing></a> <a class="code" href="classDocker.html#a4f45c8632608059b07157a65033474fc">stop</a>(</div><div class="line"><a name="l00
279"></a><span class="lineno"> 279</span>  <span class="keyword">const</span> std::string& containerName,</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  <span class="keyword">const</span> <a class="code" href="classDuration.html">Duration</a>& timeout = <a class="code" href="classSeconds.html">Seconds</a>(0),</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  <span class="keywordtype">bool</span> <span class="keyword">remove</span> = <span class="keyword">false</span>) <span class="keyword">const</span>;</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span> </div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  <span class="comment">// Performs 'docker kill --signal=<signal> CONTAINER'.</span></div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  <span class="keyword">virtual</span>
<a class="code" href="classprocess_1_1Future.html">process::Future<Nothing></a> <a class="code" href="classDocker.html#a3b46502ea75be07f46e5e92acaea7917">kill</a>(</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  <span class="keyword">const</span> std::string& containerName,</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  <span class="keywordtype">int</span> signal) <span class="keyword">const</span>;</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span> </div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  <span class="comment">// Performs 'docker rm (-f) CONTAINER'.</span></div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  <span class="keyword">virtual</span> <a class="code" href="classprocess_1_1Future.html">process::Future<Nothing></a> <a class="code" href="classDocker.html#afd1dd8
dc67fd3d111164ff80f90761f4">rm</a>(</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  <span class="keyword">const</span> std::string& containerName,</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  <span class="keywordtype">bool</span> force = <span class="keyword">false</span>) <span class="keyword">const</span>;</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span> </div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  <span class="comment">// Performs 'docker inspect CONTAINER'. If retryInterval is set,</span></div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  <span class="comment">// we will keep retrying inspect until the container is started or</span></div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  <span class="comment">// the future is discarded.</span></div
><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  <span class="keyword">virtual</span> <a class="code" href="classprocess_1_1Future.html">process::Future<Container></a> <a class="code" href="classDocker.html#a3be28ab0231c0fefaf839661b790c457">inspect</a>(</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  <span class="keyword">const</span> std::string& containerName,</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<Duration></a>& retryInterval = <a class="code" href="structNone.html">None</a>()) <span class="keyword">const</span>;</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span> </div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  <span class="comment">// Performs 'docker ps (-a)'.</span></div><div cla
ss="line"><a name="l00301"></a><span class="lineno"> 301</span>  <span class="keyword">virtual</span> <a class="code" href="classprocess_1_1Future.html">process::Future<std::vector<Container></a>> <a class="code" href="classDocker.html#a5ed360ee69fa51d583742bdf1e76e2c0">ps</a>(</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  <span class="keywordtype">bool</span> all = <span class="keyword">false</span>,</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a>& <a class="code" href="namespaceos_1_1libraries_1_1Library.html#ab0e1a0e311049b6d685de1068e8f4690">prefix</a> = <a class="code" href="structNone.html">None</a>()) <span class="keyword">const</span>;</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span> </div><div class="line"><a name="l00305"></a><span
class="lineno"> 305</span>  <span class="keyword">virtual</span> <a class="code" href="classprocess_1_1Future.html">process::Future<Image></a> <a class="code" href="classDocker.html#ad4131f2a6b66ab4661339c51d20d812d">pull</a>(</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  <span class="keyword">const</span> std::string& directory,</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  <span class="keyword">const</span> std::string& <a class="code" href="namespacemesos_1_1uri_1_1docker.html#abbd9f55734f0b832bc5a87c3ee5d449e">image</a>,</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  <span class="keywordtype">bool</span> force = <span class="keyword">false</span>) <span class="keyword">const</span>;</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span> </div><div class="line"><a name="l00310"></a><span class="lineno">
310</span>  <span class="comment">// Validate current docker version is not less than minVersion.</span></div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  <span class="keyword">virtual</span> <a class="code" href="classTry.html">Try<Nothing></a> <a class="code" href="classDocker.html#ac0a745d178d4607acca6097a9cb33a5f">validateVersion</a>(<span class="keyword">const</span> <a class="code" href="structVersion.html">Version</a>& minVersion) <span class="keyword">const</span>;</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span> </div><div class="line"><a name="l00313"></a><span class="lineno"><a class="line" href="classDocker.html#a4d4e8921b4acbd88c5eea3914e20b033"> 313</a></span>  <span class="keyword">virtual</span> std::string <a class="code" href="classDocker.html#a4d4e8921b4acbd88c5eea3914e20b033">getPath</a>()</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span> 
{</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  <span class="keywordflow">return</span> path;</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  }</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span> </div><div class="line"><a name="l00318"></a><span class="lineno"><a class="line" href="classDocker.html#ab615a0824c63169d3ff5e1124ac2889a"> 318</a></span>  <span class="keyword">virtual</span> std::string <a class="code" href="classDocker.html#ab615a0824c63169d3ff5e1124ac2889a">getSocket</a>()</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  {</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  <span class="keywordflow">return</span> socket;</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  }</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#
160;</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span> <span class="keyword">protected</span>:</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  <span class="comment">// Uses the specified path to the Docker CLI tool.</span></div><div class="line"><a name="l00325"></a><span class="lineno"><a class="line" href="classDocker.html#a9e7459c5e36794e871a8019603b6beed"> 325</a></span>  <a class="code" href="classDocker.html#a9e7459c5e36794e871a8019603b6beed">Docker</a>(<span class="keyword">const</span> std::string& _path,</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  <span class="keyword">const</span> std::string& _socket,</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<JSON::Object></a>& _config)</div><div class="line"><a name="
l00328"></a><span class="lineno"> 328</span>  : path(_path),</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  socket(<a class="code" href="docker_2docker_8hpp.html#aaa33f928061d14ba4d30c9d242ab3af6">DEFAULT_DOCKER_HOST_PREFIX</a> + _socket),</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  config(_config) {}</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span> </div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  <span class="keyword">static</span> <a class="code" href="classprocess_1_1Future.html">process::Future<Version></a> _version(</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  <span class="keyword">const</span> std::string& cmd,</div><div class="line
"><a name="l00335"></a><span class="lineno"> 335</span>  <span class="keyword">const</span> <a class="code" href="classprocess_1_1Subprocess.html">process::Subprocess</a>& s);</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span> </div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  <span class="keyword">static</span> <a class="code" href="classprocess_1_1Future.html">process::Future<Version></a> __version(</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>  <span class="keyword">const</span> <a class="code" href="classprocess_1_1Future.html">process::Future<std::string></a>& output);</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span> </div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  <span class="keyword">static</span> <a class="code" href="classprocess_1_1Future.html">process::Future<N
othing></a> _stop(</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  <span class="keyword">const</span> <a class="code" href="classDocker.html">Docker</a>& <a class="code" href="namespacedocker.html">docker</a>,</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  <span class="keyword">const</span> std::string& containerName,</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  <span class="keyword">const</span> std::string& cmd,</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  <span class="keyword">const</span> <a class="code" href="classprocess_1_1Subprocess.html">process::Subprocess</a>& s,</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  <span class="keywordtype">bool</span> <span class="keyword">remove</span>);</div><div class="line"><a name="l00346"></a><span class="line
no"> 346</span> </div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>  <span class="keyword">static</span> <span class="keywordtype">void</span> _inspect(</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>  <span class="keyword">const</span> std::string& cmd,</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  <span class="keyword">const</span> <a class="code" href="classprocess_1_1Owned.html">process::Owned</a><<a class="code" href="classprocess_1_1Promise.html">process::Promise<Container></a>>& <a class="code" href="namespacemesos_1_1internal_1_1log_1_1protocol.html#a3b1f8bd7b18c51af9d1f58842950b545">promise</a>,</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<Duration></a>& retryInterval,</div><div class="line"><a name="
l00351"></a><span class="lineno"> 351</span>  std::shared_ptr<std::pair<lambda::function<<span class="keywordtype">void</span>()>, std::mutex>></div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>  callback);</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span> </div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  <span class="keyword">static</span> <span class="keywordtype">void</span> __inspect(</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  <span class="keyword">const</span> std::string& cmd,</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  <span class="keyword">const</span> <a class="code" href="classprocess_1_1Owned.html">process::Owned</a><<a class="code" href="classprocess_1_1Promise.html">process::Promise<Container></a>>& <a class="code" href="names
pacemesos_1_1internal_1_1log_1_1protocol.html#a3b1f8bd7b18c51af9d1f58842950b545">promise</a>,</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<Duration></a>& retryInterval,</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  <a class="code" href="classprocess_1_1Future.html">process::Future<std::string></a> output,</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>  <span class="keyword">const</span> <a class="code" href="classprocess_1_1Subprocess.html">process::Subprocess</a>& s,</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  std::shared_ptr<std::pair<lambda::function<<span class="keywordtype">void</span>()>, std::mutex>></div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span> 
callback);</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span> </div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>  <span class="keyword">static</span> <span class="keywordtype">void</span> ___inspect(</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>  <span class="keyword">const</span> std::string& cmd,</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>  <span class="keyword">const</span> <a class="code" href="classprocess_1_1Owned.html">process::Owned</a><<a class="code" href="classprocess_1_1Promise.html">process::Promise<Container></a>>& <a class="code" href="namespacemesos_1_1internal_1_1log_1_1protocol.html#a3b1f8bd7b18c51af9d1f58842950b545">promise</a>,</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Opt
ion<Duration></a>& retryInterval,</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  <span class="keyword">const</span> <a class="code" href="classprocess_1_1Future.html">process::Future<std::string></a>& output,</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  std::shared_ptr<std::pair<lambda::function<<span class="keywordtype">void</span>()>, std::mutex>></div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  callback);</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span> </div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  <span class="keyword">static</span> <a class="code" href="classprocess_1_1Future.html">process::Future<std::vector<Container></a>> _ps(</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  <span class="
keyword">const</span> <a class="code" href="classDocker.html">Docker</a>& docker,</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  <span class="keyword">const</span> std::string& cmd,</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  <span class="keyword">const</span> <a class="code" href="classprocess_1_1Subprocess.html">process::Subprocess</a>& s,</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a>& <a class="code" href="namespaceos_1_1libraries_1_1Library.html#ab0e1a0e311049b6d685de1068e8f4690">prefix</a>,</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  <a class="code" href="classprocess_1_1Future.html">process::Future<std::string></a> output);</div><div class="line"><a name="l00377"></a><span class="
lineno"> 377</span> </div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  <span class="keyword">static</span> <a class="code" href="classprocess_1_1Future.html">process::Future<std::vector<Container></a>> __ps(</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  <span class="keyword">const</span> <a class="code" href="classDocker.html">Docker</a>& docker,</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a>& prefix,</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>  <span class="keyword">const</span> std::string& output);</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span> </div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>  <span class="keyword">
static</span> <span class="keywordtype">void</span> inspectBatches(</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>  <a class="code" href="classprocess_1_1Owned.html">process::Owned</a><std::vector<Docker::Container>> containers,</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>  <a class="code" href="classprocess_1_1Owned.html">process::Owned</a><std::vector<std::string>> lines,</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  <a class="code" href="classprocess_1_1Owned.html">process::Owned</a><<a class="code" href="classprocess_1_1Promise.html">process::Promise</a><std::vector<Docker::Container>>> <a class="code" href="namespacemesos_1_1internal_1_1log_1_1protocol.html#a3b1f8bd7b18c51af9d1f58842950b545">promise</a>,</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  <span class="keyword
">const</span> <a class="code" href="classDocker.html">Docker</a>& docker,</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a>& prefix);</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span> </div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  <span class="keyword">static</span> std::vector<process::Future<Docker::Container>> createInspectBatch(</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  <a class="code" href="classprocess_1_1Owned.html">process::Owned</a><std::vector<std::string>> lines,</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  <span class="keyword">const</span> <a class="code" href="classDocker.html">Docker</a>& docker,</div><div class="line"><a name="l0
0393"></a><span class="lineno"> 393</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a>& prefix);</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span> </div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  <span class="keyword">static</span> <a class="code" href="classprocess_1_1Future.html">process::Future<Image></a> _pull(</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  <span class="keyword">const</span> <a class="code" href="classDocker.html">Docker</a>& docker,</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>  <span class="keyword">const</span> <a class="code" href="classprocess_1_1Subprocess.html">process::Subprocess</a>& s,</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>  <span class="keyword">const</span> std:
:string& directory,</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  <span class="keyword">const</span> std::string& <a class="code" href="namespacemesos_1_1uri_1_1docker.html#abbd9f55734f0b832bc5a87c3ee5d449e">image</a>,</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  <span class="keyword">const</span> std::string& path,</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  <span class="keyword">const</span> std::string& socket,</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<JSON::Object></a>& config,</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>  <a class="code" href="classprocess_1_1Future.html">process::Future<std::string></a> output);</div><div class="line"><a name="l00
404"></a><span class="lineno"> 404</span> </div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>  <span class="keyword">static</span> <a class="code" href="classprocess_1_1Future.html">process::Future<Image></a> __pull(</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>  <span class="keyword">const</span> <a class="code" href="classDocker.html">Docker</a>& docker,</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  <span class="keyword">const</span> std::string& directory,</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>  <span class="keyword">const</span> std::string& image,</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>  <span class="keyword">const</span> std::string& path,</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  <span class
="keyword">const</span> std::string& socket,</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<JSON::Object></a>& config);</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span> </div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>  <span class="keyword">static</span> <a class="code" href="classprocess_1_1Future.html">process::Future<Image></a> ___pull(</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>  <span class="keyword">const</span> <a class="code" href="classDocker.html">Docker</a>& docker,</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>  <span class="keyword">const</span> <a class="code" href="classprocess_1_1Subprocess.html">process::Subprocess</a>& s,</div><div class="line"><a name="l00416"></
a><span class="lineno"> 416</span>  <span class="keyword">const</span> std::string& cmd,</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  <span class="keyword">const</span> std::string& directory,</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  <span class="keyword">const</span> std::string& image);</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span> </div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>  <span class="keyword">static</span> <a class="code" href="classprocess_1_1Future.html">process::Future<Image></a> ____pull(</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>  <span class="keyword">const</span> std::string& output);</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span> </div><div class="line"><a name="l00423"></a><span class="li
neno"> 423</span>  <span class="keyword">static</span> <span class="keywordtype">void</span> pullDiscarded(</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  <span class="keyword">const</span> <a class="code" href="classprocess_1_1Subprocess.html">process::Subprocess</a>& s,</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  <span class="keyword">const</span> std::string& cmd);</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span> </div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>  <span class="keyword">const</span> std::string path;</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>  <span class="keyword">const</span> std::string socket;</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Op
tion<JSON::Object></a> config;</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span> };</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span> </div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span> <span class="preprocessor">#endif // __DOCKER_HPP__</span></div><div class="ttc" id="classDocker_1_1Image_html_a43aec521773705fa0148bacdc493e5a9"><div class="ttname"><a href="classDocker_1_1Image.html#a43aec521773705fa0148bacdc493e5a9">Docker::Image::entrypoint</a></div><div class="ttdeci">Option< std::vector< std::string > > entrypoint</div><div class="ttdef"><b>Definition:</b> docker.hpp:164</div></div>
+<a href="docker_2docker_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// or more contributor license agreements. See the NOTICE file</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// distributed with this work for additional information</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">// regarding copyright ownership. The ASF licenses this file</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00006"></a><s
pan class="lineno"> 6</span> <span class="comment">// "License"); you may not use this file except in compliance</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// with the License. You may obtain a copy of the License at</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">//</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// Unless required by applicable law or agreed to in writing, software</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment">// di
stributed under the License is distributed on an "AS IS" BASIS,</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">// See the License for the specific language governing permissions and</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// limitations under the License.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#ifndef __DOCKER_HPP__</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#define __DOCKER_HPP__</span></div><div class="line"><a name="l00
019"></a><span class="lineno"> 19</span> </div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include <map></span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <mutex></span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <string></span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <utility></span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <vector></span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include <<a class="code" href="future_8hpp.html"
>process/future.hpp</a>></span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <<a class="code" href="owned_8hpp.html">process/owned.hpp</a>></span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include <<a class="code" href="include_2process_2subprocess_8hpp.html">process/subprocess.hpp</a>></span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> </div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include <<a class="code" href="duration_8hpp.html">stout/duration.hpp</a>></span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include <<a class="code" href="json_8hpp.html">stout/json.hpp</a>></span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32
</span> <span class="preprocessor">#include <<a class="code" href="none_8hpp.html">stout/none.hpp</a>></span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#include <<a class="code" href="nothing_8hpp.html">stout/nothing.hpp</a>></span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#include <<a class="code" href="option_8hpp.html">stout/option.hpp</a>></span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include <<a class="code" href="path_8hpp.html">stout/path.hpp</a>></span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#include <<a class="code" href="3rdparty_2stout_2include_2stout_2version_8hpp.html">stout/version.hpp</a>></span></div><div class="line"><a name="l00037"></a><span class="lineno
"> 37</span> </div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor">#include <<a class="code" href="rm_8hpp.html">stout/os/rm.hpp</a>></span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> </div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="preprocessor">#include "<a class="code" href="resources_8hpp.html">mesos/resources.hpp</a>"</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> </div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor">#include "<a class="code" href="src_2messages_2flags_8hpp.html">messages/flags.hpp</a>"</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="comment">// OS-spe
cific default prefix to be used for the DOCKER_HOST environment</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="comment">// variable. Note that on Linux, the default prefix is the only prefix</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="comment">// available; only Windows supports multiple prefixes.</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="comment">// TODO(hausdorff): Add support for the Windows `tcp://` prefix as well.</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor">#ifdef __WINDOWS__</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span> constexpr <span class="keywordtype">char</span> <a class="code" href="docker_2docker_8hpp.html#aaa33f928061d14ba4d30c9d242ab3af6">DEFAULT_DOCKER_HOST_PREFIX</a>[] = <span c
lass="stringliteral">"npipe://"</span>;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="docker_2docker_8hpp.html#aaa33f928061d14ba4d30c9d242ab3af6"> 51</a></span> constexpr <span class="keywordtype">char</span> <a class="code" href="docker_2docker_8hpp.html#aaa33f928061d14ba4d30c9d242ab3af6">DEFAULT_DOCKER_HOST_PREFIX</a>[] = <span class="stringliteral">"unix://"</span>;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="preprocessor">#endif // __WINDOWS__</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span> </div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="comment">// Abstraction for working with Docker (modeled on CLI).</span></div><div class="line"><a name="l00055"></
a><span class="lineno"> 55</span> <span class="comment">//</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="comment">// TODO(benh): Make futures returned by functions be discardable.</span></div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="classDocker.html"> 57</a></span> <span class="keyword">class </span><a class="code" href="classDocker.html">Docker</a></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span> {</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <span class="comment">// Create Docker abstraction and optionally validate docker.</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="keyword">static</span> <a class="code" href="classTry.h
tml">Try<process::Owned<Docker></a>> <a class="code" href="classDocker.html#a370c1d613e35cc8b8e393dc8c83876e6">create</a>(</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="keyword">const</span> std::string& <a class="code" href="namespacepath.html">path</a>,</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="keyword">const</span> std::string&
<TRUNCATED>
[02/50] mesos-site git commit: Updated the website built from mesos
SHA: 7c9c72d.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/windows_2write_8hpp_source.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/windows_2write_8hpp_source.html b/content/api/latest/c++/windows_2write_8hpp_source.html
index 4585f04..26b5647 100644
--- a/content/api/latest/c++/windows_2write_8hpp_source.html
+++ b/content/api/latest/c++/windows_2write_8hpp_source.html
@@ -52,7 +52,7 @@
<div class="title">write.hpp</div> </div>
</div><!--header-->
<div class="contents">
-<a href="windows_2write_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// Licensed under the Apache License, Version 2.0 (the "License");</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// you may not use this file except in compliance with the License.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// You may obtain a copy of the License at</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">/
/</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// Unless required by applicable law or agreed to in writing, software</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">// distributed under the License is distributed on an "AS IS" BASIS,</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">// See the License for the specific language governing permissions and</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// limitations under the License.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> </div><div cla
ss="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#ifndef __STOUT_OS_WINDOWS_WRITE_HPP__</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#define __STOUT_OS_WINDOWS_WRITE_HPP__</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include <<a class="code" href="nothing_8hpp.html">stout/nothing.hpp</a>></span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include <<a class="code" href="try_8hpp.html">stout/try.hpp</a>></span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include <<a class="code" href="unreachable_8hpp.html">stout/unreachable.hpp</a>></span></div><div class="line">
<a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include <<a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html">stout/windows.hpp</a>></span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> </div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <<a class="code" href="overlapped_8hpp.html">stout/internal/windows/overlapped.hpp</a>></span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <<a class="code" href="int__fd_8hpp.html">stout/os/int_fd.hpp</a>></span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <<a class="code" href="stout_2include_2stout_2os_2socket_8hpp.html">stout/os/sock
et.hpp</a>></span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="keyword">namespace </span><a class="code" href="namespaceos.html">os</a> {</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="comment">// Asynchronous write on a overlapped int_fd. Returns `Error` on fatal errors,</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="comment">// `None()` on a successful pending IO operation or number of bytes written on</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="comment">// a successful IO operation that finished immediately.</span></div><div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href=
"namespaceos.html#a1af52685ba3e8fe8676af86cd16a1eb8"> 31</a></span> <span class="keyword">inline</span> <a class="code" href="classResult.html">Result<size_t></a> <a class="code" href="namespaceos.html#a1af52685ba3e8fe8676af86cd16a1eb8">write_async</a>(</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  <span class="keyword">const</span> <a class="code" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a>& fd,</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  <span class="keyword">const</span> <span class="keywordtype">void</span>* data,</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  <span class="keywordtype">size_t</span> <a class="code" href="namespaceos_1_1stat.html#a7a116891923bc8b5d8c50f78da8657be">size</a>,</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  OVERLAPPED* overlapped)</div><div class=
"line"><a name="l00036"></a><span class="lineno"> 36</span> {</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  CHECK_LE(size, UINT_MAX);</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <span class="keywordflow">switch</span> (fd.type()) {</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  <span class="keywordflow">case</span> <a class="code" href="classos_1_1WindowsFD.html#ac0377db41e1c167339c97dbd69c79ae5ad09c4cb1265f1772bb757a7af277b49f">WindowsFD::Type::HANDLE</a>: {</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  DWORD bytes;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <span class="keyword">const</span> <span class="keywordtype">bool</span> success =</div><div class="line"><a name="l00043"></a><spa
n class="lineno"> 43</span>  ::WriteFile(fd, data, static_cast<DWORD>(size), &bytes, overlapped);</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <a class="code" href="namespaceinternal_1_1windows.html#a4ed4d1bae6b01fb85f8e6fad0b10599d">return ::internal::windows::process_async_io_result</a>(success, bytes);</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  }</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <span class="keywordflow">case</span> <a class="code" href="classos_1_1WindowsFD.html#ac0377db41e1c167339c97dbd69c79ae5a75fbea08c09e684e6b3f3961761354fa">WindowsFD::Type::SOCKET</a>: {</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  static_assert(</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</s
pan>  std::is_same<OVERLAPPED, WSAOVERLAPPED>::value,</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <span class="stringliteral">"Expected `WSAOVERLAPPED` to be of type `OVERLAPPED`."</span>);</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <span class="comment">// Note that it's okay to allocate this on the stack, since the WinSock</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="comment">// providers must copy the WSABUF to their internal buffers. See</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="comment">// https://msdn.microsoft.com/en-us/library/windows/desktop/ms741688(v=vs.85).aspx // NOLINT(whitespace/line_length)</span></div><div class="line"><a name="
l00055"></a><span class="lineno"> 55</span>  WSABUF buf = {</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <span class="keyword">static_cast<</span>u_long<span class="keyword">></span>(<a class="code" href="namespaceos_1_1stat.html#a7a116891923bc8b5d8c50f78da8657be">size</a>),</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  static_cast<char*>(const_cast<void*>(data))</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  };</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  DWORD bytes;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> result =</div><div class="line"><a name="l00062"></a><span class="linen
o"> 62</span>  ::WSASend(fd, &buf, 1, &bytes, 0, overlapped, <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span> </div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <a class="code" href="namespaceinternal_1_1windows.html#a4ed4d1bae6b01fb85f8e6fad0b10599d">return ::internal::windows::process_async_io_result</a>(result == 0, bytes);</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  }</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  }</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span> </div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <a class="code" href="unreachable_8hpp.html#a0bc63b24b654ca433be7b97a3edde132">UNREACHABLE</a>();</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span> }</div><
div class="line"><a name="l00070"></a><span class="lineno"> 70</span> </div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span> </div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="namespaceos.html#a73da9d49515dfff761c4887c3d6032c0"> 72</a></span> <span class="keyword">inline</span> <a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#a894c4d58faeee7675b9e7e8244de1386">ssize_t</a> <a class="code" href="namespaceos.html#a73da9d49515dfff761c4887c3d6032c0">write</a>(<span class="keyword">const</span> <a class="code" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a>& fd, <span class="keyword">const</span> <span class="keywordtype">void</span>* data, <span class="keywordtype">size_t</span> <a class="code" href="namespaceos_1_1stat.html#a7a116891923bc8b5d8c50f78da8657be">size</a>)</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span> {</div><d
iv class="line"><a name="l00074"></a><span class="lineno"> 74</span>  CHECK_LE(size, INT_MAX);</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span> </div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <span class="keywordflow">switch</span> (fd.type()) {</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="keywordflow">case</span> <a class="code" href="classos_1_1WindowsFD.html#ac0377db41e1c167339c97dbd69c79ae5ad09c4cb1265f1772bb757a7af277b49f">WindowsFD::Type::HANDLE</a>: {</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <span class="comment">// Handle non-overlapped case. We just use the regular `WriteFile` since</span></div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <span class="comment">// seekable overlapped files require an offset, which we don't track.</span></div><div class=
"line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="keywordflow">if</span> (!fd.is_overlapped()) {</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  DWORD bytes;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <span class="keyword">const</span> BOOL result =</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  ::WriteFile(fd, data, static_cast<DWORD>(size), &bytes, <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span> </div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="keywordflow">if</span> (result == FALSE) {</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <span class="comment">// Indicates an error, but we can't return a `WindowsError`.</span></div
><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="keywordflow">return</span> -1;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  }</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span> </div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <span class="keywordflow">return</span> <span class="keyword">static_cast<</span><a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#a894c4d58faeee7675b9e7e8244de1386">ssize_t</a><span class="keyword">></span>(bytes);</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  }</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span> </div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <span class="comment">// Asynchronous handle, we can use the `write_async` function</sp
an></div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <span class="comment">// and then wait on the overlapped object for a synchronous write.</span></div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <a class="code" href="classTry.html">Try<OVERLAPPED></a> overlapped_ =</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <a class="code" href="namespaceinternal_1_1windows.html#a388bd9a30ab487f5d035e542187e379a">::internal::windows::init_overlapped_for_sync_io</a>();</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span> </div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <span class="keywordflow">if</span> (overlapped_.<a class="code" href="classTry.html#a0b98f95163b8a38daafd1651b043a276">isError</a>()) {</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <sp
an class="keywordflow">return</span> -1;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  }</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span> </div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  OVERLAPPED overlapped = overlapped_.<a class="code" href="classTry.html#a8bc7f43e75a47111ea18e9c83b007be5">get</a>();</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <a class="code" href="classResult.html">Result<size_t></a> result = <a class="code" href="namespaceos.html#a1af52685ba3e8fe8676af86cd16a1eb8">write_async</a>(fd, data, size, &overlapped);</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span> </div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <span class="keywordflow">if</span> (result.<a class="code" href="classResult.html#aeca16ad17d299ad885c9b46c83b12a
3d">isError</a>()) {</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <span class="keywordflow">return</span> -1;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  }</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span> </div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <span class="keywordflow">if</span> (result.<a class="code" href="classResult.html#a85eaa52037223d71092e65701c166562">isSome</a>()) {</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <span class="keywordflow">return</span> result.<a class="code" href="classResult.html#aedf79f3b14dcda5791b84a64ada4d412">get</a>();</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  }</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span> </div><div class="line"><a name="l00113"></a><
span class="lineno"> 113</span>  <span class="comment">// IO is pending, so wait for the overlapped object.</span></div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  DWORD bytes;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <span class="keyword">const</span> BOOL wait_success =</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  ::GetOverlappedResult(fd, &overlapped, &bytes, TRUE);</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span> </div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <span class="keywordflow">if</span> (wait_success == FALSE) {</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <span class="keywordflow">return</span> -1;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  }</div><div c
lass="line"><a name="l00121"></a><span class="lineno"> 121</span> </div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <span class="keywordflow">return</span> <span class="keyword">static_cast<</span><a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#a894c4d58faeee7675b9e7e8244de1386">ssize_t</a><span class="keyword">></span>(bytes);</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  }</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <span class="keywordflow">case</span> <a class="code" href="classos_1_1WindowsFD.html#ac0377db41e1c167339c97dbd69c79ae5a75fbea08c09e684e6b3f3961761354fa">WindowsFD::Type::SOCKET</a>: {</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <a class="code" href="namespacenet.html#aa0a46766b4aca53ea50e1921567ddb40">return ::send</a>(fd, (<span class="keyword">const</span> <span c
lass="keywordtype">char</span>*)data, static_cast<int>(size), 0);</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  }</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  }</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span> </div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <a class="code" href="unreachable_8hpp.html#a0bc63b24b654ca433be7b97a3edde132">UNREACHABLE</a>();</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span> }</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span> </div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span> } <span class="comment">// namespace os {</span></div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span> </div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span> </div><div cla
ss="line"><a name="l00135"></a><span class="lineno"> 135</span> <span class="preprocessor">#endif // __STOUT_OS_WINDOWS_WRITE_HPP__</span></div><div class="ttc" id="3rdparty_2stout_2include_2stout_2windows_8hpp_html_a894c4d58faeee7675b9e7e8244de1386"><div class="ttname"><a href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#a894c4d58faeee7675b9e7e8244de1386">ssize_t</a></div><div class="ttdeci">SSIZE_T ssize_t</div><div class="ttdef"><b>Definition:</b> windows.hpp:186</div></div>
+<a href="windows_2write_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// Licensed under the Apache License, Version 2.0 (the "License");</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// you may not use this file except in compliance with the License.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// You may obtain a copy of the License at</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">/
/</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// Unless required by applicable law or agreed to in writing, software</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">// distributed under the License is distributed on an "AS IS" BASIS,</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">// See the License for the specific language governing permissions and</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// limitations under the License.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> </div><div cla
ss="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#ifndef __STOUT_OS_WINDOWS_WRITE_HPP__</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#define __STOUT_OS_WINDOWS_WRITE_HPP__</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include <<a class="code" href="nothing_8hpp.html">stout/nothing.hpp</a>></span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include <<a class="code" href="try_8hpp.html">stout/try.hpp</a>></span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include <<a class="code" href="unreachable_8hpp.html">stout/unreachable.hpp</a>></span></div><div class="line">
<a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include <<a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html">stout/windows.hpp</a>></span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> </div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <<a class="code" href="overlapped_8hpp.html">stout/internal/windows/overlapped.hpp</a>></span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <<a class="code" href="int__fd_8hpp.html">stout/os/int_fd.hpp</a>></span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <<a class="code" href="stout_2include_2stout_2os_2socket_8hpp.html">stout/os/sock
et.hpp</a>></span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="keyword">namespace </span><a class="code" href="namespaceos.html">os</a> {</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="comment">// Asynchronous write on a overlapped int_fd. Returns `Error` on fatal errors,</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="comment">// `None()` on a successful pending IO operation or number of bytes written on</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="comment">// a successful IO operation that finished immediately.</span></div><div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href=
"namespaceos.html#a1af52685ba3e8fe8676af86cd16a1eb8"> 31</a></span> <span class="keyword">inline</span> <a class="code" href="classResult.html">Result<size_t></a> <a class="code" href="namespaceos.html#a1af52685ba3e8fe8676af86cd16a1eb8">write_async</a>(</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  <span class="keyword">const</span> <a class="code" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a>& fd,</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  <span class="keyword">const</span> <span class="keywordtype">void</span>* data,</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  <span class="keywordtype">size_t</span> <a class="code" href="namespaceos_1_1stat.html#a7a116891923bc8b5d8c50f78da8657be">size</a>,</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  OVERLAPPED* overlapped)</div><div class=
"line"><a name="l00036"></a><span class="lineno"> 36</span> {</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  CHECK_LE(size, UINT_MAX);</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <span class="keywordflow">switch</span> (fd.type()) {</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  <span class="keywordflow">case</span> <a class="code" href="classos_1_1WindowsFD.html#ac0377db41e1c167339c97dbd69c79ae5ad09c4cb1265f1772bb757a7af277b49f">WindowsFD::Type::HANDLE</a>: {</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  DWORD bytes;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <span class="keyword">const</span> <span class="keywordtype">bool</span> success =</div><div class="line"><a name="l00043"></a><spa
n class="lineno"> 43</span>  ::WriteFile(fd, data, static_cast<DWORD>(size), &bytes, overlapped);</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <a class="code" href="namespaceinternal_1_1windows.html#a4ed4d1bae6b01fb85f8e6fad0b10599d">return ::internal::windows::process_async_io_result</a>(success, bytes);</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  }</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <span class="keywordflow">case</span> <a class="code" href="classos_1_1WindowsFD.html#ac0377db41e1c167339c97dbd69c79ae5a75fbea08c09e684e6b3f3961761354fa">WindowsFD::Type::SOCKET</a>: {</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  static_assert(</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</s
pan>  std::is_same<OVERLAPPED, WSAOVERLAPPED>::value,</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <span class="stringliteral">"Expected `WSAOVERLAPPED` to be of type `OVERLAPPED`."</span>);</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <span class="comment">// Note that it's okay to allocate this on the stack, since the WinSock</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="comment">// providers must copy the WSABUF to their internal buffers. See</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="comment">// https://msdn.microsoft.com/en-us/library/windows/desktop/ms741688(v=vs.85).aspx // NOLINT(whitespace/line_length)</span></div><div class="line"><a name="
l00055"></a><span class="lineno"> 55</span>  WSABUF buf = {</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <span class="keyword">static_cast<</span>u_long<span class="keyword">></span>(<a class="code" href="namespaceos_1_1stat.html#a7a116891923bc8b5d8c50f78da8657be">size</a>),</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  static_cast<char*>(const_cast<void*>(data))</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  };</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  DWORD bytes;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> result =</div><div class="line"><a name="l00062"></a><span class="linen
o"> 62</span>  ::WSASend(fd, &buf, 1, &bytes, 0, overlapped, <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span> </div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <a class="code" href="namespaceinternal_1_1windows.html#a4ed4d1bae6b01fb85f8e6fad0b10599d">return ::internal::windows::process_async_io_result</a>(result == 0, bytes);</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  }</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  }</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span> </div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <a class="code" href="unreachable_8hpp.html#a0bc63b24b654ca433be7b97a3edde132">UNREACHABLE</a>();</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span> }</div><
div class="line"><a name="l00070"></a><span class="lineno"> 70</span> </div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span> </div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="namespaceos.html#a73da9d49515dfff761c4887c3d6032c0"> 72</a></span> <span class="keyword">inline</span> <a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#a894c4d58faeee7675b9e7e8244de1386">ssize_t</a> <a class="code" href="namespaceos.html#a73da9d49515dfff761c4887c3d6032c0">write</a>(<span class="keyword">const</span> <a class="code" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a>& fd, <span class="keyword">const</span> <span class="keywordtype">void</span>* data, <span class="keywordtype">size_t</span> <a class="code" href="namespaceos_1_1stat.html#a7a116891923bc8b5d8c50f78da8657be">size</a>)</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span> {</div><d
iv class="line"><a name="l00074"></a><span class="lineno"> 74</span>  CHECK_LE(size, INT_MAX);</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span> </div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <span class="keywordflow">switch</span> (fd.type()) {</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="keywordflow">case</span> <a class="code" href="classos_1_1WindowsFD.html#ac0377db41e1c167339c97dbd69c79ae5ad09c4cb1265f1772bb757a7af277b49f">WindowsFD::Type::HANDLE</a>: {</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <span class="comment">// Handle non-overlapped case. We just use the regular `WriteFile` since</span></div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <span class="comment">// seekable overlapped files require an offset, which we don't track.</span></div><div class=
"line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="keywordflow">if</span> (!fd.is_overlapped()) {</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  DWORD bytes;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <span class="keyword">const</span> BOOL result =</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  ::WriteFile(fd, data, static_cast<DWORD>(size), &bytes, <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span> </div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="keywordflow">if</span> (result == FALSE) {</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <span class="comment">// Indicates an error, but we can't return a `WindowsError`.</span></div
><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="keywordflow">return</span> -1;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  }</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span> </div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <span class="keywordflow">return</span> <span class="keyword">static_cast<</span><a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#a894c4d58faeee7675b9e7e8244de1386">ssize_t</a><span class="keyword">></span>(bytes);</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  }</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span> </div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <span class="comment">// Asynchronous handle, we can use the `write_async` function</sp
an></div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <span class="comment">// and then wait on the overlapped object for a synchronous write.</span></div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <a class="code" href="classTry.html">Try<OVERLAPPED></a> overlapped_ =</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <a class="code" href="namespaceinternal_1_1windows.html#a388bd9a30ab487f5d035e542187e379a">::internal::windows::init_overlapped_for_sync_io</a>();</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span> </div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <span class="keywordflow">if</span> (overlapped_.<a class="code" href="classTry.html#a0b98f95163b8a38daafd1651b043a276">isError</a>()) {</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <sp
an class="keywordflow">return</span> -1;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  }</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span> </div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  OVERLAPPED overlapped = overlapped_.<a class="code" href="classTry.html#a8bc7f43e75a47111ea18e9c83b007be5">get</a>();</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <a class="code" href="classResult.html">Result<size_t></a> result = <a class="code" href="namespaceos.html#a1af52685ba3e8fe8676af86cd16a1eb8">write_async</a>(fd, data, size, &overlapped);</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span> </div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <span class="keywordflow">if</span> (result.<a class="code" href="classResult.html#aeca16ad17d299ad885c9b46c83b12a
3d">isError</a>()) {</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <span class="keywordflow">return</span> -1;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  }</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span> </div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <span class="keywordflow">if</span> (result.<a class="code" href="classResult.html#a85eaa52037223d71092e65701c166562">isSome</a>()) {</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <span class="keywordflow">return</span> result.<a class="code" href="classResult.html#aedf79f3b14dcda5791b84a64ada4d412">get</a>();</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  }</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span> </div><div class="line"><a name="l00113"></a><
span class="lineno"> 113</span>  <span class="comment">// IO is pending, so wait for the overlapped object.</span></div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  DWORD bytes;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <span class="keyword">const</span> BOOL wait_success =</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  ::GetOverlappedResult(fd, &overlapped, &bytes, TRUE);</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span> </div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <span class="keywordflow">if</span> (wait_success == FALSE) {</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <span class="keywordflow">return</span> -1;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  }</div><div c
lass="line"><a name="l00121"></a><span class="lineno"> 121</span> </div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <span class="keywordflow">return</span> <span class="keyword">static_cast<</span><a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#a894c4d58faeee7675b9e7e8244de1386">ssize_t</a><span class="keyword">></span>(bytes);</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  }</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <span class="keywordflow">case</span> <a class="code" href="classos_1_1WindowsFD.html#ac0377db41e1c167339c97dbd69c79ae5a75fbea08c09e684e6b3f3961761354fa">WindowsFD::Type::SOCKET</a>: {</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <a class="code" href="namespaceprocess_1_1windows.html#a04c64346155d34517acdf8b587162868">return ::send</a>(fd, (<span class="keyword">const
</span> <span class="keywordtype">char</span>*)data, static_cast<int>(size), 0);</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  }</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  }</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span> </div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <a class="code" href="unreachable_8hpp.html#a0bc63b24b654ca433be7b97a3edde132">UNREACHABLE</a>();</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span> }</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span> </div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span> } <span class="comment">// namespace os {</span></div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span> </div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span> 
;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span> <span class="preprocessor">#endif // __STOUT_OS_WINDOWS_WRITE_HPP__</span></div><div class="ttc" id="3rdparty_2stout_2include_2stout_2windows_8hpp_html_a894c4d58faeee7675b9e7e8244de1386"><div class="ttname"><a href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#a894c4d58faeee7675b9e7e8244de1386">ssize_t</a></div><div class="ttdeci">SSIZE_T ssize_t</div><div class="ttdef"><b>Definition:</b> windows.hpp:186</div></div>
<div class="ttc" id="namespaceos_1_1stat_html_a7a116891923bc8b5d8c50f78da8657be"><div class="ttname"><a href="namespaceos_1_1stat.html#a7a116891923bc8b5d8c50f78da8657be">os::stat::size</a></div><div class="ttdeci">Try< Bytes > size(const std::string &path, const FollowSymlink follow=FollowSymlink::FOLLOW_SYMLINK)</div><div class="ttdef"><b>Definition:</b> stat.hpp:121</div></div>
<div class="ttc" id="classTry_html_a8bc7f43e75a47111ea18e9c83b007be5"><div class="ttname"><a href="classTry.html#a8bc7f43e75a47111ea18e9c83b007be5">Try::get</a></div><div class="ttdeci">T & get()&</div><div class="ttdef"><b>Definition:</b> try.hpp:73</div></div>
<div class="ttc" id="namespaceos_html_a73da9d49515dfff761c4887c3d6032c0"><div class="ttname"><a href="namespaceos.html#a73da9d49515dfff761c4887c3d6032c0">os::write</a></div><div class="ttdeci">ssize_t write(const int_fd &fd, const void *data, size_t size)</div><div class="ttdef"><b>Definition:</b> write.hpp:72</div></div>
@@ -65,7 +65,6 @@
<div class="ttc" id="classos_1_1WindowsFD_html_ac0377db41e1c167339c97dbd69c79ae5a75fbea08c09e684e6b3f3961761354fa"><div class="ttname"><a href="classos_1_1WindowsFD.html#ac0377db41e1c167339c97dbd69c79ae5a75fbea08c09e684e6b3f3961761354fa">os::WindowsFD::Type::SOCKET</a></div></div>
<div class="ttc" id="3rdparty_2stout_2include_2stout_2windows_8hpp_html"><div class="ttname"><a href="3rdparty_2stout_2include_2stout_2windows_8hpp.html">windows.hpp</a></div></div>
<div class="ttc" id="classResult_html"><div class="ttname"><a href="classResult.html">Result</a></div><div class="ttdef"><b>Definition:</b> check.hpp:30</div></div>
-<div class="ttc" id="namespacenet_html_aa0a46766b4aca53ea50e1921567ddb40"><div class="ttname"><a href="namespacenet.html#aa0a46766b4aca53ea50e1921567ddb40">net::send</a></div><div class="ttdeci">ssize_t send(const int_fd &fd, const void *buf, size_t len, int flags)</div><div class="ttdef"><b>Definition:</b> socket.hpp:159</div></div>
<div class="ttc" id="namespaceos_html_a1af52685ba3e8fe8676af86cd16a1eb8"><div class="ttname"><a href="namespaceos.html#a1af52685ba3e8fe8676af86cd16a1eb8">os::write_async</a></div><div class="ttdeci">Result< size_t > write_async(const int_fd &fd, const void *data, size_t size, OVERLAPPED *overlapped)</div><div class="ttdef"><b>Definition:</b> write.hpp:31</div></div>
<div class="ttc" id="nothing_8hpp_html"><div class="ttname"><a href="nothing_8hpp.html">nothing.hpp</a></div></div>
<div class="ttc" id="classResult_html_aedf79f3b14dcda5791b84a64ada4d412"><div class="ttname"><a href="classResult.html#aedf79f3b14dcda5791b84a64ada4d412">Result::get</a></div><div class="ttdeci">const T & get() const </div><div class="ttdef"><b>Definition:</b> result.hpp:115</div></div>
@@ -78,6 +77,7 @@
<div class="ttc" id="classResult_html_aeca16ad17d299ad885c9b46c83b12a3d"><div class="ttname"><a href="classResult.html#aeca16ad17d299ad885c9b46c83b12a3d">Result::isError</a></div><div class="ttdeci">bool isError() const </div><div class="ttdef"><b>Definition:</b> result.hpp:113</div></div>
<div class="ttc" id="int__fd_8hpp_html_aea4dbda01c90455f158ffa9b924c2f07"><div class="ttname"><a href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a></div><div class="ttdeci">int int_fd</div><div class="ttdef"><b>Definition:</b> int_fd.hpp:35</div></div>
<div class="ttc" id="unreachable_8hpp_html"><div class="ttname"><a href="unreachable_8hpp.html">unreachable.hpp</a></div></div>
+<div class="ttc" id="namespaceprocess_1_1windows_html_a04c64346155d34517acdf8b587162868"><div class="ttname"><a href="namespaceprocess_1_1windows.html#a04c64346155d34517acdf8b587162868">process::windows::send</a></div><div class="ttdeci">Future< size_t > send(const int_fd &fd, const void *buf, size_t size)</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
[22/50] mesos-site git commit: Updated the website built from mesos
SHA: 7c9c72d.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/memory__test__helper_8hpp.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/memory__test__helper_8hpp.html b/content/api/latest/c++/memory__test__helper_8hpp.html
index 4eac804..3898f7b 100644
--- a/content/api/latest/c++/memory__test__helper_8hpp.html
+++ b/content/api/latest/c++/memory__test__helper_8hpp.html
@@ -55,7 +55,7 @@
<div class="title">memory_test_helper.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
-<div class="textblock"><code>#include <<a class="el" href="subprocess_8hpp_source.html">process/subprocess.hpp</a>></code><br />
+<div class="textblock"><code>#include <<a class="el" href="include_2process_2subprocess_8hpp_source.html">process/subprocess.hpp</a>></code><br />
<code>#include <<a class="el" href="bytes_8hpp_source.html">stout/bytes.hpp</a>></code><br />
<code>#include <<a class="el" href="option_8hpp_source.html">stout/option.hpp</a>></code><br />
<code>#include <<a class="el" href="subcommand_8hpp_source.html">stout/subcommand.hpp</a>></code><br />
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/memory__test__helper_8hpp_source.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/memory__test__helper_8hpp_source.html b/content/api/latest/c++/memory__test__helper_8hpp_source.html
index 327b6d5..0723ec2 100644
--- a/content/api/latest/c++/memory__test__helper_8hpp_source.html
+++ b/content/api/latest/c++/memory__test__helper_8hpp_source.html
@@ -52,14 +52,14 @@
<div class="title">memory_test_helper.hpp</div> </div>
</div><!--header-->
<div class="contents">
-<a href="memory__test__helper_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// or more contributor license agreements. See the NOTICE file</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// distributed with this work for additional information</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">// regarding copyright ownership. The ASF licenses this file</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00006">
</a><span class="lineno"> 6</span> <span class="comment">// "License"); you may not use this file except in compliance</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// with the License. You may obtain a copy of the License at</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">//</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// Unless required by applicable law or agreed to in writing, software</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment"
>// distributed under the License is distributed on an "AS IS" BASIS,</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">// See the License for the specific language governing permissions and</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// limitations under the License.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#ifndef __MEMORY_TEST_HELPER_HPP__</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#define __MEMORY_TEST_HELPER_HPP__</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> </div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include <<a class="code" href="subprocess_8hpp.html">process/subprocess.hpp</a>></span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <<a class="code" href="bytes_8hpp.html">stout/bytes.hpp</a>></span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <<a class="code" href="option_8hpp.html">stout/option.hpp</a>></span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <<a class="code" href="subcommand_8hpp.html">stout/subcommand.hpp</a>></span></div><div class="line"><a name="l00025
"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <<a class="code" href="try_8hpp.html">stout/try.hpp</a>></span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="keyword">namespace </span><a class="code" href="namespacemesos.html">mesos</a> {</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="keyword">namespace </span><a class="code" href="namespaceinternal.html">internal</a> {</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="keyword">namespace </span>tests {</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> </div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="comment">// The abstraction for controlling the memory usage of a subprocess.</span></div><d
iv class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="comment">// TODO(chzhcn): Currently, this helper is only supposed to be used by</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="comment">// one thread. Consider making it thread safe.</span></div><div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1tests_1_1MemoryTestHelper.html"> 34</a></span> <span class="keyword">class </span><a class="code" href="classmesos_1_1internal_1_1tests_1_1MemoryTestHelper.html">MemoryTestHelper</a> : <span class="keyword">public</span> <a class="code" href="classSubcommand.html">Subcommand</a></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> {</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00037"></a><span class="
lineno"><a class="line" href="classmesos_1_1internal_1_1tests_1_1MemoryTestHelper.html#aa5dad9a209f238aa7d65dde34d8e5c2d"> 37</a></span>  <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span> <a class="code" href="classmesos_1_1internal_1_1tests_1_1MemoryTestHelper.html#aa5dad9a209f238aa7d65dde34d8e5c2d">NAME</a>[];</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div><div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1tests_1_1MemoryTestHelper.html#ae280d4f92d5a8e97a79adaed2a7abcf0"> 39</a></span>  <a class="code" href="classmesos_1_1internal_1_1tests_1_1MemoryTestHelper.html#ae280d4f92d5a8e97a79adaed2a7abcf0">MemoryTestHelper</a>() : <a class="code" href="classSubcommand.html">Subcommand</a>(NAME) {}</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  <span class="keyword">virtual</span>
<a class="code" href="classmesos_1_1internal_1_1tests_1_1MemoryTestHelper.html#a32c6b1ef064ede21de324efdd47dc921">~MemoryTestHelper</a>();</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> </div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <span class="comment">// Spawns a subprocess.</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <span class="comment">// TODO(chzhcn): Consider returning a future instead of blocking.</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <a class="code" href="classTry.html">Try<Nothing></a> <a class="code" href="classmesos_1_1internal_1_1tests_1_1MemoryTestHelper.html#a845ef8e61ce21226e4717685d7f95463">spawn</a>();</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <span class="co
mment">// Kill and reap the subprocess if exists.</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <span class="comment">// TODO(chzhcn): Consider returning a future instead of blocking.</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1tests_1_1MemoryTestHelper.html#adc29f6b3d28eb25bbf433fe6eeea4b43">cleanup</a>();</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span> </div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <span class="comment">// Returns the pid of the subprocess.</span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <a class="code" href="classTry.html">Try<pid_t></a> <a class="code" href="classmesos_1_1internal_1_1tests_1_1MemoryTestHelper.html#a503b2ac86325c300400661654abf064c">pid</a>();</div
><div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="comment">// Allocate and lock specified page-aligned anonymous memory (RSS)</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="comment">// in the subprocess. It uses mlock and memset to make sure</span></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="comment">// allocated memory is mapped.</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <span class="comment">// TODO(chzhcn): Consider returning a future instead of blocking.</span></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <a class="code" href="classTry.html">Try<Nothing></a> <a class="code" href="classmesos_1_1internal_1_1tests_1_1MemoryTestHelper.html#ab33a4ec1bdc1
97fca39d2a8285e868f2">increaseRSS</a>(<span class="keyword">const</span> <a class="code" href="classBytes.html">Bytes</a>& <a class="code" href="namespaceos_1_1stat.html#a7a116891923bc8b5d8c50f78da8657be">size</a>);</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span> </div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="comment">// This function attempts to generate requested size of page cache</span></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <span class="comment">// in the subprocess by using a small buffer and writing it to disk</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="comment">// multiple times.</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="comment">// TODO(chzhcn): Consider returning a future instead of blocking.</span></div><div class="
line"><a name="l00063"></a><span class="lineno"> 63</span>  <a class="code" href="classTry.html">Try<Nothing></a> <a class="code" href="classmesos_1_1internal_1_1tests_1_1MemoryTestHelper.html#a49cb28aaf92bfdcfe17320735214451b">increasePageCache</a>(<span class="keyword">const</span> <a class="code" href="classBytes.html">Bytes</a>& size = <a class="code" href="bytes_8hpp.html#a5d8fe3ccbf9cafff06846c05b3ca864b">Megabytes</a>(1));</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span> </div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="keyword">protected</span>:</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <span class="comment">// The main function of the subprocess. It runs in a loop and</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <span class="comment">// executes commands passed from stdin.</span></div><di
v class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classmesos_1_1internal_1_1tests_1_1MemoryTestHelper.html#ade2cd702f1351d1de330086ae8639a70">execute</a>();</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span> </div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <a class="code" href="classTry.html">Try<Nothing></a> requestAndWait(<span class="keyword">const</span> std::string& <a class="code" href="namespaceprocess_1_1http.html#ad8f400b5e54038df7e5662ec35da05fa">request</a>);</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span> </div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <a class="code" href="classOpt
ion.html">Option<process::Subprocess></a> s;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span> };</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span> </div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span> } <span class="comment">// namespace tests {</span></div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span> } <span class="comment">// namespace internal {</span></div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span> } <span class="comment">// namespace mesos {</span></div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span> </div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="preprocessor">#endif // __MEMORY_TEST_HELPER_HPP__</span></div><div class="ttc" id="classOption_html"><div class="ttname"><a href="classOption.html">Option< process::Subprocess ></a>
</div></div>
+<a href="memory__test__helper_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// or more contributor license agreements. See the NOTICE file</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// distributed with this work for additional information</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">// regarding copyright ownership. The ASF licenses this file</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00006">
</a><span class="lineno"> 6</span> <span class="comment">// "License"); you may not use this file except in compliance</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// with the License. You may obtain a copy of the License at</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">//</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// Unless required by applicable law or agreed to in writing, software</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment"
>// distributed under the License is distributed on an "AS IS" BASIS,</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">// See the License for the specific language governing permissions and</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// limitations under the License.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#ifndef __MEMORY_TEST_HELPER_HPP__</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#define __MEMORY_TEST_HELPER_HPP__</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> </div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include <<a class="code" href="include_2process_2subprocess_8hpp.html">process/subprocess.hpp</a>></span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <<a class="code" href="bytes_8hpp.html">stout/bytes.hpp</a>></span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <<a class="code" href="option_8hpp.html">stout/option.hpp</a>></span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <<a class="code" href="subcommand_8hpp.html">stout/subcommand.hpp</a>></span></div><div class="lin
e"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <<a class="code" href="try_8hpp.html">stout/try.hpp</a>></span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="keyword">namespace </span><a class="code" href="namespacemesos.html">mesos</a> {</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="keyword">namespace </span><a class="code" href="namespaceinternal.html">internal</a> {</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="keyword">namespace </span>tests {</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> </div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="comment">// The abstraction for controlling the memory usage of a subproce
ss.</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="comment">// TODO(chzhcn): Currently, this helper is only supposed to be used by</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="comment">// one thread. Consider making it thread safe.</span></div><div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1tests_1_1MemoryTestHelper.html"> 34</a></span> <span class="keyword">class </span><a class="code" href="classmesos_1_1internal_1_1tests_1_1MemoryTestHelper.html">MemoryTestHelper</a> : <span class="keyword">public</span> <a class="code" href="classSubcommand.html">Subcommand</a></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> {</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00037"
></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1tests_1_1MemoryTestHelper.html#aa5dad9a209f238aa7d65dde34d8e5c2d"> 37</a></span>  <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span> <a class="code" href="classmesos_1_1internal_1_1tests_1_1MemoryTestHelper.html#aa5dad9a209f238aa7d65dde34d8e5c2d">NAME</a>[];</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div><div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1tests_1_1MemoryTestHelper.html#ae280d4f92d5a8e97a79adaed2a7abcf0"> 39</a></span>  <a class="code" href="classmesos_1_1internal_1_1tests_1_1MemoryTestHelper.html#ae280d4f92d5a8e97a79adaed2a7abcf0">MemoryTestHelper</a>() : <a class="code" href="classSubcommand.html">Subcommand</a>(NAME) {}</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  <span class="keywor
d">virtual</span> <a class="code" href="classmesos_1_1internal_1_1tests_1_1MemoryTestHelper.html#a32c6b1ef064ede21de324efdd47dc921">~MemoryTestHelper</a>();</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> </div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <span class="comment">// Spawns a subprocess.</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <span class="comment">// TODO(chzhcn): Consider returning a future instead of blocking.</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <a class="code" href="classTry.html">Try<Nothing></a> <a class="code" href="classmesos_1_1internal_1_1tests_1_1MemoryTestHelper.html#a845ef8e61ce21226e4717685d7f95463">spawn</a>();</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> 
; <span class="comment">// Kill and reap the subprocess if exists.</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <span class="comment">// TODO(chzhcn): Consider returning a future instead of blocking.</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1tests_1_1MemoryTestHelper.html#adc29f6b3d28eb25bbf433fe6eeea4b43">cleanup</a>();</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span> </div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <span class="comment">// Returns the pid of the subprocess.</span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <a class="code" href="classTry.html">Try<pid_t></a> <a class="code" href="classmesos_1_1internal_1_1tests_1_1MemoryTestHelper.html#a503b2ac86325c300400661654abf064
c">pid</a>();</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="comment">// Allocate and lock specified page-aligned anonymous memory (RSS)</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="comment">// in the subprocess. It uses mlock and memset to make sure</span></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="comment">// allocated memory is mapped.</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <span class="comment">// TODO(chzhcn): Consider returning a future instead of blocking.</span></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <a class="code" href="classTry.html">Try<Nothing></a> <a class="code" href="classmesos_1_1internal_1_1tests_1_1MemoryTestHelper.
html#ab33a4ec1bdc197fca39d2a8285e868f2">increaseRSS</a>(<span class="keyword">const</span> <a class="code" href="classBytes.html">Bytes</a>& <a class="code" href="namespaceos_1_1stat.html#a7a116891923bc8b5d8c50f78da8657be">size</a>);</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span> </div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="comment">// This function attempts to generate requested size of page cache</span></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <span class="comment">// in the subprocess by using a small buffer and writing it to disk</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="comment">// multiple times.</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="comment">// TODO(chzhcn): Consider returning a future instead of blocking.</span>
</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <a class="code" href="classTry.html">Try<Nothing></a> <a class="code" href="classmesos_1_1internal_1_1tests_1_1MemoryTestHelper.html#a49cb28aaf92bfdcfe17320735214451b">increasePageCache</a>(<span class="keyword">const</span> <a class="code" href="classBytes.html">Bytes</a>& size = <a class="code" href="bytes_8hpp.html#a5d8fe3ccbf9cafff06846c05b3ca864b">Megabytes</a>(1));</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span> </div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="keyword">protected</span>:</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <span class="comment">// The main function of the subprocess. It runs in a loop and</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <span class="comment">// executes commands passed from stdi
n.</span></div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classmesos_1_1internal_1_1tests_1_1MemoryTestHelper.html#ade2cd702f1351d1de330086ae8639a70">execute</a>();</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span> </div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <a class="code" href="classTry.html">Try<Nothing></a> requestAndWait(<span class="keyword">const</span> std::string& <a class="code" href="namespaceprocess_1_1http.html#ad8f400b5e54038df7e5662ec35da05fa">request</a>);</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span> </div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <a class="co
de" href="classOption.html">Option<process::Subprocess></a> s;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span> };</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span> </div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span> } <span class="comment">// namespace tests {</span></div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span> } <span class="comment">// namespace internal {</span></div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span> } <span class="comment">// namespace mesos {</span></div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span> </div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="preprocessor">#endif // __MEMORY_TEST_HELPER_HPP__</span></div><div class="ttc" id="classOption_html"><div class="ttname"><a href="classOption.html">Option< process::S
ubprocess ></a></div></div>
<div class="ttc" id="namespaceos_1_1stat_html_a7a116891923bc8b5d8c50f78da8657be"><div class="ttname"><a href="namespaceos_1_1stat.html#a7a116891923bc8b5d8c50f78da8657be">os::stat::size</a></div><div class="ttdeci">Try< Bytes > size(const std::string &path, const FollowSymlink follow=FollowSymlink::FOLLOW_SYMLINK)</div><div class="ttdef"><b>Definition:</b> stat.hpp:121</div></div>
<div class="ttc" id="namespaceprocess_1_1http_html_ad8f400b5e54038df7e5662ec35da05fa"><div class="ttname"><a href="namespaceprocess_1_1http.html#ad8f400b5e54038df7e5662ec35da05fa">process::http::request</a></div><div class="ttdeci">Future< Response > request(const Request &request, bool streamedResponse=false)</div><div class="ttdoc">Asynchronously sends an HTTP request to the process and returns the HTTP response once the entire res...</div></div>
<div class="ttc" id="classTry_html"><div class="ttname"><a href="classTry.html">Try</a></div><div class="ttdef"><b>Definition:</b> check.hpp:33</div></div>
<div class="ttc" id="classmesos_1_1internal_1_1tests_1_1MemoryTestHelper_html_ade2cd702f1351d1de330086ae8639a70"><div class="ttname"><a href="classmesos_1_1internal_1_1tests_1_1MemoryTestHelper.html#ade2cd702f1351d1de330086ae8639a70">mesos::internal::tests::MemoryTestHelper::execute</a></div><div class="ttdeci">virtual int execute()</div></div>
<div class="ttc" id="classmesos_1_1internal_1_1tests_1_1MemoryTestHelper_html_aa5dad9a209f238aa7d65dde34d8e5c2d"><div class="ttname"><a href="classmesos_1_1internal_1_1tests_1_1MemoryTestHelper.html#aa5dad9a209f238aa7d65dde34d8e5c2d">mesos::internal::tests::MemoryTestHelper::NAME</a></div><div class="ttdeci">static const char NAME[]</div><div class="ttdef"><b>Definition:</b> memory_test_helper.hpp:37</div></div>
-<div class="ttc" id="subprocess_8hpp_html"><div class="ttname"><a href="subprocess_8hpp.html">subprocess.hpp</a></div></div>
<div class="ttc" id="bytes_8hpp_html_a5d8fe3ccbf9cafff06846c05b3ca864b"><div class="ttname"><a href="bytes_8hpp.html#a5d8fe3ccbf9cafff06846c05b3ca864b">Megabytes</a></div><div class="ttdeci">constexpr Bytes Megabytes(uint64_t value)</div><div class="ttdef"><b>Definition:</b> bytes.hpp:123</div></div>
+<div class="ttc" id="include_2process_2subprocess_8hpp_html"><div class="ttname"><a href="include_2process_2subprocess_8hpp.html">subprocess.hpp</a></div></div>
<div class="ttc" id="classmesos_1_1internal_1_1tests_1_1MemoryTestHelper_html_ae280d4f92d5a8e97a79adaed2a7abcf0"><div class="ttname"><a href="classmesos_1_1internal_1_1tests_1_1MemoryTestHelper.html#ae280d4f92d5a8e97a79adaed2a7abcf0">mesos::internal::tests::MemoryTestHelper::MemoryTestHelper</a></div><div class="ttdeci">MemoryTestHelper()</div><div class="ttdef"><b>Definition:</b> memory_test_helper.hpp:39</div></div>
<div class="ttc" id="classmesos_1_1internal_1_1tests_1_1MemoryTestHelper_html_a845ef8e61ce21226e4717685d7f95463"><div class="ttname"><a href="classmesos_1_1internal_1_1tests_1_1MemoryTestHelper.html#a845ef8e61ce21226e4717685d7f95463">mesos::internal::tests::MemoryTestHelper::spawn</a></div><div class="ttdeci">Try< Nothing > spawn()</div></div>
<div class="ttc" id="classSubcommand_html"><div class="ttname"><a href="classSubcommand.html">Subcommand</a></div><div class="ttdef"><b>Definition:</b> subcommand.hpp:41</div></div>
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/namespacemembers_a.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/namespacemembers_a.html b/content/api/latest/c++/namespacemembers_a.html
index b8ef3a1..7608ff7 100644
--- a/content/api/latest/c++/namespacemembers_a.html
+++ b/content/api/latest/c++/namespacemembers_a.html
@@ -95,6 +95,7 @@
<li>accept()
: <a class="el" href="namespacenet.html#ae830b749f06b2b6d2ed9c42ecb1763d7">net</a>
, <a class="el" href="namespaceprocess_1_1network.html#aa05dd9eea0c1e4d3d49e2fc049c1a446">process::network</a>
+, <a class="el" href="namespaceprocess_1_1windows.html#a1f34e4ee3092afe93c37c170430c03f5">process::windows</a>
</li>
<li>access()
: <a class="el" href="namespaceos.html#a426a9c189f65b7e3f63e16eb11ec73c3">os</a>
@@ -104,7 +105,7 @@
, <a class="el" href="namespacemesos_1_1internal_1_1tests_1_1v1_1_1scheduler.html#ae3e0f014f4e41c4deeff4d6c0e148663">mesos::internal::tests::v1::scheduler</a>
</li>
<li>ACTION_P()
-: <a class="el" href="namespacemesos_1_1internal_1_1tests.html#aedefb539485255be5a1e684d2c35513e">mesos::internal::tests</a>
+: <a class="el" href="namespacemesos_1_1internal_1_1tests.html#acec23b946fa51e72d1f6b4331ad56e8c">mesos::internal::tests</a>
, <a class="el" href="namespacemesos_1_1internal_1_1tests_1_1v1_1_1scheduler.html#a8e89b9cea175d555034b042fee28d6b8">mesos::internal::tests::v1::scheduler</a>
</li>
<li>ACTION_P2()
@@ -198,13 +199,13 @@
: <a class="el" href="namespaceos.html#a706dc9d1287978f358a9a23b77037fb0">os</a>
</li>
<li>async()
-: <a class="el" href="namespaceprocess.html#a9a7ae46e9f2d15e3fcd2bff8c87204c9">process</a>
+: <a class="el" href="namespaceprocess.html#a92b69ab22f734498cfe8cf6edd92fd2a">process</a>
</li>
<li>async_watcher
: <a class="el" href="namespaceprocess.html#abde24dee21e5f3c5110d36020c9f8d89">process</a>
</li>
<li>attach()
-: <a class="el" href="namespacerouting_1_1filter_1_1internal.html#a65ca143d4e951198b3ed448d5696cc2a">routing::filter::internal</a>
+: <a class="el" href="namespacerouting_1_1filter_1_1internal.html#a3ae22bb34cae1ea9e5d0a30cafeb0d4f">routing::filter::internal</a>
</li>
<li>AttributeList
: <a class="el" href="namespaceinternal_1_1windows.html#a57ccac11227b87ed48b2798ebc1c5e04">internal::windows</a>
@@ -241,7 +242,7 @@
: <a class="el" href="namespacemesos.html#a1cf38910e9883f2375ee724671784e27">mesos</a>
</li>
<li>await()
-: <a class="el" href="namespaceprocess.html#a9d64abf575bde6dc82f9d915b33743c8">process</a>
+: <a class="el" href="namespaceprocess.html#a4e2dd66121c628a77b57766a7a276838">process</a>
, <a class="el" href="namespaceprocess_1_1internal.html#a45915c2c6b7aea85b1c9a726158f19fc">process::internal</a>
</li>
<li>awaited()
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/namespacemembers_c.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/namespacemembers_c.html b/content/api/latest/c++/namespacemembers_c.html
index c141b4d..dc44df3 100644
--- a/content/api/latest/c++/namespacemembers_c.html
+++ b/content/api/latest/c++/namespacemembers_c.html
@@ -271,6 +271,7 @@
: <a class="el" href="namespacenet.html#ad810412a39640d3db31448c8ce7b280b">net</a>
, <a class="el" href="namespaceprocess_1_1http.html#a54e53c8006298fe99e3fb5f55c0e8c41">process::http</a>
, <a class="el" href="namespaceprocess_1_1network.html#a502d62f6f908591b8677c90341af28cc">process::network</a>
+, <a class="el" href="namespaceprocess_1_1windows.html#a5afdaeaeb57343d0aca728b74dcd3f71">process::windows</a>
</li>
<li>construct()
: <a class="el" href="namespacemesos_1_1uri.html#a4bbf8b5e900159cbe1f4f311ce26fb63">mesos::uri</a>
@@ -451,7 +452,7 @@
, <a class="el" href="namespacemesos_1_1internal_1_1tests_1_1v1.html#abd98e21c010ffd222ea0553f76362d4f">mesos::internal::tests::v1</a>
</li>
<li>createContainerConfig()
-: <a class="el" href="namespacemesos_1_1internal_1_1tests_1_1internal.html#ae06a22b6660e2f3d3e6b66c032f5963b">mesos::internal::tests::internal</a>
+: <a class="el" href="namespacemesos_1_1internal_1_1tests_1_1internal.html#afc0baf70c6610ce0ccce0e556a4727cf">mesos::internal::tests::internal</a>
</li>
<li>createContainerInfo()
: <a class="el" href="namespacemesos_1_1internal_1_1tests_1_1common.html#ae22bdc6f560eb8e648ef875bde2cabc8">mesos::internal::tests::common</a>
@@ -521,7 +522,7 @@
: <a class="el" href="namespacemesos_1_1internal_1_1slave_1_1paths.html#a42e0f2f261f2847ef32d633e9f94966e">mesos::internal::slave::paths</a>
</li>
<li>createExecutorInfo()
-: <a class="el" href="namespacemesos_1_1internal_1_1tests_1_1common.html#a670c20d9dcd273993b028edc3c79f6a1">mesos::internal::tests::common</a>
+: <a class="el" href="namespacemesos_1_1internal_1_1tests_1_1common.html#aa6cc33559f96bc2b0b5cc3e098d3daf2">mesos::internal::tests::common</a>
, <a class="el" href="namespacemesos_1_1internal_1_1tests_1_1internal.html#a1d89ea8fd0a176a5b25e672b0a88899a">mesos::internal::tests::internal</a>
, <a class="el" href="namespacemesos_1_1internal_1_1tests_1_1v1.html#a0a4c3e164d6cd047ee8b9279ce91c5dc">mesos::internal::tests::v1</a>
</li>
@@ -558,7 +559,7 @@
: <a class="el" href="namespacemesos_1_1internal_1_1protobuf.html#a0a8d385223ec86f5b9431a8a67dac151">mesos::internal::protobuf</a>
</li>
<li>createPersistentVolume()
-: <a class="el" href="namespacemesos_1_1internal_1_1tests_1_1common.html#ab3f6f80401c5645318402940ca2121ce">mesos::internal::tests::common</a>
+: <a class="el" href="namespacemesos_1_1internal_1_1tests_1_1common.html#afd8335a177e8bfe417b4668da9e161ac">mesos::internal::tests::common</a>
, <a class="el" href="namespacemesos_1_1internal_1_1tests_1_1internal.html#a983767ec82f466f6b7c00b18aff1fa3a">mesos::internal::tests::internal</a>
, <a class="el" href="namespacemesos_1_1internal_1_1tests_1_1v1.html#a5781795d2ad97feb34a5ff805fad1bec">mesos::internal::tests::v1</a>
</li>
@@ -569,7 +570,7 @@
: <a class="el" href="namespacemesos_1_1python.html#a88c25644f8837bfc76920f504a0e142d">mesos::python</a>
</li>
<li>createQuotaInfo()
-: <a class="el" href="namespacemesos_1_1internal_1_1master_1_1quota.html#a858856c5b332d277d20be66515b44e19">mesos::internal::master::quota</a>
+: <a class="el" href="namespacemesos_1_1internal_1_1master_1_1quota.html#a771e86d8a90e4839be7549ae1b388e1a">mesos::internal::master::quota</a>
</li>
<li>createRange()
: <a class="el" href="namespacemesos_1_1internal_1_1tests.html#aa3baef77e9071163d2e2dfb2b48798c1">mesos::internal::tests</a>
@@ -610,7 +611,7 @@
</li>
<li>createTask()
: <a class="el" href="namespacemesos_1_1internal_1_1protobuf.html#ac4ae9d9e44c7a92327e4cbd111a6bbd7">mesos::internal::protobuf</a>
-, <a class="el" href="namespacemesos_1_1internal_1_1tests_1_1common.html#a219c2fd0d7ae0f5f94798f4a89db9668">mesos::internal::tests::common</a>
+, <a class="el" href="namespacemesos_1_1internal_1_1tests_1_1common.html#a396b391f2eaac72764e650fd7d992f0b">mesos::internal::tests::common</a>
, <a class="el" href="namespacemesos_1_1internal_1_1tests_1_1internal.html#a48402bec0895e479cdd6a418a3fc7051">mesos::internal::tests::internal</a>
, <a class="el" href="namespacemesos_1_1internal_1_1tests_1_1v1.html#a9037552b8a0fe03198b20008cc0ba01b">mesos::internal::tests::v1</a>
</li>
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/namespacemembers_func_a.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/namespacemembers_func_a.html b/content/api/latest/c++/namespacemembers_func_a.html
index 255e2eb..55329e7 100644
--- a/content/api/latest/c++/namespacemembers_func_a.html
+++ b/content/api/latest/c++/namespacemembers_func_a.html
@@ -95,6 +95,7 @@
<li>accept()
: <a class="el" href="namespacenet.html#ae830b749f06b2b6d2ed9c42ecb1763d7">net</a>
, <a class="el" href="namespaceprocess_1_1network.html#aa05dd9eea0c1e4d3d49e2fc049c1a446">process::network</a>
+, <a class="el" href="namespaceprocess_1_1windows.html#a1f34e4ee3092afe93c37c170430c03f5">process::windows</a>
</li>
<li>access()
: <a class="el" href="namespaceos.html#a426a9c189f65b7e3f63e16eb11ec73c3">os</a>
@@ -104,7 +105,7 @@
, <a class="el" href="namespacemesos_1_1internal_1_1tests_1_1v1_1_1scheduler.html#ae3e0f014f4e41c4deeff4d6c0e148663">mesos::internal::tests::v1::scheduler</a>
</li>
<li>ACTION_P()
-: <a class="el" href="namespacemesos_1_1internal_1_1tests.html#aedefb539485255be5a1e684d2c35513e">mesos::internal::tests</a>
+: <a class="el" href="namespacemesos_1_1internal_1_1tests.html#acec23b946fa51e72d1f6b4331ad56e8c">mesos::internal::tests</a>
, <a class="el" href="namespacemesos_1_1internal_1_1tests_1_1v1_1_1scheduler.html#a8e89b9cea175d555034b042fee28d6b8">mesos::internal::tests::v1::scheduler</a>
</li>
<li>ACTION_P2()
@@ -144,7 +145,7 @@
</li>
<li>append()
: <a class="el" href="namespaceprotobuf.html#aa693e51d8d57a50543a7c2fb686a3ab3">protobuf</a>
-, <a class="el" href="namespacestrings_1_1internal.html#a98e3542d098140d417fcb3d6e35836a0">strings::internal</a>
+, <a class="el" href="namespacestrings_1_1internal.html#ae013029d60b66f6980085f55a27c00e7">strings::internal</a>
</li>
<li>appendPaths()
: <a class="el" href="namespaceos_1_1libraries.html#a980d85a5e6c3980841696f8774283b39">os::libraries</a>
@@ -165,10 +166,10 @@
: <a class="el" href="namespaceos.html#a706dc9d1287978f358a9a23b77037fb0">os</a>
</li>
<li>async()
-: <a class="el" href="namespaceprocess.html#a92b69ab22f734498cfe8cf6edd92fd2a">process</a>
+: <a class="el" href="namespaceprocess.html#a9a7ae46e9f2d15e3fcd2bff8c87204c9">process</a>
</li>
<li>attach()
-: <a class="el" href="namespacerouting_1_1filter_1_1internal.html#a4147e528ed5b27b16f0afd9eedc5085b">routing::filter::internal</a>
+: <a class="el" href="namespacerouting_1_1filter_1_1internal.html#a3ae22bb34cae1ea9e5d0a30cafeb0d4f">routing::filter::internal</a>
</li>
<li>AUTHENTICATION()
: <a class="el" href="namespaceprocess.html#af11700c40575d7826e6e820896ab7023">process</a>
@@ -180,7 +181,7 @@
: <a class="el" href="namespacemesos.html#a1cf38910e9883f2375ee724671784e27">mesos</a>
</li>
<li>await()
-: <a class="el" href="namespaceprocess.html#a4e2dd66121c628a77b57766a7a276838">process</a>
+: <a class="el" href="namespaceprocess.html#a9d64abf575bde6dc82f9d915b33743c8">process</a>
, <a class="el" href="namespaceprocess_1_1internal.html#a45915c2c6b7aea85b1c9a726158f19fc">process::internal</a>
</li>
<li>awaited()
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/namespacemembers_func_c.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/namespacemembers_func_c.html b/content/api/latest/c++/namespacemembers_func_c.html
index 76165a1..c976cfe 100644
--- a/content/api/latest/c++/namespacemembers_func_c.html
+++ b/content/api/latest/c++/namespacemembers_func_c.html
@@ -185,6 +185,7 @@
: <a class="el" href="namespacenet.html#ad810412a39640d3db31448c8ce7b280b">net</a>
, <a class="el" href="namespaceprocess_1_1http.html#a54e53c8006298fe99e3fb5f55c0e8c41">process::http</a>
, <a class="el" href="namespaceprocess_1_1network.html#a502d62f6f908591b8677c90341af28cc">process::network</a>
+, <a class="el" href="namespaceprocess_1_1windows.html#a5afdaeaeb57343d0aca728b74dcd3f71">process::windows</a>
</li>
<li>construct()
: <a class="el" href="namespacemesos_1_1uri.html#a4bbf8b5e900159cbe1f4f311ce26fb63">mesos::uri</a>
@@ -328,7 +329,7 @@
, <a class="el" href="namespacemesos_1_1internal_1_1tests_1_1v1.html#abd98e21c010ffd222ea0553f76362d4f">mesos::internal::tests::v1</a>
</li>
<li>createContainerConfig()
-: <a class="el" href="namespacemesos_1_1internal_1_1tests_1_1internal.html#afc0baf70c6610ce0ccce0e556a4727cf">mesos::internal::tests::internal</a>
+: <a class="el" href="namespacemesos_1_1internal_1_1tests_1_1internal.html#ae06a22b6660e2f3d3e6b66c032f5963b">mesos::internal::tests::internal</a>
</li>
<li>createContainerInfo()
: <a class="el" href="namespacemesos_1_1internal_1_1tests_1_1common.html#ae22bdc6f560eb8e648ef875bde2cabc8">mesos::internal::tests::common</a>
@@ -398,7 +399,7 @@
: <a class="el" href="namespacemesos_1_1internal_1_1slave_1_1paths.html#a42e0f2f261f2847ef32d633e9f94966e">mesos::internal::slave::paths</a>
</li>
<li>createExecutorInfo()
-: <a class="el" href="namespacemesos_1_1internal_1_1tests_1_1common.html#aa6cc33559f96bc2b0b5cc3e098d3daf2">mesos::internal::tests::common</a>
+: <a class="el" href="namespacemesos_1_1internal_1_1tests_1_1common.html#a670c20d9dcd273993b028edc3c79f6a1">mesos::internal::tests::common</a>
, <a class="el" href="namespacemesos_1_1internal_1_1tests_1_1internal.html#a1d89ea8fd0a176a5b25e672b0a88899a">mesos::internal::tests::internal</a>
, <a class="el" href="namespacemesos_1_1internal_1_1tests_1_1v1.html#a0a4c3e164d6cd047ee8b9279ce91c5dc">mesos::internal::tests::v1</a>
</li>
@@ -435,7 +436,7 @@
: <a class="el" href="namespacemesos_1_1internal_1_1protobuf.html#a0a8d385223ec86f5b9431a8a67dac151">mesos::internal::protobuf</a>
</li>
<li>createPersistentVolume()
-: <a class="el" href="namespacemesos_1_1internal_1_1tests_1_1common.html#ab3f6f80401c5645318402940ca2121ce">mesos::internal::tests::common</a>
+: <a class="el" href="namespacemesos_1_1internal_1_1tests_1_1common.html#afd8335a177e8bfe417b4668da9e161ac">mesos::internal::tests::common</a>
, <a class="el" href="namespacemesos_1_1internal_1_1tests_1_1internal.html#a983767ec82f466f6b7c00b18aff1fa3a">mesos::internal::tests::internal</a>
, <a class="el" href="namespacemesos_1_1internal_1_1tests_1_1v1.html#a5781795d2ad97feb34a5ff805fad1bec">mesos::internal::tests::v1</a>
</li>
@@ -446,13 +447,13 @@
: <a class="el" href="namespacemesos_1_1python.html#a88c25644f8837bfc76920f504a0e142d">mesos::python</a>
</li>
<li>createQuotaInfo()
-: <a class="el" href="namespacemesos_1_1internal_1_1master_1_1quota.html#a858856c5b332d277d20be66515b44e19">mesos::internal::master::quota</a>
+: <a class="el" href="namespacemesos_1_1internal_1_1master_1_1quota.html#a771e86d8a90e4839be7549ae1b388e1a">mesos::internal::master::quota</a>
</li>
<li>createRange()
: <a class="el" href="namespacemesos_1_1internal_1_1tests.html#aa3baef77e9071163d2e2dfb2b48798c1">mesos::internal::tests</a>
</li>
<li>createRequest()
-: <a class="el" href="namespaceprocess_1_1http.html#af2b66a0484ac2a6448270526c854251c">process::http</a>
+: <a class="el" href="namespaceprocess_1_1http.html#ad368a8449dbf9bc0bd6cec4a8a3532f1">process::http</a>
</li>
<li>createReservedResource()
: <a class="el" href="namespacemesos_1_1internal_1_1tests_1_1common.html#a9faf1357ddbd892de9f2673ae1f1b8ca">mesos::internal::tests::common</a>
@@ -500,7 +501,7 @@
, <a class="el" href="namespacemesos_1_1internal_1_1tests_1_1v1.html#ab2af45e2da4d8fc3ef09cc401dc30b74">mesos::internal::tests::v1</a>
</li>
<li>createTaskStatus()
-: <a class="el" href="namespacemesos_1_1internal_1_1protobuf.html#ae7baced1ecb23a4fffbd6d7cf1ac90ce">mesos::internal::protobuf</a>
+: <a class="el" href="namespacemesos_1_1internal_1_1protobuf.html#a9568ffade693b25df978d5512b079ab3">mesos::internal::protobuf</a>
</li>
<li>createTaskUpdated()
: <a class="el" href="namespacemesos_1_1internal_1_1protobuf_1_1master_1_1event.html#a6afd8a21c1cf14d6ab80abeb476720bc">mesos::internal::protobuf::master::event</a>
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/namespacemembers_func_i.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/namespacemembers_func_i.html b/content/api/latest/c++/namespacemembers_func_i.html
index dd03ab9..c94edf0 100644
--- a/content/api/latest/c++/namespacemembers_func_i.html
+++ b/content/api/latest/c++/namespacemembers_func_i.html
@@ -168,6 +168,10 @@
<li>io_wait_time_recursive()
: <a class="el" href="namespacecgroups_1_1blkio_1_1cfq.html#add688181241530f0a30d4c7e5520a4d5">cgroups::blkio::cfq</a>
</li>
+<li>is_async()
+: <a class="el" href="namespaceprocess_1_1io_1_1internal.html#a2291f1f69f4bdf80f3b114c493eb1e37">process::io::internal</a>
+, <a class="el" href="namespaceprocess_1_1io.html#ada6541d78cad2ecc225be8a26662c748">process::io</a>
+</li>
<li>is_inprogress_error()
: <a class="el" href="namespacenet.html#a6d996e15b39630257af8d8a0379c7f7a">net</a>
</li>
@@ -220,7 +224,7 @@
: <a class="el" href="namespacemesos_1_1roles.html#a70ebdbe08b14acfb4ef2571ce909cc86">mesos::roles</a>
</li>
<li>isTerminalState()
-: <a class="el" href="namespacemesos_1_1internal_1_1protobuf.html#ade777537955dc212aea80866edd089f3">mesos::internal::protobuf</a>
+: <a class="el" href="namespacemesos_1_1internal_1_1protobuf.html#aa31907fb62769822a77c06ffbf10451f">mesos::internal::protobuf</a>
</li>
<li>isUp()
: <a class="el" href="namespacerouting_1_1link.html#a7d1c8b69ea1c451975f9275fd11466e3">routing::link</a>
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/namespacemembers_func_p.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/namespacemembers_func_p.html b/content/api/latest/c++/namespacemembers_func_p.html
index ce0f6ec..94cb0cc 100644
--- a/content/api/latest/c++/namespacemembers_func_p.html
+++ b/content/api/latest/c++/namespacemembers_func_p.html
@@ -174,7 +174,7 @@
: <a class="el" href="namespaceos.html#a3fc3402e6d83c2e2f1dc680d77489a29">os</a>
</li>
<li>pids()
-: <a class="el" href="namespaceos.html#abdecf7ea8278e2d8b2110ecd2e8ca0ec">os</a>
+: <a class="el" href="namespaceos.html#a42af1cab63434cedf2b698cd6f49f073">os</a>
, <a class="el" href="namespaceproc.html#a810141e1502dd8b9a7a410da6caf7ed7">proc</a>
</li>
<li>pipe()
@@ -198,12 +198,16 @@
<li>post()
: <a class="el" href="namespaceprocess_1_1http.html#a0fd44430515dd0fed35dd5715bb104c9">process::http</a>
, <a class="el" href="namespaceprocess_1_1http_1_1streaming.html#ae8a18c7263d4aefb7b1973c12590c688">process::http::streaming</a>
-, <a class="el" href="namespaceprocess.html#a39beeddfda71dd96bf6a5c4b59481c5d">process</a>
+, <a class="el" href="namespaceprocess.html#a2b0f5478fa6a52497167aa994ff600d9">process</a>
</li>
<li>prepare()
: <a class="el" href="namespacecgroups.html#a4bf20862574beb5b0f9af7799489866f">cgroups</a>
, <a class="el" href="namespacemesos_1_1internal_1_1fs_1_1chroot.html#a3c224bd1aaafda45a323c3d84f8cc85a">mesos::internal::fs::chroot</a>
</li>
+<li>prepare_async()
+: <a class="el" href="namespaceprocess_1_1io_1_1internal.html#a9458b24220892124c2112b3fe85e585e">process::io::internal</a>
+, <a class="el" href="namespaceprocess_1_1io.html#a9db94d84fb44b21fb669ade7c6a82114">process::io</a>
+</li>
<li>process()
: <a class="el" href="namespaceos.html#acd11eaf54627e394ca79979ee884f6c4">os</a>
</li>
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/namespacemembers_func_r.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/namespacemembers_func_r.html b/content/api/latest/c++/namespacemembers_func_r.html
index 158ecfd..12785aa 100644
--- a/content/api/latest/c++/namespacemembers_func_r.html
+++ b/content/api/latest/c++/namespacemembers_func_r.html
@@ -100,7 +100,9 @@
, <a class="el" href="namespacemesos_1_1internal_1_1credentials.html#a137c93d60149616181a10e9f39986f7f">mesos::internal::credentials</a>
, <a class="el" href="namespacemesos_1_1internal_1_1slave_1_1state.html#adeb89c1623e8d5af457b5b130aceac1d">mesos::internal::slave::state</a>
, <a class="el" href="namespaceos.html#aa1d97ff0a93229e1fe6b33e3e2d567f7">os</a>
+, <a class="el" href="namespaceprocess_1_1io_1_1internal.html#ac0a90b8abf47098e5a57d90e744a42a8">process::io::internal</a>
, <a class="el" href="namespaceprocess_1_1io.html#ad1290a283a4d16068acfef3903bfd88b">process::io</a>
+, <a class="el" href="namespaceprocess_1_1windows.html#a7436ed89e84ff3415987de0ca9428d08">process::windows</a>
, <a class="el" href="namespaceprotobuf.html#a2120146c620b72d4e1e3ae47bdacb1b3">protobuf</a>
</li>
<li>read< Resources >()
@@ -133,6 +135,7 @@
</li>
<li>recv()
: <a class="el" href="namespacenet.html#ae1804e10c81f5743b459eeae1f6a701a">net</a>
+, <a class="el" href="namespaceprocess_1_1windows.html#a37fde6f31c2f9838a18cf83c2c865134">process::windows</a>
</li>
<li>redirect()
: <a class="el" href="namespaceprocess_1_1io.html#ab9c4a52a88fcc9983438e391643424ca">process::io</a>
@@ -188,7 +191,7 @@
: <a class="el" href="namespaceprocess_1_1http.html#ad8f400b5e54038df7e5662ec35da05fa">process::http</a>
</li>
<li>requestDelete()
-: <a class="el" href="namespaceprocess_1_1http.html#a1443ad581d0388a87013f0284906c2b3">process::http</a>
+: <a class="el" href="namespaceprocess_1_1http.html#aa37acfb70e0b901b6f10c3d4a9b33c95">process::http</a>
</li>
<li>reregisterSlave()
: <a class="el" href="namespacemesos_1_1internal_1_1master_1_1validation_1_1master_1_1message.html#aa161808296e305b8b17479f2f7b70fa4">mesos::internal::master::validation::master::message</a>
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/namespacemembers_func_s.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/namespacemembers_func_s.html b/content/api/latest/c++/namespacemembers_func_s.html
index a00ebd3..13e3305 100644
--- a/content/api/latest/c++/namespacemembers_func_s.html
+++ b/content/api/latest/c++/namespacemembers_func_s.html
@@ -104,9 +104,11 @@
</li>
<li>send()
: <a class="el" href="namespacenet.html#aa0a46766b4aca53ea50e1921567ddb40">net</a>
+, <a class="el" href="namespaceprocess_1_1windows.html#a04c64346155d34517acdf8b587162868">process::windows</a>
</li>
<li>sendfile()
: <a class="el" href="namespaceos.html#a625f02f99e88345b3e8f59223d7aa237">os</a>
+, <a class="el" href="namespaceprocess_1_1windows.html#afc59f27e725b5feb12f76e1c008ba767">process::windows</a>
</li>
<li>sendfile_async()
: <a class="el" href="namespaceos.html#ad8eec8c973d58ad0db1a7b6d81e77e96">os</a>
@@ -215,7 +217,7 @@
</li>
<li>size()
: <a class="el" href="namespacefs.html#a60a9e5ca4119866d80691ce3c4701dc9">fs</a>
-, <a class="el" href="namespaceos_1_1stat.html#af7fab12f2f4bf8ec51d5791202d41abc">os::stat</a>
+, <a class="el" href="namespaceos_1_1stat.html#a7a116891923bc8b5d8c50f78da8657be">os::stat</a>
</li>
<li>sleep()
: <a class="el" href="namespaceos.html#ab2b826c68a25af9e9ef47c570c36e137">os</a>
@@ -224,15 +226,15 @@
: <a class="el" href="namespaceprocess_1_1metrics.html#ae84bcc44d0cc377941ccab88b9cecdc7">process::metrics</a>
</li>
<li>socket()
-: <a class="el" href="namespacenet.html#a4cfca6331034dc0a6dc6077fc048843b">net</a>
+: <a class="el" href="namespacenet.html#a1a28d65fc659da0fd236f2641cd07f8d">net</a>
, <a class="el" href="namespacerouting.html#aee51d4e36a57bab7d6ada56e15467370">routing</a>
</li>
<li>soft_limit_in_bytes()
-: <a class="el" href="namespacecgroups_1_1memory.html#a8773afb0ceff81705f1579585333f9fd">cgroups::memory</a>
+: <a class="el" href="namespacecgroups_1_1memory.html#a1839563c856a81176f928d3fd6012b9d">cgroups::memory</a>
</li>
<li>spawn()
: <a class="el" href="namespaceos.html#a18f614e5bdf40984c33888a5fa9599ca">os</a>
-, <a class="el" href="namespaceprocess.html#aff22904a83567125d3b4d0d88e5a2270">process</a>
+, <a class="el" href="namespaceprocess.html#a0458ac577eb50d91c829967c1d7ca3dd">process</a>
</li>
<li>split()
: <a class="el" href="namespacestrings.html#a1f86a4a73f20056475dc065ec984eb7a">strings</a>
@@ -246,7 +248,7 @@
<li>stat()
: <a class="el" href="namespacecgroups_1_1cpuacct.html#a0aa25320dd324ad06619c2d650020102">cgroups::cpuacct</a>
, <a class="el" href="namespacecgroups.html#a78e3c7ca2e422779908eec45f859d757">cgroups</a>
-, <a class="el" href="namespaceos_1_1stat_1_1internal.html#aaa15e8ca46f9a135dc642eeb8340d0c1">os::stat::internal</a>
+, <a class="el" href="namespaceos_1_1stat_1_1internal.html#a1e8d1b1fd61d53e84b399c10bb67520d">os::stat::internal</a>
</li>
<li>statistics()
: <a class="el" href="namespacerouting_1_1link.html#a8486fce953717fcb949bfdc17a2dd3e1">routing::link</a>
@@ -256,7 +258,7 @@
, <a class="el" href="namespacerouting_1_1queueing_1_1internal.html#a91cfc1e150fcd66e41ce327b7e1908de">routing::queueing::internal</a>
</li>
<li>status()
-: <a class="el" href="namespaceproc.html#a34396c6140a28f583dc13fee3c3c35d4">proc</a>
+: <a class="el" href="namespaceproc.html#a1bf2b02dcb579ebc87a75d4bccce97b1">proc</a>
</li>
<li>streamingMediaType()
: <a class="el" href="namespacemesos_1_1internal.html#a1fe4afb9bc1a9f2688b39fdcc8818199">mesos::internal</a>
@@ -277,10 +279,10 @@
: <a class="el" href="namespaceos.html#acae67fc8bd809c609bf1ffb281d921c6">os</a>
</li>
<li>subprocess()
-: <a class="el" href="namespaceprocess.html#a0a748c548ad3a094196c98f00f9674cf">process</a>
+: <a class="el" href="namespaceprocess.html#a2d7e0a283bc0c9eca8a8b0532e026269">process</a>
</li>
<li>subsystems()
-: <a class="el" href="namespacecgroups.html#a155d0ce30a15e5b8b3ca02b189a7ead8">cgroups</a>
+: <a class="el" href="namespacecgroups.html#a43ff5aa5dec5f24b0a3620847e9dd6b6">cgroups</a>
</li>
<li>supported()
: <a class="el" href="namespacemesos_1_1internal_1_1fs.html#a0c6fe63428ca6e781338ed507a5952bd">mesos::internal::fs</a>
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/namespacemembers_func_w.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/namespacemembers_func_w.html b/content/api/latest/c++/namespacemembers_func_w.html
index 3945e55..5ee27e3 100644
--- a/content/api/latest/c++/namespacemembers_func_w.html
+++ b/content/api/latest/c++/namespacemembers_func_w.html
@@ -101,16 +101,21 @@
<li>which()
: <a class="el" href="namespaceos.html#a8d651d36e878b4284b6ab739be15bf16">os</a>
</li>
+<li>windows_to_unix_epoch()
+: <a class="el" href="namespaceos_1_1internal.html#a1493e5fcc92753702d08b36881ee8f97">os::internal</a>
+</li>
<li>workers()
: <a class="el" href="namespaceprocess.html#a18419acc52ca1e339e684f8d9208207e">process</a>
</li>
<li>write()
: <a class="el" href="namespacecgroups.html#ad199dcd922eab26b23b7011c7e0ca34a">cgroups</a>
, <a class="el" href="namespacemesos_1_1internal_1_1log.html#a644a438399ebd57381f8c3eb9261c9bc">mesos::internal::log</a>
-, <a class="el" href="namespaceos_1_1signal__safe.html#a1fe471bfb9a8e827779d24a58ba155d3">os::signal_safe</a>
-, <a class="el" href="namespaceos.html#a1b67d073837cf74e5cdfa785d5c95fac">os</a>
-, <a class="el" href="namespaceprocess_1_1io.html#a4c2c8de8f0750ab0f0ba40283774dfb6">process::io</a>
-, <a class="el" href="namespaceprotobuf.html#aaedc9cc58ee2711a7b5e8831ba02a899">protobuf</a>
+, <a class="el" href="namespaceos_1_1signal__safe.html#a35b77e10ddf35fa4569cb1a7d1e3532b">os::signal_safe</a>
+, <a class="el" href="namespaceos.html#a73da9d49515dfff761c4887c3d6032c0">os</a>
+, <a class="el" href="namespaceprocess_1_1io_1_1internal.html#ab4ecbbe96ef3c0600060e16c47988798">process::io::internal</a>
+, <a class="el" href="namespaceprocess_1_1io.html#a49105dc036ad04225c92bd673da5ce39">process::io</a>
+, <a class="el" href="namespaceprocess_1_1windows.html#a69a29846581bb7bb1084e9ee90cbe8e6">process::windows</a>
+, <a class="el" href="namespaceprotobuf.html#ad7c5a30c2e972caaed6b3896ac7e477f">protobuf</a>
</li>
<li>write_async()
: <a class="el" href="namespaceos.html#a1af52685ba3e8fe8676af86cd16a1eb8">os</a>
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/namespacemembers_i.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/namespacemembers_i.html b/content/api/latest/c++/namespacemembers_i.html
index ee6c19d..d12d581 100644
--- a/content/api/latest/c++/namespacemembers_i.html
+++ b/content/api/latest/c++/namespacemembers_i.html
@@ -192,6 +192,10 @@
<li>IPC_OWNER
: <a class="el" href="namespacemesos_1_1internal_1_1capabilities.html#abf44ee3490d4ec99e8549060bb8c9f58ae02fac06f4ff99fb60f27d2fa205f05e">mesos::internal::capabilities</a>
</li>
+<li>is_async()
+: <a class="el" href="namespaceprocess_1_1io_1_1internal.html#a2291f1f69f4bdf80f3b114c493eb1e37">process::io::internal</a>
+, <a class="el" href="namespaceprocess_1_1io.html#ada6541d78cad2ecc225be8a26662c748">process::io</a>
+</li>
<li>is_inprogress_error()
: <a class="el" href="namespacenet.html#a6d996e15b39630257af8d8a0379c7f7a">net</a>
</li>
@@ -244,7 +248,7 @@
: <a class="el" href="namespacemesos_1_1roles.html#a70ebdbe08b14acfb4ef2571ce909cc86">mesos::roles</a>
</li>
<li>isTerminalState()
-: <a class="el" href="namespacemesos_1_1internal_1_1protobuf.html#aa31907fb62769822a77c06ffbf10451f">mesos::internal::protobuf</a>
+: <a class="el" href="namespacemesos_1_1internal_1_1protobuf.html#ade777537955dc212aea80866edd089f3">mesos::internal::protobuf</a>
</li>
<li>isUp()
: <a class="el" href="namespacerouting_1_1link.html#a7d1c8b69ea1c451975f9275fd11466e3">routing::link</a>
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/namespacemembers_l.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/namespacemembers_l.html b/content/api/latest/c++/namespacemembers_l.html
index 63ad739..b32fac2 100644
--- a/content/api/latest/c++/namespacemembers_l.html
+++ b/content/api/latest/c++/namespacemembers_l.html
@@ -129,6 +129,9 @@
<li>LIBPROCESS_PID_FILE
: <a class="el" href="namespacemesos_1_1internal_1_1slave_1_1paths.html#a0eb6a5b0180c943374211289e1d4a312">mesos::internal::slave::paths</a>
</li>
+<li>libwinio_loop
+: <a class="el" href="namespaceprocess.html#a3b1f9b3719ea6358ad426ae31bc8eae6">process</a>
+</li>
<li>limit_in_bytes()
: <a class="el" href="namespacecgroups_1_1memory.html#abcf50b175fea5a521400f6b9e5574e90">cgroups::memory</a>
</li>
@@ -179,8 +182,8 @@
<li>longpath()
: <a class="el" href="namespaceinternal_1_1windows.html#a9eb75fd12cc66dbf3f61c8f5156694e1">internal::windows</a>
</li>
-<li>loop()
-: <a class="el" href="namespaceprocess.html#af4f4d3422eed6d82ea5af4a1a6e839a4">process</a>
+<li>loop
+: <a class="el" href="namespaceprocess.html#a59c192ee8ea5abbbee1642957f47c92a">process</a>
</li>
<li>LOW
: <a class="el" href="namespacecgroups_1_1memory_1_1pressure.html#ad8d4aa5c0e09cc87fef44d6713f7b61fab0b8865245ba2ef579a93fd37a0447c1">cgroups::memory::pressure</a>
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/namespacemembers_m.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/namespacemembers_m.html b/content/api/latest/c++/namespacemembers_m.html
index b4be95f..2681d82 100644
--- a/content/api/latest/c++/namespacemembers_m.html
+++ b/content/api/latest/c++/namespacemembers_m.html
@@ -399,7 +399,7 @@
</li>
<li>mount()
: <a class="el" href="namespacecgroups.html#aa3c1a4d4d11cca392dc45ff363718fc1">cgroups</a>
-, <a class="el" href="namespacemesos_1_1internal_1_1fs.html#af0d63e921d6b48554eaee82037356187">mesos::internal::fs</a>
+, <a class="el" href="namespacemesos_1_1internal_1_1fs.html#afd1e45c2b648ff930d2df614beb6f34b">mesos::internal::fs</a>
</li>
<li>mounted()
: <a class="el" href="namespacecgroups.html#a379912fbd52d8dba056a7d94041a224e">cgroups</a>
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/namespacemembers_p.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/namespacemembers_p.html b/content/api/latest/c++/namespacemembers_p.html
index f946740..873eea6 100644
--- a/content/api/latest/c++/namespacemembers_p.html
+++ b/content/api/latest/c++/namespacemembers_p.html
@@ -214,9 +214,9 @@
: <a class="el" href="namespaceos.html#a647be66325aca2685aa58780bbdb8e9a">os</a>
</li>
<li>post()
-: <a class="el" href="namespaceprocess_1_1http.html#a0fd44430515dd0fed35dd5715bb104c9">process::http</a>
+: <a class="el" href="namespaceprocess_1_1http.html#ae18e508ddf8cd65d7778320fa57550f3">process::http</a>
, <a class="el" href="namespaceprocess_1_1http_1_1streaming.html#ae8a18c7263d4aefb7b1973c12590c688">process::http::streaming</a>
-, <a class="el" href="namespaceprocess.html#a39beeddfda71dd96bf6a5c4b59481c5d">process</a>
+, <a class="el" href="namespaceprocess.html#ab52d25f9fe4b28df7268c688725894d9">process</a>
</li>
<li>POST_RESERVATION_REFINEMENT
: <a class="el" href="namespacemesos.html#aeea322fd31c5b71ac06c65bcf1241a82acc3723fdea465eaae535d3c19da528f2">mesos</a>
@@ -237,11 +237,15 @@
: <a class="el" href="namespacecgroups.html#a4bf20862574beb5b0f9af7799489866f">cgroups</a>
, <a class="el" href="namespacemesos_1_1internal_1_1fs_1_1chroot.html#a3c224bd1aaafda45a323c3d84f8cc85a">mesos::internal::fs::chroot</a>
</li>
+<li>prepare_async()
+: <a class="el" href="namespaceprocess_1_1io_1_1internal.html#a9458b24220892124c2112b3fe85e585e">process::io::internal</a>
+, <a class="el" href="namespaceprocess_1_1io.html#a9db94d84fb44b21fb669ade7c6a82114">process::io</a>
+</li>
<li>PROBE
: <a class="el" href="namespacemesos_1_1csi_1_1v0.html#ab61c885767f2a0ad8088b449b6fbf76dacf6c07f1998a6216e98e366d69bd145f">mesos::csi::v0</a>
</li>
<li>process()
-: <a class="el" href="namespaceos.html#acd11eaf54627e394ca79979ee884f6c4">os</a>
+: <a class="el" href="namespaceos.html#ae19e4161a51b86a1f330f3bf1dc75389">os</a>
</li>
<li>process_async_io_result()
: <a class="el" href="namespaceinternal_1_1windows.html#a4ed4d1bae6b01fb85f8e6fad0b10599d">internal::windows</a>
@@ -258,7 +262,7 @@
, <a class="el" href="namespacemesos_1_1internal_1_1log_1_1protocol.html#a3b1f8bd7b18c51af9d1f58842950b545">mesos::internal::log::protocol</a>
</li>
<li>protobuf()
-: <a class="el" href="namespaceJSON.html#a93c179a1a5bd4164169d47cb1803f2a6">JSON</a>
+: <a class="el" href="namespaceJSON.html#a1d44660d98caa78d154c47b5f60ba7f8">JSON</a>
</li>
<li>pstree()
: <a class="el" href="namespaceos.html#ac324ef4f356d10686ce7024257251443">os</a>
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/namespacemembers_r.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/namespacemembers_r.html b/content/api/latest/c++/namespacemembers_r.html
index 02b7d46..6c4bfc9 100644
--- a/content/api/latest/c++/namespacemembers_r.html
+++ b/content/api/latest/c++/namespacemembers_r.html
@@ -105,14 +105,16 @@
: <a class="el" href="namespacecgroups.html#aa696e42fa4a13e922dee2d1f869146d2">cgroups</a>
, <a class="el" href="namespacemesos_1_1internal_1_1credentials.html#a137c93d60149616181a10e9f39986f7f">mesos::internal::credentials</a>
, <a class="el" href="namespacemesos_1_1internal_1_1slave_1_1state.html#adeb89c1623e8d5af457b5b130aceac1d">mesos::internal::slave::state</a>
-, <a class="el" href="namespaceos.html#aa1d97ff0a93229e1fe6b33e3e2d567f7">os</a>
+, <a class="el" href="namespaceos.html#a7e99bac0fb06315c051358c7916fe692">os</a>
+, <a class="el" href="namespaceprocess_1_1io_1_1internal.html#ac0a90b8abf47098e5a57d90e744a42a8">process::io::internal</a>
, <a class="el" href="namespaceprocess_1_1io.html#a4c34d22e475e29f12ac739921dcc580f">process::io</a>
</li>
<li>READ
: <a class="el" href="namespaceprocess_1_1io.html#aca1f059ca9f0d7360631c621debeb879">process::io</a>
</li>
<li>read()
-: <a class="el" href="namespaceprotobuf.html#ae3e1bd443efafaf4f5d0f2ade10b81f9">protobuf</a>
+: <a class="el" href="namespaceprocess_1_1windows.html#a7436ed89e84ff3415987de0ca9428d08">process::windows</a>
+, <a class="el" href="namespaceprotobuf.html#a2120146c620b72d4e1e3ae47bdacb1b3">protobuf</a>
</li>
<li>read< Resources >()
: <a class="el" href="namespacemesos_1_1internal_1_1slave_1_1state.html#a6bdbe39082783fa5f8073104c5aa5b3c">mesos::internal::slave::state</a>
@@ -166,6 +168,7 @@
</li>
<li>recv()
: <a class="el" href="namespacenet.html#ae1804e10c81f5743b459eeae1f6a701a">net</a>
+, <a class="el" href="namespaceprocess_1_1windows.html#a37fde6f31c2f9838a18cf83c2c865134">process::windows</a>
</li>
<li>redirect()
: <a class="el" href="namespaceprocess_1_1io.html#ab9c4a52a88fcc9983438e391643424ca">process::io</a>
@@ -230,7 +233,7 @@
: <a class="el" href="namespaceprocess_1_1http.html#ad8f400b5e54038df7e5662ec35da05fa">process::http</a>
</li>
<li>requestDelete()
-: <a class="el" href="namespaceprocess_1_1http.html#a1443ad581d0388a87013f0284906c2b3">process::http</a>
+: <a class="el" href="namespaceprocess_1_1http.html#aa37acfb70e0b901b6f10c3d4a9b33c95">process::http</a>
</li>
<li>REQUEUES
: <a class="el" href="namespacerouting_1_1queueing_1_1statistics.html#a9a6c9ceca9da969ea8a5536ea6551b0e">routing::queueing::statistics</a>
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/namespacemembers_s.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/namespacemembers_s.html b/content/api/latest/c++/namespacemembers_s.html
index e1c67f3..d0410ad 100644
--- a/content/api/latest/c++/namespacemembers_s.html
+++ b/content/api/latest/c++/namespacemembers_s.html
@@ -110,9 +110,11 @@
</li>
<li>send()
: <a class="el" href="namespacenet.html#aa0a46766b4aca53ea50e1921567ddb40">net</a>
+, <a class="el" href="namespaceprocess_1_1windows.html#a04c64346155d34517acdf8b587162868">process::windows</a>
</li>
<li>sendfile()
: <a class="el" href="namespaceos.html#a625f02f99e88345b3e8f59223d7aa237">os</a>
+, <a class="el" href="namespaceprocess_1_1windows.html#afc59f27e725b5feb12f76e1c008ba767">process::windows</a>
</li>
<li>sendfile_async()
: <a class="el" href="namespaceos.html#ad8eec8c973d58ad0db1a7b6d81e77e96">os</a>
@@ -236,7 +238,7 @@
</li>
<li>size()
: <a class="el" href="namespacefs.html#a60a9e5ca4119866d80691ce3c4701dc9">fs</a>
-, <a class="el" href="namespaceos_1_1stat.html#a7a116891923bc8b5d8c50f78da8657be">os::stat</a>
+, <a class="el" href="namespaceos_1_1stat.html#af7fab12f2f4bf8ec51d5791202d41abc">os::stat</a>
</li>
<li>sleep()
: <a class="el" href="namespaceos.html#ab2b826c68a25af9e9ef47c570c36e137">os</a>
@@ -262,11 +264,11 @@
: <a class="el" href="namespaceprocess.html#a355bad70041c7d49455fb810578a72cf">process</a>
</li>
<li>soft_limit_in_bytes()
-: <a class="el" href="namespacecgroups_1_1memory.html#a8773afb0ceff81705f1579585333f9fd">cgroups::memory</a>
+: <a class="el" href="namespacecgroups_1_1memory.html#a1839563c856a81176f928d3fd6012b9d">cgroups::memory</a>
</li>
<li>spawn()
: <a class="el" href="namespaceos.html#a18f614e5bdf40984c33888a5fa9599ca">os</a>
-, <a class="el" href="namespaceprocess.html#aff22904a83567125d3b4d0d88e5a2270">process</a>
+, <a class="el" href="namespaceprocess.html#aa3e3f539080a94857e07401dd26b2f8f">process</a>
</li>
<li>split()
: <a class="el" href="namespacestrings.html#a1f86a4a73f20056475dc065ec984eb7a">strings</a>
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/namespacemembers_vars_l.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/namespacemembers_vars_l.html b/content/api/latest/c++/namespacemembers_vars_l.html
index b68dc3f..7d021ba 100644
--- a/content/api/latest/c++/namespacemembers_vars_l.html
+++ b/content/api/latest/c++/namespacemembers_vars_l.html
@@ -106,6 +106,9 @@
<li>LIBPROCESS_PID_FILE
: <a class="el" href="namespacemesos_1_1internal_1_1slave_1_1paths.html#a0eb6a5b0180c943374211289e1d4a312">mesos::internal::slave::paths</a>
</li>
+<li>libwinio_loop
+: <a class="el" href="namespaceprocess.html#a3b1f9b3719ea6358ad426ae31bc8eae6">process</a>
+</li>
<li>LISTEN
: <a class="el" href="namespacerouting_1_1diagnosis_1_1socket_1_1state.html#a3340f48cbccfa4dcf8e1e99f39f12246">routing::diagnosis::socket::state</a>
</li>
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/namespacemembers_w.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/namespacemembers_w.html b/content/api/latest/c++/namespacemembers_w.html
index f18d266..1c55211 100644
--- a/content/api/latest/c++/namespacemembers_w.html
+++ b/content/api/latest/c++/namespacemembers_w.html
@@ -125,6 +125,9 @@
<li>WINDOWS_PATH_SEPARATOR
: <a class="el" href="namespaceos.html#ae86289c0463a69de1a4aa97ba9203e57">os</a>
</li>
+<li>windows_to_unix_epoch()
+: <a class="el" href="namespaceos_1_1internal.html#a1493e5fcc92753702d08b36881ee8f97">os::internal</a>
+</li>
<li>workers()
: <a class="el" href="namespaceprocess.html#a18419acc52ca1e339e684f8d9208207e">process</a>
</li>
@@ -132,16 +135,17 @@
: <a class="el" href="namespacecgroups.html#ad199dcd922eab26b23b7011c7e0ca34a">cgroups</a>
, <a class="el" href="namespacemesos_1_1internal_1_1log_1_1protocol.html#a66ff2d5af4db53227f787281c0765d8d">mesos::internal::log::protocol</a>
, <a class="el" href="namespacemesos_1_1internal_1_1log.html#a644a438399ebd57381f8c3eb9261c9bc">mesos::internal::log</a>
-, <a class="el" href="namespaceos_1_1signal__safe.html#a35b77e10ddf35fa4569cb1a7d1e3532b">os::signal_safe</a>
-, <a class="el" href="namespaceos.html#aa0e3acff8992055da620cae8b455d93d">os</a>
-, <a class="el" href="namespaceprocess_1_1io.html#a49105dc036ad04225c92bd673da5ce39">process::io</a>
+, <a class="el" href="namespaceos_1_1signal__safe.html#a67bf0cd3aa924b5584a8744f15430835">os::signal_safe</a>
+, <a class="el" href="namespaceos.html#a1b67d073837cf74e5cdfa785d5c95fac">os</a>
+, <a class="el" href="namespaceprocess_1_1io_1_1internal.html#ab4ecbbe96ef3c0600060e16c47988798">process::io::internal</a>
</li>
<li>WRITE
: <a class="el" href="namespaceprocess_1_1io.html#ab005316d71b45c5b05de0a6234c6f8fc">process::io</a>
</li>
<li>write()
: <a class="el" href="namespaceprocess_1_1io.html#a4c2c8de8f0750ab0f0ba40283774dfb6">process::io</a>
-, <a class="el" href="namespaceprotobuf.html#a1c2352b3f232044d4e960e227d530a92">protobuf</a>
+, <a class="el" href="namespaceprocess_1_1windows.html#a69a29846581bb7bb1084e9ee90cbe8e6">process::windows</a>
+, <a class="el" href="namespaceprotobuf.html#aaedc9cc58ee2711a7b5e8831ba02a899">protobuf</a>
</li>
<li>write_async()
: <a class="el" href="namespaceos.html#a1af52685ba3e8fe8676af86cd16a1eb8">os</a>
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/namespaceos_1_1internal.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/namespaceos_1_1internal.html b/content/api/latest/c++/namespaceos_1_1internal.html
index 5b4f2a9..6d70747 100644
--- a/content/api/latest/c++/namespaceos_1_1internal.html
+++ b/content/api/latest/c++/namespaceos_1_1internal.html
@@ -72,6 +72,8 @@ Functions</h2></td></tr>
<tr class="separator:a1f75643e24051d2b8d98244abf0b9ece"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a02c567b1b6bb441a3a29433a126cedec"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classTry.html">Try</a>< std::string > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceos_1_1internal.html#a02c567b1b6bb441a3a29433a126cedec">nodename</a> ()</td></tr>
<tr class="separator:a02c567b1b6bb441a3a29433a126cedec"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a1493e5fcc92753702d08b36881ee8f97"><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceos_1_1internal.html#a1493e5fcc92753702d08b36881ee8f97">windows_to_unix_epoch</a> (const FILETIME &filetime)</td></tr>
+<tr class="separator:a1493e5fcc92753702d08b36881ee8f97"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
Variables</h2></td></tr>
@@ -262,6 +264,30 @@ Variables</h2></td></tr>
</div>
</div>
+<a class="anchor" id="a1493e5fcc92753702d08b36881ee8f97"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">double os::internal::windows_to_unix_epoch </td>
+ <td>(</td>
+ <td class="paramtype">const FILETIME & </td>
+ <td class="paramname"><em>filetime</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
<h2 class="groupheader">Variable Documentation</h2>
<a class="anchor" id="a637592b0315b2f8c779ab681177f911a"></a>
<div class="memitem">
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/namespaceprocess.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/namespaceprocess.html b/content/api/latest/c++/namespaceprocess.html
index f67ae14..5370f46 100644
--- a/content/api/latest/c++/namespaceprocess.html
+++ b/content/api/latest/c++/namespaceprocess.html
@@ -80,6 +80,8 @@ Namespaces</h2></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:namespaceprocess_1_1network"><td class="memItemLeft" align="right" valign="top">  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceprocess_1_1network.html">network</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:namespaceprocess_1_1windows"><td class="memItemLeft" align="right" valign="top">  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceprocess_1_1windows.html">windows</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
@@ -588,6 +590,8 @@ Variables</h2></td></tr>
<tr class="separator:a373bd5e2bd8f2694e4589293af477854"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a355bad70041c7d49455fb810578a72cf"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classprocess_1_1SocketManager.html">SocketManager</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceprocess.html#a355bad70041c7d49455fb810578a72cf">socket_manager</a></td></tr>
<tr class="separator:a355bad70041c7d49455fb810578a72cf"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a3b1f9b3719ea6358ad426ae31bc8eae6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classprocess_1_1windows_1_1EventLoop.html">windows::EventLoop</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceprocess.html#a3b1f9b3719ea6358ad426ae31bc8eae6">libwinio_loop</a></td></tr>
+<tr class="separator:a3b1f9b3719ea6358ad426ae31bc8eae6"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<h2 class="groupheader">Typedef Documentation</h2>
<a class="anchor" id="afc6611c4913642642277b44447a16e55"></a>
@@ -4265,6 +4269,18 @@ template<typename F , typename std::enable_if< !is_specialization_of< t
</div>
</div>
+<a class="anchor" id="a3b1f9b3719ea6358ad426ae31bc8eae6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classprocess_1_1windows_1_1EventLoop.html">windows::EventLoop</a>* process::libwinio_loop</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
<a class="anchor" id="a59c192ee8ea5abbbee1642957f47c92a"></a>
<div class="memitem">
<div class="memproto">
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/namespaceprocess_1_1io.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/namespaceprocess_1_1io.html b/content/api/latest/c++/namespaceprocess_1_1io.html
index 3a515c4..a157401 100644
--- a/content/api/latest/c++/namespaceprocess_1_1io.html
+++ b/content/api/latest/c++/namespaceprocess_1_1io.html
@@ -49,6 +49,7 @@
</div><!-- top -->
<div class="header">
<div class="summary">
+<a href="#namespaces">Namespaces</a> |
<a href="#func-members">Functions</a> |
<a href="#var-members">Variables</a> </div>
<div class="headertitle">
@@ -56,8 +57,19 @@
</div><!--header-->
<div class="contents">
<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceprocess_1_1io_1_1internal"><td class="memItemLeft" align="right" valign="top">  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceprocess_1_1io_1_1internal.html">internal</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
+<tr class="memitem:a9db94d84fb44b21fb669ade7c6a82114"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classTry.html">Try</a>< <a class="el" href="structNothing.html">Nothing</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceprocess_1_1io.html#a9db94d84fb44b21fb669ade7c6a82114">prepare_async</a> (<a class="el" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> fd)</td></tr>
+<tr class="memdesc:a9db94d84fb44b21fb669ade7c6a82114"><td class="mdescLeft"> </td><td class="mdescRight">Prepares a file descriptor to be ready for asynchronous IO. <a href="#a9db94d84fb44b21fb669ade7c6a82114">More...</a><br /></td></tr>
+<tr class="separator:a9db94d84fb44b21fb669ade7c6a82114"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ada6541d78cad2ecc225be8a26662c748"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classTry.html">Try</a>< bool > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceprocess_1_1io.html#ada6541d78cad2ecc225be8a26662c748">is_async</a> (<a class="el" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> fd)</td></tr>
+<tr class="memdesc:ada6541d78cad2ecc225be8a26662c748"><td class="mdescLeft"> </td><td class="mdescRight">Checks if <code><a class="el" href="namespaceprocess_1_1io.html#a9db94d84fb44b21fb669ade7c6a82114" title="Prepares a file descriptor to be ready for asynchronous IO. ">io::prepare_async</a></code> has been called on the file descriptor. <a href="#ada6541d78cad2ecc225be8a26662c748">More...</a><br /></td></tr>
+<tr class="separator:ada6541d78cad2ecc225be8a26662c748"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:af71c45e0a85e21f6b39060f4e716cebf"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classprocess_1_1Future.html">Future</a>< short > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceprocess_1_1io.html#af71c45e0a85e21f6b39060f4e716cebf">poll</a> (<a class="el" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> fd, short events)</td></tr>
<tr class="memdesc:af71c45e0a85e21f6b39060f4e716cebf"><td class="mdescLeft"> </td><td class="mdescRight">Returns the events (a subset of the events specified) that can be performed on the specified file descriptor without blocking. <a href="#af71c45e0a85e21f6b39060f4e716cebf">More...</a><br /></td></tr>
<tr class="separator:af71c45e0a85e21f6b39060f4e716cebf"><td class="memSeparator" colspan="2"> </td></tr>
@@ -90,6 +102,25 @@ Variables</h2></td></tr>
<tr class="separator:a34d62916736c1dfebd1585cf51f19d0c"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="ada6541d78cad2ecc225be8a26662c748"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classTry.html">Try</a><bool> process::io::is_async </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> </td>
+ <td class="paramname"><em>fd</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Checks if <code><a class="el" href="namespaceprocess_1_1io.html#a9db94d84fb44b21fb669ade7c6a82114" title="Prepares a file descriptor to be ready for asynchronous IO. ">io::prepare_async</a></code> has been called on the file descriptor. </p>
+<dl class="section return"><dt>Returns</dt><dd>Returns if the file descriptor is asynchronous. An asynchronous file descriptor is defined to be non-blocking on POSIX systems and overlapped and associated with an IO completion port on Windows. An error will be returned if the file descriptor is invalid. </dd></dl>
+
+</div>
+</div>
<a class="anchor" id="af71c45e0a85e21f6b39060f4e716cebf"></a>
<div class="memitem">
<div class="memproto">
@@ -121,6 +152,27 @@ Variables</h2></td></tr>
</div>
</div>
+<a class="anchor" id="a9db94d84fb44b21fb669ade7c6a82114"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classTry.html">Try</a><<a class="el" href="structNothing.html">Nothing</a>> process::io::prepare_async </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> </td>
+ <td class="paramname"><em>fd</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Prepares a file descriptor to be ready for asynchronous IO. </p>
+<p>On POSIX systems, this sets the file descriptor to non-blocking. On Windows, this will assign the file descriptor to an IO completion port.</p>
+<p>NOTE: Because the IO completion port is only known at the libprocess level, we need this function instead of simply using stout's <code><a class="el" href="namespaceos.html#adcd5b59146bb45a7ba431120a0d3b464">os::nonblock</a></code> and <code><a class="el" href="namespaceos.html#a238d27a90a749967761c1019d27b7e83">os::isNonblock</a></code> functions like we could do for POSIX systems.</p>
+<dl class="section return"><dt>Returns</dt><dd>On success, returns <a class="el" href="structNothing.html">Nothing</a>. On error, returns an <a class="el" href="classError.html">Error</a>. </dd></dl>
+
+</div>
+</div>
<a class="anchor" id="a4c34d22e475e29f12ac739921dcc580f"></a>
<div class="memitem">
<div class="memproto">
@@ -152,6 +204,7 @@ Variables</h2></td></tr>
</div><div class="memdoc">
<p>Performs a single non-blocking read by polling on the specified file descriptor until any data can be be read. </p>
+<p><code><a class="el" href="namespaceprocess_1_1io.html#a9db94d84fb44b21fb669ade7c6a82114" title="Prepares a file descriptor to be ready for asynchronous IO. ">io::prepare_async</a></code> needs to be called beforehand.</p>
<p>The future will become ready when some data is read (may be less than the specified size).</p>
<dl class="section return"><dt>Returns</dt><dd>The number of bytes read or zero on EOF. A failure will be returned if an error is detected. </dd></dl>
@@ -251,6 +304,7 @@ Variables</h2></td></tr>
</div><div class="memdoc">
<p>Performs a single non-blocking write by polling on the specified file descriptor until data can be be written. </p>
+<p><code><a class="el" href="namespaceprocess_1_1io.html#a9db94d84fb44b21fb669ade7c6a82114" title="Prepares a file descriptor to be ready for asynchronous IO. ">io::prepare_async</a></code> needs to be called beforehand.</p>
<p>The future will become ready when some data is written (may be less than the specified size of the data).</p>
<dl class="section return"><dt>Returns</dt><dd>The number of bytes written. A failure will be returned if an error is detected. If writing to a socket or pipe, an error will be returned if the the read end of the socket or pipe has been closed. </dd></dl>
[04/50] mesos-site git commit: Updated the website built from mesos
SHA: 7c9c72d.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/windows_2os_8hpp_source.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/windows_2os_8hpp_source.html b/content/api/latest/c++/windows_2os_8hpp_source.html
index a9d126c..78e0f95 100644
--- a/content/api/latest/c++/windows_2os_8hpp_source.html
+++ b/content/api/latest/c++/windows_2os_8hpp_source.html
@@ -52,7 +52,7 @@
<div class="title">os.hpp</div> </div>
</div><!--header-->
<div class="contents">
-<a href="windows_2os_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// Licensed under the Apache License, Version 2.0 (the "License");</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// you may not use this file except in compliance with the License.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// You may obtain a copy of the License at</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">//</
span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// Unless required by applicable law or agreed to in writing, software</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">// distributed under the License is distributed on an "AS IS" BASIS,</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">// See the License for the specific language governing permissions and</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// limitations under the License.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> </div><div class=
"line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#ifndef __STOUT_WINDOWS_OS_HPP__</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#define __STOUT_WINDOWS_OS_HPP__</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include <sys/utime.h></span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> </div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include <algorithm></span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include <list></span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#inclu
de <map></span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <memory></span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <numeric></span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <set></span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <string></span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <vector></span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <<a class="code" href="bytes_8hpp.html">stout/bytes.hpp</a>></s
pan></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include <<a class="code" href="duration_8hpp.html">stout/duration.hpp</a>></span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include <<a class="code" href="none_8hpp.html">stout/none.hpp</a>></span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include <<a class="code" href="nothing_8hpp.html">stout/nothing.hpp</a>></span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include <<a class="code" href="option_8hpp.html">stout/option.hpp</a>></span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#include <<a class="code" href="path_8hpp.html">stout/path.hpp</a>></span></div><div class="li
ne"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#include <<a class="code" href="stringify_8hpp.html">stout/stringify.hpp</a>></span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#include <<a class="code" href="strings_8hpp.html">stout/strings.hpp</a>></span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include <<a class="code" href="try_8hpp.html">stout/try.hpp</a>></span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#include <<a class="code" href="3rdparty_2stout_2include_2stout_2version_8hpp.html">stout/version.hpp</a>></span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#include <<a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html">st
out/windows.hpp</a>></span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor">#include <<a class="code" href="os_2os_8hpp.html">stout/os/os.hpp</a>></span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="preprocessor">#include <<a class="code" href="getenv_8hpp.html">stout/os/getenv.hpp</a>></span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="preprocessor">#include <<a class="code" href="stout_2include_2stout_2os_2process_8hpp.html">stout/os/process.hpp</a>></span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor">#include <<a class="code" href="3rdparty_2stout_2include_2stout_2os_2read_8hpp.html">stout/os/read.hpp</a>></span></div><div class="line"><a name="
l00043"></a><span class="lineno"> 43</span> </div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="preprocessor">#include <<a class="code" href="3rdparty_2stout_2include_2stout_2os_2raw_2environment_8hpp.html">stout/os/raw/environment.hpp</a>></span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="comment">// NOTE: These system headers must be included after `stout/windows.hpp`</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="comment">// as they may include `Windows.h`. See comments in `stout/windows.hpp`</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="comment">// for why this ordering is important.</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <spa
n class="preprocessor">#include <Psapi.h></span> <span class="comment">// For `EnumProcesses` and `GetProcessMemoryInfo`.</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor">#include <TlHelp32.h></span> <span class="comment">// For `PROCESSENTRY32W` and `CreateToolhelp32Snapshot`.</span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="preprocessor">#include <Userenv.h></span> <span class="comment">// For `GetAllUsersProfileDirectoryW`.</span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="keyword">namespace </span><a class="code" href="namespaceos.html">os</a> {</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="keyword">namespace </span><a class="code" href="namespaceinterna
l.html">internal</a> {</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="namespaceos_1_1internal.html#a02c567b1b6bb441a3a29433a126cedec"> 56</a></span> <span class="keyword">inline</span> <a class="code" href="classTry.html">Try<std::string></a> <a class="code" href="namespaceos_1_1internal.html#a02c567b1b6bb441a3a29433a126cedec">nodename</a>()</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span> {</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="comment">// MSDN documentation states "The names are established at system startup,</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="comment">// when the system reads them from the registry." This is akin to the</span></div><div class="line"><a name="l00060"></a><spa
n class="lineno"> 60</span>  <span class="comment">// Linux `gethostname` which calls `uname`, thus avoiding a DNS lookup.</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="comment">// The `net::getHostname` function can be used for an explicit DNS lookup.</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="comment">//</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="comment">// NOTE: This returns the hostname of the local computer, or the local</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <span class="comment">// node if this computer is part of a cluster.</span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  COMPUTER_NAME_FORMAT <a class="code" href="namespacestrings_1_1internal.html#a870e2db270d980f83de20525ec414d2a">format</a>
= ComputerNamePhysicalDnsHostname;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  DWORD <a class="code" href="namespaceos_1_1stat.html#a7a116891923bc8b5d8c50f78da8657be">size</a> = 0;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <span class="keywordflow">if</span> (::GetComputerNameExW(format, <span class="keyword">nullptr</span>, &size) == 0) {</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <span class="keywordflow">if</span> (::GetLastError() != ERROR_MORE_DATA) {</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="keywordflow">return</span> <a class="code" href="classWindowsError.html">WindowsError</a>();</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  }</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  }</div><div class="line"><a name="
l00072"></a><span class="lineno"> 72</span> </div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  std::vector<wchar_t> buffer;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  buffer.reserve(size);</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span> </div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <span class="keywordflow">if</span> (::GetComputerNameExW(format, buffer.data(), &<a class="code" href="namespaceos_1_1stat.html#a7a116891923bc8b5d8c50f78da8657be">size</a>) == 0) {</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="keywordflow">return</span> <a class="code" href="classWindowsError.html">WindowsError</a>();</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  }</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span> 
</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="keywordflow">return</span> <a class="code" href="namespacens.html#a28116b46e6543597a11733424cd1aa20">stringify</a>(std::wstring(buffer.data()));</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span> }</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span> </div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span> } <span class="comment">// namespace internal {</span></div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span> </div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span> </div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="comment">// Overload of os::pids for filtering by groups and sessions. A group / session</span></div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <sp
an class="comment">// id of 0 will fitler on the group / session ID of the calling process.</span></div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="comment">// NOTE: Windows does not have the concept of a process group, so we need to</span></div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <span class="comment">// enumerate all processes.</span></div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="keyword">inline</span> <a class="code" href="classTry.html">Try<std::set<pid_t></a>> <a class="code" href="namespaceos.html#a42af1cab63434cedf2b698cd6f49f073">pids</a>(<a class="code" href="classOption.html">Option<pid_t></a> <a class="code" href="structgroup.html">group</a>, <a class="code" href="classOption.html">Option<pid_t></a> session)</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span> {</div><div class="lin
e"><a name="l00092"></a><span class="lineno"> 92</span>  DWORD max_items = 4096;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  DWORD bytes_returned;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  std::vector<pid_t> <a class="code" href="namespaceos.html#aa98ca8ac255e2b9c689979a1b40084d3">processes</a>;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <span class="keywordtype">size_t</span> size_in_bytes;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span> </div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <span class="comment">// Attempt to populate `processes` with PIDs. We repeatedly call</span></div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <span class="comment">// `EnumProcesses` with increasingly large arrays until it "succeeds" at</span></d
iv><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <span class="comment">// populating the array with PIDs. The criteria for determining when</span></div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <span class="comment">// `EnumProcesses` has succeeded are:</span></div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <span class="comment">// (1) the return value is nonzero.</span></div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <span class="comment">// (2) the `bytes_returned` is less than the number of bytes in the array.</span></div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <span class="keywordflow">do</span> {</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <span class="comment">// TODO(alexnaparu): Set a limit to the memory that can be used.</span></div><div class="
line"><a name="l00105"></a><span class="lineno"> 105</span>  processes.resize(max_items);</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  size_in_bytes = processes.size() * <span class="keyword">sizeof</span>(<a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ab03ced250ed239bc3b50b669493997f9">pid_t</a>);</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  CHECK_LE(size_in_bytes, MAXDWORD);</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span> </div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  BOOL result = ::EnumProcesses(</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  processes.data(),</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <span class="keyword">static_cast<</span>DWORD<span class="keyword">></span>(size_in_bytes
),</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  &bytes_returned);</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span> </div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <span class="keywordflow">if</span> (!result) {</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <span class="keywordflow">return</span> <a class="code" href="classWindowsError.html">WindowsError</a>(<span class="stringliteral">"os::pids: Call to `EnumProcesses` failed"</span>);</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  }</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span> </div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  max_items *= 2;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  } <span class="keyw
ordflow">while</span> (bytes_returned >= size_in_bytes);</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span> </div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  std::set<pid_t> pids_set(processes.begin(), processes.end());</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span> </div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <span class="comment">// NOTE: The PID `0` will always be returned by `EnumProcesses`; however, it</span></div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <span class="comment">// is the PID of Windows' System Idle Process. While the PID is valid, using</span></div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <span class="comment">// it for anything is almost always invalid. For instance, `OpenProcess` will</span></div><div class="line"><a name="l00126
"></a><span class="lineno"> 126</span>  <span class="comment">// fail with an invalid parameter error if the user tries to get a handle for</span></div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <span class="comment">// PID `0`. In the interest of safety, we prevent the `pids` API from ever</span></div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <span class="comment">// including the PID `0`.</span></div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  pids_set.erase(0);</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <span class="keywordflow">return</span> pids_set;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span> }</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span> </div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span> </div><div class="line"
><a name="l00134"></a><span class="lineno"> 134</span> <span class="keyword">inline</span> <a class="code" href="classTry.html">Try<std::set<pid_t></a>> <a class="code" href="namespaceos.html#a42af1cab63434cedf2b698cd6f49f073">pids</a>()</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span> {</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <span class="keywordflow">return</span> <a class="code" href="namespaceos.html#a42af1cab63434cedf2b698cd6f49f073">pids</a>(<a class="code" href="structNone.html">None</a>(), <a class="code" href="structNone.html">None</a>());</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span> }</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span> </div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span> </div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span> <span cla
ss="comment">// Sets the value associated with the specified key in the set of</span></div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span> <span class="comment">// environment variables.</span></div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespaceos.html#ac0f608e2a32764327e38c53d0d51527d">setenv</a>(</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <span class="keyword">const</span> std::string& key,</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <span class="keyword">const</span> std::string& value,</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <span class="keywordtype">bool</span> overwrite = <span class="keyword">true</span>)</div><div class="line"><a name="l00146"></a><span class="lineno"> 1
46</span> {</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <span class="comment">// Do not set the variable if already set and `overwrite` was not specified.</span></div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  <span class="comment">//</span></div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  <span class="comment">// Per MSDN, `GetEnvironmentVariable` returns 0 on error and sets the</span></div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <span class="comment">// error code to `ERROR_ENVVAR_NOT_FOUND` if the variable was not found.</span></div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <span class="comment">//</span></div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  <span class="comment">// https://msdn.microsoft.com/en-us/library/windows/desktop/ms683188(v=vs.85)
.aspx // NOLINT(whitespace/line_length)</span></div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <span class="keywordflow">if</span> (!overwrite &&</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  ::GetEnvironmentVariableW(wide_stringify(key).data(), <span class="keyword">nullptr</span>, 0) != 0 &&</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  ::GetLastError() == ERROR_ENVVAR_NOT_FOUND) {</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <span class="keywordflow">return</span>;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  }</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span> </div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <span class="comment">// `SetEnvironmentVariable` returns an error code, but we can'
;t act on it.</span></div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  ::SetEnvironmentVariableW(</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  wide_stringify(key).data(), wide_stringify(value).data());</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span> }</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span> </div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span> </div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span> <span class="comment">// Unsets the value associated with the specified key in the set of</span></div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span> <span class="comment">// environment variables.</span></div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span> <span class="keyword">inline</span> <span class="keywordtype">
void</span> <a class="code" href="namespaceos.html#a7471e14f4cbd7e23b5daa21e556f4eb5">unsetenv</a>(<span class="keyword">const</span> std::string& key)</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span> {</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <span class="comment">// Per MSDN documentation[1], passing `nullptr` as the value will cause</span></div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <span class="comment">// `SetEnvironmentVariable` to delete the key from the process's environment.</span></div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  ::SetEnvironmentVariableW(wide_stringify(key).data(), <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span> }</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span> </div><div class="line"><a n
ame="l00174"></a><span class="lineno"> 174</span> </div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span> <span class="comment">// NOTE: This exists for compatibility with the POSIX API. On Windows,</span></div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span> <span class="comment">// either function is suitable for clearing a secret from the</span></div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span> <span class="comment">// environment, as the pointers returned by `GetEnvironmentVariable`</span></div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span> <span class="comment">// and `GetEnvironmentStrings` are to blocks allocated on invocation.</span></div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespaceos.html#afe5b6cbeb92f2df4f8f6211
d8b0c8be4">eraseenv</a>(<span class="keyword">const</span> std::string& key)</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span> {</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  <a class="code" href="namespaceos.html#a7471e14f4cbd7e23b5daa21e556f4eb5">unsetenv</a>(key);</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span> }</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span> </div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span> </div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span> <span class="comment">// Suspends execution of the calling process until a child specified by `pid`</span></div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span> <span class="comment">// has changed state. Unlike the POSIX standard function `::waitpid`, this</span></div><div class="line">
<a name="l00187"></a><span class="lineno"> 187</span> <span class="comment">// function does not use -1 and 0 to signify errors and nonblocking return.</span></div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span> <span class="comment">// Instead, we return `Result<pid_t>`:</span></div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span> <span class="comment">// * In case of error, we return `Error` rather than -1. For example, we</span></div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span> <span class="comment">// would return an `Error` in case of `EINVAL`.</span></div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span> <span class="comment">// * In case of nonblocking return, we return `None` rather than 0. For</span></div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span> <span class="comment">// example, if we pass `WNOHA
NG` in the `options`, we would expect 0 to be</span></div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span> <span class="comment">// returned in the case that children specified by `pid` exist, but have</span></div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span> <span class="comment">// not changed state yet. In this case we return `None` instead.</span></div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span> <span class="comment">//</span></div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span> <span class="comment">// NOTE: There are important differences between the POSIX and Windows</span></div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span> <span class="comment">// implementations of this function:</span></div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span> <span class="comment">// * On POSIX, `pid_
t` is a signed number, but on Windows, PIDs are `DWORD`,</span></div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span> <span class="comment">// which is `unsigned long`. Thus, if we use `DWORD` to represent the `pid`</span></div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span> <span class="comment">// argument, passing -1 as the `pid` would (on most modern servers)</span></div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span> <span class="comment">// silently convert to a really large `pid`. This is undesirable.</span></div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span> <span class="comment">// * Since it is important to be able to detect -1 has been passed to</span></div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span> <span class="comment">// `os::waitpid`, as a matter of practicality, we choose to:</span></div><div clas
s="line"><a name="l00204"></a><span class="lineno"> 204</span> <span class="comment">// (1) Use `long` to represent the `pid` argument.</span></div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span> <span class="comment">// (2) Disable using any value <= 0 for `pid` on Windows.</span></div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span> <span class="comment">// * This decision is pragmatic. The reasoning is:</span></div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span> <span class="comment">// (1) The Windows code paths call `os::waitpid` in only a handful of</span></div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span> <span class="comment">// places, and in none of these conditions do we need `-1` as a value.</span></div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span> <span class="comment">// (2) Since PID
s virtually never take on values outside the range of</span></div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span> <span class="comment">// vanilla signed `long` it is likely that an accidental conversion</span></div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span> <span class="comment">// will never happen.</span></div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span> <span class="comment">// (3) Even though it is not formalized in the C specification, the</span></div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span> <span class="comment">// implementation of `long` on the vast majority of production servers</span></div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span> <span class="comment">// is 2's complement, so we expect that when we accidentally do</span></div><div class="line"><a name="l00215"></a
><span class="lineno"> 215</span> <span class="comment">// implicitly convert from `unsigned long` to `long`, we will "wrap</span></div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span> <span class="comment">// around" to negative values. And since we've disabled the negative</span></div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span> <span class="comment">// `pid` in the Windows implementation, we should error out.</span></div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span> <span class="comment">// * Finally, on Windows, we currently do not check that the process we are</span></div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span> <span class="comment">// attempting to await is a child process.</span></div><div class="line"><a name="l00220"></a><span class="lineno"><a class="line" href="namespaceos.html#a59caf358baf81d
e389c29d983b8e21ad"> 220</a></span> <span class="keyword">inline</span> <a class="code" href="classResult.html">Result<pid_t></a> <a class="code" href="namespaceos.html#a48c86262928f59c5c54d0cb0012e2aba">waitpid</a>(<span class="keywordtype">long</span> pid, <span class="keywordtype">int</span>* <a class="code" href="namespaceproc.html#a34396c6140a28f583dc13fee3c3c35d4">status</a>, <span class="keywordtype">int</span> options)</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span> {</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  <span class="keyword">const</span> <span class="keywordtype">bool</span> wait_for_child = (options & <a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#afa288d86b242c3005425a9c0f1682544">WNOHANG</a>) == 0;</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span> </div><div class="line"><a name="l00224"></a><span class="lineno"> 2
24</span>  <span class="comment">// NOTE: Windows does not implement pids <= 0.</span></div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  <span class="keywordflow">if</span> (pid <= 0) {</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  errno = ENOSYS;</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  <span class="keywordflow">return</span> <a class="code" href="classErrnoError.html">ErrnoError</a>(</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  <span class="stringliteral">"os::waitpid: Value of pid is '"</span> + <a class="code" href="namespacens.html#a28116b46e6543597a11733424cd1aa20">stringify</a>(pid) +</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  <span class="stringliteral">"'; the Windows implementation currently does not allow values <= 0"
</span>);</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (options != 0 && options != <a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#afa288d86b242c3005425a9c0f1682544">WNOHANG</a>) {</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  <span class="comment">// NOTE: We only support `options == 0` or `options == WNOHANG`. On Windows</span></div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  <span class="comment">// no flags other than `WNOHANG` are supported.</span></div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  errno = ENOSYS;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  <span class="keywordflow">return</span> <a class="code" href="classErrnoError.html">ErrnoError</a>(</div><div class="line
"><a name="l00235"></a><span class="lineno"> 235</span>  <span class="stringliteral">"os::waitpid: Only flag `WNOHANG` is implemented on Windows"</span>);</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  }</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span> </div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  <span class="comment">// TODO(hausdorff): Check that `pid` is one of the child processes. If not,</span></div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  <span class="comment">// set `errno` to `ECHILD` and return -1.</span></div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span> </div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  <span class="comment">// Open the child process as a safe `SharedHandle`.</span></div><div class="line"><a name="l00242"></a><span cl
ass="lineno"> 242</span>  <span class="keyword">const</span> <a class="code" href="namespacerouting_1_1queueing_1_1ingress.html#a934208b6017d0a9aed90b6594bb8292f">HANDLE</a> <a class="code" href="namespaceprocess.html">process</a> = ::OpenProcess(</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  PROCESS_QUERY_INFORMATION | SYNCHRONIZE,</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  FALSE,</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  static_cast<DWORD>(pid));</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span> </div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  <span class="keywordflow">if</span> (process == <span class="keyword">nullptr</span>) {</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  <span class="keywordflow">return</span> <a class="c
ode" href="classWindowsError.html">WindowsError</a>(<span class="stringliteral">"os::waitpid: Failed to open process for pid '"</span> +</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  <a class="code" href="namespacens.html#a28116b46e6543597a11733424cd1aa20">stringify</a>(pid) + <span class="stringliteral">"'"</span>);</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  }</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span> </div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  <a class="code" href="classSharedHandle.html">SharedHandle</a> scoped_process(process, ::CloseHandle);</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span> </div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  <span class="comment">// If `WNOHANG` flag is set, don't
wait. Otherwise, wait for child to</span></div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  <span class="comment">// terminate.</span></div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  <span class="keyword">const</span> DWORD wait_time = wait_for_child ? INFINITE : 0;</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  <span class="keyword">const</span> DWORD wait_results = ::WaitForSingleObject(</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  scoped_process.get(),</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  wait_time);</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span> </div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  <span class="comment">// Verify our wait exited correctly.</span></div><div class="line"><a name="l00262"></a><sp
an class="lineno"> 262</span>  <span class="keyword">const</span> <span class="keywordtype">bool</span> state_signaled = wait_results == WAIT_OBJECT_0;</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  <span class="keywordflow">if</span> (options == 0 && !state_signaled) {</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  <span class="comment">// If `WNOHANG` is not set, then we should have stopped waiting only for a</span></div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  <span class="comment">// state change in `scoped_process`.</span></div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  errno = ECHILD;</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  <span class="keywordflow">return</span> <a class="code" href="classWindowsError.html">WindowsError</a>(</div><div class="line"><a name="l00
268"></a><span class="lineno"> 268</span>  <span class="stringliteral">"os::waitpid: Failed to wait for pid '"</span> + <a class="code" href="namespacens.html#a28116b46e6543597a11733424cd1aa20">stringify</a>(pid) +</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  <span class="stringliteral">"'. `::WaitForSingleObject` should have waited for child process to "</span> +</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  <span class="stringliteral">"exit, but returned code '"</span> + <a class="code" href="namespacens.html#a28116b46e6543597a11733424cd1aa20">stringify</a>(wait_results) +</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  <span class="stringliteral">"' instead"</span>);</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  } <span class="keywordflow">el
se</span> <span class="keywordflow">if</span> (wait_for_child && !state_signaled &&</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  wait_results != WAIT_TIMEOUT) {</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  <span class="comment">// If `WNOHANG` is set, then a successful wait should report either a</span></div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  <span class="comment">// timeout (since we set the time to wait to `0`), or a successful state</span></div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  <span class="comment">// change of `scoped_process`. Anything else is an error.</span></div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  errno = ECHILD;</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  <span class="keywordflow">retu
rn</span> <a class="code" href="classWindowsError.html">WindowsError</a>(</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  <span class="stringliteral">"os::waitpid: Failed to wait for pid '"</span> + <a class="code" href="namespacens.html#a28116b46e6543597a11733424cd1aa20">stringify</a>(pid) +</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  <span class="stringliteral">"'. `ENOHANG` flag was passed in, so `::WaitForSingleObject` should "</span> +</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  <span class="stringliteral">"have either returned `WAIT_OBJECT_0` or `WAIT_TIMEOUT` (the "</span> +</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  <span class="stringliteral">"timeout was set to 0, because we are not waiting for the child), "</span> +</div><div class="line"><a n
ame="l00283"></a><span class="lineno"> 283</span>  <span class="stringliteral">"but instead returned code '"</span> + <a class="code" href="namespacens.html#a28116b46e6543597a11733424cd1aa20">stringify</a>(wait_results) + <span class="stringliteral">"'"</span>);</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  }</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span> </div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  <span class="keywordflow">if</span> (!wait_for_child && wait_results == WAIT_TIMEOUT) {</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  <span class="comment">// Success. `ENOHANG` was set and we got a timeout, so return `None` (POSIX</span></div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  <span class="comment">// `::waitpid` would return 0 here).</sp
an></div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  <span class="keywordflow">return</span> <a class="code" href="structNone.html">None</a>();</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  }</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span> </div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  <span class="comment">// Attempt to retrieve exit code from child process. Store that exit code in</span></div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  <span class="comment">// the `status` variable if it's `nullptr`.</span></div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  DWORD child_exit_code = 0;</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  <span class="keywordflow">if</span> (!::GetExitCodeProcess(scoped_process.get(), &child_ex
it_code)) {</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  errno = ECHILD;</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  <span class="keywordflow">return</span> <a class="code" href="classWindowsError.html">WindowsError</a>(</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  <span class="stringliteral">"os::waitpid: Successfully waited on child process with pid '"</span> +</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  std::to_string(pid) + <span class="stringliteral">"', but could not retrieve exit code"</span>);</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  }</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span> </div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  <span class="keywordflow">if
</span> (status != <span class="keyword">nullptr</span>) {</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  *status = child_exit_code;</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  }</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span> </div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  <span class="comment">// Success. Return pid of the child process for which the status is reported.</span></div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  <span class="keywordflow">return</span> pid;</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span> }</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span> </div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span> </div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&
#160;<span class="keyword">inline</span> std::string <a class="code" href="namespaceos.html#a73c0258b355f6a38f3809bcd16a8f25a">hstrerror</a>(<span class="keywordtype">int</span> err) = <span class="keyword">delete</span>;</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span> </div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span> </div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span> <span class="keyword">inline</span> <a class="code" href="classTry.html">Try<Nothing></a> <a class="code" href="namespaceos.html#a9ea4b5bd8ccef02c74ceb9b4a497baab">chown</a>(</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  <a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#afc544433253791fc5f87b8203c9b6e63">uid_t</a> <a class="code" href="namespaceos_1_1stat.html#a96066cfc01f1f62fc25b56f6915800eb">uid</a>,</div><div class="line"><a name="l00316"></a><sp
an class="lineno"> 316</span>  <a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#a78ecefd3a9f3f0c110b9f6f038b690eb">gid_t</a> gid,</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  <span class="keyword">const</span> std::string& <a class="code" href="namespacepath.html">path</a>,</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  <span class="keywordtype">bool</span> recursive) = <span class="keyword">delete</span>;</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span> </div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span> </div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span> <span class="keyword">inline</span> <a class="code" href="classTry.html">Try<Nothing></a> <a class="code" href="namespaceos.html#ab9f08ced036cc5156a11a86090768bb5">chmod</a>(<span class="keyword">const</span> st
d::string& path, <span class="keywordtype">int</span> <a class="code" href="namespaceos_1_1stat.html#afc51654ad486693167c300612bf8ebfa">mode</a>) = <span class="keyword">delete</span>;</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span> </div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span> </div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span> <span class="keyword">inline</span> <a class="code" href="classTry.html">Try<Nothing></a> <a class="code" href="namespaceos.html#accb0757a8d9eca48dd31c4c433d17cfd">mknod</a>(</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  <span class="keyword">const</span> std::string& path,</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  <a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#a8a35dd1207a16dfa8b1d4163176d828c">mode_t</a> mode,</div><div class="li
ne"><a name="l00327"></a><span class="lineno"> 327</span>  dev_t <a class="code" href="namespaceos_1_1stat.html#a083c9ff4aefeba1a75a27e6a6d6e2a71">dev</a>) = <span class="keyword">delete</span>;</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span> </div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span> </div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span> <span class="comment">// Suspends execution for the given duration.</span></div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span> <span class="comment">// NOTE: This implementation features a millisecond-resolution sleep API, while</span></div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span> <span class="comment">// the POSIX version uses a nanosecond-resolution sleep API. As of this writing,</span></div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span> 
;<span class="comment">// Mesos only requires millisecond resolution, so this is ok for now.</span></div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span> <span class="keyword">inline</span> <a class="code" href="classTry.html">Try<Nothing></a> <a class="code" href="namespaceos.html#ab2b826c68a25af9e9ef47c570c36e137">sleep</a>(<span class="keyword">const</span> <a class="code" href="classDuration.html">Duration</a>& duration)</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span> {</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  <span class="keywordflow">if</span> (duration.<a class="code" href="classDuration.html#a05ddd6a9f21b82dba6313f81418f53d2">ms</a>() < 0) {</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  <span class="keywordflow">return</span> <a class="code" href="classWindowsError.html">WindowsError</a>(ERROR_INVALID_PARAMETER);</d
iv><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>  }</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span> </div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  ::Sleep(static_cast<DWORD>(duration.<a class="code" href="classDuration.html#a05ddd6a9f21b82dba6313f81418f53d2">ms</a>()));</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span> </div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  <span class="keywordflow">return</span> <a class="code" href="structNothing.html">Nothing</a>();</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span> }</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span> </div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span> </div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span> <span class
="comment">// Returns the list of files that match the given (shell) pattern.</span></div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span> <span class="comment">// NOTE: Deleted on Windows, as a POSIX-API-compliant `glob` is much more</span></div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span> <span class="comment">// trouble than its worth, considering our relatively simple usage.</span></div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span> <span class="keyword">inline</span> <a class="code" href="classTry.html">Try<std::list<std::string></a>> <a class="code" href="namespaceos.html#a781ae694650dd3c6addab2a383a8c422">glob</a>(<span class="keyword">const</span> std::string& pattern) = <span class="keyword">delete</span>;</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span> </div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#
160;</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span> <span class="comment">// Returns the total number of cpus (cores).</span></div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span> <span class="keyword">inline</span> <a class="code" href="classTry.html">Try<long></a> <a class="code" href="namespaceos.html#afd08813156fea899c86b340d9767a8cd">cpus</a>()</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span> {</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  SYSTEM_INFO sys_info;</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  ::GetSystemInfo(&sys_info);</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  <span class="keywordflow">return</span> <span class="keyword">static_cast<</span><span class="keywordtype">long</span><span class="keyword">></span>(sys_info.dwNumberOfProces
sors);</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span> }</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span> </div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span> <span class="comment">// Returns load struct with average system loads for the last</span></div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span> <span class="comment">// 1, 5 and 15 minutes respectively.</span></div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span> <span class="comment">// Load values should be interpreted as usual average loads from</span></div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span> <span class="comment">// uptime(1).</span></div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span> <span class="keyword">inline</span> <a class="code" href="classTry.html">Try<Load></a> <a class="code" hre
f="namespaceos.html#ad932e3876b339c61b03abc575ad3943b">loadavg</a>()</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span> {</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  <span class="comment">// No Windows equivalent, return an error until there is a need. We can</span></div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  <span class="comment">// construct an approximation of this function by periodically polling</span></div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  <span class="comment">// `GetSystemTimes` and using a sliding window of statistics.</span></div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  <span class="keywordflow">return</span> <a class="code" href="classWindowsError.html">WindowsError</a>(ERROR_NOT_SUPPORTED,</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span> 
<span class="stringliteral">"Failed to determine system load averages"</span>);</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span> }</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span> </div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span> </div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span> <span class="comment">// Returns the total size of main and free memory.</span></div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span> <span class="keyword">inline</span> <a class="code" href="classTry.html">Try<Memory></a> <a class="code" href="namespaceos.html#a23a7b8f4b4c145ad212381e89d4b6dc4">memory</a>()</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span> {</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  <a class="code" href="structos_1_1Memo
ry.html">Memory</a> <a class="code" href="namespaceos.html#a23a7b8f4b4c145ad212381e89d4b6dc4">memory</a>;</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span> </div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  MEMORYSTATUSEX memory_status;</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>  memory_status.dwLength = <span class="keyword">sizeof</span>(MEMORYSTATUSEX);</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>  <span class="keywordflow">if</span> (!::GlobalMemoryStatusEx(&memory_status)) {</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  <span class="keywordflow">return</span> <a class="code" href="classWindowsError.html">WindowsError</a>(<span class="stringliteral">"os::memory: Call to `GlobalMemoryStatusEx` failed"</span>);</div><div class="line"><a name="l00383"></a><span class="lineno"> 383<
/span>  }</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span> </div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>  memory.<a class="code" href="structos_1_1Memory.html#a3670204f7fb13a96ca0e278f49b91282">total</a> = <a class="code" href="classBytes.html">Bytes</a>(memory_status.ullTotalPhys);</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  memory.<a class="code" href="structos_1_1Memory.html#ab447e8e30892e0d5f0e3a976e6d80cde">free</a> = <a class="code" href="classBytes.html">Bytes</a>(memory_status.ullAvailPhys);</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  memory.<a class="code" href="structos_1_1Memory.html#a00f1a2071778c1ce10eff411fae079d5">totalSwap</a> = <a class="code" href="classBytes.html">Bytes</a>(memory_status.ullTotalPageFile);</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  memory.<a class=
"code" href="structos_1_1Memory.html#a99857d2d965390fe2e88f417037dce55">freeSwap</a> = <a class="code" href="classBytes.html">Bytes</a>(memory_status.ullAvailPageFile);</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span> </div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  <span class="keywordflow">return</span> <a class="code" href="namespaceos.html#a23a7b8f4b4c145ad212381e89d4b6dc4">memory</a>;</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span> }</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span> </div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span> </div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span> <span class="keyword">inline</span> <a class="code" href="classTry.html">Try<Version></a> <a class="code" href="namespaceos.html#a079aa1b108c567735620a14ea2a2e506">release</a>() = <span class
="keyword">delete</span>;</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span> </div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span> </div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span> <span class="comment">// Return the system information.</span></div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span> <span class="keyword">inline</span> <a class="code" href="classTry.html">Try<UTSInfo></a> <a class="code" href="namespaceos.html#afc96a896b632cb0942b317a1f8543919">uname</a>() = <span class="keyword">delete</span>;</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span> </div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span> </div><div class="line"><a name="l00401"></a><span class="lineno"><a class="line" href="namespaceos.html#a5e0295f0e3bae2bd29d86803f9293b5d"> 401</a></span> <span class="keyword">in
line</span> tm* <a class="code" href="namespaceos.html#a5e0295f0e3bae2bd29d86803f9293b5d">gmtime_r</a>(<span class="keyword">const</span> time_t* timep, tm* result)</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span> {</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>  return ::gmtime_s(result, timep) == ERROR_SUCCESS ? result : <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span> }</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span> </div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span> </div><div class="line"><a name="l00407"></a><span class="lineno"><a class="line" href="namespaceos.html#a64774f3176080d29eedcee42ae23c747"> 407</a></span> <span class="keyword">inline</span> <a class="code" href="classResult.html">Result<PROCESSENTRY32W></a> <a class="code" href="namespaceos.html#
a64774f3176080d29eedcee42ae23c747">process_entry</a>(<a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ab03ced250ed239bc3b50b669493997f9">pid_t</a> pid)</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span> {</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>  <span class="comment">// Get a snapshot of the processes in the system. NOTE: We should not check</span></div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  <span class="comment">// whether the handle is `nullptr`, because this API will always return</span></div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  <span class="comment">// `INVALID_HANDLE_VALUE` on error.</span></div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  <a class="code" href="namespacerouting_1_1queueing_1_1ingress.html#a934208b6017d0a9aed90b6594bb8292f">HANDLE</a> snapshot_han
dle = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, pid);</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>  <span class="keywordflow">if</span> (snapshot_handle == INVALID_HANDLE_VALUE) {</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>  <span class="keywordflow">return</span> <a class="code" href="classWindowsError.html">WindowsError</a>(</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>  <span class="stringliteral">"os::process_entry: Call to `CreateToolhelp32Snapshot` failed"</span>);</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>  }</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span> </div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  <a class="code" href="classSharedHandle.html">SharedHandle</a> safe_snapshot_handle(snapshot_handle, ::CloseHandle);</div><div
class="line"><a name="l00419"></a><span class="lineno"> 419</span> </div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>  <span class="comment">// Initialize process entry.</span></div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>  PROCESSENTRY32W <a class="code" href="namespaceos.html#a64774f3176080d29eedcee42ae23c747">process_entry</a>;</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>  memset(&process_entry, 0, <span class="keyword">sizeof</span>(process_entry));</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>  process_entry.dwSize = <span class="keyword">sizeof</span>(<a class="code" href="namespaceos.html#a64774f3176080d29eedcee42ae23c747">process_entry</a>);</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span> </div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  <span class
="comment">// Get first process so that we can loop through process entries until we</span></div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>  <span class="comment">// find the one we care about.</span></div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>  SetLastError(ERROR_SUCCESS);</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>  BOOL has_next = Process32First(safe_snapshot_handle.get(), &<a class="code" href="namespaceos.html#a64774f3176080d29eedcee42ae23c747">process_entry</a>);</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>  <span class="keywordflow">if</span> (has_next == FALSE) {</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>  <span class="comment">// No first process was found. We should never be here; it is arguable we</span></div><div class="line"><a name="l00431"></a><span class="lineno"> 431
</span>  <span class="comment">// should return `None`, since we won't find the PID we're looking for, but</span></div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>  <span class="comment">// we elect to return `Error` because something terrible has probably</span></div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>  <span class="comment">// happened.</span></div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>  <span class="keywordflow">if</span> (::GetLastError() != ERROR_SUCCESS) {</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>  <span class="keywordflow">return</span> <a class="code" href="classWindowsError.html">WindowsError</a>(<span class="stringliteral">"os::process_entry: Call to `Process32First` failed"</span>);</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>  } <span clas
s="keywordflow">else</span> {</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>  <span class="keywordflow">return</span> <a class="code" href="classError.html">Error</a>(<span class="stringliteral">"os::process_entry: Call to `Process32First` failed"</span>);</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>  }</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>  }</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span> </div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>  <span class="comment">// Loop through processes until we find the one we're looking for.</span></div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>  <span class="keywordflow">while</span> (has_next == TRUE) {</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>  <span class=
"keywordflow">if</span> (process_entry.th32ProcessID == pid) {</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>  <span class="comment">// Process found.</span></div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>  <span class="keywordflow">return</span> <a class="code" href="namespaceos.html#a64774f3176080d29eedcee42ae23c747">process_entry</a>;</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>  }</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span> </div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>  has_next = Process32Next(safe_snapshot_handle.get(), &<a class="code" href="namespaceos.html#a64774f3176080d29eedcee42ae23c747">process_entry</a>);</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>  <span class="keywordflow">if</span> (has_next == FALSE) {</div><div class="li
ne"><a name="l00450"></a><span class="lineno"> 450</span>  DWORD last_error = ::GetLastError();</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>  <span class="keywordflow">if</span> (last_error != ERROR_NO_MORE_FILES && last_error != ERROR_SUCCESS) {</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>  <span class="keywordflow">return</span> <a class="code" href="classWindowsError.html">WindowsError</a>(</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>  <span class="stringliteral">"os::process_entry: Call to `Process32Next` failed"</span>);</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>  }</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>  }</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>  }</div><div class="line"><a name="
l00457"></a><span class="lineno"> 457</span> </div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>  <span class="keywordflow">return</span> <a class="code" href="structNone.html">None</a>();</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span> }</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span> </div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span> </div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span> <span class="comment">// Generate a `Process` object for the process associated with `pid`. If</span></div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span> <span class="comment">// process is not found, we return `None`; error is reserved for the case where</span></div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span> <span class="comment">// something went wrong.</span></d
iv><div class="line"><a name="l00465"></a><span class="lineno"> 465</span> <span class="keyword">inline</span> <a class="code" href="classResult.html">Result<Process></a> <a class="code" href="namespaceos.html#ae19e4161a51b86a1f330f3bf1dc75389">process</a>(<a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ab03ced250ed239bc3b50b669493997f9">pid_t</a> pid)</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span> {</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>  <span class="keywordflow">if</span> (pid == 0) {</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>  <span class="comment">// The 0th PID is that of the System Idle Process on Windows. However, it is</span></div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>  <span class="comment">// invalid to attempt to get a proces handle or else perform any operation</span></d
iv><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>  <span class="comment">// on this pseudo-process.</span></div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>  <span class="keywordflow">return</span> <a class="code" href="classError.html">Error</a>(<span class="stringliteral">"os::process: Invalid parameter: pid == 0"</span>);</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>  }</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span> </div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>  <span class="comment">// Find process with pid.</span></div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>  <a class="code" href="classResult.html">Result<PROCESSENTRY32W></a> entry = <a class="code" href="namespaceos.html#a64774f3176080d29eedcee42ae23c747">process_entry</a>(pid);</div><div clas
s="line"><a name="l00476"></a><span class="lineno"> 476</span> </div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>  <span class="keywordflow">if</span> (entry.<a class="code" href="classResult.html#aeca16ad17d299ad885c9b46c83b12a3d">isError</a>()) {</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>  <span class="keywordflow">return</span> <a class="code" href="classWindowsError.html">WindowsError</a>(entry.<a class="code" href="classResult.html#a521adf96f5c27d26d6b1d580aae8aaee">error</a>());</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>  } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (entry.<a class="code" href="classResult.html#ac2cdc0db9f9d29a5bb2f1cf19c29da49">isNone</a>()) {</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>  <span class="keywordflow">return</span> <a class="code" href="structNone.html">
None</a>();</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>  }</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span> </div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>  <a class="code" href="namespacerouting_1_1queueing_1_1ingress.html#a934208b6017d0a9aed90b6594bb8292f">HANDLE</a> process_handle = ::OpenProcess(</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>  PROCESS_QUERY_LIMITED_INFORMATION | PROCESS_VM_READ,</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>  <span class="keyword">false</span>,</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>  pid);</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span> </div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>  <span class="comment">// ::OpenProcess returns `NULL`
, not `INVALID_HANDLE_VALUE` on failure.</span></div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>  <span class="keywordflow">if</span> (process_handle == <span class="keyword">nullptr</span>) {</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>  <span class="keywordflow">return</span> <a class="code" href="classWindowsError.html">WindowsError</a>(<span class="stringliteral">"os::process: Call to `OpenProcess` failed"</span>);</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>  }</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span> </div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>  <a class="code" href="classSharedHandle.html">SharedHandle</a> safe_process_handle(process_handle, ::CloseHandle);</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span> </div><div class="line"><a name="l
00495"></a><span class="lineno"> 495</span>  <span class="comment">// Get Windows Working set size (Resident set size in linux).</span></div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>  PROCESS_MEMORY_COUNTERS proc_mem_counters;</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>  BOOL get_process_memory_info = ::GetProcessMemoryInfo(</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>  safe_process_handle.<a class="code" href="classSharedHandle.html#a800385e17e17cb826147968e748fd8fa">get_handle</a>(),</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>  &proc_mem_counters,</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>  <span class="keyword">sizeof</span>(proc_mem_counters));</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span> </div><div class="line"><a name="l005
02"></a><span class="lineno"> 502</span>  <span class="keywordflow">if</span> (!get_process_memory_info) {</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>  <span class="keywordflow">return</span> <a class="code" href="classWindowsError.html">WindowsError</a>(<span class="stringliteral">"os::process: Call to `GetProcessMemoryInfo` failed"</span>);</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>  }</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span> </div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>  <span class="comment">// Get session Id.</span></div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>  <a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ab03ced250ed239bc3b50b669493997f9">pid_t</a> session_id;</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</sp
an>  BOOL process_id_to_session_id = ::ProcessIdToSessionId(pid, &session_id);</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span> </div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>  <span class="keywordflow">if</span> (!process_id_to_session_id) {</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>  <span class="keywordflow">return</span> <a class="code" href="classWindowsError.html">WindowsError</a>(<span class="stringliteral">"os::process: Call to `ProcessIdToSessionId` failed"</span>);</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>  }</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span> </div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>  <span class="comment">// Get Process CPU time.</span></div><div class="line"><a name="l00515"></a><span class="lineno"> 515</s
pan>  FILETIME create_filetime, exit_filetime, kernel_filetime, user_filetime;</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>  BOOL get_process_times = ::GetProcessTimes(</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>  safe_process_handle.<a class="code" href="classSharedHandle.html#a800385e17e17cb826147968e748fd8fa">get_handle</a>(),</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>  &create_filetime,</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>  &exit_filetime,</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>  &kernel_filetime,</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>  &user_filetime);</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span> </div><div class="line"><a name="l00523"></a><span c
lass="lineno"> 523</span>  <span class="keywordflow">if</span> (!get_process_times) {</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>  <span class="keywordflow">return</span> <a class="code" href="classWindowsError.html">WindowsError</a>(<span class="stringliteral">"os::process: Call to `GetProcessTimes` failed"</span>);</div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>  }</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span> </div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>  <span class="comment">// Get utime and stime.</span></div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>  ULARGE_INTEGER lKernelTime, lUserTime; <span class="comment">// In 100 nanoseconds.</span></div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>  lKernelTime.HighPart = kernel_filetime.dwHighDate
Time;</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>  lKernelTime.LowPart = kernel_filetime.dwLowDateTime;</div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>  lUserTime.HighPart = user_filetime.dwHighDateTime;</div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>  lUserTime.LowPart = user_filetime.dwLowDateTime;</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span> </div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>  <a class="code" href="classTry.html">Try<Duration></a> <a class="code" href="namespaceos.html#a818327458964860a86fc8964e4795b4d">utime</a> = <a class="code" href="classNanoseconds.html">Nanoseconds</a>(lKernelTime.QuadPart * 100);</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>  <a class="code" href="classTry.html">Try<Duration></a> stime = <a class="code" href="c
lassNanoseconds.html">Nanoseconds</a>(lUserTime.QuadPart * 100);</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span> </div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>  <span class="keywordflow">return</span> <a class="code" href="structos_1_1Process.html">Process</a>(</div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>  pid,</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>  entry.<a class="code" href="classResult.html#aedf79f3b14dcda5791b84a64ada4d412">get</a>().th32ParentProcessID, <span class="comment">// Parent process id.</span></div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>  0, <span class="comment">// Group id.</span></div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>  session_id,</div><div class="line"><a name="l005
42"></a><span class="lineno"> 542</span>  <a class="code" href="classBytes.html">Bytes</a>(proc_mem_counters.WorkingSetSize),</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>  utime.<a class="code" href="classTry.html#a6543d7d5db4f298bcd673bf3cd509acc">isSome</a>() ? utime.<a class="code" href="classTry.html#a8bc7f43e75a47111ea18e9c83b007be5">get</a>() : <a class="code" href="classOption.html#aca73609603df4687dba70c2a5df47ef8">Option<Duration>::none</a>(),</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>  stime.<a class="code" href="classTry.html#a6543d7d5db4f298bcd673bf3cd509acc">isSome</a>() ? stime.<a class="code" href="classTry.html#a8bc7f43e75a47111ea18e9c83b007be5">get</a>() : <a class="code" href="classOption.html#aca73609603df4687dba70c2a5df47ef8">Option<Duration>::none</a>(),</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>  <a class="c
ode" href="namespacens.html#a28116b46e6543597a11733424cd1aa20">stringify</a>(entry.<a class="code" href="classResult.html#aedf79f3b14dcda5791b84a64ada4d412">get</a>().szExeFile), <span class="comment">// Executable filename.</span></div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>  <span class="keyword">false</span>); <span class="comment">// Is not zombie process.</span></div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span> }</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span> </div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span> </div><div class="line"><a name="l00550"></a><span class="lineno"><a class="line" href="namespaceos.html#aede9f61dcb4b7d1f276302a7bce37446"> 550</a></span> <span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="namespaceos.html#aede9f61dcb4b7d1f2
76302a7bce37446">random</a>()</div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span> {</div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span> 
<TRUNCATED>
[42/50] mesos-site git commit: Updated the website built from mesos
SHA: 7c9c72d.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/classos_1_1WindowsFD-members.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/classos_1_1WindowsFD-members.html b/content/api/latest/c++/classos_1_1WindowsFD-members.html
index aec81ca..7f0a1b4 100644
--- a/content/api/latest/c++/classos_1_1WindowsFD-members.html
+++ b/content/api/latest/c++/classos_1_1WindowsFD-members.html
@@ -57,38 +57,41 @@
<p>This is the complete list of members for <a class="el" href="classos_1_1WindowsFD.html">os::WindowsFD</a>, including all inherited members.</p>
<table class="directory">
- <tr class="even"><td class="entry"><a class="el" href="classos_1_1WindowsFD.html#a94b69cae4edb8f3549845fbfa0355b7c">crt</a>() const </td><td class="entry"><a class="el" href="classos_1_1WindowsFD.html">os::WindowsFD</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="classos_1_1WindowsFD.html#afcf316b6f5178ce1b9002c4202aebcf6">handle_</a></td><td class="entry"><a class="el" href="classos_1_1WindowsFD.html">os::WindowsFD</a></td><td class="entry"></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classos_1_1WindowsFD.html#a4dce5dbc3d019589b4b61d6d17e1da45">is_overlapped</a>() const </td><td class="entry"><a class="el" href="classos_1_1WindowsFD.html">os::WindowsFD</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="classos_1_1WindowsFD.html#ab961444eec07c587c9a67122daf4fd33">is_valid</a>() const </td><td class="entry"><a class="el" href="classos_1_1WindowsFD.html">os::WindowsFD</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classos_1_1WindowsFD.html#a8ba56c5251264ab13aeaaa34cde39bdb">operator HANDLE</a>() const </td><td class="entry"><a class="el" href="classos_1_1WindowsFD.html">os::WindowsFD</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="classos_1_1WindowsFD.html#aa58f87561c2785c34ae7f34ce59abfe2">operator intptr_t</a>() const </td><td class="entry"><a class="el" href="classos_1_1WindowsFD.html">os::WindowsFD</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classos_1_1WindowsFD.html#a0826bf646e11186502039fcf869b2afc">operator SOCKET</a>() const </td><td class="entry"><a class="el" href="classos_1_1WindowsFD.html">os::WindowsFD</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="classos_1_1WindowsFD.html#a342803d2a16f81ca20f0e0c1c2e598d0">operator!=</a>(int left, const WindowsFD &right)</td><td class="entry"><a class="el" href="classos_1_1WindowsFD.html">os::WindowsFD</a></td><td class="entry"><span class="mlabel">friend</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classos_1_1WindowsFD.html#ab72f13c82b5f2fb8a646c5d0d50736e7">operator!=</a>(const WindowsFD &left, int right)</td><td class="entry"><a class="el" href="classos_1_1WindowsFD.html">os::WindowsFD</a></td><td class="entry"><span class="mlabel">friend</span></td></tr>
- <tr><td class="entry"><a class="el" href="classos_1_1WindowsFD.html#a64a9d1d43e26808ec565056c183ae56f">operator<</a>(int left, const WindowsFD &right)</td><td class="entry"><a class="el" href="classos_1_1WindowsFD.html">os::WindowsFD</a></td><td class="entry"><span class="mlabel">friend</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classos_1_1WindowsFD.html#a74d759a0ba3830e9c80196853846f33b">operator<</a>(const WindowsFD &left, int right)</td><td class="entry"><a class="el" href="classos_1_1WindowsFD.html">os::WindowsFD</a></td><td class="entry"><span class="mlabel">friend</span></td></tr>
- <tr><td class="entry"><a class="el" href="classos_1_1WindowsFD.html#afd05a43697b99aa8b7da8d56155b1a49">operator<=</a>(int left, const WindowsFD &right)</td><td class="entry"><a class="el" href="classos_1_1WindowsFD.html">os::WindowsFD</a></td><td class="entry"><span class="mlabel">friend</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classos_1_1WindowsFD.html#abdc31b1c170a2c34afa8e3b6e4b062e4">operator<=</a>(const WindowsFD &left, int right)</td><td class="entry"><a class="el" href="classos_1_1WindowsFD.html">os::WindowsFD</a></td><td class="entry"><span class="mlabel">friend</span></td></tr>
- <tr><td class="entry"><a class="el" href="classos_1_1WindowsFD.html#ab780d87119c772425aa855260056d1a1">operator=</a>(const WindowsFD &)=default</td><td class="entry"><a class="el" href="classos_1_1WindowsFD.html">os::WindowsFD</a></td><td class="entry"></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classos_1_1WindowsFD.html#a057780cfa5e1cc2fa84543a6f9b6bca0">operator=</a>(WindowsFD &&)=default</td><td class="entry"><a class="el" href="classos_1_1WindowsFD.html">os::WindowsFD</a></td><td class="entry"></td></tr>
- <tr><td class="entry"><a class="el" href="classos_1_1WindowsFD.html#a833e23bea1f10420bbd7139d1e8539ad">operator==</a>(int left, const WindowsFD &right)</td><td class="entry"><a class="el" href="classos_1_1WindowsFD.html">os::WindowsFD</a></td><td class="entry"><span class="mlabel">friend</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classos_1_1WindowsFD.html#ac9877f8cf4ddc33a161663fd2ab1355d">operator==</a>(const WindowsFD &left, int right)</td><td class="entry"><a class="el" href="classos_1_1WindowsFD.html">os::WindowsFD</a></td><td class="entry"><span class="mlabel">friend</span></td></tr>
- <tr><td class="entry"><a class="el" href="classos_1_1WindowsFD.html#aabdbd9806af44043dfff1cf9aeeee869">operator></a>(int left, const WindowsFD &right)</td><td class="entry"><a class="el" href="classos_1_1WindowsFD.html">os::WindowsFD</a></td><td class="entry"><span class="mlabel">friend</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classos_1_1WindowsFD.html#a776aca0bca92649b15733ecb53bd9371">operator></a>(const WindowsFD &left, int right)</td><td class="entry"><a class="el" href="classos_1_1WindowsFD.html">os::WindowsFD</a></td><td class="entry"><span class="mlabel">friend</span></td></tr>
- <tr><td class="entry"><a class="el" href="classos_1_1WindowsFD.html#a23d70e92fe2ee8da692f4e9b1b9e1e43">operator>=</a>(int left, const WindowsFD &right)</td><td class="entry"><a class="el" href="classos_1_1WindowsFD.html">os::WindowsFD</a></td><td class="entry"><span class="mlabel">friend</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classos_1_1WindowsFD.html#a9aa231ba576db9e75b5589a85df6460f">operator>=</a>(const WindowsFD &left, int right)</td><td class="entry"><a class="el" href="classos_1_1WindowsFD.html">os::WindowsFD</a></td><td class="entry"><span class="mlabel">friend</span></td></tr>
- <tr><td class="entry"><a class="el" href="classos_1_1WindowsFD.html#a05016bee9531c79ce4576c9b8d9c9922">socket_</a></td><td class="entry"><a class="el" href="classos_1_1WindowsFD.html">os::WindowsFD</a></td><td class="entry"></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classos_1_1WindowsFD.html#ac0377db41e1c167339c97dbd69c79ae5">Type</a> enum name</td><td class="entry"><a class="el" href="classos_1_1WindowsFD.html">os::WindowsFD</a></td><td class="entry"></td></tr>
- <tr><td class="entry"><a class="el" href="classos_1_1WindowsFD.html#a3ce17a730ace5352a1fc6d49f8336d52">type</a>() const </td><td class="entry"><a class="el" href="classos_1_1WindowsFD.html">os::WindowsFD</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classos_1_1WindowsFD.html#a421497a56ee02f01dd4f0773d07eaa76">WindowsFD</a>(HANDLE handle, bool overlapped=false)</td><td class="entry"><a class="el" href="classos_1_1WindowsFD.html">os::WindowsFD</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
- <tr><td class="entry"><a class="el" href="classos_1_1WindowsFD.html#a33cd936b5641a029b1ea2da80d71c748">WindowsFD</a>(SOCKET socket, bool overlapped=true)</td><td class="entry"><a class="el" href="classos_1_1WindowsFD.html">os::WindowsFD</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classos_1_1WindowsFD.html#a43994eeb484a426990af657f691f66e0">WindowsFD</a>(intptr_t socket)</td><td class="entry"><a class="el" href="classos_1_1WindowsFD.html">os::WindowsFD</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
- <tr><td class="entry"><a class="el" href="classos_1_1WindowsFD.html#a278285643f263655c5f64f45451fc6e6">WindowsFD</a>(int crt)</td><td class="entry"><a class="el" href="classos_1_1WindowsFD.html">os::WindowsFD</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classos_1_1WindowsFD.html#a68733e16ee25fe8602557e6e9f534bc9">WindowsFD</a>()</td><td class="entry"><a class="el" href="classos_1_1WindowsFD.html">os::WindowsFD</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="classos_1_1WindowsFD.html#a3436f11ccbb859379717ac91e96f7144">WindowsFD</a>(const WindowsFD &)=default</td><td class="entry"><a class="el" href="classos_1_1WindowsFD.html">os::WindowsFD</a></td><td class="entry"></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classos_1_1WindowsFD.html#a79c98e3c78c0a7155a8ed9f42832fd5d">WindowsFD</a>(WindowsFD &&)=default</td><td class="entry"><a class="el" href="classos_1_1WindowsFD.html">os::WindowsFD</a></td><td class="entry"></td></tr>
- <tr><td class="entry"><a class="el" href="classos_1_1WindowsFD.html#ad2ce21d9f77710472e19843e3e86343e">~WindowsFD</a>()=default</td><td class="entry"><a class="el" href="classos_1_1WindowsFD.html">os::WindowsFD</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classos_1_1WindowsFD.html#a1a9c96c20213e1b94ba8dcc1bb059163">assign_iocp</a>(HANDLE target, ULONG_PTR key) const </td><td class="entry"><a class="el" href="classos_1_1WindowsFD.html">os::WindowsFD</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classos_1_1WindowsFD.html#a94b69cae4edb8f3549845fbfa0355b7c">crt</a>() const </td><td class="entry"><a class="el" href="classos_1_1WindowsFD.html">os::WindowsFD</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classos_1_1WindowsFD.html#ae8d4fd38b52ea9f38605f46195fd040b">dup</a>(const WindowsFD &fd)</td><td class="entry"><a class="el" href="classos_1_1WindowsFD.html">os::WindowsFD</a></td><td class="entry"><span class="mlabel">friend</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classos_1_1WindowsFD.html#a380eb8d9b7bc0e6b3bfae0e8e9c6bb0f">get_iocp</a>() const </td><td class="entry"><a class="el" href="classos_1_1WindowsFD.html">os::WindowsFD</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classos_1_1WindowsFD.html#afcf316b6f5178ce1b9002c4202aebcf6">handle_</a></td><td class="entry"><a class="el" href="classos_1_1WindowsFD.html">os::WindowsFD</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classos_1_1WindowsFD.html#a4dce5dbc3d019589b4b61d6d17e1da45">is_overlapped</a>() const </td><td class="entry"><a class="el" href="classos_1_1WindowsFD.html">os::WindowsFD</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classos_1_1WindowsFD.html#ab961444eec07c587c9a67122daf4fd33">is_valid</a>() const </td><td class="entry"><a class="el" href="classos_1_1WindowsFD.html">os::WindowsFD</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classos_1_1WindowsFD.html#a8ba56c5251264ab13aeaaa34cde39bdb">operator HANDLE</a>() const </td><td class="entry"><a class="el" href="classos_1_1WindowsFD.html">os::WindowsFD</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classos_1_1WindowsFD.html#aa58f87561c2785c34ae7f34ce59abfe2">operator intptr_t</a>() const </td><td class="entry"><a class="el" href="classos_1_1WindowsFD.html">os::WindowsFD</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classos_1_1WindowsFD.html#a0826bf646e11186502039fcf869b2afc">operator SOCKET</a>() const </td><td class="entry"><a class="el" href="classos_1_1WindowsFD.html">os::WindowsFD</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classos_1_1WindowsFD.html#a342803d2a16f81ca20f0e0c1c2e598d0">operator!=</a>(int left, const WindowsFD &right)</td><td class="entry"><a class="el" href="classos_1_1WindowsFD.html">os::WindowsFD</a></td><td class="entry"><span class="mlabel">friend</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classos_1_1WindowsFD.html#ab72f13c82b5f2fb8a646c5d0d50736e7">operator!=</a>(const WindowsFD &left, int right)</td><td class="entry"><a class="el" href="classos_1_1WindowsFD.html">os::WindowsFD</a></td><td class="entry"><span class="mlabel">friend</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classos_1_1WindowsFD.html#a64a9d1d43e26808ec565056c183ae56f">operator<</a>(int left, const WindowsFD &right)</td><td class="entry"><a class="el" href="classos_1_1WindowsFD.html">os::WindowsFD</a></td><td class="entry"><span class="mlabel">friend</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classos_1_1WindowsFD.html#a74d759a0ba3830e9c80196853846f33b">operator<</a>(const WindowsFD &left, int right)</td><td class="entry"><a class="el" href="classos_1_1WindowsFD.html">os::WindowsFD</a></td><td class="entry"><span class="mlabel">friend</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classos_1_1WindowsFD.html#afd05a43697b99aa8b7da8d56155b1a49">operator<=</a>(int left, const WindowsFD &right)</td><td class="entry"><a class="el" href="classos_1_1WindowsFD.html">os::WindowsFD</a></td><td class="entry"><span class="mlabel">friend</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classos_1_1WindowsFD.html#abdc31b1c170a2c34afa8e3b6e4b062e4">operator<=</a>(const WindowsFD &left, int right)</td><td class="entry"><a class="el" href="classos_1_1WindowsFD.html">os::WindowsFD</a></td><td class="entry"><span class="mlabel">friend</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classos_1_1WindowsFD.html#ab780d87119c772425aa855260056d1a1">operator=</a>(const WindowsFD &)=default</td><td class="entry"><a class="el" href="classos_1_1WindowsFD.html">os::WindowsFD</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classos_1_1WindowsFD.html#a057780cfa5e1cc2fa84543a6f9b6bca0">operator=</a>(WindowsFD &&)=default</td><td class="entry"><a class="el" href="classos_1_1WindowsFD.html">os::WindowsFD</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classos_1_1WindowsFD.html#a833e23bea1f10420bbd7139d1e8539ad">operator==</a>(int left, const WindowsFD &right)</td><td class="entry"><a class="el" href="classos_1_1WindowsFD.html">os::WindowsFD</a></td><td class="entry"><span class="mlabel">friend</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classos_1_1WindowsFD.html#ac9877f8cf4ddc33a161663fd2ab1355d">operator==</a>(const WindowsFD &left, int right)</td><td class="entry"><a class="el" href="classos_1_1WindowsFD.html">os::WindowsFD</a></td><td class="entry"><span class="mlabel">friend</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classos_1_1WindowsFD.html#aabdbd9806af44043dfff1cf9aeeee869">operator></a>(int left, const WindowsFD &right)</td><td class="entry"><a class="el" href="classos_1_1WindowsFD.html">os::WindowsFD</a></td><td class="entry"><span class="mlabel">friend</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classos_1_1WindowsFD.html#a776aca0bca92649b15733ecb53bd9371">operator></a>(const WindowsFD &left, int right)</td><td class="entry"><a class="el" href="classos_1_1WindowsFD.html">os::WindowsFD</a></td><td class="entry"><span class="mlabel">friend</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classos_1_1WindowsFD.html#a23d70e92fe2ee8da692f4e9b1b9e1e43">operator>=</a>(int left, const WindowsFD &right)</td><td class="entry"><a class="el" href="classos_1_1WindowsFD.html">os::WindowsFD</a></td><td class="entry"><span class="mlabel">friend</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classos_1_1WindowsFD.html#a9aa231ba576db9e75b5589a85df6460f">operator>=</a>(const WindowsFD &left, int right)</td><td class="entry"><a class="el" href="classos_1_1WindowsFD.html">os::WindowsFD</a></td><td class="entry"><span class="mlabel">friend</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classos_1_1WindowsFD.html#a05016bee9531c79ce4576c9b8d9c9922">socket_</a></td><td class="entry"><a class="el" href="classos_1_1WindowsFD.html">os::WindowsFD</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classos_1_1WindowsFD.html#ac0377db41e1c167339c97dbd69c79ae5">Type</a> enum name</td><td class="entry"><a class="el" href="classos_1_1WindowsFD.html">os::WindowsFD</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classos_1_1WindowsFD.html#a3ce17a730ace5352a1fc6d49f8336d52">type</a>() const </td><td class="entry"><a class="el" href="classos_1_1WindowsFD.html">os::WindowsFD</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classos_1_1WindowsFD.html#a421497a56ee02f01dd4f0773d07eaa76">WindowsFD</a>(HANDLE handle, bool overlapped=false)</td><td class="entry"><a class="el" href="classos_1_1WindowsFD.html">os::WindowsFD</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classos_1_1WindowsFD.html#a33cd936b5641a029b1ea2da80d71c748">WindowsFD</a>(SOCKET socket, bool overlapped=true)</td><td class="entry"><a class="el" href="classos_1_1WindowsFD.html">os::WindowsFD</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classos_1_1WindowsFD.html#a43994eeb484a426990af657f691f66e0">WindowsFD</a>(intptr_t socket)</td><td class="entry"><a class="el" href="classos_1_1WindowsFD.html">os::WindowsFD</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classos_1_1WindowsFD.html#a278285643f263655c5f64f45451fc6e6">WindowsFD</a>(int crt)</td><td class="entry"><a class="el" href="classos_1_1WindowsFD.html">os::WindowsFD</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classos_1_1WindowsFD.html#a68733e16ee25fe8602557e6e9f534bc9">WindowsFD</a>()</td><td class="entry"><a class="el" href="classos_1_1WindowsFD.html">os::WindowsFD</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classos_1_1WindowsFD.html#a3436f11ccbb859379717ac91e96f7144">WindowsFD</a>(const WindowsFD &)=default</td><td class="entry"><a class="el" href="classos_1_1WindowsFD.html">os::WindowsFD</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classos_1_1WindowsFD.html#a79c98e3c78c0a7155a8ed9f42832fd5d">WindowsFD</a>(WindowsFD &&)=default</td><td class="entry"><a class="el" href="classos_1_1WindowsFD.html">os::WindowsFD</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classos_1_1WindowsFD.html#ad2ce21d9f77710472e19843e3e86343e">~WindowsFD</a>()=default</td><td class="entry"><a class="el" href="classos_1_1WindowsFD.html">os::WindowsFD</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/classos_1_1WindowsFD.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/classos_1_1WindowsFD.html b/content/api/latest/c++/classos_1_1WindowsFD.html
index 5ae009a..34b6448 100644
--- a/content/api/latest/c++/classos_1_1WindowsFD.html
+++ b/content/api/latest/c++/classos_1_1WindowsFD.html
@@ -51,6 +51,7 @@
</div><!-- top -->
<div class="header">
<div class="summary">
+<a href="#nested-classes">Classes</a> |
<a href="#pub-types">Public Types</a> |
<a href="#pub-methods">Public Member Functions</a> |
<a href="#friends">Friends</a> |
@@ -105,6 +106,10 @@ Public Member Functions</h2></td></tr>
<tr class="separator:a3ce17a730ace5352a1fc6d49f8336d52"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a4dce5dbc3d019589b4b61d6d17e1da45"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classos_1_1WindowsFD.html#a4dce5dbc3d019589b4b61d6d17e1da45">is_overlapped</a> () const </td></tr>
<tr class="separator:a4dce5dbc3d019589b4b61d6d17e1da45"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a1a9c96c20213e1b94ba8dcc1bb059163"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classTry.html">Try</a>< HANDLE > </td><td class="memItemRight" valign="bottom"><a class="el" href="classos_1_1WindowsFD.html#a1a9c96c20213e1b94ba8dcc1bb059163">assign_iocp</a> (HANDLE target, ULONG_PTR key) const </td></tr>
+<tr class="separator:a1a9c96c20213e1b94ba8dcc1bb059163"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a380eb8d9b7bc0e6b3bfae0e8e9c6bb0f"><td class="memItemLeft" align="right" valign="top">HANDLE </td><td class="memItemRight" valign="bottom"><a class="el" href="classos_1_1WindowsFD.html#a380eb8d9b7bc0e6b3bfae0e8e9c6bb0f">get_iocp</a> () const </td></tr>
+<tr class="separator:a380eb8d9b7bc0e6b3bfae0e8e9c6bb0f"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
Friends</h2></td></tr>
@@ -132,6 +137,8 @@ Friends</h2></td></tr>
<tr class="separator:a342803d2a16f81ca20f0e0c1c2e598d0"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ab72f13c82b5f2fb8a646c5d0d50736e7"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classos_1_1WindowsFD.html#ab72f13c82b5f2fb8a646c5d0d50736e7">operator!=</a> (const <a class="el" href="classos_1_1WindowsFD.html">WindowsFD</a> &left, int right)</td></tr>
<tr class="separator:ab72f13c82b5f2fb8a646c5d0d50736e7"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ae8d4fd38b52ea9f38605f46195fd040b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classTry.html">Try</a>< <a class="el" href="classos_1_1WindowsFD.html">WindowsFD</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classos_1_1WindowsFD.html#ae8d4fd38b52ea9f38605f46195fd040b">dup</a> (const <a class="el" href="classos_1_1WindowsFD.html">WindowsFD</a> &fd)</td></tr>
+<tr class="separator:ae8d4fd38b52ea9f38605f46195fd040b"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<h2 class="groupheader">Member Enumeration Documentation</h2>
<a class="anchor" id="ac0377db41e1c167339c97dbd69c79ae5"></a>
@@ -372,6 +379,40 @@ Friends</h2></td></tr>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="a1a9c96c20213e1b94ba8dcc1bb059163"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classTry.html">Try</a><HANDLE> os::WindowsFD::assign_iocp </td>
+ <td>(</td>
+ <td class="paramtype">HANDLE </td>
+ <td class="paramname"><em>target</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">ULONG_PTR </td>
+ <td class="paramname"><em>key</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
<a class="anchor" id="a94b69cae4edb8f3549845fbfa0355b7c"></a>
<div class="memitem">
<div class="memproto">
@@ -395,6 +436,29 @@ Friends</h2></td></tr>
</div>
</div>
+<a class="anchor" id="a380eb8d9b7bc0e6b3bfae0e8e9c6bb0f"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">HANDLE os::WindowsFD::get_iocp </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
<a class="anchor" id="a4dce5dbc3d019589b4b61d6d17e1da45"></a>
<div class="memitem">
<div class="memproto">
@@ -582,6 +646,30 @@ Friends</h2></td></tr>
</div>
</div>
<h2 class="groupheader">Friends And Related Function Documentation</h2>
+<a class="anchor" id="ae8d4fd38b52ea9f38605f46195fd040b"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classTry.html">Try</a><<a class="el" href="classos_1_1WindowsFD.html">WindowsFD</a>> dup </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="classos_1_1WindowsFD.html">WindowsFD</a> & </td>
+ <td class="paramname"><em>fd</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">friend</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
<a class="anchor" id="a342803d2a16f81ca20f0e0c1c2e598d0"></a>
<div class="memitem">
<div class="memproto">
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/classprocess_1_1Subprocess.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/classprocess_1_1Subprocess.html b/content/api/latest/c++/classprocess_1_1Subprocess.html
index 750e925..dfd31f3 100644
--- a/content/api/latest/c++/classprocess_1_1Subprocess.html
+++ b/content/api/latest/c++/classprocess_1_1Subprocess.html
@@ -64,7 +64,7 @@
<p>Represents a fork() exec()ed subprocess.
<a href="classprocess_1_1Subprocess.html#details">More...</a></p>
-<p><code>#include <<a class="el" href="subprocess_8hpp_source.html">subprocess.hpp</a>></code></p>
+<p><code>#include <<a class="el" href="include_2process_2subprocess_8hpp_source.html">subprocess.hpp</a>></code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
@@ -410,7 +410,7 @@ Friends</h2></td></tr>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
-<li>3rdparty/libprocess/include/process/<a class="el" href="subprocess_8hpp_source.html">subprocess.hpp</a></li>
+<li>3rdparty/libprocess/include/process/<a class="el" href="include_2process_2subprocess_8hpp_source.html">subprocess.hpp</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/classprocess_1_1Subprocess_1_1ChildHook.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/classprocess_1_1Subprocess_1_1ChildHook.html b/content/api/latest/c++/classprocess_1_1Subprocess_1_1ChildHook.html
index 950d787..65d4aad 100644
--- a/content/api/latest/c++/classprocess_1_1Subprocess_1_1ChildHook.html
+++ b/content/api/latest/c++/classprocess_1_1Subprocess_1_1ChildHook.html
@@ -62,7 +62,7 @@
<p>A <code><a class="el" href="classprocess_1_1Subprocess_1_1ChildHook.html" title="A ChildHook can be passed to a subprocess call. ">ChildHook</a></code> can be passed to a <code>subprocess</code> call.
<a href="classprocess_1_1Subprocess_1_1ChildHook.html#details">More...</a></p>
-<p><code>#include <<a class="el" href="subprocess_8hpp_source.html">subprocess.hpp</a>></code></p>
+<p><code>#include <<a class="el" href="include_2process_2subprocess_8hpp_source.html">subprocess.hpp</a>></code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
@@ -255,7 +255,7 @@ Static Public Member Functions</h2></td></tr>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
-<li>3rdparty/libprocess/include/process/<a class="el" href="subprocess_8hpp_source.html">subprocess.hpp</a></li>
+<li>3rdparty/libprocess/include/process/<a class="el" href="include_2process_2subprocess_8hpp_source.html">subprocess.hpp</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/classprocess_1_1Subprocess_1_1IO.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/classprocess_1_1Subprocess_1_1IO.html b/content/api/latest/c++/classprocess_1_1Subprocess_1_1IO.html
index 6cf176d..f89bfb9 100644
--- a/content/api/latest/c++/classprocess_1_1Subprocess_1_1IO.html
+++ b/content/api/latest/c++/classprocess_1_1Subprocess_1_1IO.html
@@ -63,7 +63,7 @@
<p>Describes how the I/O is redirected for stdin/stdout/stderr.
<a href="classprocess_1_1Subprocess_1_1IO.html#details">More...</a></p>
-<p><code>#include <<a class="el" href="subprocess_8hpp_source.html">subprocess.hpp</a>></code></p>
+<p><code>#include <<a class="el" href="include_2process_2subprocess_8hpp_source.html">subprocess.hpp</a>></code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
@@ -231,7 +231,7 @@ Friends</h2></td></tr>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
-<li>3rdparty/libprocess/include/process/<a class="el" href="subprocess_8hpp_source.html">subprocess.hpp</a></li>
+<li>3rdparty/libprocess/include/process/<a class="el" href="include_2process_2subprocess_8hpp_source.html">subprocess.hpp</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/classprocess_1_1network_1_1internal_1_1LibeventSSLSocketImpl.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/classprocess_1_1network_1_1internal_1_1LibeventSSLSocketImpl.html b/content/api/latest/c++/classprocess_1_1network_1_1internal_1_1LibeventSSLSocketImpl.html
index 1d0affb..70d4d27 100644
--- a/content/api/latest/c++/classprocess_1_1network_1_1internal_1_1LibeventSSLSocketImpl.html
+++ b/content/api/latest/c++/classprocess_1_1network_1_1internal_1_1LibeventSSLSocketImpl.html
@@ -486,7 +486,7 @@ Additional Inherited Members</h2></td></tr>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
-<li>3rdparty/libprocess/src/<a class="el" href="libevent__ssl__socket_8hpp_source.html">libevent_ssl_socket.hpp</a></li>
+<li>3rdparty/libprocess/src/posix/libevent/<a class="el" href="libevent__ssl__socket_8hpp_source.html">libevent_ssl_socket.hpp</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/classprocess_1_1windows_1_1EventLoop-members.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/classprocess_1_1windows_1_1EventLoop-members.html b/content/api/latest/c++/classprocess_1_1windows_1_1EventLoop-members.html
new file mode 100644
index 0000000..1c267f8
--- /dev/null
+++ b/content/api/latest/c++/classprocess_1_1windows_1_1EventLoop-members.html
@@ -0,0 +1,73 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.11"/>
+<title>Apache Mesos: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">Apache Mesos
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="pages.html"><span>Related Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li><a href="examples.html"><span>Examples</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class List</span></a></li>
+ <li><a href="classes.html"><span>Class Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class Members</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceprocess.html">process</a></li><li class="navelem"><a class="el" href="namespaceprocess_1_1windows.html">windows</a></li><li class="navelem"><a class="el" href="classprocess_1_1windows_1_1EventLoop.html">EventLoop</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">process::windows::EventLoop Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classprocess_1_1windows_1_1EventLoop.html">process::windows::EventLoop</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classprocess_1_1windows_1_1EventLoop.html#a3bd3da5d721cf2c4db9c5551bdccc3a4">create</a>()</td><td class="entry"><a class="el" href="classprocess_1_1windows_1_1EventLoop.html">process::windows::EventLoop</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classprocess_1_1windows_1_1EventLoop.html#a006cb0c8efb7aaadadf0a692d9c2659a">launchTimer</a>(const Duration &duration, const lambda::function< void()> &callback)</td><td class="entry"><a class="el" href="classprocess_1_1windows_1_1EventLoop.html">process::windows::EventLoop</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classprocess_1_1windows_1_1EventLoop.html#a832a73998bb3b26b7caa770ceef38827">registerHandle</a>(const int_fd &fd)</td><td class="entry"><a class="el" href="classprocess_1_1windows_1_1EventLoop.html">process::windows::EventLoop</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classprocess_1_1windows_1_1EventLoop.html#a2578b5fad0eb039f995955c798310c86">run</a>()</td><td class="entry"><a class="el" href="classprocess_1_1windows_1_1EventLoop.html">process::windows::EventLoop</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classprocess_1_1windows_1_1EventLoop.html#a8a07fc602e31875e6cbcaeac8008f09a">stop</a>()</td><td class="entry"><a class="el" href="classprocess_1_1windows_1_1EventLoop.html">process::windows::EventLoop</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.11
+</small></address>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/classprocess_1_1windows_1_1EventLoop.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/classprocess_1_1windows_1_1EventLoop.html b/content/api/latest/c++/classprocess_1_1windows_1_1EventLoop.html
new file mode 100644
index 0000000..04d1d9d
--- /dev/null
+++ b/content/api/latest/c++/classprocess_1_1windows_1_1EventLoop.html
@@ -0,0 +1,188 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.11"/>
+<title>Apache Mesos: process::windows::EventLoop Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">Apache Mesos
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="pages.html"><span>Related Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li><a href="examples.html"><span>Examples</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class List</span></a></li>
+ <li><a href="classes.html"><span>Class Index</span></a></li>
+ <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
+ <li><a href="functions.html"><span>Class Members</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="namespaceprocess.html">process</a></li><li class="navelem"><a class="el" href="namespaceprocess_1_1windows.html">windows</a></li><li class="navelem"><a class="el" href="classprocess_1_1windows_1_1EventLoop.html">EventLoop</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> |
+<a href="#pub-methods">Public Member Functions</a> |
+<a href="#pub-static-methods">Static Public Member Functions</a> |
+<a href="classprocess_1_1windows_1_1EventLoop-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">process::windows::EventLoop Class Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p><code>#include <<a class="el" href="libwinio_8hpp_source.html">libwinio.hpp</a>></code></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a2578b5fad0eb039f995955c798310c86"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classTry.html">Try</a>< <a class="el" href="structNothing.html">Nothing</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classprocess_1_1windows_1_1EventLoop.html#a2578b5fad0eb039f995955c798310c86">run</a> ()</td></tr>
+<tr class="separator:a2578b5fad0eb039f995955c798310c86"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a8a07fc602e31875e6cbcaeac8008f09a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classTry.html">Try</a>< <a class="el" href="structNothing.html">Nothing</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classprocess_1_1windows_1_1EventLoop.html#a8a07fc602e31875e6cbcaeac8008f09a">stop</a> ()</td></tr>
+<tr class="separator:a8a07fc602e31875e6cbcaeac8008f09a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a006cb0c8efb7aaadadf0a692d9c2659a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classTry.html">Try</a>< <a class="el" href="structNothing.html">Nothing</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classprocess_1_1windows_1_1EventLoop.html#a006cb0c8efb7aaadadf0a692d9c2659a">launchTimer</a> (const <a class="el" href="classDuration.html">Duration</a> &duration, const lambda::function< void()> &callback)</td></tr>
+<tr class="separator:a006cb0c8efb7aaadadf0a692d9c2659a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a832a73998bb3b26b7caa770ceef38827"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classTry.html">Try</a>< <a class="el" href="structNothing.html">Nothing</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classprocess_1_1windows_1_1EventLoop.html#a832a73998bb3b26b7caa770ceef38827">registerHandle</a> (const <a class="el" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> &fd)</td></tr>
+<tr class="separator:a832a73998bb3b26b7caa770ceef38827"><td class="memSeparator" colspan="2"> </td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
+Static Public Member Functions</h2></td></tr>
+<tr class="memitem:a3bd3da5d721cf2c4db9c5551bdccc3a4"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classTry.html">Try</a>< <a class="el" href="classprocess_1_1windows_1_1EventLoop.html">EventLoop</a> * > </td><td class="memItemRight" valign="bottom"><a class="el" href="classprocess_1_1windows_1_1EventLoop.html#a3bd3da5d721cf2c4db9c5551bdccc3a4">create</a> ()</td></tr>
+<tr class="separator:a3bd3da5d721cf2c4db9c5551bdccc3a4"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="a3bd3da5d721cf2c4db9c5551bdccc3a4"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static <a class="el" href="classTry.html">Try</a><<a class="el" href="classprocess_1_1windows_1_1EventLoop.html">EventLoop</a>*> process::windows::EventLoop::create </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a006cb0c8efb7aaadadf0a692d9c2659a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classTry.html">Try</a><<a class="el" href="structNothing.html">Nothing</a>> process::windows::EventLoop::launchTimer </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="classDuration.html">Duration</a> & </td>
+ <td class="paramname"><em>duration</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const lambda::function< void()> & </td>
+ <td class="paramname"><em>callback</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a832a73998bb3b26b7caa770ceef38827"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classTry.html">Try</a><<a class="el" href="structNothing.html">Nothing</a>> process::windows::EventLoop::registerHandle </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> & </td>
+ <td class="paramname"><em>fd</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a2578b5fad0eb039f995955c798310c86"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classTry.html">Try</a><<a class="el" href="structNothing.html">Nothing</a>> process::windows::EventLoop::run </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a8a07fc602e31875e6cbcaeac8008f09a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="classTry.html">Try</a><<a class="el" href="structNothing.html">Nothing</a>> process::windows::EventLoop::stop </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>3rdparty/libprocess/src/windows/<a class="el" href="libwinio_8hpp_source.html">libwinio.hpp</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.11
+</small></address>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/cni_8hpp.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/cni_8hpp.html b/content/api/latest/c++/cni_8hpp.html
index 07d678d..32d4b1e 100644
--- a/content/api/latest/c++/cni_8hpp.html
+++ b/content/api/latest/c++/cni_8hpp.html
@@ -56,7 +56,7 @@
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include <<a class="el" href="id_8hpp_source.html">process/id.hpp</a>></code><br />
-<code>#include <<a class="el" href="subprocess_8hpp_source.html">process/subprocess.hpp</a>></code><br />
+<code>#include <<a class="el" href="include_2process_2subprocess_8hpp_source.html">process/subprocess.hpp</a>></code><br />
<code>#include <<a class="el" href="subcommand_8hpp_source.html">stout/subcommand.hpp</a>></code><br />
<code>#include "<a class="el" href="src_2slave_2flags_8hpp_source.html">slave/flags.hpp</a>"</code><br />
<code>#include "<a class="el" href="src_2slave_2containerizer_2mesos_2isolator_8hpp_source.html">slave/containerizer/mesos/isolator.hpp</a>"</code><br />
[17/50] mesos-site git commit: Updated the website built from mesos
SHA: 7c9c72d.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/src_2log_2network_8hpp_source.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/src_2log_2network_8hpp_source.html b/content/api/latest/c++/src_2log_2network_8hpp_source.html
index a9eee0a..a28ba83 100644
--- a/content/api/latest/c++/src_2log_2network_8hpp_source.html
+++ b/content/api/latest/c++/src_2log_2network_8hpp_source.html
@@ -52,7 +52,7 @@
<div class="title">network.hpp</div> </div>
</div><!--header-->
<div class="contents">
-<a href="src_2log_2network_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// or more contributor license agreements. See the NOTICE file</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// distributed with this work for additional information</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">// regarding copyright ownership. The ASF licenses this file</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00006"></a
><span class="lineno"> 6</span> <span class="comment">// "License"); you may not use this file except in compliance</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// with the License. You may obtain a copy of the License at</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">//</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// Unless required by applicable law or agreed to in writing, software</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment">//
distributed under the License is distributed on an "AS IS" BASIS,</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">// See the License for the specific language governing permissions and</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// limitations under the License.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#ifndef __NETWORK_HPP__</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#define __NETWORK_HPP__</span></div><div class="line"><a name
="l00019"></a><span class="lineno"> 19</span> </div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment">// TODO(benh): Eventually move and associate this code with the</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment">// libprocess protobuf code rather than keep it here.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <deque></span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <set></span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <string></span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="pr
eprocessor">#include <vector></span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include <<a class="code" href="group_8hpp.html">mesos/zookeeper/group.hpp</a>></span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> </div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include <<a class="code" href="collect_8hpp.html">process/collect.hpp</a>></span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include <<a class="code" href="3rdparty_2libprocess_2include_2process_2executor_8hpp.html">process/executor.hpp</a>></span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#include <<a class="code" href
="id_8hpp.html">process/id.hpp</a>></span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#include <<a class="code" href="3rdparty_2libprocess_2include_2process_2protobuf_8hpp.html">process/protobuf.hpp</a>></span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include <<a class="code" href="duration_8hpp.html">stout/duration.hpp</a>></span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#include <<a class="code" href="foreach_8hpp.html">stout/foreach.hpp</a>></span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#include <<a class="code" href="lambda_8hpp.html">stout/lambda.hpp</a>></span></div><div class="line"><a name="l00
038"></a><span class="lineno"> 38</span> <span class="preprocessor">#include <<a class="code" href="nothing_8hpp.html">stout/nothing.hpp</a>></span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor">#include <<a class="code" href="set_8hpp.html">stout/set.hpp</a>></span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="preprocessor">#include <<a class="code" href="unreachable_8hpp.html">stout/unreachable.hpp</a>></span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> </div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor">#include "<a class="code" href="src_2logging_2logging_8hpp.html">logging/logging.hpp</a>"</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div><div class="line"><a name="l00044"></a><span class=
"lineno"> 44</span> <span class="comment">// Forward declaration.</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="keyword">class </span><a class="code" href="classNetworkProcess.html">NetworkProcess</a>;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> </div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="comment">// A "network" is a collection of protobuf processes (may be local</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="comment">// and/or remote). A network abstracts away the details of maintaining</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="comment">// which processes are waiting to receive messages and requests in the</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span cla
ss="comment">// presence of failures and dynamic reconfiguration.</span></div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="classNetwork.html"> 51</a></span> <span class="keyword">class </span><a class="code" href="classNetwork.html">Network</a></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span> {</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="classNetwork.html#a43d645248055c352b6550c586dfdf46b"> 54</a></span>  <span class="keyword">enum</span> <a class="code" href="classNetwork.html#a43d645248055c352b6550c586dfdf46b">WatchMode</a></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  {</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="classNetwork.html#a43d645248055c352b6550c5
86dfdf46ba7f1c8f1a0171b0e809d6c2e69490671a"> 56</a></span>  <a class="code" href="classNetwork.html#a43d645248055c352b6550c586dfdf46ba7f1c8f1a0171b0e809d6c2e69490671a">EQUAL_TO</a>,</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="classNetwork.html#a43d645248055c352b6550c586dfdf46ba35573a903c78a976ee1becfd4c41b64a"> 57</a></span>  <a class="code" href="classNetwork.html#a43d645248055c352b6550c586dfdf46ba35573a903c78a976ee1becfd4c41b64a">NOT_EQUAL_TO</a>,</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="classNetwork.html#a43d645248055c352b6550c586dfdf46ba83a711502205ef7ec107abfd72c969bf"> 58</a></span>  <a class="code" href="classNetwork.html#a43d645248055c352b6550c586dfdf46ba83a711502205ef7ec107abfd72c969bf">LESS_THAN</a>,</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="classNetwork.html#a43d645248055c352b6550c586dfdf46bae3f845f5bd93ed6d177
e85214c15f5b1"> 59</a></span>  <a class="code" href="classNetwork.html#a43d645248055c352b6550c586dfdf46bae3f845f5bd93ed6d177e85214c15f5b1">LESS_THAN_OR_EQUAL_TO</a>,</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="classNetwork.html#a43d645248055c352b6550c586dfdf46ba5720bf2cef2135857ad15209169bbd8c"> 60</a></span>  <a class="code" href="classNetwork.html#a43d645248055c352b6550c586dfdf46ba5720bf2cef2135857ad15209169bbd8c">GREATER_THAN</a>,</div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="classNetwork.html#a43d645248055c352b6550c586dfdf46ba478ef22cc32892ffd21294e285b93e31"> 61</a></span>  <a class="code" href="classNetwork.html#a43d645248055c352b6550c586dfdf46ba478ef22cc32892ffd21294e285b93e31">GREATER_THAN_OR_EQUAL_TO</a></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  };</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</
span> </div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <a class="code" href="classNetwork.html#a3cc2fb4f8fa4d507077e8da85ce5a1c8">Network</a>();</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <span class="keyword">explicit</span> <a class="code" href="classNetwork.html#a3cc2fb4f8fa4d507077e8da85ce5a1c8">Network</a>(<span class="keyword">const</span> std::set<process::UPID>& <a class="code" href="namespaceos.html#a42af1cab63434cedf2b698cd6f49f073">pids</a>);</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <span class="keyword">virtual</span> <a class="code" href="classNetwork.html#a7a4e19cdb4bf0c7ecf82baa643831492">~Network</a>();</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span> </div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <span class="comment">// Adds a PID to this network.</span></di
v><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="keywordtype">void</span> <a class="code" href="classNetwork.html#ae3f5928f9e83376daebfac35c789ae5e">add</a>(<span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">process::UPID</a>& pid);</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span> </div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="comment">// Removes a PID from this network.</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <span class="keywordtype">void</span> <span class="keyword">remove</span>(<span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">process::UPID</a>& pid);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <spa
n class="comment">// Set the PIDs that are part of this network.</span></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <span class="keywordtype">void</span> <span class="keyword">set</span>(<span class="keyword">const</span> std::set<process::UPID>& <a class="code" href="namespaceos.html#a42af1cab63434cedf2b698cd6f49f073">pids</a>);</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span> </div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="comment">// Returns a future which gets set when the network size satisfies</span></div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <span class="comment">// the constraint specified by 'size' and 'mode'. For example, if</span></div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <span class="comment">// 'size' is 2 and 'mode' is G
REATER_THAN, then the returned future</span></div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="comment">// will get set when the size of the network is greater than 2.</span></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <a class="code" href="classprocess_1_1Future.html">process::Future<size_t></a> <a class="code" href="classNetwork.html#ac273d79a8be8f05411440757979dae5d">watch</a>(</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <span class="keywordtype">size_t</span> <a class="code" href="namespaceos_1_1stat.html#a7a116891923bc8b5d8c50f78da8657be">size</a>,</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <a class="code" href="classNetwork.html#a43d645248055c352b6550c586dfdf46b">WatchMode</a> <a class="code" href="namespaceos_1_1stat.html#afc51654ad486693167c300612bf8ebfa">mode</a> = <a class="code" href="clas
sNetwork.html#a43d645248055c352b6550c586dfdf46ba35573a903c78a976ee1becfd4c41b64a">NOT_EQUAL_TO</a>) <span class="keyword">const</span>;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span> </div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="comment">// Sends a request to each member of the network and returns a set</span></div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <span class="comment">// of futures that represent their responses.</span></div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> Req, <span class="keyword">typename</span> Res></div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <a class="code" href="classprocess_1_1Future.html">process::Future<std::set<process::Future<Res></a>>> <a class="code
" href="classNetwork.html#a31e8af8c885552d6cf1000ea846c62dc">broadcast</a>(</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <span class="keyword">const</span> <a class="code" href="structProtocol.html">Protocol<Req, Res></a>& protocol,</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <span class="keyword">const</span> Req& req,</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <span class="keyword">const</span> std::set<process::UPID>& <a class="code" href="namespaceprocess.html#a3054d5443603436a6315f210a412cbbc">filter</a> = std::set<process::UPID>()) <span class="keyword">const</span>;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span> </div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <span class="comment">// Sends a message to each member of the network. The returne
d</span></div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <span class="comment">// future is set when the message is broadcasted.</span></div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> M></div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <a class="code" href="classprocess_1_1Future.html">process::Future<Nothing></a> <a class="code" href="classNetwork.html#a31e8af8c885552d6cf1000ea846c62dc">broadcast</a>(</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <span class="keyword">const</span> M& m,</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <span class="keyword">const</span> std::set<process::UPID>& <a class="code" href="namespaceprocess.html#a3054d5443603436a6315f210a412cbbc">filter</a> = std::se
t<process::UPID>()) <span class="keyword">const</span>;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span> </div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <span class="comment">// Not copyable, not assignable.</span></div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <a class="code" href="classNetwork.html#a3cc2fb4f8fa4d507077e8da85ce5a1c8">Network</a>(<span class="keyword">const</span> <a class="code" href="classNetwork.html">Network</a>&);</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <a class="code" href="classNetwork.html">Network</a>& operator=(<span class="keyword">const</span> <a class="code" href="classNetwork.html">Network</a>&);</div><div class="line"><a name="l00104"></a><span class="lineno"> 1
04</span> </div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <a class="code" href="classNetworkProcess.html">NetworkProcess</a>* <a class="code" href="namespaceprocess.html">process</a>;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span> };</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span> </div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span> </div><div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="classZooKeeperNetwork.html"> 109</a></span> <span class="keyword">class </span><a class="code" href="classZooKeeperNetwork.html">ZooKeeperNetwork</a> : <span class="keyword">public</span> <a class="code" href="classNetwork.html">Network</a></div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span> {</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span> <span class="k
eyword">public</span>:</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <a class="code" href="classZooKeeperNetwork.html">ZooKeeperNetwork</a>(</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <span class="keyword">const</span> std::string& servers,</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <span class="keyword">const</span> <a class="code" href="classDuration.html">Duration</a>& timeout,</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <span class="keyword">const</span> std::string& znode,</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<zookeeper::Authentication></a>& auth,</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <span class="keywo
rd">const</span> std::set<process::UPID>& <a class="code" href="namespaceprocess.html#a373bd5e2bd8f2694e4589293af477854">base</a> = std::set<process::UPID>());</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span> </div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <span class="keyword">typedef</span> <a class="code" href="classZooKeeperNetwork.html">ZooKeeperNetwork</a> <a class="code" href="classZooKeeperNetwork.html">This</a>;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span> </div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <span class="comment">// Not copyable, not assignable.</span></div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <a class="code" href="classZooKeeperNetwork.htm
l">ZooKeeperNetwork</a>(<span class="keyword">const</span> <a class="code" href="classZooKeeperNetwork.html">ZooKeeperNetwork</a>&);</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <a class="code" href="classZooKeeperNetwork.html">ZooKeeperNetwork</a>& operator=(<span class="keyword">const</span> <a class="code" href="classZooKeeperNetwork.html">ZooKeeperNetwork</a>&);</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span> </div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <span class="comment">// Helper that sets up a watch on the group.</span></div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <span class="keywordtype">void</span> <a class="code" href="classNetwork.html#ac273d79a8be8f05411440757979dae5d">watch</a>(<span class="keyword">const</span> std::set<zookeeper::Group::Membership>& expected);</div><div class="line"><a nam
e="l00128"></a><span class="lineno"> 128</span> </div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <span class="comment">// Invoked when the group memberships have changed.</span></div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <span class="keywordtype">void</span> watched(<span class="keyword">const</span> <a class="code" href="classprocess_1_1Future.html">process::Future</a><std::set<zookeeper::Group::Membership>>&);</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span> </div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <span class="comment">// Invoked when group members data has been collected.</span></div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <span class="keywordtype">void</span> collected(</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <spa
n class="keyword">const</span> <a class="code" href="classprocess_1_1Future.html">process::Future</a><std::vector<<a class="code" href="classOption.html">Option<std::string></a>>>& datas);</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span> </div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <a class="code" href="classzookeeper_1_1Group.html">zookeeper::Group</a> <a class="code" href="structgroup.html">group</a>;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <a class="code" href="classprocess_1_1Future.html">process::Future<std::set<zookeeper::Group::Membership></a>> memberships;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span> </div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  <span class="comment">// The set of PIDs that are always in the network.</span></div><div class="line">
<a name="l00140"></a><span class="lineno"> 140</span>  std::set<process::UPID> <a class="code" href="namespaceprocess.html#a373bd5e2bd8f2694e4589293af477854">base</a>;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span> </div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <span class="comment">// NOTE: The declaration order here is important. We want to delete</span></div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <span class="comment">// the 'executor' before we delete the 'group' so that we don't get</span></div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <span class="comment">// spurious fatal errors when the 'group' is being deleted.</span></div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <a class="code" href="classprocess_1_1Executor.html">process::Executor</a> execut
or;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span> };</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span> </div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span> </div><div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="classNetworkProcess.html"> 149</a></span> <span class="keyword">class </span><a class="code" href="classNetworkProcess.html">NetworkProcess</a> : <span class="keyword">public</span> <a class="code" href="classProtobufProcess.html">ProtobufProcess</a><NetworkProcess></div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span> {</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="classNetworkProcess.html#a27e374e97a8ba393559ea8f9c7ee4d97"> 152</a></span> 
; <a class="code" href="classNetworkProcess.html#a27e374e97a8ba393559ea8f9c7ee4d97">NetworkProcess</a>() : ProcessBase(<a class="code" href="namespaceprocess.html">process</a>::ID::<a class="code" href="namespaceprocess_1_1ID.html#aeb11a48c9def1da169d8455a30d0ee39">generate</a>(<span class="stringliteral">"log-network"</span>)) {}</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span> </div><div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="classNetworkProcess.html#a961c50276561074c6666c35f979b75b5"> 154</a></span>  <span class="keyword">explicit</span> <a class="code" href="classNetworkProcess.html#a961c50276561074c6666c35f979b75b5">NetworkProcess</a>(<span class="keyword">const</span> std::set<process::UPID>& <a class="code" href="namespaceos.html#a42af1cab63434cedf2b698cd6f49f073">pids</a>)</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  : ProcessBase(<a c
lass="code" href="namespaceprocess.html">process</a>::ID::<a class="code" href="namespaceprocess_1_1ID.html#aeb11a48c9def1da169d8455a30d0ee39">generate</a>(<span class="stringliteral">"log-network"</span>))</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  {</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <span class="keyword">set</span>(<a class="code" href="namespaceos.html#a42af1cab63434cedf2b698cd6f49f073">pids</a>);</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  }</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span> </div><div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="classNetworkProcess.html#a8f7dc78648ac86e67596f7274e7543e8"> 160</a></span>  <span class="keywordtype">void</span> <a class="code" href="classNetworkProcess.html#a8f7dc78648ac86e67596f7274e7543e8">add</a>(<span class="keywo
rd">const</span> <a class="code" href="structprocess_1_1UPID.html">process::UPID</a>& pid)</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  {</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  <span class="comment">// Link in order to keep a socket open (more efficient).</span></div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  <span class="comment">//</span></div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  <span class="comment">// We force a reconnect to avoid sending on a "stale" socket. In</span></div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <span class="comment">// general when linking to a remote process, the underlying TCP</span></div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <span class="comment">// connection may become "stale".
RFC 793 refers to this as a</span></div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  <span class="comment">// "half-open" connection: the RST is not sent upon the death</span></div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  <span class="comment">// of the peer and a RST will only be received once further</span></div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <span class="comment">// data is sent on the socket.</span></div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <span class="comment">//</span></div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <span class="comment">// "Half-open" (aka "stale") connections are typically addressed</span></div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  <span class="comment">// via keep-alives (s
ee RFC 1122 4.2.3.6) to periodically probe</span></div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  <span class="comment">// the connection. In this case, we can rely on the (re-)addition</span></div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  <span class="comment">// of the network member to create a new connection.</span></div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  <span class="comment">//</span></div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  <span class="comment">// See MESOS-5576 for a scenario where reconnecting helps avoid</span></div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  <span class="comment">// dropped messages.</span></div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  link(pid, RemoteConnection::RECONNECT);</div><div class="line"><a name="l
00179"></a><span class="lineno"> 179</span> </div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  <a class="code" href="namespaceos.html#a42af1cab63434cedf2b698cd6f49f073">pids</a>.insert(pid);</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span> </div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  <span class="comment">// Update any pending watches.</span></div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <a class="code" href="namespacerouting_1_1filter_1_1basic.html#a088d88712e011acb0673da92045b365b">update</a>();</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  }</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span> </div><div class="line"><a name="l00186"></a><span class="lineno"><a class="line" href="classNetworkProcess.html#a865d2584e57d04f2b8731b159082b2e4"> 186</a></span
>  <span class="keywordtype">void</span> <span class="keyword">remove</span>(<span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">process::UPID</a>& pid)</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  {</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  <span class="comment">// TODO(benh): unlink(pid);</span></div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  <a class="code" href="namespaceos.html#a42af1cab63434cedf2b698cd6f49f073">pids</a>.erase(pid);</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span> </div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  <span class="comment">// Update any pending watches.</span></div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  <a class="code" href="namespacerouting_1_1filter_1_1basic.html#a088d88
712e011acb0673da92045b365b">update</a>();</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  }</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span> </div><div class="line"><a name="l00195"></a><span class="lineno"><a class="line" href="classNetworkProcess.html#aeddc897b59e6a9f85b878c8d7280df86"> 195</a></span>  <span class="keywordtype">void</span> <span class="keyword">set</span>(<span class="keyword">const</span> std::set<process::UPID>& _pids)</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  {</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  <a class="code" href="namespaceos.html#a42af1cab63434cedf2b698cd6f49f073">pids</a>.clear();</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  <span class="keywordflow">foreach</span> (<span class="keyword">const</span> <a class="code" href="structprocess
_1_1UPID.html">process::UPID</a>& pid, _pids) {</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  <a class="code" href="classNetwork.html#ae3f5928f9e83376daebfac35c789ae5e">add</a>(pid); <span class="comment">// Also does a link.</span></div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  }</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span> </div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  <span class="comment">// Update any pending watches.</span></div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  <a class="code" href="namespacerouting_1_1filter_1_1basic.html#a088d88712e011acb0673da92045b365b">update</a>();</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  }</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span> </div><div class="line"><a n
ame="l00206"></a><span class="lineno"><a class="line" href="classNetworkProcess.html#a68b3187740a1368babf8cd06c4519bbf"> 206</a></span>  <a class="code" href="classprocess_1_1Future.html">process::Future<size_t></a> <a class="code" href="classNetworkProcess.html#a68b3187740a1368babf8cd06c4519bbf">watch</a>(<span class="keywordtype">size_t</span> <a class="code" href="namespaceos_1_1stat.html#a7a116891923bc8b5d8c50f78da8657be">size</a>, <a class="code" href="classNetwork.html#a43d645248055c352b6550c586dfdf46b">Network::WatchMode</a> <a class="code" href="namespaceos_1_1stat.html#afc51654ad486693167c300612bf8ebfa">mode</a>)</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  {</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  <span class="keywordflow">if</span> (satisfied(size, mode)) {</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  <span class="keywordflow">ret
urn</span> <a class="code" href="namespaceos.html#a42af1cab63434cedf2b698cd6f49f073">pids</a>.size();</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  }</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span> </div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  Watch* <a class="code" href="classNetwork.html#ac273d79a8be8f05411440757979dae5d">watch</a> = <span class="keyword">new</span> Watch(size, mode);</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  watches.push_back(watch);</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span> </div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  <span class="comment">// TODO(jieyu): Consider deleting 'watch' if the returned future</span></div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  <span class="com
ment">// is discarded by the user.</span></div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  <span class="keywordflow">return</span> watch->promise.future();</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  }</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span> </div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  <span class="comment">// Sends a request to each of the group members and returns a set</span></div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  <span class="comment">// of futures that represent their responses.</span></div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> Req, <span class="keyword">typename</span> Res></div><div class="line"><a name="l00223"></a><span class="lineno"><a class
="line" href="classNetworkProcess.html#adde5598934df8f0d514db2b01d2508f2"> 223</a></span>  std::set<process::Future<Res>> <a class="code" href="classNetworkProcess.html#adde5598934df8f0d514db2b01d2508f2">broadcast</a>(</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  <span class="keyword">const</span> <a class="code" href="structProtocol.html">Protocol<Req, Res></a>& protocol,</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  <span class="keyword">const</span> Req& req,</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  <span class="keyword">const</span> std::set<process::UPID>& <a class="code" href="namespaceprocess.html#a3054d5443603436a6315f210a412cbbc">filter</a>)</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  {</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</s
pan>  std::set<process::Future<Res>> futures;</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  <span class="keyword">typename</span> std::set<process::UPID>::const_iterator iterator;</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  <span class="keywordflow">for</span> (iterator = <a class="code" href="namespaceos.html#a42af1cab63434cedf2b698cd6f49f073">pids</a>.begin(); iterator != <a class="code" href="namespaceos.html#a42af1cab63434cedf2b698cd6f49f073">pids</a>.end(); ++iterator) {</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  <span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">process::UPID</a>& pid = *iterator;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  <span class="keywordflow">if</span> (filter.count(pid) == 0) {</div><div class="line"><a name="l00233">
</a><span class="lineno"> 233</span>  futures.insert(protocol(pid, req));</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  }</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  }</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  <span class="keywordflow">return</span> futures;</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  }</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span> </div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  <span class="comment">// Sends a request to each of the group members without expecting responses.</span></div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> M></div><div class="line"><a name="l00241"></a><span class="line
no"><a class="line" href="classNetworkProcess.html#a96f258726d50884bad2b45143791d9e3"> 241</a></span>  <a class="code" href="structNothing.html">Nothing</a> <a class="code" href="classNetworkProcess.html#a96f258726d50884bad2b45143791d9e3">broadcast</a>(</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  <span class="keyword">const</span> M& m,</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  <span class="keyword">const</span> std::set<process::UPID>& <a class="code" href="namespaceprocess.html#a3054d5443603436a6315f210a412cbbc">filter</a>)</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  {</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  std::set<process::UPID>::const_iterator iterator;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  <span class="keywordflow">for</span
> (iterator = <a class="code" href="namespaceos.html#a42af1cab63434cedf2b698cd6f49f073">pids</a>.begin(); iterator != <a class="code" href="namespaceos.html#a42af1cab63434cedf2b698cd6f49f073">pids</a>.end(); ++iterator) {</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  <span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">process::UPID</a>& pid = *iterator;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  <span class="keywordflow">if</span> (filter.count(pid) == 0) {</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  <span class="comment">// NOTE: Just send this message as the network process itself</span></div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  <span class="comment">// since we don't need to deliver responses back to the caller.</span></div><div class="line"><a name="l00251"
></a><span class="lineno"> 251</span>  <span class="comment">// Incoming messages addressed to the network are simply dropped.</span></div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  <a class="code" href="namespacenet.html#aa0a46766b4aca53ea50e1921567ddb40">send</a>(pid, m);</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  }</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  }</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  <span class="keywordflow">return</span> <a class="code" href="structNothing.html">Nothing</a>();</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  }</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span> </div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span> <span class="keyword">protected</span>:</div><di
v class="line"><a name="l00259"></a><span class="lineno"><a class="line" href="classNetworkProcess.html#a36b7e3c3759a96959823ee339fa68392"> 259</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classNetworkProcess.html#a36b7e3c3759a96959823ee339fa68392">finalize</a>()</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  {</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  <span class="keywordflow">foreach</span> (Watch* <a class="code" href="classNetwork.html#ac273d79a8be8f05411440757979dae5d">watch</a>, watches) {</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  watch->promise.fail(<span class="stringliteral">"Network is being terminated"</span>);</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  <span class="keyword">delete</span> <a class="code" href="classN
etwork.html#ac273d79a8be8f05411440757979dae5d">watch</a>;</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  }</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  watches.clear();</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  }</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span> </div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  <span class="keyword">struct </span>Watch</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  {</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  Watch(<span class="keywordtype">size_t</span> _size, <a class="code" href="classNetwork.html#a43d645248055c352b6550c586dfdf46b">Network::WatchMode</a> _m
ode)</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  : <a class="code" href="namespaceos_1_1stat.html#a7a116891923bc8b5d8c50f78da8657be">size</a>(_size), <a class="code" href="namespaceos_1_1stat.html#afc51654ad486693167c300612bf8ebfa">mode</a>(_mode) {}</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span> </div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  <span class="keywordtype">size_t</span> <a class="code" href="namespaceos_1_1stat.html#a7a116891923bc8b5d8c50f78da8657be">size</a>;</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  <a class="code" href="classNetwork.html#a43d645248055c352b6550c586dfdf46b">Network::WatchMode</a> <a class="code" href="namespaceos_1_1stat.html#afc51654ad486693167c300612bf8ebfa">mode</a>;</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  <a class="code" href="classprocess
_1_1Promise.html">process::Promise<size_t></a> <a class="code" href="namespacemesos_1_1internal_1_1log_1_1protocol.html#a3b1f8bd7b18c51af9d1f58842950b545">promise</a>;</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  };</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span> </div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  <span class="comment">// Not copyable, not assignable.</span></div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  <a class="code" href="classNetworkProcess.html">NetworkProcess</a>(<span class="keyword">const</span> <a class="code" href="classNetworkProcess.html">NetworkProcess</a>&);</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  <a class="code" href="classNetworkProcess.html">NetworkProcess</a>& operator=(<span class="keyword">const</span> <a class="code" href="classNetworkProcess
.html">NetworkProcess</a>&);</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span> </div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  <span class="comment">// Notifies the change of the network.</span></div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  <span class="keywordtype">void</span> <a class="code" href="namespacerouting_1_1filter_1_1basic.html#a088d88712e011acb0673da92045b365b">update</a>()</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  {</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  <span class="keyword">const</span> <span class="keywordtype">size_t</span> <a class="code" href="namespaceos_1_1stat.html#a7a116891923bc8b5d8c50f78da8657be">size</a> = watches.size();</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  <span class="keywordflow">for</span> (<span clas
s="keywordtype">size_t</span> i = 0; i < <a class="code" href="namespaceos_1_1stat.html#a7a116891923bc8b5d8c50f78da8657be">size</a>; i++) {</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  Watch* <a class="code" href="classNetwork.html#ac273d79a8be8f05411440757979dae5d">watch</a> = watches.front();</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  watches.pop_front();</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span> </div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  <span class="keywordflow">if</span> (satisfied(watch->size, watch->mode)) {</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  watch->promise.set(<a class="code" href="namespaceos.html#a42af1cab63434cedf2b698cd6f49f073">pids</a>.size());</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span> 
<span class="keyword">delete</span> <a class="code" href="classNetwork.html#ac273d79a8be8f05411440757979dae5d">watch</a>;</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  watches.push_back(watch);</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  }</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  }</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  }</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span> </div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  <span class="comment">// Returns true if the current size of the network satisfies the</span></div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  <span
class="comment">// constraint specified by 'size' and 'mode'.</span></div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  <span class="keywordtype">bool</span> satisfied(<span class="keywordtype">size_t</span> <a class="code" href="namespaceos_1_1stat.html#a7a116891923bc8b5d8c50f78da8657be">size</a>, <a class="code" href="classNetwork.html#a43d645248055c352b6550c586dfdf46b">Network::WatchMode</a> <a class="code" href="namespaceos_1_1stat.html#afc51654ad486693167c300612bf8ebfa">mode</a>)</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  {</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  <span class="keywordflow">switch</span> (mode) {</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  <span class="keywordflow">case</span> <a class="code" href="classNetwork.html#a43d645248055c352b6550c586dfdf46ba7f1c8f1a0171b0e809d6c2e69490671a
">Network::EQUAL_TO</a>:</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  <span class="keywordflow">return</span> <a class="code" href="namespaceos.html#a42af1cab63434cedf2b698cd6f49f073">pids</a>.size() == <a class="code" href="namespaceos_1_1stat.html#a7a116891923bc8b5d8c50f78da8657be">size</a>;</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  <span class="keywordflow">case</span> <a class="code" href="classNetwork.html#a43d645248055c352b6550c586dfdf46ba35573a903c78a976ee1becfd4c41b64a">Network::NOT_EQUAL_TO</a>:</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  <span class="keywordflow">return</span> <a class="code" href="namespaceos.html#a42af1cab63434cedf2b698cd6f49f073">pids</a>.size() != <a class="code" href="namespaceos_1_1stat.html#a7a116891923bc8b5d8c50f78da8657be">size</a>;</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&
#160; <span class="keywordflow">case</span> <a class="code" href="classNetwork.html#a43d645248055c352b6550c586dfdf46ba83a711502205ef7ec107abfd72c969bf">Network::LESS_THAN</a>:</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  <span class="keywordflow">return</span> <a class="code" href="namespaceos.html#a42af1cab63434cedf2b698cd6f49f073">pids</a>.size() < <a class="code" href="namespaceos_1_1stat.html#a7a116891923bc8b5d8c50f78da8657be">size</a>;</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  <span class="keywordflow">case</span> <a class="code" href="classNetwork.html#a43d645248055c352b6550c586dfdf46bae3f845f5bd93ed6d177e85214c15f5b1">Network::LESS_THAN_OR_EQUAL_TO</a>:</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  <span class="keywordflow">return</span> <a class="code" href="namespaceos.html#a42af1cab63434cedf2b698cd6f49f073">pids</a>.size() <=
<a class="code" href="namespaceos_1_1stat.html#a7a116891923bc8b5d8c50f78da8657be">size</a>;</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  <span class="keywordflow">case</span> <a class="code" href="classNetwork.html#a43d645248055c352b6550c586dfdf46ba5720bf2cef2135857ad15209169bbd8c">Network::GREATER_THAN</a>:</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  <span class="keywordflow">return</span> <a class="code" href="namespaceos.html#a42af1cab63434cedf2b698cd6f49f073">pids</a>.size() > <a class="code" href="namespaceos_1_1stat.html#a7a116891923bc8b5d8c50f78da8657be">size</a>;</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  <span class="keywordflow">case</span> <a class="code" href="classNetwork.html#a43d645248055c352b6550c586dfdf46ba478ef22cc32892ffd21294e285b93e31">Network::GREATER_THAN_OR_EQUAL_TO</a>:</div><div class="line"><a name="l00316"></a><span c
lass="lineno"> 316</span>  <span class="keywordflow">return</span> <a class="code" href="namespaceos.html#a42af1cab63434cedf2b698cd6f49f073">pids</a>.size() >= <a class="code" href="namespaceos_1_1stat.html#a7a116891923bc8b5d8c50f78da8657be">size</a>;</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  <span class="keywordflow">default</span>:</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  LOG(FATAL) << <span class="stringliteral">"Invalid watch mode"</span>;</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  <a class="code" href="unreachable_8hpp.html#a0bc63b24b654ca433be7b97a3edde132">UNREACHABLE</a>();</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  }</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  }</div><div class="line"><a name="l00322"></a><span class
="lineno"> 322</span> </div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  std::set<process::UPID> <a class="code" href="namespaceos.html#a42af1cab63434cedf2b698cd6f49f073">pids</a>;</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  std::deque<Watch*> watches;</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span> };</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span> </div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span> </div><div class="line"><a name="l00328"></a><span class="lineno"><a class="line" href="classNetwork.html#a3cc2fb4f8fa4d507077e8da85ce5a1c8"> 328</a></span> <span class="keyword">inline</span> <a class="code" href="classNetwork.html#a3cc2fb4f8fa4d507077e8da85ce5a1c8">Network::Network</a>()</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span> {</div><div class
="line"><a name="l00330"></a><span class="lineno"> 330</span>  <a class="code" href="namespaceprocess.html">process</a> = <span class="keyword">new</span> <a class="code" href="classNetworkProcess.html">NetworkProcess</a>();</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>  <a class="code" href="namespaceprocess.html#aff22904a83567125d3b4d0d88e5a2270">process::spawn</a>(<a class="code" href="namespaceprocess.html">process</a>);</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span> }</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span> </div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span> </div><div class="line"><a name="l00335"></a><span class="lineno"><a class="line" href="classNetwork.html#af5fdbd9ebb3015e2532841939975d6db"> 335</a></span> <span class="keyword">inline</span> <a class="code" href="classNetwork.html#a3cc2fb4f8fa4d507077e8da85ce5a1c
8">Network::Network</a>(<span class="keyword">const</span> std::set<process::UPID>& <a class="code" href="namespaceos.html#a42af1cab63434cedf2b698cd6f49f073">pids</a>)</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span> {</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  <a class="code" href="namespaceprocess.html">process</a> = <span class="keyword">new</span> <a class="code" href="classNetworkProcess.html">NetworkProcess</a>(pids);</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>  <a class="code" href="namespaceprocess.html#aff22904a83567125d3b4d0d88e5a2270">process::spawn</a>(<a class="code" href="namespaceprocess.html">process</a>);</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span> }</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span> </div><div class="line"><a name="l00341"></a><span class="lineno"> 341</
span> </div><div class="line"><a name="l00342"></a><span class="lineno"><a class="line" href="classNetwork.html#a7a4e19cdb4bf0c7ecf82baa643831492"> 342</a></span> <span class="keyword">inline</span> <a class="code" href="classNetwork.html#a7a4e19cdb4bf0c7ecf82baa643831492">Network::~Network</a>()</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span> {</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  <a class="code" href="namespaceprocess.html#a20443908afa3212215166e26065349e5">process::terminate</a>(<a class="code" href="namespaceprocess.html">process</a>);</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  <a class="code" href="namespaceprocess.html#a07833fb41a8b0c1f18fa5485ca8c18d4">process::wait</a>(<a class="code" href="namespaceprocess.html">process</a>);</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>  <span class="keyword">delete</s
pan> <a class="code" href="namespaceprocess.html">process</a>;</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span> }</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span> </div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span> </div><div class="line"><a name="l00350"></a><span class="lineno"><a class="line" href="classNetwork.html#ae3f5928f9e83376daebfac35c789ae5e"> 350</a></span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classNetwork.html#ae3f5928f9e83376daebfac35c789ae5e">Network::add</a>(<span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">process::UPID</a>& pid)</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span> {</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>  <a class="code" href="namespaceprocess.html#acfbc29404bc653268289691b0
dd59e22">process::dispatch</a>(<a class="code" href="namespaceprocess.html">process</a>, &<a class="code" href="classNetworkProcess.html#a8f7dc78648ac86e67596f7274e7543e8">NetworkProcess::add</a>, pid);</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span> }</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span> </div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span> </div><div class="line"><a name="l00356"></a><span class="lineno"><a class="line" href="classNetwork.html#a4e7349244ab231fe08db8c59d159d5b7"> 356</a></span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classNetwork.html#a4e7349244ab231fe08db8c59d159d5b7">Network::remove</a>(<span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">process::UPID</a>& pid)</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span> {</div><di
v class="line"><a name="l00358"></a><span class="lineno"> 358</span>  <a class="code" href="namespaceprocess.html#acfbc29404bc653268289691b0dd59e22">process::dispatch</a>(<a class="code" href="namespaceprocess.html">process</a>, &<a class="code" href="classNetworkProcess.html#a865d2584e57d04f2b8731b159082b2e4">NetworkProcess::remove</a>, pid);</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span> }</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span> </div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span> </div><div class="line"><a name="l00362"></a><span class="lineno"><a class="line" href="classNetwork.html#a0722ba6e072b74ffbe4556e2d432f103"> 362</a></span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classNetwork.html#a0722ba6e072b74ffbe4556e2d432f103">Network::set</a>(<span class="keyword">const</span> std::set<process::UPI
D>& <a class="code" href="namespaceos.html#a42af1cab63434cedf2b698cd6f49f073">pids</a>)</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span> {</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>  <a class="code" href="namespaceprocess.html#acfbc29404bc653268289691b0dd59e22">process::dispatch</a>(<a class="code" href="namespaceprocess.html">process</a>, &<a class="code" href="classNetworkProcess.html#aeddc897b59e6a9f85b878c8d7280df86">NetworkProcess::set</a>, pids);</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span> }</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span> </div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span> </div><div class="line"><a name="l00368"></a><span class="lineno"><a class="line" href="classNetwork.html#ac273d79a8be8f05411440757979dae5d"> 368</a></span> <span class="keyword">inline</span> <a
class="code" href="classprocess_1_1Future.html">process::Future<size_t></a> <a class="code" href="classNetwork.html#ac273d79a8be8f05411440757979dae5d">Network::watch</a>(</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  <span class="keywordtype">size_t</span> <a class="code" href="namespaceos_1_1stat.html#a7a116891923bc8b5d8c50f78da8657be">size</a>, <a class="code" href="classNetwork.html#a43d645248055c352b6550c586dfdf46b">Network::WatchMode</a> <a class="code" href="namespaceos_1_1stat.html#afc51654ad486693167c300612bf8ebfa">mode</a>)<span class="keyword"> const</span></div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span> <span class="keyword"></span>{</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  <span class="keywordflow">return</span> <a class="code" href="namespaceprocess.html#acfbc29404bc653268289691b0dd59e22">process::dispatch</a>(<a class="code" href="namespaceproce
ss.html">process</a>, &<a class="code" href="classNetworkProcess.html#a68b3187740a1368babf8cd06c4519bbf">NetworkProcess::watch</a>, size, mode);</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span> }</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span> </div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span> </div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Req, <span class="keyword">typename</span> Res></div><div class="line"><a name="l00376"></a><span class="lineno"><a class="line" href="classNetwork.html#a31e8af8c885552d6cf1000ea846c62dc"> 376</a></span> <a class="code" href="classprocess_1_1Future.html">process::Future<std::set<process::Future<Res></a>>> <a class="code" href="classNetwork.html#a31e8af8c885552d6cf1000ea846c62dc">Network::broadcast</a>(
</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  <span class="keyword">const</span> <a class="code" href="structProtocol.html">Protocol<Req, Res></a>& protocol,</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  <span class="keyword">const</span> Req& req,</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  <span class="keyword">const</span> std::set<process::UPID>& <a class="code" href="namespaceprocess.html#a3054d5443603436a6315f210a412cbbc">filter</a>)<span class="keyword"> const</span></div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span> <span class="keyword"></span>{</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>  <span class="keywordflow">return</span> <a class="code" href="namespaceprocess.html#acfbc29404bc653268289691b0dd59e22">process::dispatch</a>(<a class="code" href="namesp
aceprocess.html">process</a>, &NetworkProcess::broadcast<Req, Res>,</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  protocol, req, filter);</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span> }</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span> </div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span> </div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span> <span class="keyword">template</span> <<span class="keyword">typename</span> M></div><div class="line"><a name="l00387"></a><span class="lineno"><a class="line" href="classNetwork.html#a75734a1bb2c17828346e03e8bd959690"> 387</a></span> <a class="code" href="classprocess_1_1Future.html">process::Future<Nothing></a> <a class="code" href="classNetwork.html#a31e8af8c885552d6cf1000ea846c62dc">Network::broadcast</a>(</div><div class=
"line"><a name="l00388"></a><span class="lineno"> 388</span>  <span class="keyword">const</span> M& m,</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  <span class="keyword">const</span> std::set<process::UPID>& <a class="code" href="namespaceprocess.html#a3054d5443603436a6315f210a412cbbc">filter</a>)<span class="keyword"> const</span></div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span> <span class="keyword"></span>{</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  <span class="comment">// Need to disambiguate overloaded function.</span></div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  <a class="code" href="structNothing.html">Nothing</a> (<a class="code" href="classNetworkProcess.html">NetworkProcess</a>::*<a class="code" href="classNetwork.html#a31e8af8c885552d6cf1000ea846c62dc">broadcast</a>)(<span class="keyword">cons
t</span> M&, <span class="keyword">const</span> std::set<process::UPID>&)</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>  = &NetworkProcess::broadcast<M>;</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span> </div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  <span class="keywordflow">return</span> <a class="code" href="namespaceprocess.html#acfbc29404bc653268289691b0dd59e22">process::dispatch</a>(<a class="code" href="namespaceprocess.html">process</a>, broadcast, m, filter);</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span> }</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span> </div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span> </div><div class="line"><a name="l00399"></a><span class="lineno"><a class="line" href="classZooKeeperNetwork.html#adf9c95d172e51c5ff40c
7c14a9370a72"> 399</a></span> <span class="keyword">inline</span> <a class="code" href="classZooKeeperNetwork.html#adf9c95d172e51c5ff40c7c14a9370a72">ZooKeeperNetwork::ZooKeeperNetwork</a>(</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  <span class="keyword">const</span> std::string& servers,</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  <span class="keyword">const</span> <a class="code" href="classDuration.html">Duration</a>& timeout,</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>  <span class="keyword">const</span> std::string& znode,</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<zookeeper::Authentication></a>& auth,</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>  <span class=
"keyword">const</span> std::set<process::UPID>& _base)</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>  : <a class="code" href="structgroup.html">group</a>(servers, timeout, znode, auth),</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>  <a class="code" href="namespaceprocess.html#a373bd5e2bd8f2694e4589293af477854">base</a>(_base)</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span> {</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>  <span class="comment">// PIDs from the base set are in the network from beginning.</span></div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>  <span class="keyword">set</span>(base);</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span> </div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  watch(std::set<zookeeper
::Group::Membership>());</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span> }</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span> </div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span> </div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> ZooKeeperNetwork::watch(</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>  <span class="keyword">const</span> std::set<zookeeper::Group::Membership>& expected)</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span> {</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  memberships = <a class="code" href="structgroup.html">group</a>.watch(expected);</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>  memberships</div
><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>  .<a class="code" href="classprocess_1_1Future.html#a71bde220aed3c725cef2040f63adf42a">onAny</a>(executor.<a class="code" href="classprocess_1_1Executor.html#aa129606e06f0a2cf30f5b198ad826400">defer</a>(<a class="code" href="namespaceprocess_1_1network.html#ad067110a4b38cc83785a43f49bf6c8e2">lambda::bind</a>(&This::watched, <span class="keyword">this</span>, lambda::_1)));</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span> }</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span> </div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span> </div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> ZooKeeperNetwork::watched(</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  <span class
="keyword">const</span> <a class="code" href="classprocess_1_1Future.html">process::Future</a><std::set<zookeeper::Group::Membership>>&)</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span> {</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>  <span class="keywordflow">if</span> (memberships.<a class="code" href="classprocess_1_1Future.html#a493227e57f8848e37777b89c0f81e2ec">isFailed</a>()) {</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>  <span class="comment">// We can't do much here, we could try creating another Group but</span></div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>  <span class="comment">// that might just continue indefinitely, so we fail early</span></div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>  <span class="comment">// instead. Note that Group handles all retryable/re
coverable</span></div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>  <span class="comment">// ZooKeeper errors internally.</span></div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>  LOG(FATAL) << <span class="stringliteral">"Failed to watch ZooKeeper group: "</span> << memberships.<a class="code" href="classprocess_1_1Future.html#ae649c56b07f44c05e4b7aa3620133ff9">failure</a>();</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>  }</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span> </div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>  <a class="code" href="libprocess_2include_2process_2check_8hpp.html#a55bf53e1f554470600774a6bf0c09140">CHECK_READY</a>(memberships); <span class="comment">// Not expecting Group to discard futures.</span></div><div class="line"><a name="l00436"></a><span class="line
no"> 436</span> </div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>  LOG(INFO) << <span class="stringliteral">"ZooKeeper group memberships changed"</span>;</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span> </div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>  <span class="comment">// Get data for each membership in order to convert them to PIDs.</span></div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>  std::vector<process::Future<Option<std::string>>> futures;</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span> </div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>  <span class="keywordflow">foreach</span> (<span class="keyword">const</span> <a class="code" href="structzookeeper_1_1Group_1_1Membership.html">zookeeper::Group::Membership</a>& membershi
p, memberships.<a class="code" href="classprocess_1_1Future.html#aa78977d3b585a5f5ccd682c1e9e2ddc4">get</a>()) {</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>  futures.push_back(<a class="code" href="structgroup.html">group</a>.data(membership));</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>  }</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span> </div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>  <a class="code" href="namespaceprocess.html#a871061d70cd1c8bf39df4d1154cd1857">process::collect</a>(futures)</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>  .<a class="code" href="classprocess_1_1Future.html#a7818051e0d3d4ef9aa6a25d9246312ea">after</a>(<a class="code" href="classSeconds.html">Seconds</a>(5),</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>  [](<a class
="code" href="classprocess_1_1Future.html">process::Future</a><std::vector<<a class="code" href="classOption.html">Option<std::string></a>>> datas) {</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>  <span class="comment">// Handling time outs when collecting membership</span></div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>  <span class="comment">// data. For now, a timeout is treated as a failure.</span></div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>  datas.discard();</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>  <span class="keywordflow">return</span> <a class="code" href="structprocess_1_1Failure.html">process::Failure</a>(<span class="stringliteral">"Timed out"</span>);</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>  }
)</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>  .onAny(executor.<a class="code" href="classprocess_1_1Executor.html#aa129606e06f0a2cf30f5b198ad826400">defer</a>(<a class="code" href="namespaceprocess_1_1network.html#ad067110a4b38cc83785a43f49bf6c8e2">lambda::bind</a>(&This::collected, <span class="keyword">this</span>, lambda::_1)));</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span> }</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span> </div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span> </div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> ZooKeeperNetwork::collected(</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>  <span class="keyword">const</span> <a class="code" href="classprocess_1_1Future.html">proc
ess::Future</a><std::vector<<a class="code" href="classOption.html">Option<std::string></a>>>& datas)</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span> {</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>  <span class="keywordflow">if</span> (datas.isFailed()) {</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>  LOG(WARNING) << <span class="stringliteral">"Failed to get data for ZooKeeper group members: "</span></div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>  << datas.failure();</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span> </div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>  <span class="comment">// Try again later assuming empty group. Note that this does not</span></div><div class="line"><a name="l00466"></a><span
class="lineno"> 466</span>  <span class="comment">// remove any of the current group members.</span></div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>  watch(std::set<zookeeper::Group::Membership>());</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>  <span class="keywordflow">return</span>;</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>  }</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span> </div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>  <a class="code" href="libprocess_2include_2process_2check_8hpp.html#a55bf53e1f554470600774a6bf0c09140">CHECK_READY</a>(datas); <span class="comment">// Not expecting collect to discard futures.</span></div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span> </div><div class="line"><a name="l00473"></a><span class="lineno"> 473</spa
n>  std::set<process::UPID> <a class="code" href="namespaceos.html#a42af1cab63434cedf2b698cd6f49f073">pids</a>;</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span> </div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>  <span class="keywordflow">foreach</span> (<span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a>& data, datas.<a class="code" href="classOption.html#a21358442c0fac1cc978a67a9a9089a79">get</a>()) {</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>  <span class="comment">// Data could be None if the membership is gone before its</span></div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>  <span class="comment">// content can be read.</span></div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>  <span class="keywordflow">if</span> (data.<a class=
"code" href="classOption.html#a4e3bf8416d95246f43c91f1b5c309323">isSome</a>()) {</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>  <a class="code" href="structprocess_1_1UPID.html">process::UPID</a> pid(data.<a class="code" href="classOption.html#a21358442c0fac1cc978a67a9a9089a79">get</a>());</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>  CHECK(pid) << <span class="stringliteral">"Failed to parse '"</span> << data.<a class="code" href="classOption.html#a21358442c0fac1cc978a67a9a9089a79">get</a>() << <span class="stringliteral">"'"</span>;</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>  pids.insert(pid);</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>  }</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>  }</div><div class="line"><a name="l00484"></
a><span class="lineno"> 484</span> </div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>  LOG(INFO) << <span class="stringliteral">"ZooKeeper group PIDs: "</span> << <a class="code" href="namespacens.html#a28116b46e6543597a11733424cd1aa20">stringify</a>(pids);</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span> </div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>  <span class="comment">// Update the network. We make sure that the PIDs from the base set</span></div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>  <span class="comment">// are always in the network.</span></div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>  <span class="keyword">set</span>(pids | base);</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span> </div><div class="line"><a name="l00491"></a><span c
lass="lineno"> 491</span>  watch(memberships.<a class="code" href="classprocess_1_1Future.html#aa78977d3b585a5f5ccd682c1e9e2ddc4">get</a>());</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span> }</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span> </div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span> <span class="preprocessor">#endif // __NETWORK_HPP__</span></div><div class="ttc" id="namespaceprocess_1_1ID_html_aeb11a48c9def1da169d8455a30d0ee39"><div class="ttname"><a href="namespaceprocess_1_1ID.html#aeb11a48c9def1da169d8455a30d0ee39">process::ID::generate</a></div><div class="ttdeci">std::string generate(const std::string &prefix="")</div><div class="ttdoc">Returns &#39;prefix(N)&#39; where N represents the number of instances where the same prefix (wrt...</div></div>
+<a href="src_2log_2network_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// or more contributor license agreements. See the NOTICE file</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// distributed with this work for additional information</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">// regarding copyright ownership. The ASF licenses this file</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00006"></a
><span class="lineno"> 6</span> <span class="comment">// "License"); you may not use this file except in compliance</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// with the License. You may obtain a copy of the License at</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">//</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// Unless required by applicable law or agreed to in writing, software</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment">//
distributed under the License is distributed on an "AS IS" BASIS,</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
<TRUNCATED>
[48/50] mesos-site git commit: Updated the website built from mesos
SHA: 7c9c72d.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/3rdparty_2libprocess_2include_2process_2io_8hpp.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/3rdparty_2libprocess_2include_2process_2io_8hpp.html b/content/api/latest/c++/3rdparty_2libprocess_2include_2process_2io_8hpp.html
index 3b57e0d..d7f7c34 100644
--- a/content/api/latest/c++/3rdparty_2libprocess_2include_2process_2io_8hpp.html
+++ b/content/api/latest/c++/3rdparty_2libprocess_2include_2process_2io_8hpp.html
@@ -72,6 +72,12 @@ Namespaces</h2></td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
+<tr class="memitem:a9db94d84fb44b21fb669ade7c6a82114"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classTry.html">Try</a>< <a class="el" href="structNothing.html">Nothing</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceprocess_1_1io.html#a9db94d84fb44b21fb669ade7c6a82114">process::io::prepare_async</a> (<a class="el" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> fd)</td></tr>
+<tr class="memdesc:a9db94d84fb44b21fb669ade7c6a82114"><td class="mdescLeft"> </td><td class="mdescRight">Prepares a file descriptor to be ready for asynchronous IO. <a href="namespaceprocess_1_1io.html#a9db94d84fb44b21fb669ade7c6a82114">More...</a><br /></td></tr>
+<tr class="separator:a9db94d84fb44b21fb669ade7c6a82114"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ada6541d78cad2ecc225be8a26662c748"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classTry.html">Try</a>< bool > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceprocess_1_1io.html#ada6541d78cad2ecc225be8a26662c748">process::io::is_async</a> (<a class="el" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> fd)</td></tr>
+<tr class="memdesc:ada6541d78cad2ecc225be8a26662c748"><td class="mdescLeft"> </td><td class="mdescRight">Checks if <code><a class="el" href="namespaceprocess_1_1io.html#a9db94d84fb44b21fb669ade7c6a82114" title="Prepares a file descriptor to be ready for asynchronous IO. ">io::prepare_async</a></code> has been called on the file descriptor. <a href="namespaceprocess_1_1io.html#ada6541d78cad2ecc225be8a26662c748">More...</a><br /></td></tr>
+<tr class="separator:ada6541d78cad2ecc225be8a26662c748"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:af71c45e0a85e21f6b39060f4e716cebf"><td class="memItemLeft" align="right" valign="top">Future< short > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceprocess_1_1io.html#af71c45e0a85e21f6b39060f4e716cebf">process::io::poll</a> (<a class="el" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> fd, short events)</td></tr>
<tr class="memdesc:af71c45e0a85e21f6b39060f4e716cebf"><td class="mdescLeft"> </td><td class="mdescRight">Returns the events (a subset of the events specified) that can be performed on the specified file descriptor without blocking. <a href="namespaceprocess_1_1io.html#af71c45e0a85e21f6b39060f4e716cebf">More...</a><br /></td></tr>
<tr class="separator:af71c45e0a85e21f6b39060f4e716cebf"><td class="memSeparator" colspan="2"> </td></tr>
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/3rdparty_2libprocess_2include_2process_2io_8hpp_source.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/3rdparty_2libprocess_2include_2process_2io_8hpp_source.html b/content/api/latest/c++/3rdparty_2libprocess_2include_2process_2io_8hpp_source.html
index ce0ffd0..bd33e14 100644
--- a/content/api/latest/c++/3rdparty_2libprocess_2include_2process_2io_8hpp_source.html
+++ b/content/api/latest/c++/3rdparty_2libprocess_2include_2process_2io_8hpp_source.html
@@ -52,18 +52,21 @@
<div class="title">io.hpp</div> </div>
</div><!--header-->
<div class="contents">
-<a href="3rdparty_2libprocess_2include_2process_2io_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// Licensed under the Apache License, Version 2.0 (the "License");</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// you may not use this file except in compliance with the License.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// You may obtain a copy of the License at</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</spa
n> <span class="comment">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// Unless required by applicable law or agreed to in writing, software</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">// distributed under the License is distributed on an "AS IS" BASIS,</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">// See the License for the specific language governing permissions and</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// limitations under the License</span></div><div class="line"><a name="l00012"></a><span class="lineno">
12</span> </div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#ifndef __PROCESS_IO_HPP__</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#define __PROCESS_IO_HPP__</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include <cstring></span> <span class="comment">// For size_t.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include <string></span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> </div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include <<a class="code" href="future_8hpp.html">process/future.hpp</a>></span><
/div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> </div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <<a class="code" href="nothing_8hpp.html">stout/nothing.hpp</a>></span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#ifdef __WINDOWS__</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <<a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html">stout/windows.hpp</a>></span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#endif // __WINDOWS__</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="keyword">namespace </span><a cl
ass="code" href="namespaceprocess.html">process</a> {</div><div class="line"><a name="l00027"></a><span class="lineno"><a class="line" href="namespaceprocess_1_1io.html"> 27</a></span> <span class="keyword">namespace </span>io {</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> </div><div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="namespaceprocess_1_1io.html#aca1f059ca9f0d7360631c621debeb879"> 34</a></span> <span class="keyword">const</span> <span class="keywordtype">short</span> <a class="code" href="namespaceprocess_1_1io.html#aca1f059ca9f0d7360631c621debeb879">READ</a> = 0x01;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> </div><div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="namespaceprocess_1_1io.html#ab005316d71b45c5b05de0a6234c6f8fc"> 39</a></span> <span class="keyword">const</span> <span class="keywordtype">short</span>
<a class="code" href="namespaceprocess_1_1io.html#ab005316d71b45c5b05de0a6234c6f8fc">WRITE</a> = 0x02;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="namespaceprocess_1_1io.html#a34d62916736c1dfebd1585cf51f19d0c"> 46</a></span> <span class="keyword">const</span> <span class="keywordtype">size_t</span> <a class="code" href="namespaceprocess_1_1io.html#a34d62916736c1dfebd1585cf51f19d0c">BUFFERED_READ_SIZE</a> = 16*4096;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="comment">// TODO(benh): Add a version which takes multiple file descriptors.</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <a class="code" href="classprocess_1_1Future.html">Future<short></a> <a class="code" href=
"namespaceprocess_1_1io.html#af71c45e0a85e21f6b39060f4e716cebf">poll</a>(<a class="code" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> fd, <span class="keywordtype">short</span> events);</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span> </div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span> </div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <a class="code" href="classprocess_1_1Future.html">Future<size_t></a> <a class="code" href="namespaceprocess_1_1io.html#a4c34d22e475e29f12ac739921dcc580f">read</a>(<a class="code" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> fd, <span class="keywordtype">void</span>* data, <span class="keywordtype">size_t</span> <a class="code" href="namespaceos_1_1stat.html#a7a116891923bc8b5d8c50f78da8657be">size</a>);</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span> </div><div cla
ss="line"><a name="l00071"></a><span class="lineno"> 71</span> </div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <a class="code" href="classprocess_1_1Future.html">Future<std::string></a> <a class="code" href="namespaceprocess_1_1io.html#a4c34d22e475e29f12ac739921dcc580f">read</a>(<a class="code" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> fd);</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span> </div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span> </div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <a class="code" href="classprocess_1_1Future.html">Future<size_t></a> <a class="code" href="namespaceprocess_1_1io.html#a49105dc036ad04225c92bd673da5ce39">write</a>(<a class="code" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> fd, <span class="keyword">const</span> <span class="keywordtype">void
</span>* data, <span class="keywordtype">size_t</span> <a class="code" href="namespaceos_1_1stat.html#a7a116891923bc8b5d8c50f78da8657be">size</a>);</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span> </div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span> </div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <a class="code" href="classprocess_1_1Future.html">Future<Nothing></a> <a class="code" href="namespaceprocess_1_1io.html#a49105dc036ad04225c92bd673da5ce39">write</a>(<a class="code" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> fd, <span class="keyword">const</span> std::string& data);</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span> </div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span> <a class="code" href="classprocess_1_1Future.html">Future<Nothing></a> <a class="code" href="namespacepr
ocess_1_1io.html#ab9c4a52a88fcc9983438e391643424ca">redirect</a>(</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <a class="code" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> from,</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <a class="code" href="classOption.html">Option<int_fd></a> to,</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <span class="keywordtype">size_t</span> chunk = 4096,</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <span class="keyword">const</span> std::vector<lambda::function<<span class="keywordtype">void</span>(<span class="keyword">const</span> std::string&)>>& hooks = {});</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span> </div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span> } <span class=
"comment">// namespace io {</span></div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span> } <span class="comment">// namespace process {</span></div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span> </div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span> <span class="preprocessor">#endif // __PROCESS_IO_HPP__</span></div><div class="ttc" id="namespaceprocess_1_1io_html_aca1f059ca9f0d7360631c621debeb879"><div class="ttname"><a href="namespaceprocess_1_1io.html#aca1f059ca9f0d7360631c621debeb879">process::io::READ</a></div><div class="ttdeci">const short READ</div><div class="ttdoc">A possible event while polling. </div><div class="ttdef"><b>Definition:</b> io.hpp:34</div></div>
+<a href="3rdparty_2libprocess_2include_2process_2io_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// Licensed under the Apache License, Version 2.0 (the "License");</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// you may not use this file except in compliance with the License.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// You may obtain a copy of the License at</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</spa
n> <span class="comment">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// Unless required by applicable law or agreed to in writing, software</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">// distributed under the License is distributed on an "AS IS" BASIS,</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">// See the License for the specific language governing permissions and</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// limitations under the License</span></div><div class="line"><a name="l00012"></a><span class="lineno">
12</span> </div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#ifndef __PROCESS_IO_HPP__</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#define __PROCESS_IO_HPP__</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include <cstring></span> <span class="comment">// For size_t.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include <string></span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> </div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include <<a class="code" href="future_8hpp.html">process/future.hpp</a>></span><
/div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> </div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <<a class="code" href="nothing_8hpp.html">stout/nothing.hpp</a>></span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#ifdef __WINDOWS__</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <<a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html">stout/windows.hpp</a>></span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#endif // __WINDOWS__</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="keyword">namespace </span><a cl
ass="code" href="namespaceprocess.html">process</a> {</div><div class="line"><a name="l00027"></a><span class="lineno"><a class="line" href="namespaceprocess_1_1io.html"> 27</a></span> <span class="keyword">namespace </span>io {</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> </div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#ifndef ENABLE_LIBWINIO</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> </div><div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="namespaceprocess_1_1io.html#aca1f059ca9f0d7360631c621debeb879"> 35</a></span> <span class="keyword">const</span> <span class="keywordtype">short</span> <a class="code" href="namespaceprocess_1_1io.html#aca1f059ca9f0d7360631c621debeb879">READ</a> = 0x01;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> </div><div class="lin
e"><a name="l00040"></a><span class="lineno"><a class="line" href="namespaceprocess_1_1io.html#ab005316d71b45c5b05de0a6234c6f8fc"> 40</a></span> <span class="keyword">const</span> <span class="keywordtype">short</span> <a class="code" href="namespaceprocess_1_1io.html#ab005316d71b45c5b05de0a6234c6f8fc">WRITE</a> = 0x02;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="preprocessor">#endif // ENABLE_LIBWINIO</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="namespaceprocess_1_1io.html#a34d62916736c1dfebd1585cf51f19d0c"> 48</a></span> <span class="keyword">const</span> <span class="keywordtype">size_t</span> <a class="code" href="namespaceprocess_1_1io.html#a34d62916736c1dfebd1585cf51f19d0c">BUFFERED_READ_SIZE</a> = 16*4096;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</spa
n> </div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <a class="code" href="classTry.html">Try<Nothing></a> <a class="code" href="namespaceprocess_1_1io.html#a9db94d84fb44b21fb669ade7c6a82114">prepare_async</a>(<a class="code" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> fd);</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span> </div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <a class="code" href="classTry.html">Try<bool></a> <a class="code" href="namespaceprocess_1_1io.html#ada6541d78cad2ecc225be8a26662c748">is_async</a>(<a class="code" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> fd);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div><div class="line"><a name="l00074"></a><span class="lineno"> 74
</span> </div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="preprocessor">#ifndef ENABLE_LIBWINIO</span></div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span> </div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="comment">// TODO(benh): Add a version which takes multiple file descriptors.</span></div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <a class="code" href="classprocess_1_1Future.html">Future<short></a> <a class="code" href="namespaceprocess_1_1io.html#af71c45e0a85e21f6b39060f4e716cebf">poll</a>(<a class="code" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> fd, <span class="keywordtype">short</span> events);</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="preprocessor">#endif // ENABLE_LIBWINIO</span></div><div class="line"><a name="l00086"></a><
span class="lineno"> 86</span> </div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span> </div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <a class="code" href="classprocess_1_1Future.html">Future<size_t></a> <a class="code" href="namespaceprocess_1_1io.html#a4c34d22e475e29f12ac739921dcc580f">read</a>(<a class="code" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> fd, <span class="keywordtype">void</span>* data, <span class="keywordtype">size_t</span> <a class="code" href="namespaceos_1_1stat.html#a7a116891923bc8b5d8c50f78da8657be">size</a>);</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span> </div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span> </div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span> <a class="code" href="classprocess_1_1Future.html">Future<std::string></a> <a class="code" href=
"namespaceprocess_1_1io.html#a4c34d22e475e29f12ac739921dcc580f">read</a>(<a class="code" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> fd);</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span> </div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span> </div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span> <a class="code" href="classprocess_1_1Future.html">Future<size_t></a> <a class="code" href="namespaceprocess_1_1io.html#a49105dc036ad04225c92bd673da5ce39">write</a>(<a class="code" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> fd, <span class="keyword">const</span> <span class="keywordtype">void</span>* data, <span class="keywordtype">size_t</span> <a class="code" href="namespaceos_1_1stat.html#a7a116891923bc8b5d8c50f78da8657be">size</a>);</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span> </div><div class="line"><
a name="l00131"></a><span class="lineno"> 131</span> </div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span> <a class="code" href="classprocess_1_1Future.html">Future<Nothing></a> <a class="code" href="namespaceprocess_1_1io.html#a49105dc036ad04225c92bd673da5ce39">write</a>(<a class="code" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> fd, <span class="keyword">const</span> std::string& data);</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span> </div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span> <a class="code" href="classprocess_1_1Future.html">Future<Nothing></a> <a class="code" href="namespaceprocess_1_1io.html#ab9c4a52a88fcc9983438e391643424ca">redirect</a>(</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <a class="code" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> from,</div><div c
lass="line"><a name="l00158"></a><span class="lineno"> 158</span>  <a class="code" href="classOption.html">Option<int_fd></a> to,</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <span class="keywordtype">size_t</span> chunk = 4096,</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  <span class="keyword">const</span> std::vector<lambda::function<<span class="keywordtype">void</span>(<span class="keyword">const</span> std::string&)>>& hooks = {});</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span> </div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span> } <span class="comment">// namespace io {</span></div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span> } <span class="comment">// namespace process {</span></div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span> <
/div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span> <span class="preprocessor">#endif // __PROCESS_IO_HPP__</span></div><div class="ttc" id="namespaceprocess_1_1io_html_aca1f059ca9f0d7360631c621debeb879"><div class="ttname"><a href="namespaceprocess_1_1io.html#aca1f059ca9f0d7360631c621debeb879">process::io::READ</a></div><div class="ttdeci">const short READ</div><div class="ttdoc">A possible event while polling. </div><div class="ttdef"><b>Definition:</b> io.hpp:35</div></div>
<div class="ttc" id="classOption_html"><div class="ttname"><a href="classOption.html">Option< int_fd ></a></div></div>
<div class="ttc" id="namespaceos_1_1stat_html_a7a116891923bc8b5d8c50f78da8657be"><div class="ttname"><a href="namespaceos_1_1stat.html#a7a116891923bc8b5d8c50f78da8657be">os::stat::size</a></div><div class="ttdeci">Try< Bytes > size(const std::string &path, const FollowSymlink follow=FollowSymlink::FOLLOW_SYMLINK)</div><div class="ttdef"><b>Definition:</b> stat.hpp:121</div></div>
-<div class="ttc" id="namespaceprocess_1_1io_html_a34d62916736c1dfebd1585cf51f19d0c"><div class="ttname"><a href="namespaceprocess_1_1io.html#a34d62916736c1dfebd1585cf51f19d0c">process::io::BUFFERED_READ_SIZE</a></div><div class="ttdeci">const size_t BUFFERED_READ_SIZE</div><div class="ttdoc">Buffered read chunk size. </div><div class="ttdef"><b>Definition:</b> io.hpp:46</div></div>
+<div class="ttc" id="namespaceprocess_1_1io_html_a34d62916736c1dfebd1585cf51f19d0c"><div class="ttname"><a href="namespaceprocess_1_1io.html#a34d62916736c1dfebd1585cf51f19d0c">process::io::BUFFERED_READ_SIZE</a></div><div class="ttdeci">const size_t BUFFERED_READ_SIZE</div><div class="ttdoc">Buffered read chunk size. </div><div class="ttdef"><b>Definition:</b> io.hpp:48</div></div>
+<div class="ttc" id="classTry_html"><div class="ttname"><a href="classTry.html">Try</a></div><div class="ttdef"><b>Definition:</b> check.hpp:33</div></div>
+<div class="ttc" id="namespaceprocess_1_1io_html_a9db94d84fb44b21fb669ade7c6a82114"><div class="ttname"><a href="namespaceprocess_1_1io.html#a9db94d84fb44b21fb669ade7c6a82114">process::io::prepare_async</a></div><div class="ttdeci">Try< Nothing > prepare_async(int_fd fd)</div><div class="ttdoc">Prepares a file descriptor to be ready for asynchronous IO. </div></div>
<div class="ttc" id="namespaceprocess_1_1io_html_af71c45e0a85e21f6b39060f4e716cebf"><div class="ttname"><a href="namespaceprocess_1_1io.html#af71c45e0a85e21f6b39060f4e716cebf">process::io::poll</a></div><div class="ttdeci">Future< short > poll(int_fd fd, short events)</div><div class="ttdoc">Returns the events (a subset of the events specified) that can be performed on the specified file des...</div></div>
<div class="ttc" id="namespaceprocess_1_1io_html_ab9c4a52a88fcc9983438e391643424ca"><div class="ttname"><a href="namespaceprocess_1_1io.html#ab9c4a52a88fcc9983438e391643424ca">process::io::redirect</a></div><div class="ttdeci">Future< Nothing > redirect(int_fd from, Option< int_fd > to, size_t chunk=4096, const std::vector< lambda::function< void(const std::string &)>> &hooks={})</div><div class="ttdoc">Redirect output from the &#39;from&#39; file descriptor to the &#39;to&#39; file descriptor (or /dev/null if &#39;to&#39; is ...</div></div>
<div class="ttc" id="3rdparty_2stout_2include_2stout_2windows_8hpp_html"><div class="ttname"><a href="3rdparty_2stout_2include_2stout_2windows_8hpp.html">windows.hpp</a></div></div>
<div class="ttc" id="namespaceprocess_1_1io_html_a49105dc036ad04225c92bd673da5ce39"><div class="ttname"><a href="namespaceprocess_1_1io.html#a49105dc036ad04225c92bd673da5ce39">process::io::write</a></div><div class="ttdeci">Future< size_t > write(int_fd fd, const void *data, size_t size)</div><div class="ttdoc">Performs a single non-blocking write by polling on the specified file descriptor until data can be be...</div></div>
<div class="ttc" id="nothing_8hpp_html"><div class="ttname"><a href="nothing_8hpp.html">nothing.hpp</a></div></div>
-<div class="ttc" id="namespaceprocess_1_1io_html_ab005316d71b45c5b05de0a6234c6f8fc"><div class="ttname"><a href="namespaceprocess_1_1io.html#ab005316d71b45c5b05de0a6234c6f8fc">process::io::WRITE</a></div><div class="ttdeci">const short WRITE</div><div class="ttdoc">A possible event while polling. </div><div class="ttdef"><b>Definition:</b> io.hpp:39</div></div>
+<div class="ttc" id="namespaceprocess_1_1io_html_ab005316d71b45c5b05de0a6234c6f8fc"><div class="ttname"><a href="namespaceprocess_1_1io.html#ab005316d71b45c5b05de0a6234c6f8fc">process::io::WRITE</a></div><div class="ttdeci">const short WRITE</div><div class="ttdoc">A possible event while polling. </div><div class="ttdef"><b>Definition:</b> io.hpp:40</div></div>
<div class="ttc" id="future_8hpp_html"><div class="ttname"><a href="future_8hpp.html">future.hpp</a></div></div>
<div class="ttc" id="namespaceprocess_html"><div class="ttname"><a href="namespaceprocess.html">process</a></div><div class="ttdef"><b>Definition:</b> executor.hpp:48</div></div>
+<div class="ttc" id="namespaceprocess_1_1io_html_ada6541d78cad2ecc225be8a26662c748"><div class="ttname"><a href="namespaceprocess_1_1io.html#ada6541d78cad2ecc225be8a26662c748">process::io::is_async</a></div><div class="ttdeci">Try< bool > is_async(int_fd fd)</div><div class="ttdoc">Checks if io::prepare_async has been called on the file descriptor. </div></div>
<div class="ttc" id="namespaceprocess_1_1io_html_a4c34d22e475e29f12ac739921dcc580f"><div class="ttname"><a href="namespaceprocess_1_1io.html#a4c34d22e475e29f12ac739921dcc580f">process::io::read</a></div><div class="ttdeci">Future< size_t > read(int_fd fd, void *data, size_t size)</div><div class="ttdoc">Performs a single non-blocking read by polling on the specified file descriptor until any data can be...</div></div>
<div class="ttc" id="int__fd_8hpp_html_aea4dbda01c90455f158ffa9b924c2f07"><div class="ttname"><a href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a></div><div class="ttdeci">int int_fd</div><div class="ttdef"><b>Definition:</b> int_fd.hpp:35</div></div>
<div class="ttc" id="classprocess_1_1Future_html"><div class="ttname"><a href="classprocess_1_1Future.html">process::Future</a></div><div class="ttdef"><b>Definition:</b> future.hpp:58</div></div>
[46/50] mesos-site git commit: Updated the website built from mesos
SHA: 7c9c72d.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/3rdparty_2stout_2include_2stout_2os_2linux_8hpp_source.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/3rdparty_2stout_2include_2stout_2os_2linux_8hpp_source.html b/content/api/latest/c++/3rdparty_2stout_2include_2stout_2os_2linux_8hpp_source.html
index fa967f9..f862e4a 100644
--- a/content/api/latest/c++/3rdparty_2stout_2include_2stout_2os_2linux_8hpp_source.html
+++ b/content/api/latest/c++/3rdparty_2stout_2include_2stout_2os_2linux_8hpp_source.html
@@ -110,7 +110,7 @@
<div class="ttc" id="structos_1_1Memory_html_ab447e8e30892e0d5f0e3a976e6d80cde"><div class="ttname"><a href="structos_1_1Memory.html#ab447e8e30892e0d5f0e3a976e6d80cde">os::Memory::free</a></div><div class="ttdeci">Bytes free</div><div class="ttdef"><b>Definition:</b> os.hpp:37</div></div>
<div class="ttc" id="namespaceflags_html"><div class="ttname"><a href="namespaceflags.html">flags</a></div><div class="ttdef"><b>Definition:</b> parse.hpp:33</div></div>
<div class="ttc" id="namespaceos_html_a42af1cab63434cedf2b698cd6f49f073"><div class="ttname"><a href="namespaceos.html#a42af1cab63434cedf2b698cd6f49f073">os::pids</a></div><div class="ttdeci">Try< std::set< pid_t > > pids()</div><div class="ttdef"><b>Definition:</b> freebsd.hpp:62</div></div>
-<div class="ttc" id="namespaceprocess_1_1internal_html_a902e2646d88c41ce674a3009cafe0aad"><div class="ttname"><a href="namespaceprocess_1_1internal.html#a902e2646d88c41ce674a3009cafe0aad">process::internal::childMain</a></div><div class="ttdeci">int childMain(const std::string &path, char **argv, char **envp, const InputFileDescriptors &stdinfds, const OutputFileDescriptors &stdoutfds, const OutputFileDescriptors &stderrfds, bool blocking, int pipes[2], const std::vector< Subprocess::ChildHook > &child_hooks)</div><div class="ttdef"><b>Definition:</b> subprocess_posix.hpp:106</div></div>
+<div class="ttc" id="namespaceprocess_1_1internal_html_a902e2646d88c41ce674a3009cafe0aad"><div class="ttname"><a href="namespaceprocess_1_1internal.html#a902e2646d88c41ce674a3009cafe0aad">process::internal::childMain</a></div><div class="ttdeci">int childMain(const std::string &path, char **argv, char **envp, const InputFileDescriptors &stdinfds, const OutputFileDescriptors &stdoutfds, const OutputFileDescriptors &stderrfds, bool blocking, int pipes[2], const std::vector< Subprocess::ChildHook > &child_hooks)</div><div class="ttdef"><b>Definition:</b> subprocess.hpp:106</div></div>
<div class="ttc" id="classos_1_1Stack_html"><div class="ttname"><a href="classos_1_1Stack.html">os::Stack</a></div><div class="ttdef"><b>Definition:</b> linux.hpp:54</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/3rdparty_2stout_2include_2stout_2os_2windows_2read_8hpp_source.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/3rdparty_2stout_2include_2stout_2os_2windows_2read_8hpp_source.html b/content/api/latest/c++/3rdparty_2stout_2include_2stout_2os_2windows_2read_8hpp_source.html
index f66fc5d..7aac325 100644
--- a/content/api/latest/c++/3rdparty_2stout_2include_2stout_2os_2windows_2read_8hpp_source.html
+++ b/content/api/latest/c++/3rdparty_2stout_2include_2stout_2os_2windows_2read_8hpp_source.html
@@ -52,7 +52,7 @@
<div class="title">read.hpp</div> </div>
</div><!--header-->
<div class="contents">
-<a href="3rdparty_2stout_2include_2stout_2os_2windows_2read_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// Licensed under the Apache License, Version 2.0 (the "License");</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// you may not use this file except in compliance with the License.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// You may obtain a copy of the License at</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6
</span> <span class="comment">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// Unless required by applicable law or agreed to in writing, software</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">// distributed under the License is distributed on an "AS IS" BASIS,</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">// See the License for the specific language governing permissions and</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// limitations under the License.</span></div><div class="line"><a name="l00012"></a><span class="line
no"> 12</span> </div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#ifndef __STOUT_OS_WINDOWS_READ_HPP__</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#define __STOUT_OS_WINDOWS_READ_HPP__</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include <<a class="code" href="result_8hpp.html">stout/result.hpp</a>></span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include <<a class="code" href="unreachable_8hpp.html">stout/unreachable.hpp</a>></span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include <<a class="code" href="3rdparty_2stout_2include_2stout_2wi
ndows_8hpp.html">stout/windows.hpp</a>></span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> </div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include <<a class="code" href="overlapped_8hpp.html">stout/internal/windows/overlapped.hpp</a>></span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <<a class="code" href="int__fd_8hpp.html">stout/os/int_fd.hpp</a>></span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <<a class="code" href="stout_2include_2stout_2os_2socket_8hpp.html">stout/os/socket.hpp</a>></span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> </div><div class="line"><a name="l00025"></a><span c
lass="lineno"> 25</span> <span class="keyword">namespace </span><a class="code" href="namespaceos.html">os</a> {</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="comment">// Asynchronous read on a overlapped int_fd. Returns `Error` on fatal errors,</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="comment">// `None()` on a successful pending IO operation or number of bytes read on a</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="comment">// successful IO operation that finished immediately.</span></div><div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="namespaceos.html#a00b6398808bc7afef46f705c1f92a2fe"> 30</a></span> <span class="keyword">inline</span> <a class="code" href="classResult.html">Result<
size_t></a> <a class="code" href="namespaceos.html#a00b6398808bc7afef46f705c1f92a2fe">read_async</a>(</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  <span class="keyword">const</span> <a class="code" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a>& fd,</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  <span class="keywordtype">void</span>* data,</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  <span class="keywordtype">size_t</span> <a class="code" href="namespaceos_1_1stat.html#a7a116891923bc8b5d8c50f78da8657be">size</a>,</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  OVERLAPPED* overlapped)</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> {</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  CHECK_LE(size, UINT_MAX);</div><div class="
line"><a name="l00037"></a><span class="lineno"> 37</span> </div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  <span class="keywordflow">switch</span> (fd.type()) {</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <span class="keywordflow">case</span> <a class="code" href="classos_1_1WindowsFD.html#ac0377db41e1c167339c97dbd69c79ae5ad09c4cb1265f1772bb757a7af277b49f">WindowsFD::Type::HANDLE</a>: {</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  DWORD bytes;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <span class="keyword">const</span> <span class="keywordtype">bool</span> success =</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  ::ReadFile(fd, data, static_cast<DWORD>(size), &bytes, overlapped);</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span
> </div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <span class="comment">// On failure, there are two EOF cases for reads:</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <span class="comment">// 1) ERROR_BROKEN_PIPE: The write end is closed and there is no data.</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <span class="comment">// 2) ERROR_HANDLE_EOF: We hit the EOF for an asynchronous file handle.</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <span class="keyword">const</span> DWORD errorCode = ::GetLastError();</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <span class="keywordflow">if</span> (success == FALSE &&</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  (errorCode == ERROR_BROKEN_PIPE
|| errorCode == ERROR_HANDLE_EOF)) {</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  }</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <a class="code" href="namespaceinternal_1_1windows.html#a4ed4d1bae6b01fb85f8e6fad0b10599d">return ::internal::windows::process_async_io_result</a>(success, bytes);</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  }</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="keywordflow">case</span> <a class="code" href="classos_1_1WindowsFD.html#ac0377db41e1c167339c97dbd69c79ae5a75fbea08c09e684e6b3f3961761354fa">WindowsFD::Type::SOCKET</a>: {</div><div class="line"><a name="l000
56"></a><span class="lineno"> 56</span>  static_assert(</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  std::is_same<OVERLAPPED, WSAOVERLAPPED>::value,</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="stringliteral">"Expected `WSAOVERLAPPED` to be of type `OVERLAPPED`."</span>);</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <span class="comment">// Note that it's okay to allocate this on the stack, since the WinSock</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="comment">// providers must copy the WSABUF to their internal buffers. See</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="comment">// https://msdn
.microsoft.com/en-us/library/windows/desktop/ms741688(v=vs.85).aspx // NOLINT(whitespace/line_length)</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  WSABUF buf = {</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <span class="keyword">static_cast<</span>u_long<span class="keyword">></span>(<a class="code" href="namespaceos_1_1stat.html#a7a116891923bc8b5d8c50f78da8657be">size</a>),</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  static_cast<char*>(data)</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  };</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span> </div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  DWORD bytes;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  DWORD <a class="code" href=
"namespaceflags.html">flags</a> = 0;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> result =</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  ::WSARecv(fd, &buf, 1, &bytes, &flags, overlapped, <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span> </div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <a class="code" href="namespaceinternal_1_1windows.html#a4ed4d1bae6b01fb85f8e6fad0b10599d">return ::internal::windows::process_async_io_result</a>(result == 0, bytes);</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  }</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  }</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>
60;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <a class="code" href="unreachable_8hpp.html#a0bc63b24b654ca433be7b97a3edde132">UNREACHABLE</a>();</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span> }</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span> </div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span> </div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="comment">// Synchronous reads on any int_fd. Returns -1 on error and</span></div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="comment">// number of bytes read on success.</span></div><div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="namespaceos.html#a7e99bac0fb06315c051358c7916fe692"> 83</a></span> <span class="keyword">inline</span> <a class="code" href="3rdparty_2stout_2i
nclude_2stout_2windows_8hpp.html#a894c4d58faeee7675b9e7e8244de1386">ssize_t</a> <a class="code" href="namespaceos.html#aa1d97ff0a93229e1fe6b33e3e2d567f7">read</a>(<span class="keyword">const</span> <a class="code" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a>& fd, <span class="keywordtype">void</span>* data, <span class="keywordtype">size_t</span> <a class="code" href="namespaceos_1_1stat.html#a7a116891923bc8b5d8c50f78da8657be">size</a>)</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span> {</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  CHECK_LE(size, UINT_MAX);</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span> </div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="keywordflow">switch</span> (fd.type()) {</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <span class="keywordf
low">case</span> <a class="code" href="classos_1_1WindowsFD.html#ac0377db41e1c167339c97dbd69c79ae5ad09c4cb1265f1772bb757a7af277b49f">WindowsFD::Type::HANDLE</a>: {</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <span class="comment">// Handle non-overlapped case. We just use the regular `ReadFile` since</span></div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <span class="comment">// seekable overlapped files require an offset, which we don't track.</span></div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <span class="keywordflow">if</span> (!fd.is_overlapped()) {</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  DWORD bytes;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <span class="keyword">const</span> BOOL result =</div><div class="line"><a name="l00094"></a><span class="l
ineno"> 94</span>  ::ReadFile(fd, data, static_cast<DWORD>(size), &bytes, <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span> </div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <span class="keywordflow">if</span> (result == FALSE) {</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <span class="comment">// The pipe "breaks" when the other process closes its handle, but we</span></div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <span class="comment">// still have the data and therefore do not want to return an error.</span></div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <span class="keywordflow">if</span> (::GetLastError() != ERROR_BROKEN_PIPE) {</div><div class="line"><a name="l00100"></a><span class="lineno
"> 100</span>  <span class="comment">// Indicates an error, but we can't return a `WindowsError`.</span></div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <span class="keywordflow">return</span> -1;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  }</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  }</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span> </div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <span class="keywordflow">return</span> <span class="keyword">static_cast<</span><a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#a894c4d58faeee7675b9e7e8244de1386">ssize_t</a><span class="keyword">></span>(bytes);</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  }</div><div class="line"><a name="l
00107"></a><span class="lineno"> 107</span> </div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <span class="comment">// Asynchronous handle, we can use the `read_async` function</span></div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <span class="comment">// and then wait on the overlapped object for a synchronous read.</span></div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <a class="code" href="classTry.html">Try<OVERLAPPED></a> overlapped_ =</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <a class="code" href="namespaceinternal_1_1windows.html#a388bd9a30ab487f5d035e542187e379a">::internal::windows::init_overlapped_for_sync_io</a>();</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span> </div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <span
class="keywordflow">if</span> (overlapped_.<a class="code" href="classTry.html#a0b98f95163b8a38daafd1651b043a276">isError</a>()) {</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <span class="keywordflow">return</span> -1;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  }</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span> </div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  OVERLAPPED overlapped = overlapped_.<a class="code" href="classTry.html#a8bc7f43e75a47111ea18e9c83b007be5">get</a>();</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <a class="code" href="classResult.html">Result<size_t></a> result = <a class="code" href="namespaceos.html#a00b6398808bc7afef46f705c1f92a2fe">read_async</a>(fd, data, size, &overlapped);</div><div class="line"><a name="l00119"></a><span class="lineno
"> 119</span> </div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <span class="keywordflow">if</span> (result.<a class="code" href="classResult.html#aeca16ad17d299ad885c9b46c83b12a3d">isError</a>()) {</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <span class="keywordflow">return</span> -1;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  }</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span> </div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <span class="keywordflow">if</span> (result.<a class="code" href="classResult.html#a85eaa52037223d71092e65701c166562">isSome</a>()) {</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <span class="keywordflow">return</span> result.<a class="code" href="classResult.html#aedf79f3b14dcda5791b84a64ada4d412">get</a>
();</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  }</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span> </div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <span class="comment">// IO is pending, so wait for the overlapped object.</span></div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  DWORD bytes;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <span class="keyword">const</span> BOOL wait_success =</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  ::GetOverlappedResult(fd, &overlapped, &bytes, TRUE);</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span> </div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <span class="keywordflow">if</span> (wait_success == TRUE) {</div><div clas
s="line"><a name="l00134"></a><span class="lineno"> 134</span>  <span class="keywordflow">return</span> bytes;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  }</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span> </div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <span class="comment">// On failure, there are two EOF cases for reads:</span></div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <span class="comment">// 1) ERROR_BROKEN_PIPE: The write end is closed and there is no data.</span></div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  <span class="comment">// 2) ERROR_HANDLE_EOF: We hit the EOF for an asynchronous file handle.</span></div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  <span class="keyword">const</span> DWORD <a class="code" h
ref="namespacemesos_1_1internal_1_1slave_1_1cni_1_1spec.html#ae58e703656ab4a1bd5d9870441236727">error</a> = ::GetLastError();</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <span class="keywordflow">if</span> (error == ERROR_BROKEN_PIPE || error == ERROR_HANDLE_EOF) {</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  }</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span> </div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <span class="keywordflow">return</span> -1;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  }</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <span class="keywordflow">case</span> <a class="code" href="classos_
1_1WindowsFD.html#ac0377db41e1c167339c97dbd69c79ae5a75fbea08c09e684e6b3f3961761354fa">WindowsFD::Type::SOCKET</a>: {</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  <a class="code" href="namespacenet.html#ae1804e10c81f5743b459eeae1f6a701a">return ::recv</a>(fd, (<span class="keywordtype">char</span>*)data, static_cast<unsigned int>(size), 0);</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  }</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  }</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span> </div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  <a class="code" href="unreachable_8hpp.html#a0bc63b24b654ca433be7b97a3edde132">UNREACHABLE</a>();</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span> }</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>
 </div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span> } <span class="comment">// namespace os {</span></div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span> </div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span> <span class="preprocessor">#endif // __STOUT_OS_WINDOWS_READ_HPP__</span></div><div class="ttc" id="3rdparty_2stout_2include_2stout_2windows_8hpp_html_a894c4d58faeee7675b9e7e8244de1386"><div class="ttname"><a href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#a894c4d58faeee7675b9e7e8244de1386">ssize_t</a></div><div class="ttdeci">SSIZE_T ssize_t</div><div class="ttdef"><b>Definition:</b> windows.hpp:186</div></div>
+<a href="3rdparty_2stout_2include_2stout_2os_2windows_2read_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// Licensed under the Apache License, Version 2.0 (the "License");</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// you may not use this file except in compliance with the License.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// You may obtain a copy of the License at</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6
</span> <span class="comment">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// Unless required by applicable law or agreed to in writing, software</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">// distributed under the License is distributed on an "AS IS" BASIS,</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">// See the License for the specific language governing permissions and</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// limitations under the License.</span></div><div class="line"><a name="l00012"></a><span class="line
no"> 12</span> </div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#ifndef __STOUT_OS_WINDOWS_READ_HPP__</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#define __STOUT_OS_WINDOWS_READ_HPP__</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include <<a class="code" href="result_8hpp.html">stout/result.hpp</a>></span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include <<a class="code" href="unreachable_8hpp.html">stout/unreachable.hpp</a>></span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include <<a class="code" href="3rdparty_2stout_2include_2stout_2wi
ndows_8hpp.html">stout/windows.hpp</a>></span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> </div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include <<a class="code" href="overlapped_8hpp.html">stout/internal/windows/overlapped.hpp</a>></span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <<a class="code" href="int__fd_8hpp.html">stout/os/int_fd.hpp</a>></span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <<a class="code" href="stout_2include_2stout_2os_2socket_8hpp.html">stout/os/socket.hpp</a>></span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> </div><div class="line"><a name="l00025"></a><span c
lass="lineno"> 25</span> <span class="keyword">namespace </span><a class="code" href="namespaceos.html">os</a> {</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="comment">// Asynchronous read on a overlapped int_fd. Returns `Error` on fatal errors,</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="comment">// `None()` on a successful pending IO operation or number of bytes read on a</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="comment">// successful IO operation that finished immediately.</span></div><div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="namespaceos.html#a00b6398808bc7afef46f705c1f92a2fe"> 30</a></span> <span class="keyword">inline</span> <a class="code" href="classResult.html">Result<
size_t></a> <a class="code" href="namespaceos.html#a00b6398808bc7afef46f705c1f92a2fe">read_async</a>(</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  <span class="keyword">const</span> <a class="code" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a>& fd,</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  <span class="keywordtype">void</span>* data,</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  <span class="keywordtype">size_t</span> <a class="code" href="namespaceos_1_1stat.html#a7a116891923bc8b5d8c50f78da8657be">size</a>,</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  OVERLAPPED* overlapped)</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> {</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  CHECK_LE(size, UINT_MAX);</div><div class="
line"><a name="l00037"></a><span class="lineno"> 37</span> </div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  <span class="keywordflow">switch</span> (fd.type()) {</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <span class="keywordflow">case</span> <a class="code" href="classos_1_1WindowsFD.html#ac0377db41e1c167339c97dbd69c79ae5ad09c4cb1265f1772bb757a7af277b49f">WindowsFD::Type::HANDLE</a>: {</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  DWORD bytes;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <span class="keyword">const</span> <span class="keywordtype">bool</span> success =</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  ::ReadFile(fd, data, static_cast<DWORD>(size), &bytes, overlapped);</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span
> </div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <span class="comment">// On failure, there are two EOF cases for reads:</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <span class="comment">// 1) ERROR_BROKEN_PIPE: The write end is closed and there is no data.</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <span class="comment">// 2) ERROR_HANDLE_EOF: We hit the EOF for an asynchronous file handle.</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <span class="keyword">const</span> DWORD errorCode = ::GetLastError();</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <span class="keywordflow">if</span> (success == FALSE &&</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  (errorCode == ERROR_BROKEN_PIPE
|| errorCode == ERROR_HANDLE_EOF)) {</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  }</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <a class="code" href="namespaceinternal_1_1windows.html#a4ed4d1bae6b01fb85f8e6fad0b10599d">return ::internal::windows::process_async_io_result</a>(success, bytes);</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  }</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="keywordflow">case</span> <a class="code" href="classos_1_1WindowsFD.html#ac0377db41e1c167339c97dbd69c79ae5a75fbea08c09e684e6b3f3961761354fa">WindowsFD::Type::SOCKET</a>: {</div><div class="line"><a name="l000
56"></a><span class="lineno"> 56</span>  static_assert(</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  std::is_same<OVERLAPPED, WSAOVERLAPPED>::value,</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="stringliteral">"Expected `WSAOVERLAPPED` to be of type `OVERLAPPED`."</span>);</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <span class="comment">// Note that it's okay to allocate this on the stack, since the WinSock</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="comment">// providers must copy the WSABUF to their internal buffers. See</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="comment">// https://msdn
.microsoft.com/en-us/library/windows/desktop/ms741688(v=vs.85).aspx // NOLINT(whitespace/line_length)</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  WSABUF buf = {</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <span class="keyword">static_cast<</span>u_long<span class="keyword">></span>(<a class="code" href="namespaceos_1_1stat.html#a7a116891923bc8b5d8c50f78da8657be">size</a>),</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  static_cast<char*>(data)</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  };</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span> </div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  DWORD bytes;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  DWORD <a class="code" href=
"namespaceflags.html">flags</a> = 0;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> result =</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  ::WSARecv(fd, &buf, 1, &bytes, &flags, overlapped, <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span> </div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <a class="code" href="namespaceinternal_1_1windows.html#a4ed4d1bae6b01fb85f8e6fad0b10599d">return ::internal::windows::process_async_io_result</a>(result == 0, bytes);</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  }</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  }</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>
60;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <a class="code" href="unreachable_8hpp.html#a0bc63b24b654ca433be7b97a3edde132">UNREACHABLE</a>();</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span> }</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span> </div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span> </div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="comment">// Synchronous reads on any int_fd. Returns -1 on error and</span></div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="comment">// number of bytes read on success.</span></div><div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="namespaceos.html#a7e99bac0fb06315c051358c7916fe692"> 83</a></span> <span class="keyword">inline</span> <a class="code" href="3rdparty_2stout_2i
nclude_2stout_2windows_8hpp.html#a894c4d58faeee7675b9e7e8244de1386">ssize_t</a> <a class="code" href="namespaceos.html#aa1d97ff0a93229e1fe6b33e3e2d567f7">read</a>(<span class="keyword">const</span> <a class="code" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a>& fd, <span class="keywordtype">void</span>* data, <span class="keywordtype">size_t</span> <a class="code" href="namespaceos_1_1stat.html#a7a116891923bc8b5d8c50f78da8657be">size</a>)</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span> {</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  CHECK_LE(size, UINT_MAX);</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span> </div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="keywordflow">switch</span> (fd.type()) {</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <span class="keywordf
low">case</span> <a class="code" href="classos_1_1WindowsFD.html#ac0377db41e1c167339c97dbd69c79ae5ad09c4cb1265f1772bb757a7af277b49f">WindowsFD::Type::HANDLE</a>: {</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <span class="comment">// Handle non-overlapped case. We just use the regular `ReadFile` since</span></div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <span class="comment">// seekable overlapped files require an offset, which we don't track.</span></div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <span class="keywordflow">if</span> (!fd.is_overlapped()) {</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  DWORD bytes;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <span class="keyword">const</span> BOOL result =</div><div class="line"><a name="l00094"></a><span class="l
ineno"> 94</span>  ::ReadFile(fd, data, static_cast<DWORD>(size), &bytes, <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span> </div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <span class="keywordflow">if</span> (result == FALSE) {</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <span class="comment">// The pipe "breaks" when the other process closes its handle, but we</span></div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <span class="comment">// still have the data and therefore do not want to return an error.</span></div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <span class="keywordflow">if</span> (::GetLastError() != ERROR_BROKEN_PIPE) {</div><div class="line"><a name="l00100"></a><span class="lineno
"> 100</span>  <span class="comment">// Indicates an error, but we can't return a `WindowsError`.</span></div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <span class="keywordflow">return</span> -1;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  }</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  }</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span> </div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <span class="keywordflow">return</span> <span class="keyword">static_cast<</span><a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#a894c4d58faeee7675b9e7e8244de1386">ssize_t</a><span class="keyword">></span>(bytes);</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  }</div><div class="line"><a name="l
00107"></a><span class="lineno"> 107</span> </div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <span class="comment">// Asynchronous handle, we can use the `read_async` function</span></div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <span class="comment">// and then wait on the overlapped object for a synchronous read.</span></div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <a class="code" href="classTry.html">Try<OVERLAPPED></a> overlapped_ =</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <a class="code" href="namespaceinternal_1_1windows.html#a388bd9a30ab487f5d035e542187e379a">::internal::windows::init_overlapped_for_sync_io</a>();</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span> </div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <span
class="keywordflow">if</span> (overlapped_.<a class="code" href="classTry.html#a0b98f95163b8a38daafd1651b043a276">isError</a>()) {</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <span class="keywordflow">return</span> -1;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  }</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span> </div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  OVERLAPPED overlapped = overlapped_.<a class="code" href="classTry.html#a8bc7f43e75a47111ea18e9c83b007be5">get</a>();</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <a class="code" href="classResult.html">Result<size_t></a> result = <a class="code" href="namespaceos.html#a00b6398808bc7afef46f705c1f92a2fe">read_async</a>(fd, data, size, &overlapped);</div><div class="line"><a name="l00119"></a><span class="lineno
"> 119</span> </div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <span class="keywordflow">if</span> (result.<a class="code" href="classResult.html#aeca16ad17d299ad885c9b46c83b12a3d">isError</a>()) {</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <span class="keywordflow">return</span> -1;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  }</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span> </div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <span class="keywordflow">if</span> (result.<a class="code" href="classResult.html#a85eaa52037223d71092e65701c166562">isSome</a>()) {</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <span class="keywordflow">return</span> result.<a class="code" href="classResult.html#aedf79f3b14dcda5791b84a64ada4d412">get</a>
();</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  }</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span> </div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <span class="comment">// IO is pending, so wait for the overlapped object.</span></div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  DWORD bytes;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <span class="keyword">const</span> BOOL wait_success =</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  ::GetOverlappedResult(fd, &overlapped, &bytes, TRUE);</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span> </div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <span class="keywordflow">if</span> (wait_success == TRUE) {</div><div clas
s="line"><a name="l00134"></a><span class="lineno"> 134</span>  <span class="keywordflow">return</span> bytes;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  }</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span> </div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <span class="comment">// On failure, there are two EOF cases for reads:</span></div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <span class="comment">// 1) ERROR_BROKEN_PIPE: The write end is closed and there is no data.</span></div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  <span class="comment">// 2) ERROR_HANDLE_EOF: We hit the EOF for an asynchronous file handle.</span></div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  <span class="keyword">const</span> DWORD <a class="code" h
ref="namespacemesos_1_1internal_1_1slave_1_1cni_1_1spec.html#ae58e703656ab4a1bd5d9870441236727">error</a> = ::GetLastError();</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <span class="keywordflow">if</span> (error == ERROR_BROKEN_PIPE || error == ERROR_HANDLE_EOF) {</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  }</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span> </div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <span class="keywordflow">return</span> -1;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  }</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <span class="keywordflow">case</span> <a class="code" href="classos_
1_1WindowsFD.html#ac0377db41e1c167339c97dbd69c79ae5a75fbea08c09e684e6b3f3961761354fa">WindowsFD::Type::SOCKET</a>: {</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  <a class="code" href="namespaceprocess_1_1windows.html#a37fde6f31c2f9838a18cf83c2c865134">return ::recv</a>(fd, (<span class="keywordtype">char</span>*)data, static_cast<unsigned int>(size), 0);</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  }</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  }</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span> </div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  <a class="code" href="unreachable_8hpp.html#a0bc63b24b654ca433be7b97a3edde132">UNREACHABLE</a>();</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span> }</div><div class="line"><a name="l00154"></a><span class="linen
o"> 154</span> </div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span> } <span class="comment">// namespace os {</span></div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span> </div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span> <span class="preprocessor">#endif // __STOUT_OS_WINDOWS_READ_HPP__</span></div><div class="ttc" id="3rdparty_2stout_2include_2stout_2windows_8hpp_html_a894c4d58faeee7675b9e7e8244de1386"><div class="ttname"><a href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#a894c4d58faeee7675b9e7e8244de1386">ssize_t</a></div><div class="ttdeci">SSIZE_T ssize_t</div><div class="ttdef"><b>Definition:</b> windows.hpp:186</div></div>
<div class="ttc" id="namespaceos_1_1stat_html_a7a116891923bc8b5d8c50f78da8657be"><div class="ttname"><a href="namespaceos_1_1stat.html#a7a116891923bc8b5d8c50f78da8657be">os::stat::size</a></div><div class="ttdeci">Try< Bytes > size(const std::string &path, const FollowSymlink follow=FollowSymlink::FOLLOW_SYMLINK)</div><div class="ttdef"><b>Definition:</b> stat.hpp:121</div></div>
<div class="ttc" id="classTry_html_a8bc7f43e75a47111ea18e9c83b007be5"><div class="ttname"><a href="classTry.html#a8bc7f43e75a47111ea18e9c83b007be5">Try::get</a></div><div class="ttdeci">T & get()&</div><div class="ttdef"><b>Definition:</b> try.hpp:73</div></div>
<div class="ttc" id="classTry_html"><div class="ttname"><a href="classTry.html">Try</a></div><div class="ttdef"><b>Definition:</b> check.hpp:33</div></div>
@@ -61,11 +61,11 @@
<div class="ttc" id="namespaceinternal_1_1windows_html_a4ed4d1bae6b01fb85f8e6fad0b10599d"><div class="ttname"><a href="namespaceinternal_1_1windows.html#a4ed4d1bae6b01fb85f8e6fad0b10599d">internal::windows::process_async_io_result</a></div><div class="ttdeci">Result< size_t > process_async_io_result(bool successful_return_code, size_t bytes_transfered)</div><div class="ttdef"><b>Definition:</b> overlapped.hpp:71</div></div>
<div class="ttc" id="namespaceos_html"><div class="ttname"><a href="namespaceos.html">os</a></div><div class="ttdef"><b>Definition:</b> posix_signalhandler.hpp:23</div></div>
<div class="ttc" id="stout_2include_2stout_2os_2socket_8hpp_html"><div class="ttname"><a href="stout_2include_2stout_2os_2socket_8hpp.html">socket.hpp</a></div></div>
+<div class="ttc" id="namespaceprocess_1_1windows_html_a37fde6f31c2f9838a18cf83c2c865134"><div class="ttname"><a href="namespaceprocess_1_1windows.html#a37fde6f31c2f9838a18cf83c2c865134">process::windows::recv</a></div><div class="ttdeci">Future< size_t > recv(const int_fd &fd, void *buf, size_t size)</div></div>
<div class="ttc" id="classos_1_1WindowsFD_html_ac0377db41e1c167339c97dbd69c79ae5a75fbea08c09e684e6b3f3961761354fa"><div class="ttname"><a href="classos_1_1WindowsFD.html#ac0377db41e1c167339c97dbd69c79ae5a75fbea08c09e684e6b3f3961761354fa">os::WindowsFD::Type::SOCKET</a></div></div>
<div class="ttc" id="result_8hpp_html"><div class="ttname"><a href="result_8hpp.html">result.hpp</a></div></div>
<div class="ttc" id="3rdparty_2stout_2include_2stout_2windows_8hpp_html"><div class="ttname"><a href="3rdparty_2stout_2include_2stout_2windows_8hpp.html">windows.hpp</a></div></div>
<div class="ttc" id="classResult_html"><div class="ttname"><a href="classResult.html">Result</a></div><div class="ttdef"><b>Definition:</b> check.hpp:30</div></div>
-<div class="ttc" id="namespacenet_html_ae1804e10c81f5743b459eeae1f6a701a"><div class="ttname"><a href="namespacenet.html#ae1804e10c81f5743b459eeae1f6a701a">net::recv</a></div><div class="ttdeci">ssize_t recv(const int_fd &fd, void *buf, size_t len, int flags)</div><div class="ttdef"><b>Definition:</b> socket.hpp:168</div></div>
<div class="ttc" id="classResult_html_aedf79f3b14dcda5791b84a64ada4d412"><div class="ttname"><a href="classResult.html#aedf79f3b14dcda5791b84a64ada4d412">Result::get</a></div><div class="ttdeci">const T & get() const </div><div class="ttdef"><b>Definition:</b> result.hpp:115</div></div>
<div class="ttc" id="unreachable_8hpp_html_a0bc63b24b654ca433be7b97a3edde132"><div class="ttname"><a href="unreachable_8hpp.html#a0bc63b24b654ca433be7b97a3edde132">UNREACHABLE</a></div><div class="ttdeci">#define UNREACHABLE()</div><div class="ttdef"><b>Definition:</b> unreachable.hpp:22</div></div>
<div class="ttc" id="namespaceos_html_a00b6398808bc7afef46f705c1f92a2fe"><div class="ttname"><a href="namespaceos.html#a00b6398808bc7afef46f705c1f92a2fe">os::read_async</a></div><div class="ttdeci">Result< size_t > read_async(const int_fd &fd, void *data, size_t size, OVERLAPPED *overlapped)</div><div class="ttdef"><b>Definition:</b> read.hpp:30</div></div>
[10/50] mesos-site git commit: Updated the website built from mesos
SHA: 7c9c72d.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/subprocess_8hpp_source.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/subprocess_8hpp_source.html b/content/api/latest/c++/subprocess_8hpp_source.html
deleted file mode 100644
index b614de8..0000000
--- a/content/api/latest/c++/subprocess_8hpp_source.html
+++ /dev/null
@@ -1,115 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.11"/>
-<title>Apache Mesos: 3rdparty/libprocess/include/process/subprocess.hpp Source File</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">Apache Mesos
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.11 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="pages.html"><span>Related Pages</span></a></li>
- <li><a href="namespaces.html"><span>Namespaces</span></a></li>
- <li><a href="annotated.html"><span>Classes</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li><a href="examples.html"><span>Examples</span></a></li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li><a href="globals.html"><span>File Members</span></a></li>
- </ul>
- </div>
-<div id="nav-path" class="navpath">
- <ul>
-<li class="navelem"><a class="el" href="dir_8cab8f464681f7cc51cee77e79a434cd.html">3rdparty</a></li><li class="navelem"><a class="el" href="dir_043a76de98701f9bddf61b5e98f305ff.html">libprocess</a></li><li class="navelem"><a class="el" href="dir_eac18f7a64f6f8afbd1493ef4e09abdb.html">include</a></li><li class="navelem"><a class="el" href="dir_1894286df79cf582d947dbc4268b06cf.html">process</a></li> </ul>
-</div>
-</div><!-- top -->
-<div class="header">
- <div class="headertitle">
-<div class="title">subprocess.hpp</div> </div>
-</div><!--header-->
-<div class="contents">
-<a href="subprocess_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// Licensed under the Apache License, Version 2.0 (the "License");</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// you may not use this file except in compliance with the License.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// You may obtain a copy of the License at</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">//
</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// Unless required by applicable law or agreed to in writing, software</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">// distributed under the License is distributed on an "AS IS" BASIS,</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">// See the License for the specific language governing permissions and</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// limitations under the License</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> </div><div class
="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#ifndef __PROCESS_SUBPROCESS_HPP__</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#define __PROCESS_SUBPROCESS_HPP__</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include <map></span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include <memory></span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include <string></span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include <vector></span></div><div class="line"><a name="l00020"></a><span class="lineno
"> 20</span> </div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <<a class="code" href="future_8hpp.html">process/future.hpp</a>></span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <<a class="code" href="3rdparty_2stout_2include_2stout_2flags_8hpp.html">stout/flags.hpp</a>></span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <<a class="code" href="lambda_8hpp.html">stout/lambda.hpp</a>></span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <<a class="code" href="none_8hpp.html">stout/none.hpp</a>></span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> 
<span class="preprocessor">#include <<a class="code" href="option_8hpp.html">stout/option.hpp</a>></span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <<a class="code" href="try_8hpp.html">stout/try.hpp</a>></span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> </div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include <<a class="code" href="shell_8hpp.html">stout/os/shell.hpp</a>></span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include <<a class="code" href="int__fd_8hpp.html">stout/os/int_fd.hpp</a>></span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> </div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div><div class="line"><a name="l00033"></a><span
class="lineno"> 33</span> <span class="keyword">namespace </span><a class="code" href="namespaceprocess.html">process</a> {</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="classprocess_1_1Subprocess.html"> 43</a></span> <span class="keyword">class </span><a class="code" href="classprocess_1_1Subprocess.html">Subprocess</a></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> {</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <span class="comment">// Forward declarations.</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <span class="keyword">struct </span><a class="code" href="structprocess_1_1Subprocess_1_1ParentHook.html"
>ParentHook</a>;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <span class="keyword">class </span><a class="code" href="classprocess_1_1Subprocess_1_1ChildHook.html">ChildHook</a>;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span> </div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="classprocess_1_1Subprocess_1_1IO.html"> 61</a></span>  <span class="keyword">class </span><a class="code" href="classprocess_1_1Subprocess_1_1IO.html">IO</a></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  {</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="keyword">public</span>:</div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors.html"> 73</a></span>  <span class="keyword">struct </span><a class="code" hr
ef="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors.html">InputFileDescriptors</a></div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  {</div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors.html#a0a3f315345ef7b7ee6f3f1d4d337854d"> 75</a></span>  <a class="code" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> <a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors.html#a0a3f315345ef7b7ee6f3f1d4d337854d">read</a> = -1;</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors.html#ab812da47364d793d9ec0471d3dc8c1bc"> 76</a></span>  <a class="code" href="classOption.html">Option<int_fd></a> <a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors.html#ab812da47364d793d9
ec0471d3dc8c1bc">write</a> = <a class="code" href="structNone.html">None</a>();</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  };</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span> </div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html"> 88</a></span>  <span class="keyword">struct </span><a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html">OutputFileDescriptors</a></div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  {</div><div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html#ac4af678c631a700d4be4410a250e3bce"> 90</a></span>  <a class="code" href="classOption.html">Option<int_fd></a> <a class="code" href="structprocess_1_1Subproces
s_1_1IO_1_1InputFileDescriptors.html#a0a3f315345ef7b7ee6f3f1d4d337854d">read</a> = <a class="code" href="structNone.html">None</a>();</div><div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html#a5dabb8e3008efd61ce42478f260b54ac"> 91</a></span>  <a class="code" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> <a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors.html#ab812da47364d793d9ec0471d3dc8c1bc">write</a> = -1;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  };</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span> </div><div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="classprocess_1_1Subprocess_1_1IO.html#adb9433454d727de27b2440f729d19990"> 98</a></span>  <span class="keyword">enum</span> <a class="code" href="classproces
s_1_1Subprocess_1_1IO.html#adb9433454d727de27b2440f729d19990">FDType</a> {</div><div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="classprocess_1_1Subprocess_1_1IO.html#adb9433454d727de27b2440f729d19990af648d44b624da021da40a80190291380"> 103</a></span>  <a class="code" href="classprocess_1_1Subprocess_1_1IO.html#adb9433454d727de27b2440f729d19990af648d44b624da021da40a80190291380">DUPLICATED</a>,</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span> </div><div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="classprocess_1_1Subprocess_1_1IO.html#adb9433454d727de27b2440f729d19990ad3f73761156a6e75873cf903a0d62994"> 110</a></span>  <a class="code" href="classprocess_1_1Subprocess_1_1IO.html#adb9433454d727de27b2440f729d19990ad3f73761156a6e75873cf903a0d62994">OWNED</a></div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  };</div><div class="line"><
a name="l00112"></a><span class="lineno"> 112</span> </div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span> </div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <span class="keyword">private</span>:</div><div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="classprocess_1_1Subprocess_1_1IO.html#a3d12fd22e5deb76d3529ce4e6d9179dc"> 115</a></span>  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classprocess_1_1Subprocess.html">Subprocess</a>;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span> </div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <span class="keyword">friend</span> <a class="code" href="classTry.html">Try<Subprocess></a> <a class="code" href="classprocess_1_1Subprocess_1_1IO.html#afa34ca045f618704548708d7c5e5d82a">subprocess</a>(</div><div class="line
"><a name="l00118"></a><span class="lineno"> 118</span>  <span class="keyword">const</span> std::string& <a class="code" href="namespacepath.html">path</a>,</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  std::vector<std::string> argv,</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <span class="keyword">const</span> <a class="code" href="classprocess_1_1Subprocess_1_1IO.html">Subprocess::IO</a>& <a class="code" href="classprocess_1_1Subprocess.html#a60535054108d572796c25011c2aa379d">in</a>,</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <span class="keyword">const</span> <a class="code" href="classprocess_1_1Subprocess_1_1IO.html">Subprocess::IO</a>& <a class="code" href="classprocess_1_1Subprocess.html#a1c1a81931671b15c0c4b310bc49dea56">out</a>,</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&
#160; <span class="keyword">const</span> <a class="code" href="classprocess_1_1Subprocess_1_1IO.html">Subprocess::IO</a>& <a class="code" href="classprocess_1_1Subprocess.html#a98180558f1427a64a03cf3f656310bc4">err</a>,</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <span class="keyword">const</span> <a class="code" href="classflags_1_1FlagsBase.html">flags::FlagsBase</a>* <a class="code" href="namespaceflags.html">flags</a>,</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option</a><std::map<std::string, std::string>>& <a class="code" href="namespacemesos_1_1internal_1_1tests.html#a1396c5e3b0a179220de2792d74770ec2">environment</a>,</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">O
ption</a><lambda::function<</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ab03ced250ed239bc3b50b669493997f9">pid_t</a>(<span class="keyword">const</span> lambda::function<<span class="keywordtype">int</span>()>&)>>& <a class="code" href="namespacens.html#a98bf4d9e11d546326250997a6493f835">clone</a>,</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <span class="keyword">const</span> std::vector<Subprocess::ParentHook>& parent_hooks,</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <span class="keyword">const</span> std::vector<Subprocess::ChildHook>& child_hooks,</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <span class="keyword">const</span> std::vector<int_fd>& whitelist_fds);</di
v><div class="line"><a name="l00130"></a><span class="lineno"> 130</span> </div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  <a class="code" href="classprocess_1_1Subprocess_1_1IO.html">IO</a>(<span class="keyword">const</span> lambda::function<<a class="code" href="classTry.html">Try<InputFileDescriptors></a>()>& _input,</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <span class="keyword">const</span> lambda::function<<a class="code" href="classTry.html">Try<OutputFileDescriptors></a>()>& _output)</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  : input(_input),</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  output(_output) {}</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span> </div><div class="line"><a name="l00139"></a><span class="lineno"> 139</spa
n>  lambda::function<Try<InputFileDescriptors>()> input;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span> </div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  lambda::function<Try<OutputFileDescriptors>()> output;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  };</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span> </div><div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="structprocess_1_1Subprocess_1_1ParentHook.html"> 152</a></span>  <span class="keyword">struct </span><a class="code" href="structprocess_1_1Subprocess_1_1ParentHook.html">ParentHook</a></div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  {</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  <a class="code" href="structprocess_1_1Subprocess_1_1Par
entHook.html">ParentHook</a>(<span class="keyword">const</span> lambda::function<<a class="code" href="classTry.html">Try<Nothing></a>(<a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ab03ced250ed239bc3b50b669493997f9">pid_t</a>)>& _parent_setup);</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span> </div><div class="line"><a name="l00163"></a><span class="lineno"><a class="line" href="structprocess_1_1Subprocess_1_1ParentHook.html#aaf9ff141314d619cd65cd8ec9320fb7d"> 163</a></span>  <span class="keyword">const</span> lambda::function<Try<Nothing>(<a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ab03ced250ed239bc3b50b669493997f9">pid_t</a>)> parent_setup;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span> </div><div class="line"><a name="l00165"></a><span class="lineno"><a class="line" href="structprocess_1_1Subprocess_1_1ParentHook.html#a
3d12fd22e5deb76d3529ce4e6d9179dc"> 165</a></span>  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classprocess_1_1Subprocess.html">Subprocess</a>;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span> </div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span> <span class="preprocessor">#ifdef __WINDOWS__</span></div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span> </div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  <span class="keyword">static</span> <a class="code" href="structprocess_1_1Subprocess_1_1ParentHook.html">ParentHook</a> CREATE_JOB();</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span> <span class="preprocessor">#endif // __WINDOWS__</span></div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  };</div><div class="line"><a name="l00179"></
a><span class="lineno"> 179</span> </div><div class="line"><a name="l00190"></a><span class="lineno"><a class="line" href="classprocess_1_1Subprocess_1_1ChildHook.html"> 190</a></span>  <span class="keyword">class </span><a class="code" href="classprocess_1_1Subprocess_1_1ChildHook.html">ChildHook</a></div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  {</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  <span class="keyword">public</span>:</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  <span class="keyword">static</span> <a class="code" href="classprocess_1_1Subprocess_1_1ChildHook.html">ChildHook</a> CHDIR(<span class="keyword">const</span> std::string& working_directory);</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span> </div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  <span class="keywo
rd">static</span> <a class="code" href="classprocess_1_1Subprocess_1_1ChildHook.html">ChildHook</a> SETSID();</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span> </div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span> <span class="preprocessor">#ifndef __WINDOWS__</span></div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span> </div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  <span class="keyword">static</span> <a class="code" href="classprocess_1_1Subprocess_1_1ChildHook.html">ChildHook</a> DUP2(<span class="keywordtype">int</span> oldFd, <span class="keywordtype">int</span> newFd);</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span> </div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  <span class="keyword">static</span> <a class="code" href="classprocess_1_1Subprocess_1_1ChildHook.html">ChildHoo
k</a> UNSET_CLOEXEC(<span class="keywordtype">int</span> fd);</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span> <span class="preprocessor">#endif // __WINDOWS__</span></div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span> </div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  <span class="keyword">static</span> <a class="code" href="classprocess_1_1Subprocess_1_1ChildHook.html">ChildHook</a> SUPERVISOR();</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span> </div><div class="line"><a name="l00226"></a><span class="lineno"><a class="line" href="classprocess_1_1Subprocess_1_1ChildHook.html#ae9a996c6b3aa1113709a3d5ceba37f2c"> 226</a></span>  <a class="code" href="classTry.html">Try<Nothing></a> <a class="code" href="classprocess_1_1Subprocess_1_1ChildHook.html#ae9a996c6b3aa1113709a3d5ceba37f2c">operator()</a>()<span class="keyword"> const </span>{
<span class="keywordflow">return</span> child_setup(); }</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span> </div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  <span class="keyword">private</span>:</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  <a class="code" href="classprocess_1_1Subprocess_1_1ChildHook.html">ChildHook</a>(<span class="keyword">const</span> lambda::function<<a class="code" href="classTry.html">Try<Nothing></a>()>& _child_setup);</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span> </div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  <span class="keyword">const</span> lambda::function<Try<Nothing>()> child_setup;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  };</div><div class="line"><a name="l00233"></a><span class="lineno"> 233<
/span> </div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  <span class="comment">// Some syntactic sugar to create an IO::PIPE redirector.</span></div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  <span class="keyword">static</span> <a class="code" href="classprocess_1_1Subprocess_1_1IO.html">IO</a> <a class="code" href="classprocess_1_1Subprocess.html#a6af5024bd1932707893908fceb86ddad">PIPE</a>();</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  <span class="keyword">static</span> <a class="code" href="classprocess_1_1Subprocess_1_1IO.html">IO</a> <a class="code" href="classprocess_1_1Subprocess.html#a54793e9c516257d68776f63f0872c3c7">PATH</a>(<span class="keyword">const</span> std::string& path);</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  <span class="keyword">static</span> <a class="code" href="classprocess_1_1Subprocess_1_1IO.
html">IO</a> <a class="code" href="classprocess_1_1Subprocess.html#aaa6e1b76ef54ed6db34d595811122ce0">FD</a>(<a class="code" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> fd, <a class="code" href="classprocess_1_1Subprocess_1_1IO.html#adb9433454d727de27b2440f729d19990">IO::FDType</a> <a class="code" href="namespacemesos_1_1internal_1_1fs.html#a2343e2642db514496ba8380776487fba">type</a> = <a class="code" href="classprocess_1_1Subprocess_1_1IO.html#adb9433454d727de27b2440f729d19990af648d44b624da021da40a80190291380">IO::DUPLICATED</a>);</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span> </div><div class="line"><a name="l00242"></a><span class="lineno"><a class="line" href="classprocess_1_1Subprocess.html#ac3af3805968fc8b53e6c5a2a3cbdad2b"> 242</a></span>  <a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ab03ced250ed239bc3b50b669493997f9">pid_t</a> <a class="code" href="classprocess_1_1Subprocess.html
#ac3af3805968fc8b53e6c5a2a3cbdad2b">pid</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> data->pid; }</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span> </div><div class="line"><a name="l00249"></a><span class="lineno"><a class="line" href="classprocess_1_1Subprocess.html#a60535054108d572796c25011c2aa379d"> 249</a></span>  <a class="code" href="classOption.html">Option<int_fd></a> <a class="code" href="classprocess_1_1Subprocess.html#a60535054108d572796c25011c2aa379d">in</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  <span class="keywordflow">return</span> data->in;</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  }</div><div class="line"><a name="l00253"></a><span class
="lineno"> 253</span> </div><div class="line"><a name="l00259"></a><span class="lineno"><a class="line" href="classprocess_1_1Subprocess.html#a1c1a81931671b15c0c4b310bc49dea56"> 259</a></span>  <a class="code" href="classOption.html">Option<int_fd></a> <a class="code" href="classprocess_1_1Subprocess.html#a1c1a81931671b15c0c4b310bc49dea56">out</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  <span class="keywordflow">return</span> data->out;</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  }</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span> </div><div class="line"><a name="l00269"></a><span class="lineno"><a class="line" href="classprocess_1_1Subprocess.html#a98180558f1427a64a03cf3f656310bc4"> 269</a>
</span>  <a class="code" href="classOption.html">Option<int_fd></a> <a class="code" href="classprocess_1_1Subprocess.html#a98180558f1427a64a03cf3f656310bc4">err</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  <span class="keywordflow">return</span> data->err;</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  }</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span> </div><div class="line"><a name="l00295"></a><span class="lineno"><a class="line" href="classprocess_1_1Subprocess.html#a3946c31d16c0625ea554d5216cd4fa3b"> 295</a></span>  <a class="code" href="classprocess_1_1Future.html">Future<Option<int></a>> <a class="code" href="classprocess_1_1Subprocess.html#a3946c31d16c0625ea554d5216cd4fa3b">s
tatus</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> data->status; }</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span> </div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  <span class="keyword">friend</span> <a class="code" href="classTry.html">Try<Subprocess></a> <a class="code" href="classprocess_1_1Subprocess_1_1IO.html#afa34ca045f618704548708d7c5e5d82a">subprocess</a>(</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  <span class="keyword">const</span> std::string& path,</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  std::vector<std::string> argv,</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  <span class="keyword">const
</span> <a class="code" href="classprocess_1_1Subprocess_1_1IO.html">Subprocess::IO</a>& in,</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  <span class="keyword">const</span> <a class="code" href="classprocess_1_1Subprocess_1_1IO.html">Subprocess::IO</a>& out,</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  <span class="keyword">const</span> <a class="code" href="classprocess_1_1Subprocess_1_1IO.html">Subprocess::IO</a>& err,</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  <span class="keyword">const</span> <a class="code" href="classflags_1_1FlagsBase.html">flags::FlagsBase</a>* flags,</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option</a><std::map<std::string, std::string>>& <a class="code" href="namespacemesos_1_
1internal_1_1tests.html#a1396c5e3b0a179220de2792d74770ec2">environment</a>,</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option</a><lambda::function<</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  <a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ab03ced250ed239bc3b50b669493997f9">pid_t</a>(<span class="keyword">const</span> lambda::function<<span class="keywordtype">int</span>()>&)>>& <a class="code" href="namespacens.html#a98bf4d9e11d546326250997a6493f835">clone</a>,</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  <span class="keyword">const</span> std::vector<Subprocess::ParentHook>& parent_hooks,</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  <span class="keyword">const</span>
std::vector<Subprocess::ChildHook>& child_hooks,</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  <span class="keyword">const</span> std::vector<int_fd>& whitelist_fds);</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span> </div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  <span class="keyword">struct </span>Data</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  {</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  ~Data()</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  {</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  <span class="keywordflow">if</span> (in.isSome()) { <a class="code" href="namespaceos.html#a8df77ec6d6b8d32d9b287a41bc74cfdc">os::close</a>(in.get()); }</div><div class="line"><a name="l00317"></a>
<span class="lineno"> 317</span>  <span class="keywordflow">if</span> (out.isSome()) { <a class="code" href="namespaceos.html#a8df77ec6d6b8d32d9b287a41bc74cfdc">os::close</a>(out.get()); }</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  <span class="keywordflow">if</span> (err.isSome()) { <a class="code" href="namespaceos.html#a8df77ec6d6b8d32d9b287a41bc74cfdc">os::close</a>(err.get()); }</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  }</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span> </div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  <a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ab03ced250ed239bc3b50b669493997f9">pid_t</a> <a class="code" href="classprocess_1_1Subprocess.html#ac3af3805968fc8b53e6c5a2a3cbdad2b">pid</a>;</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>
 </div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span> <span class="preprocessor">#ifdef __WINDOWS__</span></div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  <a class="code" href="classOption.html">Option<::internal::windows::ProcessData></a> process_data;</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span> <span class="preprocessor">#endif // __WINDOWS__</span></div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span> </div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  <span class="comment">// The parent side of the pipe for stdin/stdout/stderr. If the</span></div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  <span class="comment">// IO mode is not a pipe, `None` will be stored.</span></div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  <span cl
ass="comment">// NOTE: stdin, stdout, stderr are macros on some systems, hence</span></div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  <span class="comment">// these names instead.</span></div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>  <a class="code" href="classOption.html">Option<int_fd></a> <a class="code" href="classprocess_1_1Subprocess.html#a60535054108d572796c25011c2aa379d">in</a>;</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  <a class="code" href="classOption.html">Option<int_fd></a> <a class="code" href="classprocess_1_1Subprocess.html#a1c1a81931671b15c0c4b310bc49dea56">out</a>;</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  <a class="code" href="classOption.html">Option<int_fd></a> <a class="code" href="classprocess_1_1Subprocess.html#a98180558f1427a64a03cf3f656310bc4">err</a>;</div><div class="line"
><a name="l00334"></a><span class="lineno"> 334</span> </div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>  <a class="code" href="classprocess_1_1Future.html">Future<Option<int></a>> <a class="code" href="classprocess_1_1Subprocess.html#a3946c31d16c0625ea554d5216cd4fa3b">status</a>;</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  };</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span> </div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>  <a class="code" href="classprocess_1_1Subprocess_1_1IO.html#a3d12fd22e5deb76d3529ce4e6d9179dc">Subprocess</a>() : data(<span class="keyword">new</span> Data()) {}</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span> </div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  std::shared_ptr<Data> data;</div><div class="line"><a name="l0034
1"></a><span class="lineno"> 341</span> };</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span> </div><div class="line"><a name="l00343"></a><span class="lineno"><a class="line" href="namespaceprocess.html#afc6611c4913642642277b44447a16e55"> 343</a></span> <span class="keyword">using</span> <a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors.html">InputFileDescriptors</a> = <a class="code" href="namespaceprocess.html#afc6611c4913642642277b44447a16e55">Subprocess::IO::InputFileDescriptors</a>;</div><div class="line"><a name="l00344"></a><span class="lineno"><a class="line" href="namespaceprocess.html#a882829822afa4f33b90aafc9c4ffa9af"> 344</a></span> <span class="keyword">using</span> <a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html">OutputFileDescriptors</a> = <a class="code" href="namespaceprocess.html#a882829822afa4f33b90aafc9c4ffa9af">Subprocess::IO::OutputFileDescript
ors</a>;</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span> </div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span> <span class="comment">// TODO(jmlvanre): Consider removing default argument for</span></div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span> <span class="comment">// `parent_hooks` to force the caller to think about setting them.</span></div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span> <a class="code" href="classTry.html">Try<Subprocess></a> <a class="code" href="classprocess_1_1Subprocess_1_1IO.html#afa34ca045f618704548708d7c5e5d82a">subprocess</a>(</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  <span class="keyword">const</span> std::string& path,</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  std::vector<std::string> argv,</div><div class="line"><a nam
e="l00374"></a><span class="lineno"> 374</span>  <span class="keyword">const</span> <a class="code" href="classprocess_1_1Subprocess_1_1IO.html">Subprocess::IO</a>& in = <a class="code" href="classprocess_1_1Subprocess.html#aaa6e1b76ef54ed6db34d595811122ce0">Subprocess::FD</a>(<a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#afcf80a6d91178952d107ad00b165752b">STDIN_FILENO</a>),</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  <span class="keyword">const</span> <a class="code" href="classprocess_1_1Subprocess_1_1IO.html">Subprocess::IO</a>& out = <a class="code" href="classprocess_1_1Subprocess.html#aaa6e1b76ef54ed6db34d595811122ce0">Subprocess::FD</a>(<a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#abd165ee6474b5b75bf075842fff13a04">STDOUT_FILENO</a>),</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  <span class="keyword">const</span> <a class
="code" href="classprocess_1_1Subprocess_1_1IO.html">Subprocess::IO</a>& err = <a class="code" href="classprocess_1_1Subprocess.html#aaa6e1b76ef54ed6db34d595811122ce0">Subprocess::FD</a>(<a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ae2fe1725bb5e9823d089c46b9ed5266e">STDERR_FILENO</a>),</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  <span class="keyword">const</span> <a class="code" href="classflags_1_1FlagsBase.html">flags::FlagsBase</a>* flags = <span class="keyword">nullptr</span>,</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option</a><std::map<std::string, std::string>>& <a class="code" href="namespacemesos_1_1internal_1_1tests.html#a1396c5e3b0a179220de2792d74770ec2">environment</a> = <a class="code" href="structNone.html">None</a>(),</div><div class="line"><a name="l00379"></a
><span class="lineno"> 379</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option</a><lambda::function<</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>  <a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ab03ced250ed239bc3b50b669493997f9">pid_t</a>(<span class="keyword">const</span> lambda::function<<span class="keywordtype">int</span>()>&)>>& <a class="code" href="namespacens.html#a98bf4d9e11d546326250997a6493f835">clone</a> = <a class="code" href="structNone.html">None</a>(),</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>  <span class="keyword">const</span> std::vector<Subprocess::ParentHook>& parent_hooks = {},</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  <span class="keyword">const</span> std::vector<Subprocess::ChildHook>& child_hooks = {},</div><
div class="line"><a name="l00383"></a><span class="lineno"> 383</span>  <span class="keyword">const</span> std::vector<int_fd>& whitelist_fds = {});</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span> </div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span> </div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span> <span class="comment">// TODO(jmlvanre): Consider removing default argument for</span></div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span> <span class="comment">// `parent_hooks` to force the caller to think about setting them.</span></div><div class="line"><a name="l00410"></a><span class="lineno"><a class="line" href="namespaceprocess.html#a0a748c548ad3a094196c98f00f9674cf"> 410</a></span> <span class="keyword">inline</span> <a class="code" href="classTry.html">Try<Subprocess></a> <a class="code" href="classprocess_1_1Subproces
s_1_1IO.html#afa34ca045f618704548708d7c5e5d82a">subprocess</a>(</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  <span class="keyword">const</span> std::string& command,</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  <span class="keyword">const</span> <a class="code" href="classprocess_1_1Subprocess_1_1IO.html">Subprocess::IO</a>& in = <a class="code" href="classprocess_1_1Subprocess.html#aaa6e1b76ef54ed6db34d595811122ce0">Subprocess::FD</a>(<a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#afcf80a6d91178952d107ad00b165752b">STDIN_FILENO</a>),</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>  <span class="keyword">const</span> <a class="code" href="classprocess_1_1Subprocess_1_1IO.html">Subprocess::IO</a>& out = <a class="code" href="classprocess_1_1Subprocess.html#aaa6e1b76ef54ed6db34d595811122ce0">Subprocess::FD</a>(<a class="code" h
ref="3rdparty_2stout_2include_2stout_2windows_8hpp.html#abd165ee6474b5b75bf075842fff13a04">STDOUT_FILENO</a>),</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>  <span class="keyword">const</span> <a class="code" href="classprocess_1_1Subprocess_1_1IO.html">Subprocess::IO</a>& err = <a class="code" href="classprocess_1_1Subprocess.html#aaa6e1b76ef54ed6db34d595811122ce0">Subprocess::FD</a>(<a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ae2fe1725bb5e9823d089c46b9ed5266e">STDERR_FILENO</a>),</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option</a><std::map<std::string, std::string>>& <a class="code" href="namespacemesos_1_1internal_1_1tests.html#a1396c5e3b0a179220de2792d74770ec2">environment</a> = <a class="code" href="structNone.html">None</a>(),</div><div class="line"><a name="l00416"></a>
<span class="lineno"> 416</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option</a><lambda::function<</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  <a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ab03ced250ed239bc3b50b669493997f9">pid_t</a>(<span class="keyword">const</span> lambda::function<<span class="keywordtype">int</span>()>&)>>& <a class="code" href="namespacens.html#a98bf4d9e11d546326250997a6493f835">clone</a> = <a class="code" href="structNone.html">None</a>(),</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  <span class="keyword">const</span> std::vector<Subprocess::ParentHook>& parent_hooks = {},</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>  <span class="keyword">const</span> std::vector<Subprocess::ChildHook>& child_hooks = {},</div><d
iv class="line"><a name="l00420"></a><span class="lineno"> 420</span>  <span class="keyword">const</span> std::vector<int_fd>& whitelist_fds = {})</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span> {</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>  std::vector<std::string> argv = {<a class="code" href="namespaceos_1_1Shell.html#adeacb41dacfa03ad5ceebd9a53582997">os::Shell::arg0</a>, <a class="code" href="namespaceos_1_1Shell.html#a44f50f66f2a231de974b53c9f4384ba5">os::Shell::arg1</a>, command};</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span> </div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  <span class="keywordflow">return</span> <a class="code" href="classprocess_1_1Subprocess_1_1IO.html#afa34ca045f618704548708d7c5e5d82a">subprocess</a>(</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span> 
<a class="code" href="namespaceos_1_1Shell.html#acfe16ef2b1146ad49a8651c0a457ce46">os::Shell::name</a>,</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>  argv,</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>  in,</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>  out,</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>  err,</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>  <span class="keyword">nullptr</span>,</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>  <a class="code" href="namespacemesos_1_1internal_1_1tests.html#a1396c5e3b0a179220de2792d74770ec2">environment</a>,</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>  <a class="code" href="namespacens.html#a98bf4d9e11d546326250997a6493f835">clone</a>,</div><d
iv class="line"><a name="l00433"></a><span class="lineno"> 433</span>  parent_hooks,</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>  child_hooks,</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>  whitelist_fds);</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span> }</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span> </div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span> } <span class="comment">// namespace process {</span></div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span> </div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span> <span class="preprocessor">#endif // __PROCESS_SUBPROCESS_HPP__</span></div><div class="ttc" id="namespacepath_html"><div class="ttname"><a href="namespacepath.html">path</a></div><div class="ttdef"><b>Definition:</b> pat
h.hpp:26</div></div>
-<div class="ttc" id="classprocess_1_1Subprocess_html_a60535054108d572796c25011c2aa379d"><div class="ttname"><a href="classprocess_1_1Subprocess.html#a60535054108d572796c25011c2aa379d">process::Subprocess::in</a></div><div class="ttdeci">Option< int_fd > in() const </div><div class="ttdef"><b>Definition:</b> subprocess.hpp:249</div></div>
-<div class="ttc" id="namespaceos_1_1Shell_html_a44f50f66f2a231de974b53c9f4384ba5"><div class="ttname"><a href="namespaceos_1_1Shell.html#a44f50f66f2a231de974b53c9f4384ba5">os::Shell::arg1</a></div><div class="ttdeci">constexpr const char * arg1</div><div class="ttdef"><b>Definition:</b> shell.hpp:45</div></div>
-<div class="ttc" id="classprocess_1_1Subprocess_1_1IO_html_a3d12fd22e5deb76d3529ce4e6d9179dc"><div class="ttname"><a href="classprocess_1_1Subprocess_1_1IO.html#a3d12fd22e5deb76d3529ce4e6d9179dc">process::Subprocess::IO::Subprocess</a></div><div class="ttdeci">friend class Subprocess</div><div class="ttdef"><b>Definition:</b> subprocess.hpp:115</div></div>
-<div class="ttc" id="classOption_html"><div class="ttname"><a href="classOption.html">Option< int_fd ></a></div></div>
-<div class="ttc" id="namespacens_html_a98bf4d9e11d546326250997a6493f835"><div class="ttname"><a href="namespacens.html#a98bf4d9e11d546326250997a6493f835">ns::clone</a></div><div class="ttdeci">Try< pid_t > clone(pid_t target, int nstypes, const lambda::function< int()> &f, int flags)</div><div class="ttdoc">Performs an os::clone after entering a set of namespaces for the specified target process...</div></div>
-<div class="ttc" id="namespaceprocess_html_a882829822afa4f33b90aafc9c4ffa9af"><div class="ttname"><a href="namespaceprocess.html#a882829822afa4f33b90aafc9c4ffa9af">process::OutputFileDescriptors</a></div><div class="ttdeci">Subprocess::IO::OutputFileDescriptors OutputFileDescriptors</div><div class="ttdef"><b>Definition:</b> subprocess.hpp:344</div></div>
-<div class="ttc" id="classprocess_1_1Subprocess_1_1ChildHook_html"><div class="ttname"><a href="classprocess_1_1Subprocess_1_1ChildHook.html">process::Subprocess::ChildHook</a></div><div class="ttdoc">A ChildHook can be passed to a subprocess call. </div><div class="ttdef"><b>Definition:</b> subprocess.hpp:190</div></div>
-<div class="ttc" id="classTry_html"><div class="ttname"><a href="classTry.html">Try</a></div><div class="ttdef"><b>Definition:</b> check.hpp:33</div></div>
-<div class="ttc" id="classprocess_1_1Subprocess_html_a54793e9c516257d68776f63f0872c3c7"><div class="ttname"><a href="classprocess_1_1Subprocess.html#a54793e9c516257d68776f63f0872c3c7">process::Subprocess::PATH</a></div><div class="ttdeci">static IO PATH(const std::string &path)</div></div>
-<div class="ttc" id="classprocess_1_1Subprocess_1_1IO_html_adb9433454d727de27b2440f729d19990ad3f73761156a6e75873cf903a0d62994"><div class="ttname"><a href="classprocess_1_1Subprocess_1_1IO.html#adb9433454d727de27b2440f729d19990ad3f73761156a6e75873cf903a0d62994">process::Subprocess::IO::OWNED</a></div><div class="ttdoc">The file descriptor is not duplicated before being passed to the subprocess. </div><div class="ttdef"><b>Definition:</b> subprocess.hpp:110</div></div>
-<div class="ttc" id="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors_html_a0a3f315345ef7b7ee6f3f1d4d337854d"><div class="ttname"><a href="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors.html#a0a3f315345ef7b7ee6f3f1d4d337854d">process::Subprocess::IO::InputFileDescriptors::read</a></div><div class="ttdeci">int_fd read</div><div class="ttdef"><b>Definition:</b> subprocess.hpp:75</div></div>
-<div class="ttc" id="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors_html"><div class="ttname"><a href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html">process::Subprocess::IO::OutputFileDescriptors</a></div><div class="ttdoc">For output file descriptors a child writes to the write file descriptor and a parent may read from th...</div><div class="ttdef"><b>Definition:</b> subprocess.hpp:88</div></div>
-<div class="ttc" id="none_8hpp_html"><div class="ttname"><a href="none_8hpp.html">none.hpp</a></div></div>
-<div class="ttc" id="classprocess_1_1Subprocess_html_ac3af3805968fc8b53e6c5a2a3cbdad2b"><div class="ttname"><a href="classprocess_1_1Subprocess.html#ac3af3805968fc8b53e6c5a2a3cbdad2b">process::Subprocess::pid</a></div><div class="ttdeci">pid_t pid() const </div><div class="ttdef"><b>Definition:</b> subprocess.hpp:242</div></div>
-<div class="ttc" id="3rdparty_2stout_2include_2stout_2windows_8hpp_html_ae2fe1725bb5e9823d089c46b9ed5266e"><div class="ttname"><a href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ae2fe1725bb5e9823d089c46b9ed5266e">STDERR_FILENO</a></div><div class="ttdeci">#define STDERR_FILENO</div><div class="ttdef"><b>Definition:</b> windows.hpp:155</div></div>
-<div class="ttc" id="lambda_8hpp_html"><div class="ttname"><a href="lambda_8hpp.html">lambda.hpp</a></div></div>
-<div class="ttc" id="namespaceprocess_html_afc6611c4913642642277b44447a16e55"><div class="ttname"><a href="namespaceprocess.html#afc6611c4913642642277b44447a16e55">process::InputFileDescriptors</a></div><div class="ttdeci">Subprocess::IO::InputFileDescriptors InputFileDescriptors</div><div class="ttdef"><b>Definition:</b> subprocess.hpp:343</div></div>
-<div class="ttc" id="namespaceos_1_1Shell_html_adeacb41dacfa03ad5ceebd9a53582997"><div class="ttname"><a href="namespaceos_1_1Shell.html#adeacb41dacfa03ad5ceebd9a53582997">os::Shell::arg0</a></div><div class="ttdeci">constexpr const char * arg0</div><div class="ttdef"><b>Definition:</b> shell.hpp:44</div></div>
-<div class="ttc" id="classprocess_1_1Subprocess_html"><div class="ttname"><a href="classprocess_1_1Subprocess.html">process::Subprocess</a></div><div class="ttdoc">Represents a fork() exec()ed subprocess. </div><div class="ttdef"><b>Definition:</b> subprocess.hpp:43</div></div>
-<div class="ttc" id="namespacemesos_1_1internal_1_1tests_html_a1396c5e3b0a179220de2792d74770ec2"><div class="ttname"><a href="namespacemesos_1_1internal_1_1tests.html#a1396c5e3b0a179220de2792d74770ec2">mesos::internal::tests::environment</a></div><div class="ttdeci">Environment * environment</div></div>
-<div class="ttc" id="3rdparty_2stout_2include_2stout_2windows_8hpp_html_ab03ced250ed239bc3b50b669493997f9"><div class="ttname"><a href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ab03ced250ed239bc3b50b669493997f9">pid_t</a></div><div class="ttdeci">DWORD pid_t</div><div class="ttdef"><b>Definition:</b> windows.hpp:181</div></div>
-<div class="ttc" id="classprocess_1_1Subprocess_html_aaa6e1b76ef54ed6db34d595811122ce0"><div class="ttname"><a href="classprocess_1_1Subprocess.html#aaa6e1b76ef54ed6db34d595811122ce0">process::Subprocess::FD</a></div><div class="ttdeci">static IO FD(int_fd fd, IO::FDType type=IO::DUPLICATED)</div></div>
-<div class="ttc" id="3rdparty_2stout_2include_2stout_2windows_8hpp_html_abd165ee6474b5b75bf075842fff13a04"><div class="ttname"><a href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#abd165ee6474b5b75bf075842fff13a04">STDOUT_FILENO</a></div><div class="ttdeci">#define STDOUT_FILENO</div><div class="ttdef"><b>Definition:</b> windows.hpp:154</div></div>
-<div class="ttc" id="classprocess_1_1Subprocess_html_a98180558f1427a64a03cf3f656310bc4"><div class="ttname"><a href="classprocess_1_1Subprocess.html#a98180558f1427a64a03cf3f656310bc4">process::Subprocess::err</a></div><div class="ttdeci">Option< int_fd > err() const </div><div class="ttdef"><b>Definition:</b> subprocess.hpp:269</div></div>
-<div class="ttc" id="namespaceos_html_a8df77ec6d6b8d32d9b287a41bc74cfdc"><div class="ttname"><a href="namespaceos.html#a8df77ec6d6b8d32d9b287a41bc74cfdc">os::close</a></div><div class="ttdeci">Try< Nothing > close(int fd)</div><div class="ttdef"><b>Definition:</b> close.hpp:24</div></div>
-<div class="ttc" id="classprocess_1_1Subprocess_1_1IO_html"><div class="ttname"><a href="classprocess_1_1Subprocess_1_1IO.html">process::Subprocess::IO</a></div><div class="ttdoc">Describes how the I/O is redirected for stdin/stdout/stderr. </div><div class="ttdef"><b>Definition:</b> subprocess.hpp:61</div></div>
-<div class="ttc" id="classflags_1_1FlagsBase_html"><div class="ttname"><a href="classflags_1_1FlagsBase.html">flags::FlagsBase</a></div><div class="ttdef"><b>Definition:</b> flags.hpp:44</div></div>
-<div class="ttc" id="3rdparty_2stout_2include_2stout_2flags_8hpp_html"><div class="ttname"><a href="3rdparty_2stout_2include_2stout_2flags_8hpp.html">flags.hpp</a></div></div>
-<div class="ttc" id="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors_html"><div class="ttname"><a href="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors.html">process::Subprocess::IO::InputFileDescriptors</a></div><div class="ttdoc">For input file descriptors a child reads from the read file descriptor and a parent may write to the ...</div><div class="ttdef"><b>Definition:</b> subprocess.hpp:73</div></div>
-<div class="ttc" id="classprocess_1_1Subprocess_1_1IO_html_adb9433454d727de27b2440f729d19990af648d44b624da021da40a80190291380"><div class="ttname"><a href="classprocess_1_1Subprocess_1_1IO.html#adb9433454d727de27b2440f729d19990af648d44b624da021da40a80190291380">process::Subprocess::IO::DUPLICATED</a></div><div class="ttdoc">The file descriptor is duplicated before being passed to the subprocess. </div><div class="ttdef"><b>Definition:</b> subprocess.hpp:103</div></div>
-<div class="ttc" id="option_8hpp_html"><div class="ttname"><a href="option_8hpp.html">option.hpp</a></div></div>
-<div class="ttc" id="3rdparty_2stout_2include_2stout_2windows_8hpp_html_afcf80a6d91178952d107ad00b165752b"><div class="ttname"><a href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#afcf80a6d91178952d107ad00b165752b">STDIN_FILENO</a></div><div class="ttdeci">#define STDIN_FILENO</div><div class="ttdef"><b>Definition:</b> windows.hpp:153</div></div>
-<div class="ttc" id="classprocess_1_1Subprocess_html_a1c1a81931671b15c0c4b310bc49dea56"><div class="ttname"><a href="classprocess_1_1Subprocess.html#a1c1a81931671b15c0c4b310bc49dea56">process::Subprocess::out</a></div><div class="ttdeci">Option< int_fd > out() const </div><div class="ttdef"><b>Definition:</b> subprocess.hpp:259</div></div>
-<div class="ttc" id="classprocess_1_1Subprocess_1_1IO_html_afa34ca045f618704548708d7c5e5d82a"><div class="ttname"><a href="classprocess_1_1Subprocess_1_1IO.html#afa34ca045f618704548708d7c5e5d82a">process::Subprocess::IO::subprocess</a></div><div class="ttdeci">friend Try< Subprocess > subprocess(const std::string &path, std::vector< std::string > argv, const Subprocess::IO &in, const Subprocess::IO &out, const Subprocess::IO &err, const flags::FlagsBase *flags, const Option< std::map< std::string, std::string >> &environment, const Option< lambda::function< pid_t(const lambda::function< int()> &)>> &clone, const std::vector< Subprocess::ParentHook > &parent_hooks, const std::vector< Subprocess::ChildHook > &child_hooks, const std::vector< int_fd > &whitelist_fds)</div></div>
-<div class="ttc" id="future_8hpp_html"><div class="ttname"><a href="future_8hpp.html">future.hpp</a></div></div>
-<div class="ttc" id="structNone_html"><div class="ttname"><a href="structNone.html">None</a></div><div class="ttdef"><b>Definition:</b> none.hpp:27</div></div>
-<div class="ttc" id="classprocess_1_1Subprocess_1_1IO_html_adb9433454d727de27b2440f729d19990"><div class="ttname"><a href="classprocess_1_1Subprocess_1_1IO.html#adb9433454d727de27b2440f729d19990">process::Subprocess::IO::FDType</a></div><div class="ttdeci">FDType</div><div class="ttdoc">Describes the lifecycle of a file descriptor passed into a subprocess via the Subprocess::FD helper...</div><div class="ttdef"><b>Definition:</b> subprocess.hpp:98</div></div>
-<div class="ttc" id="namespaceprocess_html"><div class="ttname"><a href="namespaceprocess.html">process</a></div><div class="ttdef"><b>Definition:</b> executor.hpp:48</div></div>
-<div class="ttc" id="try_8hpp_html"><div class="ttname"><a href="try_8hpp.html">try.hpp</a></div></div>
-<div class="ttc" id="int__fd_8hpp_html"><div class="ttname"><a href="int__fd_8hpp.html">int_fd.hpp</a></div></div>
-<div class="ttc" id="namespacemesos_1_1internal_1_1fs_html_a2343e2642db514496ba8380776487fba"><div class="ttname"><a href="namespacemesos_1_1internal_1_1fs.html#a2343e2642db514496ba8380776487fba">mesos::internal::fs::type</a></div><div class="ttdeci">Try< uint32_t > type(const std::string &path)</div></div>
-<div class="ttc" id="shell_8hpp_html"><div class="ttname"><a href="shell_8hpp.html">shell.hpp</a></div></div>
-<div class="ttc" id="classprocess_1_1Subprocess_html_a6af5024bd1932707893908fceb86ddad"><div class="ttname"><a href="classprocess_1_1Subprocess.html#a6af5024bd1932707893908fceb86ddad">process::Subprocess::PIPE</a></div><div class="ttdeci">static IO PIPE()</div></div>
-<div class="ttc" id="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors_html_ab812da47364d793d9ec0471d3dc8c1bc"><div class="ttname"><a href="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors.html#ab812da47364d793d9ec0471d3dc8c1bc">process::Subprocess::IO::InputFileDescriptors::write</a></div><div class="ttdeci">Option< int_fd > write</div><div class="ttdef"><b>Definition:</b> subprocess.hpp:76</div></div>
-<div class="ttc" id="structprocess_1_1Subprocess_1_1ParentHook_html"><div class="ttname"><a href="structprocess_1_1Subprocess_1_1ParentHook.html">process::Subprocess::ParentHook</a></div><div class="ttdoc">A hook can be passed to a subprocess call. </div><div class="ttdef"><b>Definition:</b> subprocess.hpp:152</div></div>
-<div class="ttc" id="int__fd_8hpp_html_aea4dbda01c90455f158ffa9b924c2f07"><div class="ttname"><a href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a></div><div class="ttdeci">int int_fd</div><div class="ttdef"><b>Definition:</b> int_fd.hpp:35</div></div>
-<div class="ttc" id="namespaceflags_html"><div class="ttname"><a href="namespaceflags.html">flags</a></div><div class="ttdef"><b>Definition:</b> parse.hpp:33</div></div>
-<div class="ttc" id="namespaceos_1_1Shell_html_acfe16ef2b1146ad49a8651c0a457ce46"><div class="ttname"><a href="namespaceos_1_1Shell.html#acfe16ef2b1146ad49a8651c0a457ce46">os::Shell::name</a></div><div class="ttdeci">constexpr const char * name</div><div class="ttdef"><b>Definition:</b> shell.hpp:43</div></div>
-<div class="ttc" id="classprocess_1_1Subprocess_html_a3946c31d16c0625ea554d5216cd4fa3b"><div class="ttname"><a href="classprocess_1_1Subprocess.html#a3946c31d16c0625ea554d5216cd4fa3b">process::Subprocess::status</a></div><div class="ttdeci">Future< Option< int > > status() const </div><div class="ttdoc">Exit status of this subprocess captured as a Future (completed when the subprocess exits)...</div><div class="ttdef"><b>Definition:</b> subprocess.hpp:295</div></div>
-<div class="ttc" id="classprocess_1_1Subprocess_1_1ChildHook_html_ae9a996c6b3aa1113709a3d5ceba37f2c"><div class="ttname"><a href="classprocess_1_1Subprocess_1_1ChildHook.html#ae9a996c6b3aa1113709a3d5ceba37f2c">process::Subprocess::ChildHook::operator()</a></div><div class="ttdeci">Try< Nothing > operator()() const </div><div class="ttdef"><b>Definition:</b> subprocess.hpp:226</div></div>
-<div class="ttc" id="classprocess_1_1Future_html"><div class="ttname"><a href="classprocess_1_1Future.html">process::Future</a></div><div class="ttdef"><b>Definition:</b> future.hpp:58</div></div>
-</div><!-- fragment --></div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.11
-</small></address>
-</body>
-</html>
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/subprocess__posix_8hpp.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/subprocess__posix_8hpp.html b/content/api/latest/c++/subprocess__posix_8hpp.html
deleted file mode 100644
index 1bd7023..0000000
--- a/content/api/latest/c++/subprocess__posix_8hpp.html
+++ /dev/null
@@ -1,108 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.11"/>
-<title>Apache Mesos: 3rdparty/libprocess/src/subprocess_posix.hpp File Reference</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">Apache Mesos
- </div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.11 -->
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="pages.html"><span>Related Pages</span></a></li>
- <li><a href="namespaces.html"><span>Namespaces</span></a></li>
- <li><a href="annotated.html"><span>Classes</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li><a href="examples.html"><span>Examples</span></a></li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- <li><a href="globals.html"><span>File Members</span></a></li>
- </ul>
- </div>
-<div id="nav-path" class="navpath">
- <ul>
-<li class="navelem"><a class="el" href="dir_8cab8f464681f7cc51cee77e79a434cd.html">3rdparty</a></li><li class="navelem"><a class="el" href="dir_043a76de98701f9bddf61b5e98f305ff.html">libprocess</a></li><li class="navelem"><a class="el" href="dir_01cbbd8dcbf9de3825992568658f467e.html">src</a></li> </ul>
-</div>
-</div><!-- top -->
-<div class="header">
- <div class="summary">
-<a href="#namespaces">Namespaces</a> |
-<a href="#func-members">Functions</a> </div>
- <div class="headertitle">
-<div class="title">subprocess_posix.hpp File Reference</div> </div>
-</div><!--header-->
-<div class="contents">
-<div class="textblock"><code>#include <sys/types.h></code><br />
-<code>#include <string></code><br />
-<code>#include <glog/logging.h></code><br />
-<code>#include <<a class="el" href="subprocess_8hpp_source.html">process/subprocess.hpp</a>></code><br />
-<code>#include <<a class="el" href="stout_2include_2stout_2check_8hpp_source.html">stout/check.hpp</a>></code><br />
-<code>#include <<a class="el" href="error_8hpp_source.html">stout/error.hpp</a>></code><br />
-<code>#include <<a class="el" href="exit_8hpp_source.html">stout/exit.hpp</a>></code><br />
-<code>#include <<a class="el" href="foreach_8hpp_source.html">stout/foreach.hpp</a>></code><br />
-<code>#include <<a class="el" href="hashset_8hpp_source.html">stout/hashset.hpp</a>></code><br />
-<code>#include <<a class="el" href="nothing_8hpp_source.html">stout/nothing.hpp</a>></code><br />
-<code>#include <<a class="el" href="lambda_8hpp_source.html">stout/lambda.hpp</a>></code><br />
-<code>#include <<a class="el" href="none_8hpp_source.html">stout/none.hpp</a>></code><br />
-<code>#include <<a class="el" href="option_8hpp_source.html">stout/option.hpp</a>></code><br />
-<code>#include <<a class="el" href="os_8hpp_source.html">stout/os.hpp</a>></code><br />
-<code>#include <<a class="el" href="try_8hpp_source.html">stout/try.hpp</a>></code><br />
-<code>#include <<a class="el" href="unreachable_8hpp_source.html">stout/unreachable.hpp</a>></code><br />
-<code>#include <<a class="el" href="close_8hpp_source.html">stout/os/close.hpp</a>></code><br />
-<code>#include <<a class="el" href="3rdparty_2stout_2include_2stout_2os_2environment_8hpp_source.html">stout/os/environment.hpp</a>></code><br />
-<code>#include <<a class="el" href="fcntl_8hpp_source.html">stout/os/fcntl.hpp</a>></code><br />
-<code>#include <<a class="el" href="signals_8hpp_source.html">stout/os/signals.hpp</a>></code><br />
-<code>#include <<a class="el" href="strerror_8hpp_source.html">stout/os/strerror.hpp</a>></code><br />
-</div>
-<p><a href="subprocess__posix_8hpp_source.html">Go to the source code of this file.</a></p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
-Namespaces</h2></td></tr>
-<tr class="memitem:namespaceprocess"><td class="memItemLeft" align="right" valign="top">  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceprocess.html">process</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:namespaceprocess_1_1internal"><td class="memItemLeft" align="right" valign="top">  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceprocess_1_1internal.html">process::internal</a></td></tr>
-<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
-Functions</h2></td></tr>
-<tr class="memitem:af2f19b6f367cddc0c8283560a9cd9215"><td class="memItemLeft" align="right" valign="top"><a class="el" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ab03ced250ed239bc3b50b669493997f9">pid_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceprocess_1_1internal.html#af2f19b6f367cddc0c8283560a9cd9215">process::internal::defaultClone</a> (const lambda::function< int()> &func)</td></tr>
-<tr class="separator:af2f19b6f367cddc0c8283560a9cd9215"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a345a534b82b79bf20333fb6faef43e93"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classTry.html">Try</a>< <a class="el" href="structNothing.html">Nothing</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceprocess_1_1internal.html#a345a534b82b79bf20333fb6faef43e93">process::internal::cloexec</a> (const InputFileDescriptors &stdinfds, const OutputFileDescriptors &stdoutfds, const OutputFileDescriptors &stderrfds)</td></tr>
-<tr class="separator:a345a534b82b79bf20333fb6faef43e93"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a902e2646d88c41ce674a3009cafe0aad"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceprocess_1_1internal.html#a902e2646d88c41ce674a3009cafe0aad">process::internal::childMain</a> (const std::string &path, char **argv, char **envp, const InputFileDescriptors &stdinfds, const OutputFileDescriptors &stdoutfds, const OutputFileDescriptors &stderrfds, bool blocking, int pipes[2], const std::vector< Subprocess::ChildHook > &child_hooks)</td></tr>
-<tr class="separator:a902e2646d88c41ce674a3009cafe0aad"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:afe2c3a3ffdd0ee6fda82e198ece80a37"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classTry.html">Try</a>< <a class="el" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ab03ced250ed239bc3b50b669493997f9">pid_t</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceprocess_1_1internal.html#afe2c3a3ffdd0ee6fda82e198ece80a37">process::internal::cloneChild</a> (const std::string &path, std::vector< std::string > argv, const <a class="el" href="classOption.html">Option</a>< std::map< std::string, std::string >> &environment, const <a class="el" href="classOption.html">Option</a>< lambda::function< <a class="el" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ab03ced250ed239bc3b50b669493997f9">pid_t</a>(const lambda::function< int()> &)>> &_clone, const std::vector< Subprocess::ParentHook > &parent_hooks, const std::vector< Subpr
ocess::ChildHook > &child_hooks, const InputFileDescriptors stdinfds, const OutputFileDescriptors stdoutfds, const OutputFileDescriptors stderrfds)</td></tr>
-<tr class="separator:afe2c3a3ffdd0ee6fda82e198ece80a37"><td class="memSeparator" colspan="2"> </td></tr>
-</table>
-</div><!-- contents -->
-<!-- start footer part -->
-<hr class="footer"/><address class="footer"><small>
-Generated by  <a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/>
-</a> 1.8.11
-</small></address>
-</body>
-</html>
[45/50] mesos-site git commit: Updated the website built from mesos
SHA: 7c9c72d.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/Nodes.xml
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/Nodes.xml b/content/api/latest/c++/Nodes.xml
index ba4eb2f..7349642 100644
--- a/content/api/latest/c++/Nodes.xml
+++ b/content/api/latest/c++/Nodes.xml
@@ -1119,6 +1119,12 @@
<Node>
<Name>io</Name>
<Path>namespaceprocess_1_1io.html</Path>
+ <Subnodes>
+ <Node>
+ <Name>internal</Name>
+ <Path>namespaceprocess_1_1io_1_1internal.html</Path>
+ </Node>
+ </Subnodes>
</Node>
<Node>
<Name>metrics</Name>
@@ -1164,6 +1170,10 @@
</Node>
</Subnodes>
</Node>
+ <Node>
+ <Name>windows</Name>
+ <Path>namespaceprocess_1_1windows.html</Path>
+ </Node>
</Subnodes>
</Node>
<Node>
@@ -23678,11 +23688,21 @@
<Anchor>ad2ce21d9f77710472e19843e3e86343e</Anchor>
</Node>
<Node>
+ <Name>assign_iocp</Name>
+ <Path>classos_1_1WindowsFD.html</Path>
+ <Anchor>a1a9c96c20213e1b94ba8dcc1bb059163</Anchor>
+ </Node>
+ <Node>
<Name>crt</Name>
<Path>classos_1_1WindowsFD.html</Path>
<Anchor>a94b69cae4edb8f3549845fbfa0355b7c</Anchor>
</Node>
<Node>
+ <Name>get_iocp</Name>
+ <Path>classos_1_1WindowsFD.html</Path>
+ <Anchor>a380eb8d9b7bc0e6b3bfae0e8e9c6bb0f</Anchor>
+ </Node>
+ <Node>
<Name>is_overlapped</Name>
<Path>classos_1_1WindowsFD.html</Path>
<Anchor>a4dce5dbc3d019589b4b61d6d17e1da45</Anchor>
@@ -23723,6 +23743,11 @@
<Anchor>a3ce17a730ace5352a1fc6d49f8336d52</Anchor>
</Node>
<Node>
+ <Name>dup</Name>
+ <Path>classos_1_1WindowsFD.html</Path>
+ <Anchor>ae8d4fd38b52ea9f38605f46195fd040b</Anchor>
+ </Node>
+ <Node>
<Name>operator!=</Name>
<Path>classos_1_1WindowsFD.html</Path>
<Anchor>a342803d2a16f81ca20f0e0c1c2e598d0</Anchor>
@@ -25473,6 +25498,12 @@
</Subnodes>
</Node>
<Node>
+ <Name>io</Name>
+ <Path>namespaceprocess_1_1io.html</Path>
+ <Subnodes>
+ </Subnodes>
+ </Node>
+ <Node>
<Name>metrics</Name>
<Path>namespaceprocess_1_1metrics.html</Path>
<Subnodes>
@@ -26277,6 +26308,38 @@
</Subnodes>
</Node>
<Node>
+ <Name>windows</Name>
+ <Path>namespaceprocess_1_1windows.html</Path>
+ <Subnodes>
+ <Node>
+ <Name>EventLoop</Name>
+ <Path>classprocess_1_1windows_1_1EventLoop.html</Path>
+ <Subnodes>
+ <Node>
+ <Name>launchTimer</Name>
+ <Path>classprocess_1_1windows_1_1EventLoop.html</Path>
+ <Anchor>a006cb0c8efb7aaadadf0a692d9c2659a</Anchor>
+ </Node>
+ <Node>
+ <Name>registerHandle</Name>
+ <Path>classprocess_1_1windows_1_1EventLoop.html</Path>
+ <Anchor>a832a73998bb3b26b7caa770ceef38827</Anchor>
+ </Node>
+ <Node>
+ <Name>run</Name>
+ <Path>classprocess_1_1windows_1_1EventLoop.html</Path>
+ <Anchor>a2578b5fad0eb039f995955c798310c86</Anchor>
+ </Node>
+ <Node>
+ <Name>stop</Name>
+ <Path>classprocess_1_1windows_1_1EventLoop.html</Path>
+ <Anchor>a8a07fc602e31875e6cbcaeac8008f09a</Anchor>
+ </Node>
+ </Subnodes>
+ </Node>
+ </Subnodes>
+ </Node>
+ <Node>
<Name>_Deferred</Name>
<Path>structprocess_1_1__Deferred.html</Path>
<Subnodes>
@@ -36610,6 +36673,10 @@
<Path>classprocess_1_1EventLoop.html</Path>
</Node>
<Node>
+ <Name>process::windows::EventLoop</Name>
+ <Path>classprocess_1_1windows_1_1EventLoop.html</Path>
+ </Node>
+ <Node>
<Name>process::EventQueue</Name>
<Path>classprocess_1_1EventQueue.html</Path>
</Node>
@@ -39216,14 +39283,14 @@
<Path>structprotobuf_1_1internal_1_1Read_3_01google_1_1protobuf_1_1RepeatedPtrField_3_01T_01_4_01_4.html</Path>
</Node>
<Node>
- <Name>mesos::log::Log::Reader</Name>
- <Path>classmesos_1_1log_1_1Log_1_1Reader.html</Path>
- </Node>
- <Node>
<Name>mesos::internal::recordio::Reader< T ></Name>
<Path>classmesos_1_1internal_1_1recordio_1_1Reader.html</Path>
</Node>
<Node>
+ <Name>mesos::log::Log::Reader</Name>
+ <Path>classmesos_1_1log_1_1Log_1_1Reader.html</Path>
+ </Node>
+ <Node>
<Name>process::http::Pipe::Reader</Name>
<Path>classprocess_1_1http_1_1Pipe_1_1Reader.html</Path>
</Node>
@@ -39256,6 +39323,16 @@
</Subnodes>
</Node>
<Node>
+ <Name>mesos::internal::master::Registrar</Name>
+ <Path>classmesos_1_1internal_1_1master_1_1Registrar.html</Path>
+ <Subnodes>
+ <Node>
+ <Name>mesos::internal::tests::MockRegistrar</Name>
+ <Path>classmesos_1_1internal_1_1tests_1_1MockRegistrar.html</Path>
+ </Node>
+ </Subnodes>
+ </Node>
+ <Node>
<Name>mesos::resource_provider::Registrar</Name>
<Path>classmesos_1_1resource__provider_1_1Registrar.html</Path>
<Subnodes>
@@ -39270,16 +39347,6 @@
</Subnodes>
</Node>
<Node>
- <Name>mesos::internal::master::Registrar</Name>
- <Path>classmesos_1_1internal_1_1master_1_1Registrar.html</Path>
- <Subnodes>
- <Node>
- <Name>mesos::internal::tests::MockRegistrar</Name>
- <Path>classmesos_1_1internal_1_1tests_1_1MockRegistrar.html</Path>
- </Node>
- </Subnodes>
- </Node>
- <Node>
<Name>mesos::internal::log::Replica</Name>
<Path>classmesos_1_1internal_1_1log_1_1Replica.html</Path>
</Node>
@@ -39670,10 +39737,6 @@
</Subnodes>
</Node>
<Node>
- <Name>mesos::internal::tests::cluster::Slave</Name>
- <Path>classmesos_1_1internal_1_1tests_1_1cluster_1_1Slave.html</Path>
- </Node>
- <Node>
<Name>mesos::internal::master::Slave</Name>
<Path>structmesos_1_1internal_1_1master_1_1Slave.html</Path>
</Node>
@@ -39682,6 +39745,10 @@
<Path>classmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess_1_1Slave.html</Path>
</Node>
<Node>
+ <Name>mesos::internal::tests::cluster::Slave</Name>
+ <Path>classmesos_1_1internal_1_1tests_1_1cluster_1_1Slave.html</Path>
+ </Node>
+ <Node>
<Name>mesos::internal::slave::state::SlaveState</Name>
<Path>structmesos_1_1internal_1_1slave_1_1state_1_1SlaveState.html</Path>
</Node>
@@ -39720,6 +39787,14 @@
<Path>classos_1_1Stack.html</Path>
</Node>
<Node>
+ <Name>mesos::internal::StatusUpdateManagerProcess< IDType, CheckpointType, UpdateType >::State</Name>
+ <Path>structmesos_1_1internal_1_1StatusUpdateManagerProcess_1_1State.html</Path>
+ </Node>
+ <Node>
+ <Name>mesos::internal::slave::state::State</Name>
+ <Path>structmesos_1_1internal_1_1slave_1_1state_1_1State.html</Path>
+ </Node>
+ <Node>
<Name>mesos::state::State</Name>
<Path>classmesos_1_1state_1_1State.html</Path>
<Subnodes>
@@ -39730,10 +39805,6 @@
</Subnodes>
</Node>
<Node>
- <Name>mesos::internal::StatusUpdateManagerProcess< IDType, CheckpointType, UpdateType >::State</Name>
- <Path>structmesos_1_1internal_1_1StatusUpdateManagerProcess_1_1State.html</Path>
- </Node>
- <Node>
<Name>mesos::internal::StatusUpdateManagerProcess< IDType, CheckpointType, UpdateType >::StatusUpdateStream::State</Name>
<Path>structmesos_1_1internal_1_1StatusUpdateManagerProcess_1_1StatusUpdateStream_1_1State.html</Path>
</Node>
@@ -39742,10 +39813,6 @@
<Path>structmesos_1_1internal_1_1log_1_1Storage_1_1State.html</Path>
</Node>
<Node>
- <Name>mesos::internal::slave::state::State</Name>
- <Path>structmesos_1_1internal_1_1slave_1_1state_1_1State.html</Path>
- </Node>
- <Node>
<Name>process::StateMachine< State ></Name>
<Path>classprocess_1_1StateMachine.html</Path>
</Node>
@@ -41358,22 +41425,26 @@
<Path>structprocess_1_1TimeSeries_1_1Value.html</Path>
</Node>
<Node>
- <Name>Jvm::Variable< T, name, signature ></Name>
- <Path>classJvm_1_1Variable.html</Path>
+ <Name>mesos::state::protobuf::Variable< T ></Name>
+ <Path>classmesos_1_1state_1_1protobuf_1_1Variable.html</Path>
</Node>
<Node>
<Name>mesos::state::Variable</Name>
<Path>classmesos_1_1state_1_1Variable.html</Path>
</Node>
<Node>
- <Name>mesos::state::protobuf::Variable< T ></Name>
- <Path>classmesos_1_1state_1_1protobuf_1_1Variable.html</Path>
+ <Name>Jvm::Variable< T, name, signature ></Name>
+ <Path>classJvm_1_1Variable.html</Path>
</Node>
<Node>
<Name>Jvm::Variable< org::apache::zookeeper::server::SessionTracker, ZOOKEEPERSERVER_SESSIONTRACKER, ZOOKEEPERSERVER_SESSIONTRACKER_SIGNATURE ></Name>
<Path>classJvm_1_1Variable.html</Path>
</Node>
<Node>
+ <Name>Variant< T, Ts ></Name>
+ <Path>classVariant.html</Path>
+ </Node>
+ <Node>
<Name>Variant</Name>
<Path></Path>
<Subnodes>
@@ -41384,10 +41455,6 @@
</Subnodes>
</Node>
<Node>
- <Name>Variant< T, Ts ></Name>
- <Path>classVariant.html</Path>
- </Node>
- <Node>
<Name>Variant< check::Command, check::Http, check::Tcp ></Name>
<Path>classVariant.html</Path>
</Node>
@@ -41456,14 +41523,14 @@
<Path>structprocess_1_1internal_1_1wrap_3_01Future_3_01X_01_4_01_4.html</Path>
</Node>
<Node>
- <Name>process::http::Pipe::Writer</Name>
- <Path>classprocess_1_1http_1_1Pipe_1_1Writer.html</Path>
- </Node>
- <Node>
<Name>mesos::log::Log::Writer</Name>
<Path>classmesos_1_1log_1_1Log_1_1Writer.html</Path>
</Node>
<Node>
+ <Name>process::http::Pipe::Writer</Name>
+ <Path>classprocess_1_1http_1_1Pipe_1_1Writer.html</Path>
+ </Node>
+ <Node>
<Name>JSON::WriterProxy</Name>
<Path>classJSON_1_1WriterProxy.html</Path>
</Node>
@@ -47270,11 +47337,21 @@
<Path>3rdparty_2libprocess_2include_2process_2io_8hpp.html</Path>
<Subnodes>
<Node>
+ <Name>is_async</Name>
+ <Path>3rdparty_2libprocess_2include_2process_2io_8hpp.html</Path>
+ <Anchor>ada6541d78cad2ecc225be8a26662c748</Anchor>
+ </Node>
+ <Node>
<Name>poll</Name>
<Path>3rdparty_2libprocess_2include_2process_2io_8hpp.html</Path>
<Anchor>af71c45e0a85e21f6b39060f4e716cebf</Anchor>
</Node>
<Node>
+ <Name>prepare_async</Name>
+ <Path>3rdparty_2libprocess_2include_2process_2io_8hpp.html</Path>
+ <Anchor>a9db94d84fb44b21fb669ade7c6a82114</Anchor>
+ </Node>
+ <Node>
<Name>read</Name>
<Path>3rdparty_2libprocess_2include_2process_2io_8hpp.html</Path>
<Anchor>a4c34d22e475e29f12ac739921dcc580f</Anchor>
@@ -49659,7 +49736,7 @@
</Node>
<Node>
<Name>subprocess.hpp</Name>
- <Path>subprocess_8hpp.html</Path>
+ <Path>include_2process_2subprocess_8hpp.html</Path>
<Subnodes>
<Node>
<Name>Subprocess</Name>
@@ -49925,22 +50002,22 @@
</Node>
<Node>
<Name>InputFileDescriptors</Name>
- <Path>subprocess_8hpp.html</Path>
+ <Path>include_2process_2subprocess_8hpp.html</Path>
<Anchor>afc6611c4913642642277b44447a16e55</Anchor>
</Node>
<Node>
<Name>OutputFileDescriptors</Name>
- <Path>subprocess_8hpp.html</Path>
+ <Path>include_2process_2subprocess_8hpp.html</Path>
<Anchor>a882829822afa4f33b90aafc9c4ffa9af</Anchor>
</Node>
<Node>
<Name>subprocess</Name>
- <Path>subprocess_8hpp.html</Path>
+ <Path>include_2process_2subprocess_8hpp.html</Path>
<Anchor>a2d7e0a283bc0c9eca8a8b0532e026269</Anchor>
</Node>
<Node>
<Name>subprocess</Name>
- <Path>subprocess_8hpp.html</Path>
+ <Path>include_2process_2subprocess_8hpp.html</Path>
<Anchor>a0a748c548ad3a094196c98f00f9674cf</Anchor>
</Node>
</Subnodes>
@@ -50318,6 +50395,301 @@
<Path>dir_01cbbd8dcbf9de3825992568658f467e.html</Path>
<Subnodes>
<Node>
+ <Name>posix</Name>
+ <Path>dir_0ac73505685689cb4a842e520ca4cca6.html</Path>
+ <Subnodes>
+ <Node>
+ <Name>libev</Name>
+ <Path>dir_ecbc207ab261ae6376e9b7d1e9eba3c1.html</Path>
+ <Subnodes>
+ <Node>
+ <Name>libev.hpp</Name>
+ <Path>libev_8hpp.html</Path>
+ <Subnodes>
+ <Node>
+ <Name>__in_event_loop__</Name>
+ <Path>libev_8hpp.html</Path>
+ <Anchor>a8a6cf2ec36d767c973bd04779f513986</Anchor>
+ </Node>
+ <Node>
+ <Name>_run_in_event_loop</Name>
+ <Path>libev_8hpp.html</Path>
+ <Anchor>ad224a6bc6e6b3ca551939fea690af936</Anchor>
+ </Node>
+ <Node>
+ <Name>run_in_event_loop</Name>
+ <Path>libev_8hpp.html</Path>
+ <Anchor>abd611a6cc14dc5e3d73fad6c84268342</Anchor>
+ </Node>
+ <Node>
+ <Name>_in_event_loop_</Name>
+ <Path>libev_8hpp.html</Path>
+ <Anchor>a3d7b11f4e8691d998daa100de16ed8bc</Anchor>
+ </Node>
+ <Node>
+ <Name>async_watcher</Name>
+ <Path>libev_8hpp.html</Path>
+ <Anchor>abde24dee21e5f3c5110d36020c9f8d89</Anchor>
+ </Node>
+ <Node>
+ <Name>functions</Name>
+ <Path>libev_8hpp.html</Path>
+ <Anchor>a2f79b2f1afbe2c85db95b8276735d861</Anchor>
+ </Node>
+ <Node>
+ <Name>loop</Name>
+ <Path>libev_8hpp.html</Path>
+ <Anchor>a59c192ee8ea5abbbee1642957f47c92a</Anchor>
+ </Node>
+ <Node>
+ <Name>watchers</Name>
+ <Path>libev_8hpp.html</Path>
+ <Anchor>a73ddff05d642ba235230804b85c7ee43</Anchor>
+ </Node>
+ <Node>
+ <Name>watchers_mutex</Name>
+ <Path>libev_8hpp.html</Path>
+ <Anchor>ac2a375f1a48140736670146a43426b85</Anchor>
+ </Node>
+ </Subnodes>
+ </Node>
+ </Subnodes>
+ </Node>
+ <Node>
+ <Name>libevent</Name>
+ <Path>dir_b2935a02400d93f2f95b894ab5508ef6.html</Path>
+ <Subnodes>
+ <Node>
+ <Name>libevent.hpp</Name>
+ <Path>libevent_8hpp.html</Path>
+ <Subnodes>
+ <Node>
+ <Name>__in_event_loop__</Name>
+ <Path>libevent_8hpp.html</Path>
+ <Anchor>a8a6cf2ec36d767c973bd04779f513986</Anchor>
+ </Node>
+ <Node>
+ <Name>EventLoopLogicFlow</Name>
+ <Path>libevent_8hpp.html</Path>
+ <Anchor>af8d01fbc04e5157d594146e377243573</Anchor>
+ <Subnodes>
+ <Node>
+ <Name>ALLOW_SHORT_CIRCUIT</Name>
+ <Path>libevent_8hpp.html</Path>
+ <Anchor>af8d01fbc04e5157d594146e377243573a240417b1e0b6d0ddcbe488f9b18f679c</Anchor>
+ </Node>
+ <Node>
+ <Name>DISALLOW_SHORT_CIRCUIT</Name>
+ <Path>libevent_8hpp.html</Path>
+ <Anchor>af8d01fbc04e5157d594146e377243573a22a3dd39a9c94dd501273e0a76806c41</Anchor>
+ </Node>
+ </Subnodes>
+ </Node>
+ <Node>
+ <Name>run_in_event_loop</Name>
+ <Path>libevent_8hpp.html</Path>
+ <Anchor>ad91a0486ed34c25dc10ba404f4a1fc9b</Anchor>
+ </Node>
+ <Node>
+ <Name>base</Name>
+ <Path>libevent_8hpp.html</Path>
+ <Anchor>a373bd5e2bd8f2694e4589293af477854</Anchor>
+ </Node>
+ </Subnodes>
+ </Node>
+ <Node>
+ <Name>libevent_ssl_socket.hpp</Name>
+ <Path>libevent__ssl__socket_8hpp.html</Path>
+ <Subnodes>
+ <Node>
+ <Name>LibeventSSLSocketImpl</Name>
+ <Path>classprocess_1_1network_1_1internal_1_1LibeventSSLSocketImpl.html</Path>
+ <Subnodes>
+ <Node>
+ <Name>LibeventSSLSocketImpl</Name>
+ <Path>classprocess_1_1network_1_1internal_1_1LibeventSSLSocketImpl.html</Path>
+ <Anchor>a8c1ea3c61d392c14a70d594c8e930df8</Anchor>
+ </Node>
+ <Node>
+ <Name>~LibeventSSLSocketImpl</Name>
+ <Path>classprocess_1_1network_1_1internal_1_1LibeventSSLSocketImpl.html</Path>
+ <Anchor>ad2077833906c7d37189588ff67b43a20</Anchor>
+ </Node>
+ <Node>
+ <Name>accept</Name>
+ <Path>classprocess_1_1network_1_1internal_1_1LibeventSSLSocketImpl.html</Path>
+ <Anchor>a5dd3f53871f2152a0092a222ff63a778</Anchor>
+ </Node>
+ <Node>
+ <Name>connect</Name>
+ <Path>classprocess_1_1network_1_1internal_1_1LibeventSSLSocketImpl.html</Path>
+ <Anchor>a4ee00c94cb838618b65c5f231e7c367a</Anchor>
+ </Node>
+ <Node>
+ <Name>initialize</Name>
+ <Path>classprocess_1_1network_1_1internal_1_1LibeventSSLSocketImpl.html</Path>
+ <Anchor>a0585a14478590e525165a418df7beb3a</Anchor>
+ </Node>
+ <Node>
+ <Name>kind</Name>
+ <Path>classprocess_1_1network_1_1internal_1_1LibeventSSLSocketImpl.html</Path>
+ <Anchor>ad0ecd3ed460c9cf93b32e4d68b0107e7</Anchor>
+ </Node>
+ <Node>
+ <Name>listen</Name>
+ <Path>classprocess_1_1network_1_1internal_1_1LibeventSSLSocketImpl.html</Path>
+ <Anchor>a107ac49390f671b4cd5d180e5bddb4ad</Anchor>
+ </Node>
+ <Node>
+ <Name>recv</Name>
+ <Path>classprocess_1_1network_1_1internal_1_1LibeventSSLSocketImpl.html</Path>
+ <Anchor>a25118017aa15a1ee25039e69fdfd8ea4</Anchor>
+ </Node>
+ <Node>
+ <Name>send</Name>
+ <Path>classprocess_1_1network_1_1internal_1_1LibeventSSLSocketImpl.html</Path>
+ <Anchor>a6c91fd87e95efe9c12fe77e02bf306da</Anchor>
+ </Node>
+ <Node>
+ <Name>sendfile</Name>
+ <Path>classprocess_1_1network_1_1internal_1_1LibeventSSLSocketImpl.html</Path>
+ <Anchor>a3ee2460274ef43b0665de263b08e3539</Anchor>
+ </Node>
+ <Node>
+ <Name>shutdown</Name>
+ <Path>classprocess_1_1network_1_1internal_1_1LibeventSSLSocketImpl.html</Path>
+ <Anchor>a5d1386c7494d6681a764ddf0cff19e40</Anchor>
+ </Node>
+ </Subnodes>
+ </Node>
+ </Subnodes>
+ </Node>
+ </Subnodes>
+ </Node>
+ <Node>
+ <Name>subprocess.hpp</Name>
+ <Path>src_2posix_2subprocess_8hpp.html</Path>
+ <Subnodes>
+ <Node>
+ <Name>childMain</Name>
+ <Path>src_2posix_2subprocess_8hpp.html</Path>
+ <Anchor>a902e2646d88c41ce674a3009cafe0aad</Anchor>
+ </Node>
+ <Node>
+ <Name>cloexec</Name>
+ <Path>src_2posix_2subprocess_8hpp.html</Path>
+ <Anchor>a345a534b82b79bf20333fb6faef43e93</Anchor>
+ </Node>
+ <Node>
+ <Name>cloneChild</Name>
+ <Path>src_2posix_2subprocess_8hpp.html</Path>
+ <Anchor>afe2c3a3ffdd0ee6fda82e198ece80a37</Anchor>
+ </Node>
+ <Node>
+ <Name>defaultClone</Name>
+ <Path>src_2posix_2subprocess_8hpp.html</Path>
+ <Anchor>af2f19b6f367cddc0c8283560a9cd9215</Anchor>
+ </Node>
+ </Subnodes>
+ </Node>
+ </Subnodes>
+ </Node>
+ <Node>
+ <Name>windows</Name>
+ <Path>dir_4f303781ded361ff602a549327c53cc9.html</Path>
+ <Subnodes>
+ <Node>
+ <Name>event_loop.hpp</Name>
+ <Path>windows_2event__loop_8hpp.html</Path>
+ <Subnodes>
+ <Node>
+ <Name>libwinio_loop</Name>
+ <Path>windows_2event__loop_8hpp.html</Path>
+ <Anchor>a3b1f9b3719ea6358ad426ae31bc8eae6</Anchor>
+ </Node>
+ </Subnodes>
+ </Node>
+ <Node>
+ <Name>libwinio.hpp</Name>
+ <Path>libwinio_8hpp.html</Path>
+ <Subnodes>
+ <Node>
+ <Name>EventLoop</Name>
+ <Path>classprocess_1_1windows_1_1EventLoop.html</Path>
+ <Subnodes>
+ <Node>
+ <Name>launchTimer</Name>
+ <Path>classprocess_1_1windows_1_1EventLoop.html</Path>
+ <Anchor>a006cb0c8efb7aaadadf0a692d9c2659a</Anchor>
+ </Node>
+ <Node>
+ <Name>registerHandle</Name>
+ <Path>classprocess_1_1windows_1_1EventLoop.html</Path>
+ <Anchor>a832a73998bb3b26b7caa770ceef38827</Anchor>
+ </Node>
+ <Node>
+ <Name>run</Name>
+ <Path>classprocess_1_1windows_1_1EventLoop.html</Path>
+ <Anchor>a2578b5fad0eb039f995955c798310c86</Anchor>
+ </Node>
+ <Node>
+ <Name>stop</Name>
+ <Path>classprocess_1_1windows_1_1EventLoop.html</Path>
+ <Anchor>a8a07fc602e31875e6cbcaeac8008f09a</Anchor>
+ </Node>
+ </Subnodes>
+ </Node>
+ <Node>
+ <Name>accept</Name>
+ <Path>libwinio_8hpp.html</Path>
+ <Anchor>a1f34e4ee3092afe93c37c170430c03f5</Anchor>
+ </Node>
+ <Node>
+ <Name>connect</Name>
+ <Path>libwinio_8hpp.html</Path>
+ <Anchor>a5afdaeaeb57343d0aca728b74dcd3f71</Anchor>
+ </Node>
+ <Node>
+ <Name>read</Name>
+ <Path>libwinio_8hpp.html</Path>
+ <Anchor>a7436ed89e84ff3415987de0ca9428d08</Anchor>
+ </Node>
+ <Node>
+ <Name>recv</Name>
+ <Path>libwinio_8hpp.html</Path>
+ <Anchor>a37fde6f31c2f9838a18cf83c2c865134</Anchor>
+ </Node>
+ <Node>
+ <Name>send</Name>
+ <Path>libwinio_8hpp.html</Path>
+ <Anchor>a04c64346155d34517acdf8b587162868</Anchor>
+ </Node>
+ <Node>
+ <Name>sendfile</Name>
+ <Path>libwinio_8hpp.html</Path>
+ <Anchor>afc59f27e725b5feb12f76e1c008ba767</Anchor>
+ </Node>
+ <Node>
+ <Name>write</Name>
+ <Path>libwinio_8hpp.html</Path>
+ <Anchor>a69a29846581bb7bb1084e9ee90cbe8e6</Anchor>
+ </Node>
+ </Subnodes>
+ </Node>
+ <Node>
+ <Name>subprocess.hpp</Name>
+ <Path>src_2windows_2subprocess_8hpp.html</Path>
+ <Subnodes>
+ <Node>
+ <Name>createChildProcess</Name>
+ <Path>src_2windows_2subprocess_8hpp.html</Path>
+ <Anchor>a32020f2bbbcc116f2e055e209b4b8ce7</Anchor>
+ </Node>
+ </Subnodes>
+ </Node>
+ </Subnodes>
+ </Node>
+ <Node>
<Name>authenticator_manager.hpp</Name>
<Path>authenticator__manager_8hpp.html</Path>
<Subnodes>
@@ -50854,158 +51226,28 @@
</Subnodes>
</Node>
<Node>
- <Name>libev.hpp</Name>
- <Path>libev_8hpp.html</Path>
- <Subnodes>
- <Node>
- <Name>__in_event_loop__</Name>
- <Path>libev_8hpp.html</Path>
- <Anchor>a8a6cf2ec36d767c973bd04779f513986</Anchor>
- </Node>
- <Node>
- <Name>_run_in_event_loop</Name>
- <Path>libev_8hpp.html</Path>
- <Anchor>ad224a6bc6e6b3ca551939fea690af936</Anchor>
- </Node>
- <Node>
- <Name>run_in_event_loop</Name>
- <Path>libev_8hpp.html</Path>
- <Anchor>abd611a6cc14dc5e3d73fad6c84268342</Anchor>
- </Node>
- <Node>
- <Name>_in_event_loop_</Name>
- <Path>libev_8hpp.html</Path>
- <Anchor>a3d7b11f4e8691d998daa100de16ed8bc</Anchor>
- </Node>
- <Node>
- <Name>async_watcher</Name>
- <Path>libev_8hpp.html</Path>
- <Anchor>abde24dee21e5f3c5110d36020c9f8d89</Anchor>
- </Node>
- <Node>
- <Name>functions</Name>
- <Path>libev_8hpp.html</Path>
- <Anchor>a2f79b2f1afbe2c85db95b8276735d861</Anchor>
- </Node>
- <Node>
- <Name>loop</Name>
- <Path>libev_8hpp.html</Path>
- <Anchor>a59c192ee8ea5abbbee1642957f47c92a</Anchor>
- </Node>
- <Node>
- <Name>watchers</Name>
- <Path>libev_8hpp.html</Path>
- <Anchor>a73ddff05d642ba235230804b85c7ee43</Anchor>
- </Node>
- <Node>
- <Name>watchers_mutex</Name>
- <Path>libev_8hpp.html</Path>
- <Anchor>ac2a375f1a48140736670146a43426b85</Anchor>
- </Node>
- </Subnodes>
- </Node>
- <Node>
- <Name>libevent.hpp</Name>
- <Path>libevent_8hpp.html</Path>
+ <Name>io_internal.hpp</Name>
+ <Path>io__internal_8hpp.html</Path>
<Subnodes>
<Node>
- <Name>__in_event_loop__</Name>
- <Path>libevent_8hpp.html</Path>
- <Anchor>a8a6cf2ec36d767c973bd04779f513986</Anchor>
+ <Name>is_async</Name>
+ <Path>io__internal_8hpp.html</Path>
+ <Anchor>a2291f1f69f4bdf80f3b114c493eb1e37</Anchor>
</Node>
<Node>
- <Name>EventLoopLogicFlow</Name>
- <Path>libevent_8hpp.html</Path>
- <Anchor>af8d01fbc04e5157d594146e377243573</Anchor>
- <Subnodes>
- <Node>
- <Name>ALLOW_SHORT_CIRCUIT</Name>
- <Path>libevent_8hpp.html</Path>
- <Anchor>af8d01fbc04e5157d594146e377243573a240417b1e0b6d0ddcbe488f9b18f679c</Anchor>
- </Node>
- <Node>
- <Name>DISALLOW_SHORT_CIRCUIT</Name>
- <Path>libevent_8hpp.html</Path>
- <Anchor>af8d01fbc04e5157d594146e377243573a22a3dd39a9c94dd501273e0a76806c41</Anchor>
- </Node>
- </Subnodes>
+ <Name>prepare_async</Name>
+ <Path>io__internal_8hpp.html</Path>
+ <Anchor>a9458b24220892124c2112b3fe85e585e</Anchor>
</Node>
<Node>
- <Name>run_in_event_loop</Name>
- <Path>libevent_8hpp.html</Path>
- <Anchor>ad91a0486ed34c25dc10ba404f4a1fc9b</Anchor>
- </Node>
- <Node>
- <Name>base</Name>
- <Path>libevent_8hpp.html</Path>
- <Anchor>a373bd5e2bd8f2694e4589293af477854</Anchor>
+ <Name>read</Name>
+ <Path>io__internal_8hpp.html</Path>
+ <Anchor>ac0a90b8abf47098e5a57d90e744a42a8</Anchor>
</Node>
- </Subnodes>
- </Node>
- <Node>
- <Name>libevent_ssl_socket.hpp</Name>
- <Path>libevent__ssl__socket_8hpp.html</Path>
- <Subnodes>
<Node>
- <Name>LibeventSSLSocketImpl</Name>
- <Path>classprocess_1_1network_1_1internal_1_1LibeventSSLSocketImpl.html</Path>
- <Subnodes>
- <Node>
- <Name>LibeventSSLSocketImpl</Name>
- <Path>classprocess_1_1network_1_1internal_1_1LibeventSSLSocketImpl.html</Path>
- <Anchor>a8c1ea3c61d392c14a70d594c8e930df8</Anchor>
- </Node>
- <Node>
- <Name>~LibeventSSLSocketImpl</Name>
- <Path>classprocess_1_1network_1_1internal_1_1LibeventSSLSocketImpl.html</Path>
- <Anchor>ad2077833906c7d37189588ff67b43a20</Anchor>
- </Node>
- <Node>
- <Name>accept</Name>
- <Path>classprocess_1_1network_1_1internal_1_1LibeventSSLSocketImpl.html</Path>
- <Anchor>a5dd3f53871f2152a0092a222ff63a778</Anchor>
- </Node>
- <Node>
- <Name>connect</Name>
- <Path>classprocess_1_1network_1_1internal_1_1LibeventSSLSocketImpl.html</Path>
- <Anchor>a4ee00c94cb838618b65c5f231e7c367a</Anchor>
- </Node>
- <Node>
- <Name>initialize</Name>
- <Path>classprocess_1_1network_1_1internal_1_1LibeventSSLSocketImpl.html</Path>
- <Anchor>a0585a14478590e525165a418df7beb3a</Anchor>
- </Node>
- <Node>
- <Name>kind</Name>
- <Path>classprocess_1_1network_1_1internal_1_1LibeventSSLSocketImpl.html</Path>
- <Anchor>ad0ecd3ed460c9cf93b32e4d68b0107e7</Anchor>
- </Node>
- <Node>
- <Name>listen</Name>
- <Path>classprocess_1_1network_1_1internal_1_1LibeventSSLSocketImpl.html</Path>
- <Anchor>a107ac49390f671b4cd5d180e5bddb4ad</Anchor>
- </Node>
- <Node>
- <Name>recv</Name>
- <Path>classprocess_1_1network_1_1internal_1_1LibeventSSLSocketImpl.html</Path>
- <Anchor>a25118017aa15a1ee25039e69fdfd8ea4</Anchor>
- </Node>
- <Node>
- <Name>send</Name>
- <Path>classprocess_1_1network_1_1internal_1_1LibeventSSLSocketImpl.html</Path>
- <Anchor>a6c91fd87e95efe9c12fe77e02bf306da</Anchor>
- </Node>
- <Node>
- <Name>sendfile</Name>
- <Path>classprocess_1_1network_1_1internal_1_1LibeventSSLSocketImpl.html</Path>
- <Anchor>a3ee2460274ef43b0665de263b08e3539</Anchor>
- </Node>
- <Node>
- <Name>shutdown</Name>
- <Path>classprocess_1_1network_1_1internal_1_1LibeventSSLSocketImpl.html</Path>
- <Anchor>a5d1386c7494d6681a764ddf0cff19e40</Anchor>
- </Node>
- </Subnodes>
+ <Name>write</Name>
+ <Path>io__internal_8hpp.html</Path>
+ <Anchor>ab4ecbbe96ef3c0600060e16c47988798</Anchor>
</Node>
</Subnodes>
</Node>
@@ -51434,43 +51676,6 @@
</Node>
</Subnodes>
</Node>
- <Node>
- <Name>subprocess_posix.hpp</Name>
- <Path>subprocess__posix_8hpp.html</Path>
- <Subnodes>
- <Node>
- <Name>childMain</Name>
- <Path>subprocess__posix_8hpp.html</Path>
- <Anchor>a902e2646d88c41ce674a3009cafe0aad</Anchor>
- </Node>
- <Node>
- <Name>cloexec</Name>
- <Path>subprocess__posix_8hpp.html</Path>
- <Anchor>a345a534b82b79bf20333fb6faef43e93</Anchor>
- </Node>
- <Node>
- <Name>cloneChild</Name>
- <Path>subprocess__posix_8hpp.html</Path>
- <Anchor>afe2c3a3ffdd0ee6fda82e198ece80a37</Anchor>
- </Node>
- <Node>
- <Name>defaultClone</Name>
- <Path>subprocess__posix_8hpp.html</Path>
- <Anchor>af2f19b6f367cddc0c8283560a9cd9215</Anchor>
- </Node>
- </Subnodes>
- </Node>
- <Node>
- <Name>subprocess_windows.hpp</Name>
- <Path>subprocess__windows_8hpp.html</Path>
- <Subnodes>
- <Node>
- <Name>createChildProcess</Name>
- <Path>subprocess__windows_8hpp.html</Path>
- <Anchor>a32020f2bbbcc116f2e055e209b4b8ce7</Anchor>
- </Node>
- </Subnodes>
- </Node>
</Subnodes>
</Node>
</Subnodes>
@@ -53384,11 +53589,21 @@
<Anchor>ad2ce21d9f77710472e19843e3e86343e</Anchor>
</Node>
<Node>
+ <Name>assign_iocp</Name>
+ <Path>classos_1_1WindowsFD.html</Path>
+ <Anchor>a1a9c96c20213e1b94ba8dcc1bb059163</Anchor>
+ </Node>
+ <Node>
<Name>crt</Name>
<Path>classos_1_1WindowsFD.html</Path>
<Anchor>a94b69cae4edb8f3549845fbfa0355b7c</Anchor>
</Node>
<Node>
+ <Name>get_iocp</Name>
+ <Path>classos_1_1WindowsFD.html</Path>
+ <Anchor>a380eb8d9b7bc0e6b3bfae0e8e9c6bb0f</Anchor>
+ </Node>
+ <Node>
<Name>is_overlapped</Name>
<Path>classos_1_1WindowsFD.html</Path>
<Anchor>a4dce5dbc3d019589b4b61d6d17e1da45</Anchor>
@@ -53429,6 +53644,11 @@
<Anchor>a3ce17a730ace5352a1fc6d49f8336d52</Anchor>
</Node>
<Node>
+ <Name>dup</Name>
+ <Path>classos_1_1WindowsFD.html</Path>
+ <Anchor>ae8d4fd38b52ea9f38605f46195fd040b</Anchor>
+ </Node>
+ <Node>
<Name>operator!=</Name>
<Path>classos_1_1WindowsFD.html</Path>
<Anchor>a342803d2a16f81ca20f0e0c1c2e598d0</Anchor>
@@ -55900,6 +56120,11 @@
<Path>windows_2os_8hpp.html</Path>
<Anchor>a59caf358baf81de389c29d983b8e21ad</Anchor>
</Node>
+ <Node>
+ <Name>windows_to_unix_epoch</Name>
+ <Path>windows_2os_8hpp.html</Path>
+ <Anchor>a1493e5fcc92753702d08b36881ee8f97</Anchor>
+ </Node>
</Subnodes>
</Node>
</Subnodes>
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/Tokens.xml
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/Tokens.xml b/content/api/latest/c++/Tokens.xml
index e1e795c..5215e1d 100644
--- a/content/api/latest/c++/Tokens.xml
+++ b/content/api/latest/c++/Tokens.xml
@@ -3782,6 +3782,61 @@
</Token>
<Token>
<TokenIdentifier>
+ <Name>defaultClone</Name>
+ <APILanguage>cpp</APILanguage>
+ <Type>func</Type>
+ <Scope>process::internal</Scope>
+ </TokenIdentifier>
+ <Path>namespaceprocess_1_1internal.html</Path>
+ <Anchor>af2f19b6f367cddc0c8283560a9cd9215</Anchor>
+ <DeclaredIn>subprocess.hpp</DeclaredIn>
+ </Token>
+ <Token>
+ <TokenIdentifier>
+ <Name>cloexec</Name>
+ <APILanguage>cpp</APILanguage>
+ <Type>func</Type>
+ <Scope>process::internal</Scope>
+ </TokenIdentifier>
+ <Path>namespaceprocess_1_1internal.html</Path>
+ <Anchor>a345a534b82b79bf20333fb6faef43e93</Anchor>
+ <DeclaredIn>subprocess.hpp</DeclaredIn>
+ </Token>
+ <Token>
+ <TokenIdentifier>
+ <Name>childMain</Name>
+ <APILanguage>cpp</APILanguage>
+ <Type>func</Type>
+ <Scope>process::internal</Scope>
+ </TokenIdentifier>
+ <Path>namespaceprocess_1_1internal.html</Path>
+ <Anchor>a902e2646d88c41ce674a3009cafe0aad</Anchor>
+ <DeclaredIn>subprocess.hpp</DeclaredIn>
+ </Token>
+ <Token>
+ <TokenIdentifier>
+ <Name>cloneChild</Name>
+ <APILanguage>cpp</APILanguage>
+ <Type>func</Type>
+ <Scope>process::internal</Scope>
+ </TokenIdentifier>
+ <Path>namespaceprocess_1_1internal.html</Path>
+ <Anchor>afe2c3a3ffdd0ee6fda82e198ece80a37</Anchor>
+ <DeclaredIn>subprocess.hpp</DeclaredIn>
+ </Token>
+ <Token>
+ <TokenIdentifier>
+ <Name>createChildProcess</Name>
+ <APILanguage>cpp</APILanguage>
+ <Type>func</Type>
+ <Scope>process::internal</Scope>
+ </TokenIdentifier>
+ <Path>namespaceprocess_1_1internal.html</Path>
+ <Anchor>a32020f2bbbcc116f2e055e209b4b8ce7</Anchor>
+ <DeclaredIn>subprocess.hpp</DeclaredIn>
+ </Token>
+ <Token>
+ <TokenIdentifier>
<Name>operator<<</Name>
<APILanguage>cpp</APILanguage>
<Type>func</Type>
@@ -4034,6 +4089,94 @@
</Token>
<Token>
<TokenIdentifier>
+ <Name>libwinio_loop</Name>
+ <APILanguage>cpp</APILanguage>
+ <Type>data</Type>
+ <Scope>process</Scope>
+ </TokenIdentifier>
+ <Path>namespaceprocess.html</Path>
+ <Anchor>a3b1f9b3719ea6358ad426ae31bc8eae6</Anchor>
+ <DeclaredIn>event_loop.hpp</DeclaredIn>
+ </Token>
+ <Token>
+ <TokenIdentifier>
+ <Name>read</Name>
+ <APILanguage>cpp</APILanguage>
+ <Type>func</Type>
+ <Scope>process::io::internal</Scope>
+ </TokenIdentifier>
+ <Path>namespaceprocess_1_1io_1_1internal.html</Path>
+ <Anchor>ac0a90b8abf47098e5a57d90e744a42a8</Anchor>
+ <DeclaredIn>io_internal.hpp</DeclaredIn>
+ </Token>
+ <Token>
+ <TokenIdentifier>
+ <Name>write</Name>
+ <APILanguage>cpp</APILanguage>
+ <Type>func</Type>
+ <Scope>process::io::internal</Scope>
+ </TokenIdentifier>
+ <Path>namespaceprocess_1_1io_1_1internal.html</Path>
+ <Anchor>ab4ecbbe96ef3c0600060e16c47988798</Anchor>
+ <DeclaredIn>io_internal.hpp</DeclaredIn>
+ </Token>
+ <Token>
+ <TokenIdentifier>
+ <Name>prepare_async</Name>
+ <APILanguage>cpp</APILanguage>
+ <Type>func</Type>
+ <Scope>process::io::internal</Scope>
+ </TokenIdentifier>
+ <Path>namespaceprocess_1_1io_1_1internal.html</Path>
+ <Anchor>a9458b24220892124c2112b3fe85e585e</Anchor>
+ <DeclaredIn>io_internal.hpp</DeclaredIn>
+ </Token>
+ <Token>
+ <TokenIdentifier>
+ <Name>is_async</Name>
+ <APILanguage>cpp</APILanguage>
+ <Type>func</Type>
+ <Scope>process::io::internal</Scope>
+ </TokenIdentifier>
+ <Path>namespaceprocess_1_1io_1_1internal.html</Path>
+ <Anchor>a2291f1f69f4bdf80f3b114c493eb1e37</Anchor>
+ <DeclaredIn>io_internal.hpp</DeclaredIn>
+ </Token>
+ <Token>
+ <TokenIdentifier>
+ <Name>initialize</Name>
+ <APILanguage>cpp</APILanguage>
+ <Type>func</Type>
+ <Scope>process::network::openssl</Scope>
+ </TokenIdentifier>
+ <Path>namespaceprocess_1_1network_1_1openssl.html</Path>
+ <Anchor>a65e51dfe9ceb18ebbce4e14e2a4fae78</Anchor>
+ <DeclaredIn>openssl.hpp</DeclaredIn>
+ </Token>
+ <Token>
+ <TokenIdentifier>
+ <Name>context</Name>
+ <APILanguage>cpp</APILanguage>
+ <Type>func</Type>
+ <Scope>process::network::openssl</Scope>
+ </TokenIdentifier>
+ <Path>namespaceprocess_1_1network_1_1openssl.html</Path>
+ <Anchor>a9ea7f1e144d9731d6fb4e4a0d80a7c56</Anchor>
+ <DeclaredIn>openssl.hpp</DeclaredIn>
+ </Token>
+ <Token>
+ <TokenIdentifier>
+ <Name>verify</Name>
+ <APILanguage>cpp</APILanguage>
+ <Type>func</Type>
+ <Scope>process::network::openssl</Scope>
+ </TokenIdentifier>
+ <Path>namespaceprocess_1_1network_1_1openssl.html</Path>
+ <Anchor>ab3f1f55b3c3d85018b68e649fbb0bc8a</Anchor>
+ <DeclaredIn>openssl.hpp</DeclaredIn>
+ </Token>
+ <Token>
+ <TokenIdentifier>
<Name>__in_event_loop__</Name>
<APILanguage>c</APILanguage>
<Type>macro</Type>
@@ -4164,39 +4307,6 @@
</Token>
<Token>
<TokenIdentifier>
- <Name>initialize</Name>
- <APILanguage>cpp</APILanguage>
- <Type>func</Type>
- <Scope>process::network::openssl</Scope>
- </TokenIdentifier>
- <Path>namespaceprocess_1_1network_1_1openssl.html</Path>
- <Anchor>a65e51dfe9ceb18ebbce4e14e2a4fae78</Anchor>
- <DeclaredIn>openssl.hpp</DeclaredIn>
- </Token>
- <Token>
- <TokenIdentifier>
- <Name>context</Name>
- <APILanguage>cpp</APILanguage>
- <Type>func</Type>
- <Scope>process::network::openssl</Scope>
- </TokenIdentifier>
- <Path>namespaceprocess_1_1network_1_1openssl.html</Path>
- <Anchor>a9ea7f1e144d9731d6fb4e4a0d80a7c56</Anchor>
- <DeclaredIn>openssl.hpp</DeclaredIn>
- </Token>
- <Token>
- <TokenIdentifier>
- <Name>verify</Name>
- <APILanguage>cpp</APILanguage>
- <Type>func</Type>
- <Scope>process::network::openssl</Scope>
- </TokenIdentifier>
- <Path>namespaceprocess_1_1network_1_1openssl.html</Path>
- <Anchor>ab3f1f55b3c3d85018b68e649fbb0bc8a</Anchor>
- <DeclaredIn>openssl.hpp</DeclaredIn>
- </Token>
- <Token>
- <TokenIdentifier>
<Name>_semaphore_</Name>
<APILanguage>unknown</APILanguage>
<Type>macro</Type>
@@ -4228,58 +4338,80 @@
</Token>
<Token>
<TokenIdentifier>
- <Name>defaultClone</Name>
+ <Name>read</Name>
<APILanguage>cpp</APILanguage>
<Type>func</Type>
- <Scope>process::internal</Scope>
+ <Scope>process::windows</Scope>
</TokenIdentifier>
- <Path>namespaceprocess_1_1internal.html</Path>
- <Anchor>af2f19b6f367cddc0c8283560a9cd9215</Anchor>
- <DeclaredIn>subprocess_posix.hpp</DeclaredIn>
+ <Path>namespaceprocess_1_1windows.html</Path>
+ <Anchor>a7436ed89e84ff3415987de0ca9428d08</Anchor>
+ <DeclaredIn>libwinio.hpp</DeclaredIn>
</Token>
<Token>
<TokenIdentifier>
- <Name>cloexec</Name>
+ <Name>write</Name>
<APILanguage>cpp</APILanguage>
<Type>func</Type>
- <Scope>process::internal</Scope>
+ <Scope>process::windows</Scope>
</TokenIdentifier>
- <Path>namespaceprocess_1_1internal.html</Path>
- <Anchor>a345a534b82b79bf20333fb6faef43e93</Anchor>
- <DeclaredIn>subprocess_posix.hpp</DeclaredIn>
+ <Path>namespaceprocess_1_1windows.html</Path>
+ <Anchor>a69a29846581bb7bb1084e9ee90cbe8e6</Anchor>
+ <DeclaredIn>libwinio.hpp</DeclaredIn>
</Token>
<Token>
<TokenIdentifier>
- <Name>childMain</Name>
+ <Name>recv</Name>
<APILanguage>cpp</APILanguage>
<Type>func</Type>
- <Scope>process::internal</Scope>
+ <Scope>process::windows</Scope>
</TokenIdentifier>
- <Path>namespaceprocess_1_1internal.html</Path>
- <Anchor>a902e2646d88c41ce674a3009cafe0aad</Anchor>
- <DeclaredIn>subprocess_posix.hpp</DeclaredIn>
+ <Path>namespaceprocess_1_1windows.html</Path>
+ <Anchor>a37fde6f31c2f9838a18cf83c2c865134</Anchor>
+ <DeclaredIn>libwinio.hpp</DeclaredIn>
</Token>
<Token>
<TokenIdentifier>
- <Name>cloneChild</Name>
+ <Name>send</Name>
<APILanguage>cpp</APILanguage>
<Type>func</Type>
- <Scope>process::internal</Scope>
+ <Scope>process::windows</Scope>
</TokenIdentifier>
- <Path>namespaceprocess_1_1internal.html</Path>
- <Anchor>afe2c3a3ffdd0ee6fda82e198ece80a37</Anchor>
- <DeclaredIn>subprocess_posix.hpp</DeclaredIn>
+ <Path>namespaceprocess_1_1windows.html</Path>
+ <Anchor>a04c64346155d34517acdf8b587162868</Anchor>
+ <DeclaredIn>libwinio.hpp</DeclaredIn>
</Token>
<Token>
<TokenIdentifier>
- <Name>createChildProcess</Name>
+ <Name>accept</Name>
<APILanguage>cpp</APILanguage>
<Type>func</Type>
- <Scope>process::internal</Scope>
+ <Scope>process::windows</Scope>
</TokenIdentifier>
- <Path>namespaceprocess_1_1internal.html</Path>
- <Anchor>a32020f2bbbcc116f2e055e209b4b8ce7</Anchor>
- <DeclaredIn>subprocess_windows.hpp</DeclaredIn>
+ <Path>namespaceprocess_1_1windows.html</Path>
+ <Anchor>a1f34e4ee3092afe93c37c170430c03f5</Anchor>
+ <DeclaredIn>libwinio.hpp</DeclaredIn>
+ </Token>
+ <Token>
+ <TokenIdentifier>
+ <Name>connect</Name>
+ <APILanguage>cpp</APILanguage>
+ <Type>func</Type>
+ <Scope>process::windows</Scope>
+ </TokenIdentifier>
+ <Path>namespaceprocess_1_1windows.html</Path>
+ <Anchor>a5afdaeaeb57343d0aca728b74dcd3f71</Anchor>
+ <DeclaredIn>libwinio.hpp</DeclaredIn>
+ </Token>
+ <Token>
+ <TokenIdentifier>
+ <Name>sendfile</Name>
+ <APILanguage>cpp</APILanguage>
+ <Type>func</Type>
+ <Scope>process::windows</Scope>
+ </TokenIdentifier>
+ <Path>namespaceprocess_1_1windows.html</Path>
+ <Anchor>afc59f27e725b5feb12f76e1c008ba767</Anchor>
+ <DeclaredIn>libwinio.hpp</DeclaredIn>
</Token>
<Token>
<TokenIdentifier>
@@ -6976,6 +7108,17 @@
</Token>
<Token>
<TokenIdentifier>
+ <Name>windows_to_unix_epoch</Name>
+ <APILanguage>cpp</APILanguage>
+ <Type>func</Type>
+ <Scope>os::internal</Scope>
+ </TokenIdentifier>
+ <Path>namespaceos_1_1internal.html</Path>
+ <Anchor>a1493e5fcc92753702d08b36881ee8f97</Anchor>
+ <DeclaredIn>os.hpp</DeclaredIn>
+ </Token>
+ <Token>
+ <TokenIdentifier>
<Name>pids</Name>
<APILanguage>cpp</APILanguage>
<Type>func</Type>
@@ -22977,6 +23120,30 @@
</Token>
<Token>
<TokenIdentifier>
+ <Name>prepare_async</Name>
+ <APILanguage>cpp</APILanguage>
+ <Type>func</Type>
+ <Scope>process::io</Scope>
+ </TokenIdentifier>
+ <Path>namespaceprocess_1_1io.html</Path>
+ <Anchor>a9db94d84fb44b21fb669ade7c6a82114</Anchor>
+ <Abstract>Prepares a file descriptor to be ready for asynchronous IO. </Abstract>
+ <DeclaredIn>io.hpp</DeclaredIn>
+ </Token>
+ <Token>
+ <TokenIdentifier>
+ <Name>is_async</Name>
+ <APILanguage>cpp</APILanguage>
+ <Type>func</Type>
+ <Scope>process::io</Scope>
+ </TokenIdentifier>
+ <Path>namespaceprocess_1_1io.html</Path>
+ <Anchor>ada6541d78cad2ecc225be8a26662c748</Anchor>
+ <Abstract>Checks if io::prepare_async has been called on the file descriptor. </Abstract>
+ <DeclaredIn>io.hpp</DeclaredIn>
+ </Token>
+ <Token>
+ <TokenIdentifier>
<Name>poll</Name>
<APILanguage>cpp</APILanguage>
<Type>func</Type>
@@ -167384,6 +167551,28 @@
</Token>
<Token>
<TokenIdentifier>
+ <Name>assign_iocp</Name>
+ <APILanguage>cpp</APILanguage>
+ <Type>instm</Type>
+ <Scope>os::WindowsFD</Scope>
+ </TokenIdentifier>
+ <Path>classos_1_1WindowsFD.html</Path>
+ <Anchor>a1a9c96c20213e1b94ba8dcc1bb059163</Anchor>
+ <DeclaredIn>fd.hpp</DeclaredIn>
+ </Token>
+ <Token>
+ <TokenIdentifier>
+ <Name>get_iocp</Name>
+ <APILanguage>cpp</APILanguage>
+ <Type>instm</Type>
+ <Scope>os::WindowsFD</Scope>
+ </TokenIdentifier>
+ <Path>classos_1_1WindowsFD.html</Path>
+ <Anchor>a380eb8d9b7bc0e6b3bfae0e8e9c6bb0f</Anchor>
+ <DeclaredIn>fd.hpp</DeclaredIn>
+ </Token>
+ <Token>
+ <TokenIdentifier>
<Name>operator<</Name>
<APILanguage>cpp</APILanguage>
<Type>ffunc</Type>
@@ -167516,6 +167705,17 @@
</Token>
<Token>
<TokenIdentifier>
+ <Name>dup</Name>
+ <APILanguage>cpp</APILanguage>
+ <Type>ffunc</Type>
+ <Scope>os::WindowsFD</Scope>
+ </TokenIdentifier>
+ <Path>classos_1_1WindowsFD.html</Path>
+ <Anchor>ae8d4fd38b52ea9f38605f46195fd040b</Anchor>
+ <DeclaredIn>fd.hpp</DeclaredIn>
+ </Token>
+ <Token>
+ <TokenIdentifier>
<Name>HANDLE</Name>
<APILanguage>cpp</APILanguage>
<Type>econst</Type>
@@ -167622,6 +167822,17 @@
</Token>
<Token>
<TokenIdentifier>
+ <Name>windows_to_unix_epoch</Name>
+ <APILanguage>cpp</APILanguage>
+ <Type>func</Type>
+ <Scope>os::internal</Scope>
+ </TokenIdentifier>
+ <Path>namespaceos_1_1internal.html</Path>
+ <Anchor>a1493e5fcc92753702d08b36881ee8f97</Anchor>
+ <DeclaredIn>os.hpp</DeclaredIn>
+ </Token>
+ <Token>
+ <TokenIdentifier>
<Name>signaledWrapper</Name>
<APILanguage>cpp</APILanguage>
<Type>data</Type>
@@ -170577,6 +170788,17 @@
</Token>
<Token>
<TokenIdentifier>
+ <Name>libwinio_loop</Name>
+ <APILanguage>cpp</APILanguage>
+ <Type>data</Type>
+ <Scope>process</Scope>
+ </TokenIdentifier>
+ <Path>namespaceprocess.html</Path>
+ <Anchor>a3b1f9b3719ea6358ad426ae31bc8eae6</Anchor>
+ <DeclaredIn>event_loop.hpp</DeclaredIn>
+ </Token>
+ <Token>
+ <TokenIdentifier>
<Name>ALLOW_SHORT_CIRCUIT</Name>
<APILanguage>cpp</APILanguage>
<Type>econst</Type>
@@ -187464,7 +187686,7 @@
</TokenIdentifier>
<Path>namespaceprocess_1_1internal.html</Path>
<Anchor>af2f19b6f367cddc0c8283560a9cd9215</Anchor>
- <DeclaredIn>subprocess_posix.hpp</DeclaredIn>
+ <DeclaredIn>subprocess.hpp</DeclaredIn>
</Token>
<Token>
<TokenIdentifier>
@@ -187475,7 +187697,7 @@
</TokenIdentifier>
<Path>namespaceprocess_1_1internal.html</Path>
<Anchor>a345a534b82b79bf20333fb6faef43e93</Anchor>
- <DeclaredIn>subprocess_posix.hpp</DeclaredIn>
+ <DeclaredIn>subprocess.hpp</DeclaredIn>
</Token>
<Token>
<TokenIdentifier>
@@ -187486,7 +187708,7 @@
</TokenIdentifier>
<Path>namespaceprocess_1_1internal.html</Path>
<Anchor>a902e2646d88c41ce674a3009cafe0aad</Anchor>
- <DeclaredIn>subprocess_posix.hpp</DeclaredIn>
+ <DeclaredIn>subprocess.hpp</DeclaredIn>
</Token>
<Token>
<TokenIdentifier>
@@ -187497,7 +187719,7 @@
</TokenIdentifier>
<Path>namespaceprocess_1_1internal.html</Path>
<Anchor>afe2c3a3ffdd0ee6fda82e198ece80a37</Anchor>
- <DeclaredIn>subprocess_posix.hpp</DeclaredIn>
+ <DeclaredIn>subprocess.hpp</DeclaredIn>
</Token>
<Token>
<TokenIdentifier>
@@ -187508,7 +187730,7 @@
</TokenIdentifier>
<Path>namespaceprocess_1_1internal.html</Path>
<Anchor>a32020f2bbbcc116f2e055e209b4b8ce7</Anchor>
- <DeclaredIn>subprocess_windows.hpp</DeclaredIn>
+ <DeclaredIn>subprocess.hpp</DeclaredIn>
</Token>
<Token>
<TokenIdentifier>
@@ -189907,6 +190129,30 @@
</Token>
<Token>
<TokenIdentifier>
+ <Name>prepare_async</Name>
+ <APILanguage>cpp</APILanguage>
+ <Type>func</Type>
+ <Scope>process::io</Scope>
+ </TokenIdentifier>
+ <Path>namespaceprocess_1_1io.html</Path>
+ <Anchor>a9db94d84fb44b21fb669ade7c6a82114</Anchor>
+ <Abstract>Prepares a file descriptor to be ready for asynchronous IO. </Abstract>
+ <DeclaredIn>io.hpp</DeclaredIn>
+ </Token>
+ <Token>
+ <TokenIdentifier>
+ <Name>is_async</Name>
+ <APILanguage>cpp</APILanguage>
+ <Type>func</Type>
+ <Scope>process::io</Scope>
+ </TokenIdentifier>
+ <Path>namespaceprocess_1_1io.html</Path>
+ <Anchor>ada6541d78cad2ecc225be8a26662c748</Anchor>
+ <Abstract>Checks if io::prepare_async has been called on the file descriptor. </Abstract>
+ <DeclaredIn>io.hpp</DeclaredIn>
+ </Token>
+ <Token>
+ <TokenIdentifier>
<Name>poll</Name>
<APILanguage>cpp</APILanguage>
<Type>func</Type>
@@ -190015,6 +190261,59 @@
</Token>
<Token>
<TokenIdentifier>
+ <Name>process::io::internal</Name>
+ <APILanguage>c</APILanguage>
+ <Type>ns</Type>
+ <Scope>process::io::internal</Scope>
+ </TokenIdentifier>
+ <Path>namespaceprocess_1_1io_1_1internal.html</Path>
+ </Token>
+ <Token>
+ <TokenIdentifier>
+ <Name>read</Name>
+ <APILanguage>cpp</APILanguage>
+ <Type>func</Type>
+ <Scope>process::io::internal</Scope>
+ </TokenIdentifier>
+ <Path>namespaceprocess_1_1io_1_1internal.html</Path>
+ <Anchor>ac0a90b8abf47098e5a57d90e744a42a8</Anchor>
+ <DeclaredIn>io_internal.hpp</DeclaredIn>
+ </Token>
+ <Token>
+ <TokenIdentifier>
+ <Name>write</Name>
+ <APILanguage>cpp</APILanguage>
+ <Type>func</Type>
+ <Scope>process::io::internal</Scope>
+ </TokenIdentifier>
+ <Path>namespaceprocess_1_1io_1_1internal.html</Path>
+ <Anchor>ab4ecbbe96ef3c0600060e16c47988798</Anchor>
+ <DeclaredIn>io_internal.hpp</DeclaredIn>
+ </Token>
+ <Token>
+ <TokenIdentifier>
+ <Name>prepare_async</Name>
+ <APILanguage>cpp</APILanguage>
+ <Type>func</Type>
+ <Scope>process::io::internal</Scope>
+ </TokenIdentifier>
+ <Path>namespaceprocess_1_1io_1_1internal.html</Path>
+ <Anchor>a9458b24220892124c2112b3fe85e585e</Anchor>
+ <DeclaredIn>io_internal.hpp</DeclaredIn>
+ </Token>
+ <Token>
+ <TokenIdentifier>
+ <Name>is_async</Name>
+ <APILanguage>cpp</APILanguage>
+ <Type>func</Type>
+ <Scope>process::io::internal</Scope>
+ </TokenIdentifier>
+ <Path>namespaceprocess_1_1io_1_1internal.html</Path>
+ <Anchor>a2291f1f69f4bdf80f3b114c493eb1e37</Anchor>
+ <DeclaredIn>io_internal.hpp</DeclaredIn>
+ </Token>
+ <Token>
+ <TokenIdentifier>
<Name>process::metrics</Name>
<APILanguage>c</APILanguage>
<Type>ns</Type>
@@ -193292,6 +193591,157 @@
</Token>
<Token>
<TokenIdentifier>
+ <Name>process::windows</Name>
+ <APILanguage>c</APILanguage>
+ <Type>ns</Type>
+ <Scope>process::windows</Scope>
+ </TokenIdentifier>
+ <Path>namespaceprocess_1_1windows.html</Path>
+ </Token>
+ <Token>
+ <TokenIdentifier>
+ <Name>read</Name>
+ <APILanguage>cpp</APILanguage>
+ <Type>func</Type>
+ <Scope>process::windows</Scope>
+ </TokenIdentifier>
+ <Path>namespaceprocess_1_1windows.html</Path>
+ <Anchor>a7436ed89e84ff3415987de0ca9428d08</Anchor>
+ <DeclaredIn>libwinio.hpp</DeclaredIn>
+ </Token>
+ <Token>
+ <TokenIdentifier>
+ <Name>write</Name>
+ <APILanguage>cpp</APILanguage>
+ <Type>func</Type>
+ <Scope>process::windows</Scope>
+ </TokenIdentifier>
+ <Path>namespaceprocess_1_1windows.html</Path>
+ <Anchor>a69a29846581bb7bb1084e9ee90cbe8e6</Anchor>
+ <DeclaredIn>libwinio.hpp</DeclaredIn>
+ </Token>
+ <Token>
+ <TokenIdentifier>
+ <Name>recv</Name>
+ <APILanguage>cpp</APILanguage>
+ <Type>func</Type>
+ <Scope>process::windows</Scope>
+ </TokenIdentifier>
+ <Path>namespaceprocess_1_1windows.html</Path>
+ <Anchor>a37fde6f31c2f9838a18cf83c2c865134</Anchor>
+ <DeclaredIn>libwinio.hpp</DeclaredIn>
+ </Token>
+ <Token>
+ <TokenIdentifier>
+ <Name>send</Name>
+ <APILanguage>cpp</APILanguage>
+ <Type>func</Type>
+ <Scope>process::windows</Scope>
+ </TokenIdentifier>
+ <Path>namespaceprocess_1_1windows.html</Path>
+ <Anchor>a04c64346155d34517acdf8b587162868</Anchor>
+ <DeclaredIn>libwinio.hpp</DeclaredIn>
+ </Token>
+ <Token>
+ <TokenIdentifier>
+ <Name>accept</Name>
+ <APILanguage>cpp</APILanguage>
+ <Type>func</Type>
+ <Scope>process::windows</Scope>
+ </TokenIdentifier>
+ <Path>namespaceprocess_1_1windows.html</Path>
+ <Anchor>a1f34e4ee3092afe93c37c170430c03f5</Anchor>
+ <DeclaredIn>libwinio.hpp</DeclaredIn>
+ </Token>
+ <Token>
+ <TokenIdentifier>
+ <Name>connect</Name>
+ <APILanguage>cpp</APILanguage>
+ <Type>func</Type>
+ <Scope>process::windows</Scope>
+ </TokenIdentifier>
+ <Path>namespaceprocess_1_1windows.html</Path>
+ <Anchor>a5afdaeaeb57343d0aca728b74dcd3f71</Anchor>
+ <DeclaredIn>libwinio.hpp</DeclaredIn>
+ </Token>
+ <Token>
+ <TokenIdentifier>
+ <Name>sendfile</Name>
+ <APILanguage>cpp</APILanguage>
+ <Type>func</Type>
+ <Scope>process::windows</Scope>
+ </TokenIdentifier>
+ <Path>namespaceprocess_1_1windows.html</Path>
+ <Anchor>afc59f27e725b5feb12f76e1c008ba767</Anchor>
+ <DeclaredIn>libwinio.hpp</DeclaredIn>
+ </Token>
+ <Token>
+ <TokenIdentifier>
+ <Name>process::windows::EventLoop</Name>
+ <APILanguage>c</APILanguage>
+ <Type>cl</Type>
+ <Scope>process::windows::EventLoop</Scope>
+ </TokenIdentifier>
+ <Path>classprocess_1_1windows_1_1EventLoop.html</Path>
+ <DeclaredIn>libwinio.hpp</DeclaredIn>
+ </Token>
+ <Token>
+ <TokenIdentifier>
+ <Name>run</Name>
+ <APILanguage>cpp</APILanguage>
+ <Type>instm</Type>
+ <Scope>process::windows::EventLoop</Scope>
+ </TokenIdentifier>
+ <Path>classprocess_1_1windows_1_1EventLoop.html</Path>
+ <Anchor>a2578b5fad0eb039f995955c798310c86</Anchor>
+ <DeclaredIn>libwinio.hpp</DeclaredIn>
+ </Token>
+ <Token>
+ <TokenIdentifier>
+ <Name>stop</Name>
+ <APILanguage>cpp</APILanguage>
+ <Type>instm</Type>
+ <Scope>process::windows::EventLoop</Scope>
+ </TokenIdentifier>
+ <Path>classprocess_1_1windows_1_1EventLoop.html</Path>
+ <Anchor>a8a07fc602e31875e6cbcaeac8008f09a</Anchor>
+ <DeclaredIn>libwinio.hpp</DeclaredIn>
+ </Token>
+ <Token>
+ <TokenIdentifier>
+ <Name>launchTimer</Name>
+ <APILanguage>cpp</APILanguage>
+ <Type>instm</Type>
+ <Scope>process::windows::EventLoop</Scope>
+ </TokenIdentifier>
+ <Path>classprocess_1_1windows_1_1EventLoop.html</Path>
+ <Anchor>a006cb0c8efb7aaadadf0a692d9c2659a</Anchor>
+ <DeclaredIn>libwinio.hpp</DeclaredIn>
+ </Token>
+ <Token>
+ <TokenIdentifier>
+ <Name>registerHandle</Name>
+ <APILanguage>cpp</APILanguage>
+ <Type>instm</Type>
+ <Scope>process::windows::EventLoop</Scope>
+ </TokenIdentifier>
+ <Path>classprocess_1_1windows_1_1EventLoop.html</Path>
+ <Anchor>a832a73998bb3b26b7caa770ceef38827</Anchor>
+ <DeclaredIn>libwinio.hpp</DeclaredIn>
+ </Token>
+ <Token>
+ <TokenIdentifier>
+ <Name>create</Name>
+ <APILanguage>cpp</APILanguage>
+ <Type>clm</Type>
+ <Scope>process::windows::EventLoop</Scope>
+ </TokenIdentifier>
+ <Path>classprocess_1_1windows_1_1EventLoop.html</Path>
+ <Anchor>a3bd3da5d721cf2c4db9c5551bdccc3a4</Anchor>
+ <DeclaredIn>libwinio.hpp</DeclaredIn>
+ </Token>
+ <Token>
+ <TokenIdentifier>
<Name>protobuf</Name>
<APILanguage>c</APILanguage>
<Type>ns</Type>
[28/50] mesos-site git commit: Updated the website built from mesos
SHA: 7c9c72d.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/index.hhp
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/index.hhp b/content/api/latest/c++/index.hhp
index 63bdb11..12eba4b 100644
--- a/content/api/latest/c++/index.hhp
+++ b/content/api/latest/c++/index.hhp
@@ -63,7 +63,9 @@ stout_2include_2stout_2os_2socket_8hpp_source.html
stout_2include_2stout_2os_2windows_2socket_8hpp_source.html
utilities_8hpp_source.html
state__machine_8hpp_source.html
-subprocess_8hpp_source.html
+include_2process_2subprocess_8hpp_source.html
+src_2posix_2subprocess_8hpp_source.html
+src_2windows_2subprocess_8hpp_source.html
system_8hpp_source.html
time_8hpp_source.html
timeout_8hpp_source.html
@@ -75,21 +77,22 @@ config_8hpp_source.html
decoder_8hpp_source.html
encoder_8hpp_source.html
event__loop_8hpp_source.html
+windows_2event__loop_8hpp_source.html
event__queue_8hpp_source.html
gate_8hpp_source.html
http__proxy_8hpp_source.html
-libev_8hpp_source.html
-libevent_8hpp_source.html
-libevent__ssl__socket_8hpp_source.html
+io__internal_8hpp_source.html
memory__profiler_8hpp_source.html
openssl_8hpp_source.html
poll__socket_8hpp_source.html
+libev_8hpp_source.html
+libevent_8hpp_source.html
+libevent__ssl__socket_8hpp_source.html
process__reference_8hpp_source.html
run__queue_8hpp_source.html
semaphore_8hpp_source.html
socket__manager_8hpp_source.html
-subprocess__posix_8hpp_source.html
-subprocess__windows_8hpp_source.html
+libwinio_8hpp_source.html
abort_8hpp_source.html
adaptor_8hpp_source.html
archiver_8hpp_source.html
@@ -782,7 +785,9 @@ stout_2include_2stout_2os_2socket_8hpp.html
stout_2include_2stout_2os_2windows_2socket_8hpp.html
utilities_8hpp.html
state__machine_8hpp.html
-subprocess_8hpp.html
+include_2process_2subprocess_8hpp.html
+src_2posix_2subprocess_8hpp.html
+src_2windows_2subprocess_8hpp.html
system_8hpp.html
time_8hpp.html
timeout_8hpp.html
@@ -794,21 +799,22 @@ config_8hpp.html
decoder_8hpp.html
encoder_8hpp.html
event__loop_8hpp.html
+windows_2event__loop_8hpp.html
event__queue_8hpp.html
gate_8hpp.html
http__proxy_8hpp.html
-libev_8hpp.html
-libevent_8hpp.html
-libevent__ssl__socket_8hpp.html
+io__internal_8hpp.html
memory__profiler_8hpp.html
openssl_8hpp.html
poll__socket_8hpp.html
+libev_8hpp.html
+libevent_8hpp.html
+libevent__ssl__socket_8hpp.html
process__reference_8hpp.html
run__queue_8hpp.html
semaphore_8hpp.html
socket__manager_8hpp.html
-subprocess__posix_8hpp.html
-subprocess__windows_8hpp.html
+libwinio_8hpp.html
abort_8hpp.html
adaptor_8hpp.html
archiver_8hpp.html
@@ -3209,6 +3215,7 @@ structprocess_1_1internal_1_1wrap-members.html
structprocess_1_1internal_1_1wrap_3_01Future_3_01X_01_4_01_4.html
structprocess_1_1internal_1_1wrap_3_01Future_3_01X_01_4_01_4-members.html
namespaceprocess_1_1io.html
+namespaceprocess_1_1io_1_1internal.html
namespaceprocess_1_1metrics.html
classprocess_1_1metrics_1_1Counter.html
classprocess_1_1metrics_1_1Counter-members.html
@@ -3249,6 +3256,9 @@ namespaceprocess_1_1network_1_1openssl.html
namespaceprocess_1_1network_1_1unix.html
classprocess_1_1network_1_1unix_1_1Address.html
classprocess_1_1network_1_1unix_1_1Address-members.html
+namespaceprocess_1_1windows.html
+classprocess_1_1windows_1_1EventLoop.html
+classprocess_1_1windows_1_1EventLoop-members.html
namespaceprotobuf.html
namespaceprotobuf_1_1internal.html
structprotobuf_1_1internal_1_1Parse.html
@@ -3519,6 +3529,8 @@ dir_ac5a9d164ec2df36cacce94c2cb9afb7.html
dir_a3016bf19aa28451207b266e9b24d523.html
dir_195168af6a215c55d95f47992d37553b.html
dir_1189833f16a6ffde263c34d6d0834dfe.html
+dir_ecbc207ab261ae6376e9b7d1e9eba3c1.html
+dir_b2935a02400d93f2f95b894ab5508ef6.html
dir_043a76de98701f9bddf61b5e98f305ff.html
dir_58b3cdcf8fab9e6e406814ad373f8525.html
dir_7dfa373e2fc6f34ca37c1fb0d9a8f606.html
@@ -3553,6 +3565,7 @@ dir_f00e901499d154ec09950234dd4b6079.html
dir_39880c9a8060096796ec12e5dff56ba6.html
dir_6887e9b46a560cfc03709f52ff768643.html
dir_9cb1ae816c363e37a0e44de226ea8c89.html
+dir_0ac73505685689cb4a842e520ca4cca6.html
dir_9a6d2c82450779b96177e4cabddb051e.html
dir_1894286df79cf582d947dbc4268b06cf.html
dir_f319675d4a0209ee44e08f6c8dad3e25.html
@@ -3606,6 +3619,7 @@ dir_6e72cfcf2726dd9485f4536a00bbb945.html
dir_3bd05d674f9d85fce6785660a08f69c2.html
dir_1ae84e826c1cfd827f5913ec17c5b445.html
dir_5c9d93aa7c844dbacc3aceaae8dbadb5.html
+dir_4f303781ded361ff602a549327c53cc9.html
dir_860a59220e758178895904e7f0fb374e.html
dir_55f13620602659a03faffb66858a926f.html
dir_c17ba5dacf03ff8b8f3824850be465e6.html
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/int__fd_8hpp_source.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/int__fd_8hpp_source.html b/content/api/latest/c++/int__fd_8hpp_source.html
index c363d38..29d94ac 100644
--- a/content/api/latest/c++/int__fd_8hpp_source.html
+++ b/content/api/latest/c++/int__fd_8hpp_source.html
@@ -53,7 +53,7 @@
</div><!--header-->
<div class="contents">
<a href="int__fd_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// Licensed under the Apache License, Version 2.0 (the "License");</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// you may not use this file except in compliance with the License.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// You may obtain a copy of the License at</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">//</span
></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// Unless required by applicable law or agreed to in writing, software</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">// distributed under the License is distributed on an "AS IS" BASIS,</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">// See the License for the specific language governing permissions and</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// limitations under the License.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> </div><div class="lin
e"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#ifndef __STOUT_OS_INT_FD_HPP__</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#define __STOUT_OS_INT_FD_HPP__</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment">// For readability, we minimize the number of #ifdef blocks in the code by</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment">// splitting platform specifc system calls into separate directories.</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#ifdef __WINDOWS__</span></div><div class="line"><a name="l00020"></a><s
pan class="lineno"> 20</span> <span class="preprocessor">#include <<a class="code" href="fd_8hpp.html">stout/os/windows/fd.hpp</a>></span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#endif // __WINDOWS__</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment">// The `int_fd` type is designed to be able to keep / continue to write the</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment">// existing POSIX file descriptor pattern in a portable manner with Windows.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="comment">//</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="comment">// IMPORTANT: Use the `in
t_fd` in platform-agnostic code paths, and use `int`</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="comment">// or `os::WindowsFD` directly in platform-specific code paths.</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="comment">//</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="comment">// NOTE: The `int_` prefix is meant to indicate that on POSIX, `int_fd` will</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="comment">// behave exactly as-is.</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="keyword">using</span> <a class="code" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> =</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preproc
essor">#ifdef __WINDOWS__</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  <a class="code" href="classos_1_1WindowsFD.html">os::WindowsFD</a>;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07"> 35</a></span>  int;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#endif // __WINDOWS__</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> </div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor">#endif // __STOUT_OS_INT_FD_HPP__</span></div><div class="ttc" id="fd_8hpp_html"><div class="ttname"><a href="fd_8hpp.html">fd.hpp</a></div></div>
-<div class="ttc" id="classos_1_1WindowsFD_html"><div class="ttname"><a href="classos_1_1WindowsFD.html">os::WindowsFD</a></div><div class="ttdef"><b>Definition:</b> fd.hpp:50</div></div>
+<div class="ttc" id="classos_1_1WindowsFD_html"><div class="ttname"><a href="classos_1_1WindowsFD.html">os::WindowsFD</a></div><div class="ttdef"><b>Definition:</b> fd.hpp:52</div></div>
<div class="ttc" id="int__fd_8hpp_html_aea4dbda01c90455f158ffa9b924c2f07"><div class="ttname"><a href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a></div><div class="ttdeci">int int_fd</div><div class="ttdef"><b>Definition:</b> int_fd.hpp:35</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/io__internal_8hpp.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/io__internal_8hpp.html b/content/api/latest/c++/io__internal_8hpp.html
new file mode 100644
index 0000000..2dd6562
--- /dev/null
+++ b/content/api/latest/c++/io__internal_8hpp.html
@@ -0,0 +1,91 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.11"/>
+<title>Apache Mesos: 3rdparty/libprocess/src/io_internal.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">Apache Mesos
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="pages.html"><span>Related Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li><a href="examples.html"><span>Examples</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ <li><a href="globals.html"><span>File Members</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_8cab8f464681f7cc51cee77e79a434cd.html">3rdparty</a></li><li class="navelem"><a class="el" href="dir_043a76de98701f9bddf61b5e98f305ff.html">libprocess</a></li><li class="navelem"><a class="el" href="dir_01cbbd8dcbf9de3825992568658f467e.html">src</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#namespaces">Namespaces</a> |
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">io_internal.hpp File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include <<a class="el" href="future_8hpp_source.html">process/future.hpp</a>></code><br />
+<code>#include <<a class="el" href="int__fd_8hpp_source.html">stout/os/int_fd.hpp</a>></code><br />
+</div>
+<p><a href="io__internal_8hpp_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceprocess"><td class="memItemLeft" align="right" valign="top">  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceprocess.html">process</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:namespaceprocess_1_1io"><td class="memItemLeft" align="right" valign="top">  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceprocess_1_1io.html">process::io</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:namespaceprocess_1_1io_1_1internal"><td class="memItemLeft" align="right" valign="top">  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceprocess_1_1io_1_1internal.html">process::io::internal</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ac0a90b8abf47098e5a57d90e744a42a8"><td class="memItemLeft" align="right" valign="top">Future< size_t > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceprocess_1_1io_1_1internal.html#ac0a90b8abf47098e5a57d90e744a42a8">process::io::internal::read</a> (<a class="el" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> fd, void *data, size_t size)</td></tr>
+<tr class="separator:ac0a90b8abf47098e5a57d90e744a42a8"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ab4ecbbe96ef3c0600060e16c47988798"><td class="memItemLeft" align="right" valign="top">Future< size_t > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceprocess_1_1io_1_1internal.html#ab4ecbbe96ef3c0600060e16c47988798">process::io::internal::write</a> (<a class="el" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> fd, const void *data, size_t size)</td></tr>
+<tr class="separator:ab4ecbbe96ef3c0600060e16c47988798"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a9458b24220892124c2112b3fe85e585e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classTry.html">Try</a>< <a class="el" href="structNothing.html">Nothing</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceprocess_1_1io_1_1internal.html#a9458b24220892124c2112b3fe85e585e">process::io::internal::prepare_async</a> (<a class="el" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> fd)</td></tr>
+<tr class="separator:a9458b24220892124c2112b3fe85e585e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a2291f1f69f4bdf80f3b114c493eb1e37"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classTry.html">Try</a>< bool > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceprocess_1_1io_1_1internal.html#a2291f1f69f4bdf80f3b114c493eb1e37">process::io::internal::is_async</a> (<a class="el" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> fd)</td></tr>
+<tr class="separator:a2291f1f69f4bdf80f3b114c493eb1e37"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.11
+</small></address>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/io__internal_8hpp_source.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/io__internal_8hpp_source.html b/content/api/latest/c++/io__internal_8hpp_source.html
new file mode 100644
index 0000000..45e6c97
--- /dev/null
+++ b/content/api/latest/c++/io__internal_8hpp_source.html
@@ -0,0 +1,75 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.11"/>
+<title>Apache Mesos: 3rdparty/libprocess/src/io_internal.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">Apache Mesos
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="pages.html"><span>Related Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li><a href="examples.html"><span>Examples</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ <li><a href="globals.html"><span>File Members</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_8cab8f464681f7cc51cee77e79a434cd.html">3rdparty</a></li><li class="navelem"><a class="el" href="dir_043a76de98701f9bddf61b5e98f305ff.html">libprocess</a></li><li class="navelem"><a class="el" href="dir_01cbbd8dcbf9de3825992568658f467e.html">src</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">io_internal.hpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="io__internal_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// Licensed under the Apache License, Version 2.0 (the "License");</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// you may not use this file except in compliance with the License.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// You may obtain a copy of the License at</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">
//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// Unless required by applicable law or agreed to in writing, software</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">// distributed under the License is distributed on an "AS IS" BASIS,</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">// See the License for the specific language governing permissions and</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// limitations under the License</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> </div><div cla
ss="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#ifndef __IO_INTERNAL_HPP__</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#define __IO_INTERNAL_HPP__</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include <<a class="code" href="future_8hpp.html">process/future.hpp</a>></span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> </div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include <<a class="code" href="int__fd_8hpp.html">stout/os/int_fd.hpp</a>></span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> </div><div class="line"><a name="l00020"></a><span class="lineno"> 20</
span> <span class="keyword">namespace </span><a class="code" href="namespaceprocess.html">process</a> {</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="keyword">namespace </span>io {</div><div class="line"><a name="l00022"></a><span class="lineno"><a class="line" href="namespaceprocess_1_1io_1_1internal.html"> 22</a></span> <span class="keyword">namespace </span><a class="code" href="namespaceinternal.html">internal</a> {</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> </div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <a class="code" href="classprocess_1_1Future.html">Future<size_t></a> <a class="code" href="namespaceprocess_1_1io_1_1internal.html#ac0a90b8abf47098e5a57d90e744a42a8">read</a>(<a class="code" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> fd, <span class="keywordtype">void</span>* data, <span class="keywordtype">s
ize_t</span> <a class="code" href="namespaceos_1_1stat.html#a7a116891923bc8b5d8c50f78da8657be">size</a>);</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <a class="code" href="classprocess_1_1Future.html">Future<size_t></a> <a class="code" href="namespaceprocess_1_1io_1_1internal.html#ab4ecbbe96ef3c0600060e16c47988798">write</a>(<a class="code" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> fd, <span class="keyword">const</span> <span class="keywordtype">void</span>* data, <span class="keywordtype">size_t</span> size);</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <a class="code" href="classTry.html">Try<Nothing></a> <a class="code" href="namespaceprocess_1_1io_1_1internal.html#a9458b24220892124c2112b3fe85e585e">
prepare_async</a>(<a class="code" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> fd);</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> </div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <a class="code" href="classTry.html">Try<bool></a> <a class="code" href="namespaceprocess_1_1io_1_1internal.html#a2291f1f69f4bdf80f3b114c493eb1e37">is_async</a>(<a class="code" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> fd);</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> </div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> } <span class="comment">// namespace internal {</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> } <span class="comment">// namespace io {</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> } <span class="comment">//
namespace process {</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> </div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#endif // __IO_INTERNAL_HPP__</span></div><div class="ttc" id="namespaceprocess_1_1io_1_1internal_html_a2291f1f69f4bdf80f3b114c493eb1e37"><div class="ttname"><a href="namespaceprocess_1_1io_1_1internal.html#a2291f1f69f4bdf80f3b114c493eb1e37">process::io::internal::is_async</a></div><div class="ttdeci">Try< bool > is_async(int_fd fd)</div></div>
+<div class="ttc" id="namespaceos_1_1stat_html_a7a116891923bc8b5d8c50f78da8657be"><div class="ttname"><a href="namespaceos_1_1stat.html#a7a116891923bc8b5d8c50f78da8657be">os::stat::size</a></div><div class="ttdeci">Try< Bytes > size(const std::string &path, const FollowSymlink follow=FollowSymlink::FOLLOW_SYMLINK)</div><div class="ttdef"><b>Definition:</b> stat.hpp:121</div></div>
+<div class="ttc" id="classTry_html"><div class="ttname"><a href="classTry.html">Try</a></div><div class="ttdef"><b>Definition:</b> check.hpp:33</div></div>
+<div class="ttc" id="namespaceprocess_1_1io_1_1internal_html_ab4ecbbe96ef3c0600060e16c47988798"><div class="ttname"><a href="namespaceprocess_1_1io_1_1internal.html#ab4ecbbe96ef3c0600060e16c47988798">process::io::internal::write</a></div><div class="ttdeci">Future< size_t > write(int_fd fd, const void *data, size_t size)</div></div>
+<div class="ttc" id="future_8hpp_html"><div class="ttname"><a href="future_8hpp.html">future.hpp</a></div></div>
+<div class="ttc" id="namespaceinternal_html"><div class="ttname"><a href="namespaceinternal.html">internal</a></div><div class="ttdef"><b>Definition:</b> attributes.hpp:24</div></div>
+<div class="ttc" id="namespaceprocess_html"><div class="ttname"><a href="namespaceprocess.html">process</a></div><div class="ttdef"><b>Definition:</b> executor.hpp:48</div></div>
+<div class="ttc" id="int__fd_8hpp_html"><div class="ttname"><a href="int__fd_8hpp.html">int_fd.hpp</a></div></div>
+<div class="ttc" id="namespaceprocess_1_1io_1_1internal_html_a9458b24220892124c2112b3fe85e585e"><div class="ttname"><a href="namespaceprocess_1_1io_1_1internal.html#a9458b24220892124c2112b3fe85e585e">process::io::internal::prepare_async</a></div><div class="ttdeci">Try< Nothing > prepare_async(int_fd fd)</div></div>
+<div class="ttc" id="namespaceprocess_1_1io_1_1internal_html_ac0a90b8abf47098e5a57d90e744a42a8"><div class="ttname"><a href="namespaceprocess_1_1io_1_1internal.html#ac0a90b8abf47098e5a57d90e744a42a8">process::io::internal::read</a></div><div class="ttdeci">Future< size_t > read(int_fd fd, void *data, size_t size)</div></div>
+<div class="ttc" id="int__fd_8hpp_html_aea4dbda01c90455f158ffa9b924c2f07"><div class="ttname"><a href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a></div><div class="ttdeci">int int_fd</div><div class="ttdef"><b>Definition:</b> int_fd.hpp:35</div></div>
+<div class="ttc" id="classprocess_1_1Future_html"><div class="ttname"><a href="classprocess_1_1Future.html">process::Future< size_t ></a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.11
+</small></address>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/libev_8hpp.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/libev_8hpp.html b/content/api/latest/c++/libev_8hpp.html
index 6e7f31d..1d148bf 100644
--- a/content/api/latest/c++/libev_8hpp.html
+++ b/content/api/latest/c++/libev_8hpp.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
-<title>Apache Mesos: 3rdparty/libprocess/src/libev.hpp File Reference</title>
+<title>Apache Mesos: 3rdparty/libprocess/src/posix/libev/libev.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -44,7 +44,7 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_8cab8f464681f7cc51cee77e79a434cd.html">3rdparty</a></li><li class="navelem"><a class="el" href="dir_043a76de98701f9bddf61b5e98f305ff.html">libprocess</a></li><li class="navelem"><a class="el" href="dir_01cbbd8dcbf9de3825992568658f467e.html">src</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_8cab8f464681f7cc51cee77e79a434cd.html">3rdparty</a></li><li class="navelem"><a class="el" href="dir_043a76de98701f9bddf61b5e98f305ff.html">libprocess</a></li><li class="navelem"><a class="el" href="dir_01cbbd8dcbf9de3825992568658f467e.html">src</a></li><li class="navelem"><a class="el" href="dir_0ac73505685689cb4a842e520ca4cca6.html">posix</a></li><li class="navelem"><a class="el" href="dir_ecbc207ab261ae6376e9b7d1e9eba3c1.html">libev</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/libev_8hpp_source.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/libev_8hpp_source.html b/content/api/latest/c++/libev_8hpp_source.html
index 6455bd1..b07e143 100644
--- a/content/api/latest/c++/libev_8hpp_source.html
+++ b/content/api/latest/c++/libev_8hpp_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
-<title>Apache Mesos: 3rdparty/libprocess/src/libev.hpp Source File</title>
+<title>Apache Mesos: 3rdparty/libprocess/src/posix/libev/libev.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -44,7 +44,7 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_8cab8f464681f7cc51cee77e79a434cd.html">3rdparty</a></li><li class="navelem"><a class="el" href="dir_043a76de98701f9bddf61b5e98f305ff.html">libprocess</a></li><li class="navelem"><a class="el" href="dir_01cbbd8dcbf9de3825992568658f467e.html">src</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_8cab8f464681f7cc51cee77e79a434cd.html">3rdparty</a></li><li class="navelem"><a class="el" href="dir_043a76de98701f9bddf61b5e98f305ff.html">libprocess</a></li><li class="navelem"><a class="el" href="dir_01cbbd8dcbf9de3825992568658f467e.html">src</a></li><li class="navelem"><a class="el" href="dir_0ac73505685689cb4a842e520ca4cca6.html">posix</a></li><li class="navelem"><a class="el" href="dir_ecbc207ab261ae6376e9b7d1e9eba3c1.html">libev</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/libevent_8hpp.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/libevent_8hpp.html b/content/api/latest/c++/libevent_8hpp.html
index c37f2c6..50463cf 100644
--- a/content/api/latest/c++/libevent_8hpp.html
+++ b/content/api/latest/c++/libevent_8hpp.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
-<title>Apache Mesos: 3rdparty/libprocess/src/libevent.hpp File Reference</title>
+<title>Apache Mesos: 3rdparty/libprocess/src/posix/libevent/libevent.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -44,7 +44,7 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_8cab8f464681f7cc51cee77e79a434cd.html">3rdparty</a></li><li class="navelem"><a class="el" href="dir_043a76de98701f9bddf61b5e98f305ff.html">libprocess</a></li><li class="navelem"><a class="el" href="dir_01cbbd8dcbf9de3825992568658f467e.html">src</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_8cab8f464681f7cc51cee77e79a434cd.html">3rdparty</a></li><li class="navelem"><a class="el" href="dir_043a76de98701f9bddf61b5e98f305ff.html">libprocess</a></li><li class="navelem"><a class="el" href="dir_01cbbd8dcbf9de3825992568658f467e.html">src</a></li><li class="navelem"><a class="el" href="dir_0ac73505685689cb4a842e520ca4cca6.html">posix</a></li><li class="navelem"><a class="el" href="dir_b2935a02400d93f2f95b894ab5508ef6.html">libevent</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/libevent_8hpp_source.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/libevent_8hpp_source.html b/content/api/latest/c++/libevent_8hpp_source.html
index 2883f2a..e70593c 100644
--- a/content/api/latest/c++/libevent_8hpp_source.html
+++ b/content/api/latest/c++/libevent_8hpp_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
-<title>Apache Mesos: 3rdparty/libprocess/src/libevent.hpp Source File</title>
+<title>Apache Mesos: 3rdparty/libprocess/src/posix/libevent/libevent.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -44,7 +44,7 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_8cab8f464681f7cc51cee77e79a434cd.html">3rdparty</a></li><li class="navelem"><a class="el" href="dir_043a76de98701f9bddf61b5e98f305ff.html">libprocess</a></li><li class="navelem"><a class="el" href="dir_01cbbd8dcbf9de3825992568658f467e.html">src</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_8cab8f464681f7cc51cee77e79a434cd.html">3rdparty</a></li><li class="navelem"><a class="el" href="dir_043a76de98701f9bddf61b5e98f305ff.html">libprocess</a></li><li class="navelem"><a class="el" href="dir_01cbbd8dcbf9de3825992568658f467e.html">src</a></li><li class="navelem"><a class="el" href="dir_0ac73505685689cb4a842e520ca4cca6.html">posix</a></li><li class="navelem"><a class="el" href="dir_b2935a02400d93f2f95b894ab5508ef6.html">libevent</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/libevent__ssl__socket_8hpp.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/libevent__ssl__socket_8hpp.html b/content/api/latest/c++/libevent__ssl__socket_8hpp.html
index 4ec4f1b..5381c66 100644
--- a/content/api/latest/c++/libevent__ssl__socket_8hpp.html
+++ b/content/api/latest/c++/libevent__ssl__socket_8hpp.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
-<title>Apache Mesos: 3rdparty/libprocess/src/libevent_ssl_socket.hpp File Reference</title>
+<title>Apache Mesos: 3rdparty/libprocess/src/posix/libevent/libevent_ssl_socket.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -44,7 +44,7 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_8cab8f464681f7cc51cee77e79a434cd.html">3rdparty</a></li><li class="navelem"><a class="el" href="dir_043a76de98701f9bddf61b5e98f305ff.html">libprocess</a></li><li class="navelem"><a class="el" href="dir_01cbbd8dcbf9de3825992568658f467e.html">src</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_8cab8f464681f7cc51cee77e79a434cd.html">3rdparty</a></li><li class="navelem"><a class="el" href="dir_043a76de98701f9bddf61b5e98f305ff.html">libprocess</a></li><li class="navelem"><a class="el" href="dir_01cbbd8dcbf9de3825992568658f467e.html">src</a></li><li class="navelem"><a class="el" href="dir_0ac73505685689cb4a842e520ca4cca6.html">posix</a></li><li class="navelem"><a class="el" href="dir_b2935a02400d93f2f95b894ab5508ef6.html">libevent</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/libevent__ssl__socket_8hpp_source.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/libevent__ssl__socket_8hpp_source.html b/content/api/latest/c++/libevent__ssl__socket_8hpp_source.html
index 8df12c2..4d732da 100644
--- a/content/api/latest/c++/libevent__ssl__socket_8hpp_source.html
+++ b/content/api/latest/c++/libevent__ssl__socket_8hpp_source.html
@@ -4,7 +4,7 @@
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
-<title>Apache Mesos: 3rdparty/libprocess/src/libevent_ssl_socket.hpp Source File</title>
+<title>Apache Mesos: 3rdparty/libprocess/src/posix/libevent/libevent_ssl_socket.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -44,7 +44,7 @@
</div>
<div id="nav-path" class="navpath">
<ul>
-<li class="navelem"><a class="el" href="dir_8cab8f464681f7cc51cee77e79a434cd.html">3rdparty</a></li><li class="navelem"><a class="el" href="dir_043a76de98701f9bddf61b5e98f305ff.html">libprocess</a></li><li class="navelem"><a class="el" href="dir_01cbbd8dcbf9de3825992568658f467e.html">src</a></li> </ul>
+<li class="navelem"><a class="el" href="dir_8cab8f464681f7cc51cee77e79a434cd.html">3rdparty</a></li><li class="navelem"><a class="el" href="dir_043a76de98701f9bddf61b5e98f305ff.html">libprocess</a></li><li class="navelem"><a class="el" href="dir_01cbbd8dcbf9de3825992568658f467e.html">src</a></li><li class="navelem"><a class="el" href="dir_0ac73505685689cb4a842e520ca4cca6.html">posix</a></li><li class="navelem"><a class="el" href="dir_b2935a02400d93f2f95b894ab5508ef6.html">libevent</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
[12/50] mesos-site git commit: Updated the website built from mesos
SHA: 7c9c72d.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/src_2tests_2mesos_8hpp_source.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/src_2tests_2mesos_8hpp_source.html b/content/api/latest/c++/src_2tests_2mesos_8hpp_source.html
index 478cbed..f18761a 100644
--- a/content/api/latest/c++/src_2tests_2mesos_8hpp_source.html
+++ b/content/api/latest/c++/src_2tests_2mesos_8hpp_source.html
@@ -52,7 +52,7 @@
<div class="title">mesos.hpp</div> </div>
</div><!--header-->
<div class="contents">
-<a href="src_2tests_2mesos_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// or more contributor license agreements. See the NOTICE file</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// distributed with this work for additional information</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">// regarding copyright ownership. The ASF licenses this file</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00006"></a
><span class="lineno"> 6</span> <span class="comment">// "License"); you may not use this file except in compliance</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// with the License. You may obtain a copy of the License at</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">//</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// Unless required by applicable law or agreed to in writing, software</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment">//
distributed under the License is distributed on an "AS IS" BASIS,</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">// See the License for the specific language governing permissions and</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// limitations under the License.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#ifndef __TESTS_MESOS_HPP__</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#define __TESTS_MESOS_HPP__</span></div><div class="line"
><a name="l00019"></a><span class="lineno"> 19</span> </div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include <memory></span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <string></span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <vector></span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> </div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <gmock/gmock.h></span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include <<a class="code" href="include_2mesos_2executor_8hpp.html">mesos/executor.
hpp</a>></span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <<a class="code" href="scheduler_8hpp.html">mesos/scheduler.hpp</a>></span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> </div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include <<a class="code" href="include_2mesos_2v1_2executor_8hpp.html">mesos/v1/executor.hpp</a>></span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include <<a class="code" href="v1_2resources_8hpp.html">mesos/v1/resources.hpp</a>></span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include <<a class="code" href="v1_2resource__provider_8hpp.html">mesos/v1/resource_provider.hpp</a>></span></div><div class="line"><a name="l00032
"></a><span class="lineno"> 32</span> <span class="preprocessor">#include <<a class="code" href="v1_2scheduler_8hpp.html">mesos/v1/scheduler.hpp</a>></span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> </div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#include <<a class="code" href="include_2mesos_2v1_2executor_2executor_8hpp.html">mesos/v1/executor/executor.hpp</a>></span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> </div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#include <<a class="code" href="v1_2scheduler_2scheduler_8hpp.html">mesos/v1/scheduler/scheduler.hpp</a>></span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> </div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preproces
sor">#include <<a class="code" href="authentication_2secret__generator_8hpp.html">mesos/authentication/secret_generator.hpp</a>></span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> </div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="preprocessor">#include <<a class="code" href="include_2mesos_2authorizer_2authorizer_8hpp.html">mesos/authorizer/authorizer.hpp</a>></span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> </div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor">#include <<a class="code" href="include_2mesos_2fetcher_2fetcher_8hpp.html">mesos/fetcher/fetcher.hpp</a>></span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="preprocessor">#include <<a class
="code" href="include_2mesos_2master_2detector_8hpp.html">mesos/master/detector.hpp</a>></span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor">#include <<a class="code" href="future_8hpp.html">process/future.hpp</a>></span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor">#include <<a class="code" href="gmock_8hpp.html">process/gmock.hpp</a>></span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor">#include <<a class="code" href="libprocess_2include_2process_2gtest_8hpp.html">process/gtest.hpp</a>></span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor">#include <<a class="code" href="3rdparty_2libprocess_2include_2process_2http_8hpp.ht
ml">process/http.hpp</a>></span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor">#include <<a class="code" href="3rdparty_2libprocess_2include_2process_2io_8hpp.html">process/io.hpp</a>></span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="preprocessor">#include <<a class="code" href="owned_8hpp.html">process/owned.hpp</a>></span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="preprocessor">#include <<a class="code" href="3rdparty_2libprocess_2include_2process_2pid_8hpp.html">process/pid.hpp</a>></span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="preprocessor">#include <<a class="code" href="libprocess_2include_2process_2process_8hpp.html">process/process.hpp</a>></span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>
 <span class="preprocessor">#include <<a class="code" href="queue_8hpp.html">process/queue.hpp</a>></span></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="preprocessor">#include <<a class="code" href="subprocess_8hpp.html">process/subprocess.hpp</a>></span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span> </div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="preprocessor">#include <<a class="code" href="3rdparty_2libprocess_2include_2process_2ssl_2flags_8hpp.html">process/ssl/flags.hpp</a>></span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="preprocessor">#include <<a class="code" href="libprocess_2include_2process_2ssl_2gtest_8hpp.html">process/ssl/gtest.hpp</a>></span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div><div class="line"><a na
me="l00060"></a><span class="lineno"> 60</span> <span class="preprocessor">#include <<a class="code" href="bytes_8hpp.html">stout/bytes.hpp</a>></span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="preprocessor">#include <<a class="code" href="foreach_8hpp.html">stout/foreach.hpp</a>></span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="preprocessor">#include <<a class="code" href="stout_2include_2stout_2gtest_8hpp.html">stout/gtest.hpp</a>></span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="preprocessor">#include <<a class="code" href="lambda_8hpp.html">stout/lambda.hpp</a>></span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="preprocessor">#include <<a class="code" href="none_8hpp.html">stout/none.hpp</a>></span></div><div class="line"><a name="l
00065"></a><span class="lineno"> 65</span> <span class="preprocessor">#include <<a class="code" href="option_8hpp.html">stout/option.hpp</a>></span></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="preprocessor">#include <<a class="code" href="stringify_8hpp.html">stout/stringify.hpp</a>></span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="preprocessor">#include <<a class="code" href="try_8hpp.html">stout/try.hpp</a>></span></div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="preprocessor">#include <<a class="code" href="unreachable_8hpp.html">stout/unreachable.hpp</a>></span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="preprocessor">#include <<a class="code" href="uuid_8hpp.html">stout/uuid.hpp</a>></span></div><div class="line"><a name="l00070"></a><span
class="lineno"> 70</span> </div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="preprocessor">#include "<a class="code" href="jwt__secret__generator_8hpp.html">authentication/executor/jwt_secret_generator.hpp</a>"</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span> </div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="preprocessor">#include "<a class="code" href="src_2common_2http_8hpp.html">common/http.hpp</a>"</span></div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span> </div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <span class="preprocessor">#include "<a class="code" href="messages_8hpp.html">messages/messages.hpp</a>"</span> <span class="comment">// For google::protobuf::Message.</span></div><div class="line"><a name="l00076"></a><span class="lineno"> 7
6</span> </div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="preprocessor">#include "master/master.hpp"</span></div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span> </div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="preprocessor">#include "<a class="code" href="src_2sched_2constants_8hpp.html">sched/constants.hpp</a>"</span></div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span> </div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="preprocessor">#include "<a class="code" href="src_2resource__provider_2detector_8hpp.html">resource_provider/detector.hpp</a>"</span></div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span> </div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="preprocessor">#includ
e "<a class="code" href="src_2slave_2constants_8hpp.html">slave/constants.hpp</a>"</span></div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="preprocessor">#include "<a class="code" href="slave_8hpp.html">slave/slave.hpp</a>"</span></div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span> </div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="preprocessor">#include "<a class="code" href="src_2slave_2containerizer_2containerizer_8hpp.html">slave/containerizer/containerizer.hpp</a>"</span></div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span> </div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="preprocessor">#include "<a class="code" href="src_2slave_2containerizer_2mesos_2containerizer_8hpp.html">slave/containerizer/mesos/containerizer.hpp</a>"</span></div><div c
lass="line"><a name="l00089"></a><span class="lineno"> 89</span> </div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="preprocessor">#include "<a class="code" href="cluster_8hpp.html">tests/cluster.hpp</a>"</span></div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <span class="preprocessor">#include "<a class="code" href="src_2tests_2limiter_8hpp.html">tests/limiter.hpp</a>"</span></div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <span class="preprocessor">#include "tests/utils.hpp"</span></div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span> </div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <span class="preprocessor">#ifdef MESOS_HAS_JAVA</span></div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="preprocessor">#include "<a class
="code" href="src_2tests_2zookeeper_8hpp.html">tests/zookeeper.hpp</a>"</span></div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span> <span class="preprocessor">#endif // MESOS_HAS_JAVA</span></div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span> </div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span> using ::testing::_;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span> using ::testing::An;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span> using ::testing::DoDefault;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span> using ::testing::Invoke;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span> using ::testing::Return;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span> </div><div class="line"><a name="l00104"></a><span class="lineno"> 10
4</span> <span class="keyword">namespace </span><a class="code" href="namespacemesos.html">mesos</a> {</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <span class="keyword">namespace </span><a class="code" href="namespaceinternal.html">internal</a> {</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <span class="keyword">namespace </span>tests {</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span> </div><div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="namespacemesos_1_1internal_1_1tests.html#a6b044a48124e8fcfeba4ae4177e876fd"> 108</a></span> constexpr <span class="keywordtype">char</span> <a class="code" href="namespacemesos_1_1internal_1_1tests.html#a6b044a48124e8fcfeba4ae4177e876fd">READONLY_HTTP_AUTHENTICATION_REALM</a>[] = <span class="stringliteral">"test-readonly-realm"</span>;</div><div class="line"><a name="l00109"></a><span
class="lineno"><a class="line" href="namespacemesos_1_1internal_1_1tests.html#a3d69b2b965a8a0d6a90319507f015a12"> 109</a></span> constexpr <span class="keywordtype">char</span> <a class="code" href="namespacemesos_1_1internal_1_1tests.html#a3d69b2b965a8a0d6a90319507f015a12">READWRITE_HTTP_AUTHENTICATION_REALM</a>[] = <span class="stringliteral">"test-readwrite-realm"</span>;</div><div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="namespacemesos_1_1internal_1_1tests.html#a01abc032929a41cdafd4268985dc1369"> 110</a></span> constexpr <span class="keywordtype">char</span> <a class="code" href="namespacemesos_1_1internal_1_1tests.html#a01abc032929a41cdafd4268985dc1369">DEFAULT_TEST_ROLE</a>[] = <span class="stringliteral">"default-role"</span>;</div><div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="namespacemesos_1_1internal_1_1tests.html#af290f8cc581fe8944d4faeb8a56e1f0b"> 111</a></span> 
constexpr <span class="keywordtype">char</span> <a class="code" href="namespacemesos_1_1internal_1_1tests.html#af290f8cc581fe8944d4faeb8a56e1f0b">DEFAULT_JWT_SECRET_KEY</a>[] =</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <span class="stringliteral">"72kUKUFtghAjNbIOvLzfF2RxNBfeM64Bri8g9WhpyaunwqRB/yozHAqSnyHbddAV"</span></div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <span class="stringliteral">"PcWRQlrJAt871oWgSH+n52vMZ3aVI+AFMzXSo8+sUfMk83IGp0WJefhzeQsjDlGH"</span></div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <span class="stringliteral">"GYQgCAuGim0BE2X5U+lEue8s697uQpAO8L/FFRuDH2s"</span>;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span> </div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span> </div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>
0;<span class="comment">// Forward declarations.</span></div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span> <span class="keyword">class </span><a class="code" href="classmesos_1_1internal_1_1tests_1_1MockExecutor.html">MockExecutor</a>;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span> </div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span> </div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span> <span class="comment">// NOTE: `SSLTemporaryDirectoryTest` exists even when SSL is not compiled into</span></div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span> <span class="comment">// Mesos. In this case, the class is an alias of `TemporaryDirectoryTest`.</span></div><div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1tests_1_1MesosTest.html"> 123</a></span> <span class="keyword">
class </span><a class="code" href="classmesos_1_1internal_1_1tests_1_1MesosTest.html">MesosTest</a> : <span class="keyword">public</span> <a class="code" href="classSSLTemporaryDirectoryTest.html">SSLTemporaryDirectoryTest</a></div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span> {</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1tests_1_1MesosTest.html#a96e7148ce13d0775202148b8fa637045">SetUpTestCase</a>();</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1tests_1_1MesosTest.html#a610f2bde76cb5a148313cbc96a04d92b">TearDownTest
Case</a>();</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span> </div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span> <span class="keyword">protected</span>:</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <a class="code" href="classmesos_1_1internal_1_1tests_1_1MesosTest.html#a7e0692b45897b8f008a859e229767897">MesosTest</a>(<span class="keyword">const</span> <a class="code" href="classOption.html">Option<zookeeper::URL></a>& url = <a class="code" href="structNone.html">None</a>());</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span> </div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <span class="comment">// Returns the flags used to create masters.</span></div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <span class="keyword">virtual</span> master::Flags <a class="code" href="
classmesos_1_1internal_1_1tests_1_1MesosTest.html#a69872811a17d1695a1821db3f55c30af">CreateMasterFlags</a>();</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span> </div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <span class="comment">// Returns the flags used to create slaves.</span></div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <span class="keyword">virtual</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Flags.html">slave::Flags</a> <a class="code" href="classmesos_1_1internal_1_1tests_1_1MesosTest.html#a256d948a0c093f4e4c8c59a5de9ecb8f">CreateSlaveFlags</a>();</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span> </div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <span class="comment">// Starts a master with the specified flags.</span></div><div class="line"><a name="l00139"></a><span class="lineno
"> 139</span>  <span class="keyword">virtual</span> <a class="code" href="classTry.html">Try<process::Owned<cluster::Master></a>> <a class="code" href="classmesos_1_1internal_1_1tests_1_1MesosTest.html#a95f03722998a08f61bfa25fa298985c1">StartMaster</a>(</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<master::Flags></a>& <a class="code" href="namespaceflags.html">flags</a> = <a class="code" href="structNone.html">None</a>());</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span> </div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <span class="comment">// Starts a master with the specified allocator process and flags.</span></div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <span class="keyword">virtual</span> <a class="code" href="classTr
y.html">Try<process::Owned<cluster::Master></a>> <a class="code" href="classmesos_1_1internal_1_1tests_1_1MesosTest.html#a95f03722998a08f61bfa25fa298985c1">StartMaster</a>(</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <a class="code" href="classmesos_1_1allocator_1_1Allocator.html">mesos::allocator::Allocator</a>* allocator,</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<master::Flags></a>& <a class="code" href="namespaceflags.html">flags</a> = <a class="code" href="structNone.html">None</a>());</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span> </div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <span class="comment">// Starts a master with the specified authorizer and flags.</span></div><div class="line"><a name="l00148"></a><spa
n class="lineno"> 148</span>  <span class="keyword">virtual</span> <a class="code" href="classTry.html">Try<process::Owned<cluster::Master></a>> <a class="code" href="classmesos_1_1internal_1_1tests_1_1MesosTest.html#a95f03722998a08f61bfa25fa298985c1">StartMaster</a>(</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  <a class="code" href="classmesos_1_1Authorizer.html">Authorizer</a>* authorizer,</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<master::Flags></a>& <a class="code" href="namespaceflags.html">flags</a> = <a class="code" href="structNone.html">None</a>());</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span> </div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  <span class="comment">// Starts a master with a slave removal
rate limiter and flags.</span></div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <span class="comment">// NOTE: The `slaveRemovalLimiter` is a `shared_ptr` because the</span></div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  <span class="comment">// underlying `Master` process requires the pointer in this form.</span></div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <span class="keyword">virtual</span> <a class="code" href="classTry.html">Try<process::Owned<cluster::Master></a>> <a class="code" href="classmesos_1_1internal_1_1tests_1_1MesosTest.html#a95f03722998a08f61bfa25fa298985c1">StartMaster</a>(</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <span class="keyword">const</span> std::shared_ptr<MockRateLimiter>& slaveRemovalLimiter,</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span> 
; <span class="keyword">const</span> <a class="code" href="classOption.html">Option<master::Flags></a>& <a class="code" href="namespaceflags.html">flags</a> = <a class="code" href="structNone.html">None</a>());</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span> </div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <span class="comment">// TODO(bmahler): Consider adding a builder style interface, e.g.</span></div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  <span class="comment">//</span></div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  <span class="comment">// Try<PID<Slave>> slave =</span></div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  <span class="comment">// Slave().With(flags)</span></div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  <span class="
comment">// .With(executor)</span></div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  <span class="comment">// .With(containerizer)</span></div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <span class="comment">// .With(detector)</span></div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <span class="comment">// .With(gc)</span></div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  <span class="comment">// .Start();</span></div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  <span class="comment">//</span></div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <span class="comment">// Or options:</span></div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <span class="comment">//</span></div><div class="line"><a nam
e="l00171"></a><span class="lineno"> 171</span>  <span class="comment">// Injections injections;</span></div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  <span class="comment">// injections.executor = executor;</span></div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  <span class="comment">// injections.containerizer = containerizer;</span></div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  <span class="comment">// injections.detector = detector;</span></div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  <span class="comment">// injections.gc = gc;</span></div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  <span class="comment">// Try<PID<Slave>> slave = StartSlave(injections);</span></div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span> </div><div class="line"><a name=
"l00178"></a><span class="lineno"> 178</span>  <span class="comment">// Starts a slave with the specified detector and flags.</span></div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  <span class="keyword">virtual</span> <a class="code" href="classTry.html">Try<process::Owned<cluster::Slave></a>> <a class="code" href="classmesos_1_1internal_1_1tests_1_1MesosTest.html#ae3b9e1265f6e122ac2a023374ddea4bb">StartSlave</a>(</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  <a class="code" href="classmesos_1_1master_1_1detector_1_1MasterDetector.html">mesos::master::detector::MasterDetector</a>* detector,</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<slave::Flags></a>& <a class="code" href="namespaceflags.html">flags</a> = <a class="code" href="structNone.html">None</
a>(),</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  <span class="keywordtype">bool</span> mock = <span class="keyword">false</span>);</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span> </div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <span class="comment">// Starts a slave with the specified detector, containerizer, and flags.</span></div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <span class="keyword">virtual</span> <a class="code" href="classTry.html">Try<process::Owned<cluster::Slave></a>> <a class="code" href="classmesos_1_1internal_1_1tests_1_1MesosTest.html#ae3b9e1265f6e122ac2a023374ddea4bb">StartSlave</a>(</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  <a class="code" href="classmesos_1_1master_1_1detector_1_1MasterDetector.html">mesos::master::detector::MasterDetector</a>* de
tector,</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  <a class="code" href="classmesos_1_1internal_1_1slave_1_1Containerizer.html">slave::Containerizer</a>* containerizer,</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<slave::Flags></a>& <a class="code" href="namespaceflags.html">flags</a> = <a class="code" href="structNone.html">None</a>(),</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  <span class="keywordtype">bool</span> mock = <span class="keyword">false</span>);</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span> </div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  <span class="comment">// Starts a slave with the specified detector, id, and flags.</span></div><div class="line"><a name="l00192"></a><
span class="lineno"> 192</span>  <span class="keyword">virtual</span> <a class="code" href="classTry.html">Try<process::Owned<cluster::Slave></a>> <a class="code" href="classmesos_1_1internal_1_1tests_1_1MesosTest.html#ae3b9e1265f6e122ac2a023374ddea4bb">StartSlave</a>(</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  <a class="code" href="classmesos_1_1master_1_1detector_1_1MasterDetector.html">mesos::master::detector::MasterDetector</a>* detector,</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <span class="keyword">const</span> std::string& <span class="keywordtype">id</span>,</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<slave::Flags></a>& <a class="code" href="namespaceflags.html">flags</a> = <a class="code" href="structNone.html">None</a>(),</
div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  <span class="keywordtype">bool</span> mock = <span class="keyword">false</span>);</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span> </div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  <span class="comment">// Starts a slave with the specified detector, containerizer, id, and flags.</span></div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  <span class="keyword">virtual</span> <a class="code" href="classTry.html">Try<process::Owned<cluster::Slave></a>> <a class="code" href="classmesos_1_1internal_1_1tests_1_1MesosTest.html#ae3b9e1265f6e122ac2a023374ddea4bb">StartSlave</a>(</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  <a class="code" href="classmesos_1_1master_1_1detector_1_1MasterDetector.html">mesos::master::detector::MasterDetector</a>* detec
tor,</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  <a class="code" href="classmesos_1_1internal_1_1slave_1_1Containerizer.html">slave::Containerizer</a>* containerizer,</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  <span class="keyword">const</span> std::string& <span class="keywordtype">id</span>,</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<slave::Flags></a>& <a class="code" href="namespaceflags.html">flags</a> = <a class="code" href="structNone.html">None</a>());</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span> </div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  <span class="comment">// Starts a slave with the specified detector, GC, and flags.</span></div><div class="line"><a name="l00206">
</a><span class="lineno"> 206</span>  <span class="keyword">virtual</span> <a class="code" href="classTry.html">Try<process::Owned<cluster::Slave></a>> <a class="code" href="classmesos_1_1internal_1_1tests_1_1MesosTest.html#ae3b9e1265f6e122ac2a023374ddea4bb">StartSlave</a>(</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  <a class="code" href="classmesos_1_1master_1_1detector_1_1MasterDetector.html">mesos::master::detector::MasterDetector</a>* detector,</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  <a class="code" href="classmesos_1_1internal_1_1slave_1_1GarbageCollector.html">slave::GarbageCollector</a>* gc,</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<slave::Flags></a>& <a class="code" href="namespaceflags.html">flags</a> = <a class="code" href="s
tructNone.html">None</a>(),</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  <span class="keywordtype">bool</span> mock = <span class="keyword">false</span>);</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span> </div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  <span class="comment">// Starts a slave with the specified detector, resource estimator, and flags.</span></div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  <span class="keyword">virtual</span> <a class="code" href="classTry.html">Try<process::Owned<cluster::Slave></a>> <a class="code" href="classmesos_1_1internal_1_1tests_1_1MesosTest.html#ae3b9e1265f6e122ac2a023374ddea4bb">StartSlave</a>(</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  <a class="code" href="classmesos_1_1master_1_1detector_1_1MasterDetector.html">mesos::master::detec
tor::MasterDetector</a>* detector,</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  <a class="code" href="classmesos_1_1slave_1_1ResourceEstimator.html">mesos::slave::ResourceEstimator</a>* resourceEstimator,</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<slave::Flags></a>& <a class="code" href="namespaceflags.html">flags</a> = <a class="code" href="structNone.html">None</a>());</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span> </div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  <span class="comment">// Starts a slave with the specified detector, containerizer,</span></div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  <span class="comment">// resource estimator, and flags.</span></div><div class="line"><a name="l
00220"></a><span class="lineno"> 220</span>  <span class="keyword">virtual</span> <a class="code" href="classTry.html">Try<process::Owned<cluster::Slave></a>> <a class="code" href="classmesos_1_1internal_1_1tests_1_1MesosTest.html#ae3b9e1265f6e122ac2a023374ddea4bb">StartSlave</a>(</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  <a class="code" href="classmesos_1_1master_1_1detector_1_1MasterDetector.html">mesos::master::detector::MasterDetector</a>* detector,</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  <a class="code" href="classmesos_1_1internal_1_1slave_1_1Containerizer.html">slave::Containerizer</a>* containerizer,</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  <a class="code" href="classmesos_1_1slave_1_1ResourceEstimator.html">mesos::slave::ResourceEstimator</a>* resourceEstimator,</div><div class="line"><a name="l00224"></a><span cl
ass="lineno"> 224</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<slave::Flags></a>& <a class="code" href="namespaceflags.html">flags</a> = <a class="code" href="structNone.html">None</a>());</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span> </div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  <span class="comment">// Starts a slave with the specified detector, QoS Controller, and flags.</span></div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  <span class="keyword">virtual</span> <a class="code" href="classTry.html">Try<process::Owned<cluster::Slave></a>> <a class="code" href="classmesos_1_1internal_1_1tests_1_1MesosTest.html#ae3b9e1265f6e122ac2a023374ddea4bb">StartSlave</a>(</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  <a class="code" href="classmesos_1_1master_1_1d
etector_1_1MasterDetector.html">mesos::master::detector::MasterDetector</a>* detector,</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  <a class="code" href="classmesos_1_1slave_1_1QoSController.html">mesos::slave::QoSController</a>* qosController,</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<slave::Flags></a>& <a class="code" href="namespaceflags.html">flags</a> = <a class="code" href="structNone.html">None</a>());</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span> </div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  <span class="comment">// Starts a slave with the specified detector, containerizer,</span></div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  <span class="comment">// QoS Controller, and flags.</spa
n></div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  <span class="keyword">virtual</span> <a class="code" href="classTry.html">Try<process::Owned<cluster::Slave></a>> <a class="code" href="classmesos_1_1internal_1_1tests_1_1MesosTest.html#ae3b9e1265f6e122ac2a023374ddea4bb">StartSlave</a>(</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  <a class="code" href="classmesos_1_1master_1_1detector_1_1MasterDetector.html">mesos::master::detector::MasterDetector</a>* detector,</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  <a class="code" href="classmesos_1_1internal_1_1slave_1_1Containerizer.html">slave::Containerizer</a>* containerizer,</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  <a class="code" href="classmesos_1_1slave_1_1QoSController.html">mesos::slave::QoSController</a>* qosController,</div><div class="line"><a na
me="l00238"></a><span class="lineno"> 238</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<slave::Flags></a>& <a class="code" href="namespaceflags.html">flags</a> = <a class="code" href="structNone.html">None</a>(),</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  <span class="keywordtype">bool</span> mock = <span class="keyword">false</span>);</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span> </div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  <span class="comment">// Starts a slave with the specified detector, authorizer, and flags.</span></div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  <span class="keyword">virtual</span> <a class="code" href="classTry.html">Try<process::Owned<cluster::Slave></a>> <a class="code" href="classmesos_1_1internal_1_1tests_1_1MesosTest.ht
ml#ae3b9e1265f6e122ac2a023374ddea4bb">StartSlave</a>(</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  <a class="code" href="classmesos_1_1master_1_1detector_1_1MasterDetector.html">mesos::master::detector::MasterDetector</a>* detector,</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  <a class="code" href="classmesos_1_1Authorizer.html">mesos::Authorizer</a>* authorizer,</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<slave::Flags></a>& <a class="code" href="namespaceflags.html">flags</a> = <a class="code" href="structNone.html">None</a>(),</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  <span class="keywordtype">bool</span> mock = <span class="keyword">false</span>);</div><div class="line"><a name="l00247"></a><span class="lineno">
247</span> </div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  <span class="comment">// Starts a slave with the specified detector, containerizer, authorizer,</span></div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  <span class="comment">// and flags.</span></div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  <span class="keyword">virtual</span> <a class="code" href="classTry.html">Try<process::Owned<cluster::Slave></a>> <a class="code" href="classmesos_1_1internal_1_1tests_1_1MesosTest.html#ae3b9e1265f6e122ac2a023374ddea4bb">StartSlave</a>(</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  <a class="code" href="classmesos_1_1master_1_1detector_1_1MasterDetector.html">mesos::master::detector::MasterDetector</a>* detector,</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  <a class="code" h
ref="classmesos_1_1internal_1_1slave_1_1Containerizer.html">slave::Containerizer</a>* containerizer,</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  <a class="code" href="classmesos_1_1Authorizer.html">mesos::Authorizer</a>* authorizer,</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<slave::Flags></a>& <a class="code" href="namespaceflags.html">flags</a> = <a class="code" href="structNone.html">None</a>(),</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  <span class="keywordtype">bool</span> mock = <span class="keyword">false</span>);</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span> </div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  <span class="comment">// Starts a slave with the specified detector, cont
ainerizer,</span></div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  <span class="comment">// secretGenerator, authorizer and flags.</span></div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  <span class="keyword">virtual</span> <a class="code" href="classTry.html">Try<process::Owned<cluster::Slave></a>> <a class="code" href="classmesos_1_1internal_1_1tests_1_1MesosTest.html#ae3b9e1265f6e122ac2a023374ddea4bb">StartSlave</a>(</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  <a class="code" href="classmesos_1_1master_1_1detector_1_1MasterDetector.html">mesos::master::detector::MasterDetector</a>* detector,</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  <a class="code" href="classmesos_1_1internal_1_1slave_1_1Containerizer.html">slave::Containerizer</a>* containerizer,</div><div class="line"><a name="l00262"></a><span class="li
neno"> 262</span>  <a class="code" href="classmesos_1_1SecretGenerator.html">mesos::SecretGenerator</a>* secretGenerator,</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<mesos::Authorizer*></a>& authorizer = <a class="code" href="structNone.html">None</a>(),</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<slave::Flags></a>& <a class="code" href="namespaceflags.html">flags</a> = <a class="code" href="structNone.html">None</a>(),</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  <span class="keywordtype">bool</span> mock = <span class="keyword">false</span>);</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span> </div><div class="line"><a name="l
00267"></a><span class="lineno"> 267</span>  <span class="comment">// Starts a slave with the specified detector, secretGenerator,</span></div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  <span class="comment">// and flags.</span></div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  <span class="keyword">virtual</span> <a class="code" href="classTry.html">Try<process::Owned<cluster::Slave></a>> <a class="code" href="classmesos_1_1internal_1_1tests_1_1MesosTest.html#ae3b9e1265f6e122ac2a023374ddea4bb">StartSlave</a>(</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  <a class="code" href="classmesos_1_1master_1_1detector_1_1MasterDetector.html">mesos::master::detector::MasterDetector</a>* detector,</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  <a class="code" href="classmesos_1_1SecretGenerator.html">mesos::SecretGenerat
or</a>* secretGenerator,</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<slave::Flags></a>& <a class="code" href="namespaceflags.html">flags</a> = <a class="code" href="structNone.html">None</a>());</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span> </div><div class="line"><a name="l00274"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1tests_1_1MesosTest.html#a166e4e1e9054846971aa2f4292b03d94"> 274</a></span>  <a class="code" href="classOption.html">Option<zookeeper::URL></a> <a class="code" href="classmesos_1_1internal_1_1tests_1_1MesosTest.html#a166e4e1e9054846971aa2f4292b03d94">zookeeperUrl</a>;</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span> </div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  <span class="comme
nt">// NOTE: On Windows, most tasks are run under PowerShell, which uses ~150 MB</span></div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  <span class="comment">// of memory per-instance due to loading .NET. Realistically, PowerShell can</span></div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  <span class="comment">// be called more than once in a task, so 512 MB is the safe minimum.</span></div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  <span class="comment">// Furthermore, because the Windows `cpu` isolator is a hard-cap, 0.1 CPUs</span></div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  <span class="comment">// will cause the task (or even a check command) to timeout, so 1 CPU is the</span></div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  <span class="comment">// safe minimum.</span></div><div class="line">
<a name="l00282"></a><span class="lineno"> 282</span>  <span class="comment">//</span></div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  <span class="comment">// Because multiple tasks can be run, the default agent resources needs to be</span></div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  <span class="comment">// at least a multiple of the default task resources: four times seems safe.</span></div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  <span class="comment">//</span></div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  <span class="comment">// On platforms where the shell is, e.g. Bash, the minimum is much lower.</span></div><div class="line"><a name="l00287"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1tests_1_1MesosTest.html#a8aa00a8b69568d56ce00d14df6ad835e"> 287</a></span>  <span class="keywor
d">const</span> std::string <a class="code" href="classmesos_1_1internal_1_1tests_1_1MesosTest.html#a8aa00a8b69568d56ce00d14df6ad835e">defaultAgentResourcesString</a>{</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span> <span class="preprocessor">#ifdef __WINDOWS__</span></div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  <span class="stringliteral">"cpus:4;gpus:0;mem:2048;disk:1024;ports:[31000-32000]"</span></div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  <span class="stringliteral">"cpus:2;gpus:0;mem:1024;disk:1024;ports:[31000-32000]"</span></div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span> <span class="preprocessor">#endif // __WINDOWS__</span></div><div class="line"><a name="l00293"></a><span cla
ss="lineno"> 293</span>  };</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span> </div><div class="line"><a name="l00295"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1tests_1_1MesosTest.html#a7f545027bf63a6a28b372603c3375049"> 295</a></span>  <span class="keyword">const</span> std::string <a class="code" href="classmesos_1_1internal_1_1tests_1_1MesosTest.html#a7f545027bf63a6a28b372603c3375049">defaultTaskResourcesString</a>{</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span> <span class="preprocessor">#ifdef __WINDOWS__</span></div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  <span class="stringliteral">"cpus:1;mem:512;disk:32"</span></div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l00299"></a><span class="lineno"> 299</sp
an>  <span class="stringliteral">"cpus:0.1;mem:32;disk:32"</span></div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span> <span class="preprocessor">#endif // __WINDOWS__</span></div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  };</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span> };</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span> </div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span> </div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div><div class="line"><a name="l00306"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1tests_1_1ContainerizerTest.html"> 306</a></span> <span class="keyword">class </span><a class="code" href="classmesos_1_1internal_1_1tests_
1_1ContainerizerTest.html">ContainerizerTest</a> : <span class="keyword">public</span> <a class="code" href="classmesos_1_1internal_1_1tests_1_1MesosTest.html">MesosTest</a> {};</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span> </div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span> <span class="preprocessor">#ifdef __linux__</span></div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span> <span class="comment">// Cgroups hierarchy used by the cgroups related tests.</span></div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span> <span class="keyword">const</span> <span class="keyword">static</span> std::string TEST_CGROUPS_HIERARCHY = <span class="stringliteral">"/tmp/mesos_test_cgroup"</span>;</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span> </div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span> <spa
n class="comment">// Name of the root cgroup used by the cgroups related tests.</span></div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span> <span class="keyword">const</span> <span class="keyword">static</span> std::string TEST_CGROUPS_ROOT = <span class="stringliteral">"mesos_test"</span>;</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span> </div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span> </div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span> <span class="keyword">template</span> <></div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span> <span class="keyword">class </span><a class="code" href="classmesos_1_1internal_1_1tests_1_1ContainerizerTest.html">ContainerizerTest</a><slave::MesosContainerizer> : <span class="keyword">public</span> <a class="code" href="classmesos_1_1internal_1_1tests_1_1MesosTest.html">Me
sosTest</a></div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span> {</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1tests_1_1MesosTest.html#a96e7148ce13d0775202148b8fa637045">SetUpTestCase</a>();</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1tests_1_1MesosTest.html#a610f2bde76cb5a148313cbc96a04d92b">TearDownTestCase</a>();</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span> </div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span> <span class="keyword">protected</spa
n>:</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  <span class="keyword">virtual</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Flags.html">slave::Flags</a> <a class="code" href="classmesos_1_1internal_1_1tests_1_1MesosTest.html#a256d948a0c093f4e4c8c59a5de9ecb8f">CreateSlaveFlags</a>();</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classTemporaryDirectoryTest.html#a8c276b7f4a8ac1d5ca5d575d56fbea12">SetUp</a>();</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classTemporaryDirectoryTest.html#af398699f3f3f018086e72ea220d65dbd">TearDown</a>();</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span> </div><div class="line"><a name="l00328"><
/a><span class="lineno"> 328</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  <span class="comment">// Base hierarchy for separately mounted cgroup controllers, e.g., if the</span></div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  <span class="comment">// base hierarchy is /sys/fs/cgroup then each controller will be mounted to</span></div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>  <span class="comment">// /sys/fs/cgroup/{controller}/.</span></div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  std::string baseHierarchy;</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span> </div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  <span class="comment">// Set of cgroup subsystems used by the cgroups related tests.</span></div><div class="li
ne"><a name="l00335"></a><span class="lineno"> 335</span>  <a class="code" href="classhashset.html">hashset<std::string></a> <a class="code" href="namespacecgroups.html#a43ff5aa5dec5f24b0a3620847e9dd6b6">subsystems</a>;</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span> };</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span> <span class="keyword">template</span> <></div><div class="line"><a name="l00339"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1tests_1_1ContainerizerTest_3_01slave_1_1MesosContainerizer_01_4.html"> 339</a></span> <span class="keyword">class </span><a class="code" href="classmesos_1_1internal_1_1tests_1_1ContainerizerTest.html">ContainerizerTest</a><slave::MesosContainerizer> : <span class="keyword">public</span> <a class="c
ode" href="classmesos_1_1internal_1_1tests_1_1MesosTest.html">MesosTest</a></div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span> {</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span> <span class="keyword">protected</span>:</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  <span class="keyword">virtual</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Flags.html">slave::Flags</a> <a class="code" href="classmesos_1_1internal_1_1tests_1_1MesosTest.html#a256d948a0c093f4e4c8c59a5de9ecb8f">CreateSlaveFlags</a>();</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span> };</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span> <span class="preprocessor">#endif // __linux__</span></div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span> </div><div class="line"><a name="l00346"></a><span class="lineno">
346</span> </div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span> <span class="preprocessor">#ifdef MESOS_HAS_JAVA</span></div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span> </div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span> <span class="keyword">class </span>MesosZooKeeperTest : <span class="keyword">public</span> <a class="code" href="classmesos_1_1internal_1_1tests_1_1MesosTest.html">MesosTest</a></div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span> {</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>  <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1tests_1_1MesosTest.html#a96e7148ce13d0775202148b8fa637045">SetUpTestCase</a>()</div
><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>  {</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  <span class="comment">// Make sure the JVM is created.</span></div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  <a class="code" href="classmesos_1_1internal_1_1tests_1_1ZooKeeperTest.html#a8bbd933c9e18c30b6c6e0502a31b5b9e">ZooKeeperTest::SetUpTestCase</a>();</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span> </div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  <span class="comment">// Launch the ZooKeeper test server.</span></div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  server = <span class="keyword">new</span> <a class="code" href="classmesos_1_1internal_1_1tests_1_1ZooKeeperTestServer.html">ZooKeeperTestServer</a>();</div><div class="line"><a name="l00359"></a><span class
="lineno"> 359</span>  server->startNetwork();</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span> </div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>  <a class="code" href="classTry.html">Try<zookeeper::URL></a> <a class="code" href="namespaceappc_1_1spec.html#a2107ae129dd83fbd20b22195247f16b5">parse</a> = <a class="code" href="classzookeeper_1_1URL.html#a1da68f8b465c13a553cb240827fda1a8">zookeeper::URL::parse</a>(</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  <span class="stringliteral">"zk://"</span> + server->connectString() + <span class="stringliteral">"/znode"</span>);</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>  <a class="code" href="stout_2include_2stout_2gtest_8hpp.html#a0add664e84bbf99f845f1b715dd63f90">ASSERT_SOME</a>(parse);</div><div class="line"><a name="l00364"></a><span class
="lineno"> 364</span> </div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>  url = parse.<a class="code" href="classTry.html#a8bc7f43e75a47111ea18e9c83b007be5">get</a>();</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  }</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span> </div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classmesos_1_1internal_1_1tests_1_1MesosTest.html#a610f2bde76cb5a148313cbc96a04d92b">TearDownTestCase</a>()</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  {</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>  <span class="keyword">delete</span> server;</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  server = <span class="
keyword">nullptr</span>;</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  }</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span> </div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classTemporaryDirectoryTest.html#a8c276b7f4a8ac1d5ca5d575d56fbea12">SetUp</a>()</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  {</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  <a class="code" href="classTemporaryDirectoryTest.html#a8c276b7f4a8ac1d5ca5d575d56fbea12">MesosTest::SetUp</a>();</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  server->startNetwork();</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  }</div><div class="line"><a name="l00379"></a><span
class="lineno"> 379</span> </div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classTemporaryDirectoryTest.html#af398699f3f3f018086e72ea220d65dbd">TearDown</a>()</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>  {</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  server->shutdownNetwork();</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>  <a class="code" href="classTemporaryDirectoryTest.html#af398699f3f3f018086e72ea220d65dbd">MesosTest::TearDown</a>();</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>  }</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span> </div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span> <span class="keyword">protected</spa
n>:</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  MesosZooKeeperTest() : <a class="code" href="classmesos_1_1internal_1_1tests_1_1MesosTest.html#a7e0692b45897b8f008a859e229767897">MesosTest</a>(url) {}</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span> </div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  <span class="keyword">virtual</span> master::Flags <a class="code" href="classmesos_1_1internal_1_1tests_1_1MesosTest.html#a69872811a17d1695a1821db3f55c30af">CreateMasterFlags</a>()</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  {</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  master::Flags <a class="code" href="namespaceflags.html">flags</a> = <a class="code" href="classmesos_1_1internal_1_1tests_1_1MesosTest.html#a69872811a17d1695a1821db3f55c30af">MesosTest::CreateMasterFlags</a>();</div><div class="li
ne"><a name="l00392"></a><span class="lineno"> 392</span> </div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>  <span class="comment">// NOTE: Since we are using the replicated log with ZooKeeper</span></div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  <span class="comment">// (default storage in MesosTest), we need to specify the quorum.</span></div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  flags.quorum = 1;</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span> </div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>  <span class="keywordflow">return</span> <a class="code" href="namespacemesos_1_1internal_1_1tests.html#af8289f648a916c3f66923867452c7b1b">flags</a>;</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>  }</div><div class="line"><a name="l00399"></a><span class="lin
eno"> 399</span> </div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  <span class="keyword">static</span> <a class="code" href="classmesos_1_1internal_1_1tests_1_1ZooKeeperTestServer.html">ZooKeeperTestServer</a>* server;</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  <span class="keyword">static</span> <a class="code" href="classOption.html">Option<zookeeper::URL></a> url;</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span> };</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span> </div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span> <span class="preprocessor">#endif // MESOS_HAS_JAVA</span></div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span> </div><div class="line"><a name="l00406"></a><span class="lineno"><a class="line" href="namespacemesos_1_1internal_1_1tests_1_1v1.html"> 406<
/a></span> <span class="keyword">namespace </span>v1 {</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span> </div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span> <span class="comment">// Alias existing `mesos::v1` namespaces so that we can easily write</span></div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span> <span class="comment">// `v1::` in tests.</span></div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span> <span class="comment">//</span></div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span> <span class="comment">// TODO(jmlvanre): Remove these aliases once we clean up the `tests`</span></div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span> <span class="comment">// namespace hierarchy.</span></div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span> <span class="keyword">nam
espace </span><a class="code" href="namespacemesos_1_1v1_1_1agent.html">agent</a> = <a class="code" href="namespacemesos_1_1v1_1_1agent.html">mesos::v1::agent</a>;</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span> <span class="keyword">namespace </span>maintenance = mesos::v1::maintenance;</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span> <span class="keyword">namespace </span><a class="code" href="namespacemesos_1_1v1_1_1master.html">master</a> = <a class="code" href="namespacemesos_1_1v1_1_1master.html">mesos::v1::master</a>;</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span> <span class="keyword">namespace </span>quota = mesos::v1::quota;</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span> </div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span> <span class="keyword">using</span> mesos::v1::OPERATION_PENDING;</div><div class="
line"><a name="l00419"></a><span class="lineno"> 419</span> <span class="keyword">using</span> mesos::v1::OPERATION_FINISHED;</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span> <span class="keyword">using</span> mesos::v1::OPERATION_FAILED;</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span> <span class="keyword">using</span> mesos::v1::OPERATION_ERROR;</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span> <span class="keyword">using</span> mesos::v1::OPERATION_DROPPED;</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span> <span class="keyword">using</span> mesos::v1::OPERATION_UNREACHABLE;</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span> <span class="keyword">using</span> mesos::v1::OPERATION_GONE_BY_OPERATOR;</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span> <span class="keyword">using</spa
n> mesos::v1::OPERATION_RECOVERING;</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span> <span class="keyword">using</span> mesos::v1::OPERATION_UNKNOWN;</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span> </div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span> <span class="keyword">using</span> mesos::v1::TASK_STAGING;</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span> <span class="keyword">using</span> mesos::v1::TASK_STARTING;</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span> <span class="keyword">using</span> mesos::v1::TASK_RUNNING;</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span> <span class="keyword">using</span> mesos::v1::TASK_KILLING;</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span> <span class="keyword">using</span> mesos::v1::TASK_FINISHED;</div><div cl
ass="line"><a name="l00433"></a><span class="lineno"> 433</span> <span class="keyword">using</span> mesos::v1::TASK_FAILED;</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span> <span class="keyword">using</span> mesos::v1::TASK_KILLED;</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span> <span class="keyword">using</span> mesos::v1::TASK_ERROR;</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span> <span class="keyword">using</span> mesos::v1::TASK_LOST;</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span> <span class="keyword">using</span> mesos::v1::TASK_DROPPED;</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span> <span class="keyword">using</span> mesos::v1::TASK_UNREACHABLE;</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span> <span class="keyword">using</span> mesos::v1::TASK_GONE;</div><div clas
s="line"><a name="l00440"></a><span class="lineno"> 440</span> <span class="keyword">using</span> mesos::v1::TASK_GONE_BY_OPERATOR;</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span> <span class="keyword">using</span> mesos::v1::TASK_UNKNOWN;</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span> </div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span> <span class="keyword">using</span> mesos::v1::AgentID;</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span> <span class="keyword">using</span> mesos::v1::CheckInfo;</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span> <span class="keyword">using</span> mesos::v1::CommandInfo;</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span> <span class="keyword">using</span> mesos::v1::ContainerID;</div><div class="line"><a name="l00447"></a><span class="lineno"> 447
</span> <span class="keyword">using</span> mesos::v1::ContainerStatus;</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span> <span class="keyword">using</span> mesos::v1::Environment;</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span> <span class="keyword">using</span> mesos::v1::ExecutorID;</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span> <span class="keyword">using</span> mesos::v1::ExecutorInfo;</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span> <span class="keyword">using</span> mesos::v1::Filters;</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span> <span class="keyword">using</span> mesos::v1::FrameworkID;</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span> <span class="keyword">using</span> mesos::v1::FrameworkInfo;</div><div class="line"><a name="l00454"></a><span class="lineno"> 454<
/span> <span class="keyword">using</span> mesos::v1::HealthCheck;</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span> <span class="keyword">using</span> mesos::v1::InverseOffer;</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span> <span class="keyword">using</span> mesos::v1::MachineID;</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span> <span class="keyword">using</span> mesos::v1::Metric;</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span> <span class="keyword">using</span> mesos::v1::Offer;</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span> <span class="keyword">using</span> mesos::v1::OperationID;</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span> <span class="keyword">using</span> mesos::v1::OperationState;</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span> 
<span class="keyword">using</span> mesos::v1::OperationStatus;</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span> <span class="keyword">using</span> mesos::v1::Resource;</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span> <span class="keyword">using</span> mesos::v1::ResourceProviderID;</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span> <span class="keyword">using</span> mesos::v1::ResourceProviderInfo;</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span> <span class="keyword">using</span> <a class="code" href="classmesos_1_1v1_1_1Resources.html">mesos::v1::Resources</a>;</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span> <span class="keyword">using</span> mesos::v1::TaskID;</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span> <span class="keyword">using</span> mesos::v1::TaskInfo;</div><div class="
line"><a name="l00468"></a><span class="lineno"> 468</span> <span class="keyword">using</span> mesos::v1::TaskGroupInfo;</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span> <span class="keyword">using</span> mesos::v1::TaskState;</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span> <span class="keyword">using</span> mesos::v1::TaskStatus;</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span> <span class="keyword">using</span> mesos::v1::UUID;</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span> <span class="keyword">using</span> mesos::v1::WeightInfo;</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span> </div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span> } <span class="comment">// namespace v1 {</span></div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span> </div><div cla
ss="line"><a name="l00476"></a><span class="lineno"><a class="line" href="namespacemesos_1_1internal_1_1tests_1_1common.html"> 476</a></span> <span class="keyword">namespace </span>common {</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span> </div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span> <span class="keyword">template</span> <<span class="keyword">typename</span> TCredential></div><div class="line"><a name="l00479"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1tests_1_1common_1_1DefaultCredential.html"> 479</a></span> <span class="keyword">struct </span><a class="code" href="structmesos_1_1internal_1_1tests_1_1common_1_1DefaultCredential.html">DefaultCredential</a></div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span> {</div><div class="line"><a name="l00481"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1tests_1_1c
ommon_1_1DefaultCredential.html#a2e384f9e69baf909ea32437ecde85143"> 481</a></span>  <span class="keyword">static</span> TCredential <a class="code" href="structmesos_1_1internal_1_1tests_1_1common_1_1DefaultCredential.html#a2e384f9e69baf909ea32437ecde85143">create</a>()</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>  {</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>  TCredential credential;</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>  credential.set_principal(<span class="stringliteral">"test-principal"</span>);</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>  credential.set_secret(<span class="stringliteral">"test-secret"</span>);</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>  <span class="keywordflow">return</span> credential;</div><div class="line"><a name="l004
87"></a><span class="lineno"> 487</span>  }</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span> };</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span> </div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span> </div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span> <span class="comment">// TODO(jmlvanre): consider factoring this out.</span></div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span> <span class="keyword">template</span> <<span class="keyword">typename</span> TCredential></div><div class="line"><a name="l00493"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1tests_1_1common_1_1DefaultCredential2.html"> 493</a></span> <span class="keyword">struct </span><a class="code" href="structmesos_1_1internal_1_1tests_1_1common_1_1DefaultCredential2.html">DefaultCredential2</a></div><div class="line
"><a name="l00494"></a><span class="lineno"> 494</span> {</div><div class="line"><a name="l00495"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1tests_1_1common_1_1DefaultCredential2.html#a75bb6737c4f44529656db306160ddd0f"> 495</a></span>  <span class="keyword">static</span> TCredential <a class="code" href="structmesos_1_1internal_1_1tests_1_1common_1_1DefaultCredential2.html#a75bb6737c4f44529656db306160ddd0f">create</a>()</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>  {</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>  TCredential credential;</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>  credential.set_principal(<span class="stringliteral">"test-principal-2"</span>);</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>  credential.set_secret(<span class="stringliteral">"test-secre
t-2"</span>);</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>  <span class="keywordflow">return</span> credential;</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>  }</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span> };</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span> </div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span> </div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span> <span class="keyword">template</span> <<span class="keyword">typename</span> TFrameworkInfo, <span class="keyword">typename</span> TCredential></div><div class="line"><a name="l00506"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1tests_1_1common_1_1DefaultFrameworkInfo.html"> 506</a></span> <span class="keyword">struct </span><a class="code" href="structmesos_1_1internal_1
_1tests_1_1common_1_1DefaultFrameworkInfo.html">DefaultFrameworkInfo</a></div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span> {</div><div class="line"><a name="l00508"></a><span class="lineno"><a class="line" href="structmesos_1_1internal_1_1tests_1_1common_1_1DefaultFrameworkInfo.html#a842b7475bc4e06999d0570793eb81cb4"> 508</a></span>  <span class="keyword">static</span> TFrameworkInfo <a class="code" href="structmesos_1_1internal_1_1tests_1_1common_1_1DefaultFrameworkInfo.html#a842b7475bc4e06999d0570793eb81cb4">create</a>()</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>  {</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>  TFrameworkInfo framework;</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>  framework.set_name(<span class="stringliteral">"default"</span>);</div><div class="line"><a name="l00512"></a><span class="lineno">
512</span>  framework.set_user(<a class="code" href="namespaceos.html#a698aa27e5ea6b1dc1c190b978c2f7960">os::user</a>().<span class="keyword">get</span>())
<TRUNCATED>
[25/50] mesos-site git commit: Updated the website built from mesos
SHA: 7c9c72d.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/libprocess_2include_2process_2ssl_2gtest_8hpp_source.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/libprocess_2include_2process_2ssl_2gtest_8hpp_source.html b/content/api/latest/c++/libprocess_2include_2process_2ssl_2gtest_8hpp_source.html
index 14efd27..d6b177d 100644
--- a/content/api/latest/c++/libprocess_2include_2process_2ssl_2gtest_8hpp_source.html
+++ b/content/api/latest/c++/libprocess_2include_2process_2ssl_2gtest_8hpp_source.html
@@ -52,7 +52,7 @@
<div class="title">gtest.hpp</div> </div>
</div><!--header-->
<div class="contents">
-<a href="libprocess_2include_2process_2ssl_2gtest_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// or more contributor license agreements. See the NOTICE file</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// distributed with this work for additional information</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">// regarding copyright ownership. The ASF licenses this file</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// to you under the Apache License, Version 2.0 (the</span></div><div class="lin
e"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">// "License"); you may not use this file except in compliance</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// with the License. You may obtain a copy of the License at</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">//</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// Unless required by applicable law or agreed to in writing, software</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <
span class="comment">// distributed under the License is distributed on an "AS IS" BASIS,</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">// See the License for the specific language governing permissions and</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// limitations under the License.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#ifndef __PROCESS_SSL_TEST_HPP__</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#define __PROCESS_SSL_TEST_HP
P__</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> </div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#ifdef USE_SSL_SOCKET</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <string></span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <openssl/rsa.h></span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <openssl/bio.h></span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <openssl/x509.h></span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span clas
s="preprocessor">#include <openssl/x509v3.h></span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include <<a class="code" href="3rdparty_2libprocess_2include_2process_2io_8hpp.html">process/io.hpp</a>></span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include <<a class="code" href="libprocess_2include_2process_2process_8hpp.html">process/process.hpp</a>></span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include <<a class="code" href="libprocess_2include_2process_2socket_8hpp.html">process/socket.hpp</a>></span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include <<a class="code" href="subprocess_8hpp.html">pro
cess/subprocess.hpp</a>></span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#include <<a class="code" href="utilities_8hpp.html">process/ssl/utilities.hpp</a>></span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include <<a class="code" href="none_8hpp.html">stout/none.hpp</a>></span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#include <<a class="code" href="option_8hpp.html">stout/option.hpp</a>></span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#include <<a class="code" href="try_8hpp.html">stout/try.hpp</a>></span></div><div cl
ass="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor">#include <<a class="code" href="result_8hpp.html">stout/result.hpp</a>></span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> </div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="preprocessor">#include <<a class="code" href="realpath_8hpp.html">stout/os/realpath.hpp</a>></span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="preprocessor">#endif // USE_SSL_SOCKET</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor">#include <<a class="code" href="3rdparty_2stout_2include_2stout_2tests_2utils_8hpp.html">stout/tests/utils.hpp</a>></span></div><div class="line"><a name="l00044"></a><span class="lineno
"> 44</span> </div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#ifdef USE_SSL_SOCKET</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="keyword">namespace </span><a class="code" href="namespaceprocess.html">process</a> {</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="keyword">namespace </span>network {</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="keyword">namespace </span>openssl {</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span> </div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="comment">// Forward declare the `reinitialize()` function since we want to</span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="comment">// programatically change
SSL flags during tests.</span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="keywordtype">void</span> reinitialize();</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span> </div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span> } <span class="comment">// namespace openssl {</span></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span> } <span class="comment">// namespace network {</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span> } <span class="comment">// namespace process {</span></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="preprocessor">#endif // USE_SSL_SOCKET</span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span> </div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="comment">//
When SSL is not compiled in, we want the `SSLTemporaryDirectoryTest` class</span></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="comment">// to exist, so that other tests can inherit it; this class is equivalent</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="comment">// to the `TemporaryDirectoryTest` under that condition.</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="preprocessor">#ifndef USE_SSL_SOCKET</span></div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="classSSLTemporaryDirectoryTest.html"> 63</a></span> <span class="keyword">class </span><a class="code" href="classSSLTemporaryDirectoryTest.html">SSLTemporaryDirectoryTest</a> : <span class="keyword">public</span> <a class="code" href="classTemporaryDirectoryTest.html">TemporaryDirectoryTest</a> {};</div><div class="line"><
a name="l00064"></a><span class="lineno"> 64</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span> </div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="keyword">class </span><a class="code" href="classSSLTemporaryDirectoryTest.html">SSLTemporaryDirectoryTest</a> : <span class="keyword">public</span> <a class="code" href="classTemporaryDirectoryTest.html">TemporaryDirectoryTest</a></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span> {</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <span class="keyword">static</span> <span class="keywordtype">void</span> TearDownTestCase()</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  {</div><div class=
"line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="comment">// Clear and reset any environment variables.</span></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  set_environment_variables({});</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  }</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span> </div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="keyword">protected</span>:</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <a class="code" href="classPath.html">Path</a> key_path()</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  {</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <span class="keywordflow">return</span> <a class="code" href="classPath.html">Path</a>(<a class="code" href="namespacepath
.html#aa86b16a2171cec90bb3337930513ef0f">path::join</a>(<a class="code" href="namespaceos.html#a84a3290f051cdd50d88e0fd611645d4a">os::getcwd</a>(), <span class="stringliteral">"key.pem"</span>));</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  }</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span> </div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <a class="code" href="classPath.html">Path</a> certificate_path()</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  {</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  <span class="keywordflow">return</span> <a class="code" href="classPath.html">Path</a>(<a class="code" href="namespacepath.html#aa86b16a2171cec90bb3337930513ef0f">path::join</a>(<a class="code" href="namespaceos.html#a84a3290f051cdd50d88e0fd611645d4a">os::getcwd</a>(), <span class="stringlitera
l">"cert.pem"</span>));</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  }</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span> </div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <a class="code" href="classPath.html">Path</a> scrap_key_path()</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  {</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <span class="keywordflow">return</span> <a class="code" href="classPath.html">Path</a>(<a class="code" href="namespacepath.html#aa86b16a2171cec90bb3337930513ef0f">path::join</a>(<a class="code" href="namespaceos.html#a84a3290f051cdd50d88e0fd611645d4a">os::getcwd</a>(), <span class="stringliteral">"scrap_key.pem"</span>));</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  }</div><div class="line"><a name="l00102"></a><spa
n class="lineno"> 102</span> </div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <a class="code" href="classPath.html">Path</a> scrap_certificate_path()</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  {</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <span class="keywordflow">return</span> <a class="code" href="classPath.html">Path</a>(<a class="code" href="namespacepath.html#aa86b16a2171cec90bb3337930513ef0f">path::join</a>(<a class="code" href="namespaceos.html#a84a3290f051cdd50d88e0fd611645d4a">os::getcwd</a>(), <span class="stringliteral">"scrap_cert.pem"</span>));</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  }</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span> </div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <span class="keyword">static</span> <sp
an class="keywordtype">void</span> set_environment_variables(</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <span class="keyword">const</span> std::map<std::string, std::string>& <a class="code" href="namespacemesos_1_1internal_1_1tests.html#a1396c5e3b0a179220de2792d74770ec2">environment</a>)</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  {</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <span class="comment">// This unsets all the SSL environment variables. Necessary for</span></div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <span class="comment">// ensuring a clean starting slate between tests.</span></div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <a class="code" href="namespaceos.html#a7471e14f4cbd7e23b5daa21e556f4eb5">os::unsetenv</a>(<span class="stringliteral">"LIBPR
OCESS_SSL_ENABLED"</span>);</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <a class="code" href="namespaceos.html#a7471e14f4cbd7e23b5daa21e556f4eb5">os::unsetenv</a>(<span class="stringliteral">"LIBPROCESS_SSL_SUPPORT_DOWNGRADE"</span>);</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <a class="code" href="namespaceos.html#a7471e14f4cbd7e23b5daa21e556f4eb5">os::unsetenv</a>(<span class="stringliteral">"LIBPROCESS_SSL_CERT_FILE"</span>);</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <a class="code" href="namespaceos.html#a7471e14f4cbd7e23b5daa21e556f4eb5">os::unsetenv</a>(<span class="stringliteral">"LIBPROCESS_SSL_KEY_FILE"</span>);</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <a class="code" href="namespaceos.html#a7471e14f4cbd7e23b5daa21e556f4eb5">os::unsetenv</a>(<span class="stringlite
ral">"LIBPROCESS_SSL_VERIFY_CERT"</span>);</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <a class="code" href="namespaceos.html#a7471e14f4cbd7e23b5daa21e556f4eb5">os::unsetenv</a>(<span class="stringliteral">"LIBPROCESS_SSL_REQUIRE_CERT"</span>);</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <a class="code" href="namespaceos.html#a7471e14f4cbd7e23b5daa21e556f4eb5">os::unsetenv</a>(<span class="stringliteral">"LIBPROCESS_SSL_VERIFY_DEPTH"</span>);</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <a class="code" href="namespaceos.html#a7471e14f4cbd7e23b5daa21e556f4eb5">os::unsetenv</a>(<span class="stringliteral">"LIBPROCESS_SSL_CA_DIR"</span>);</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <a class="code" href="namespaceos.html#a7471e14f4cbd7e23b5daa21e556f4eb5">os::unsetenv</a>(<span c
lass="stringliteral">"LIBPROCESS_SSL_CA_FILE"</span>);</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <a class="code" href="namespaceos.html#a7471e14f4cbd7e23b5daa21e556f4eb5">os::unsetenv</a>(<span class="stringliteral">"LIBPROCESS_SSL_CIPHERS"</span>);</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <a class="code" href="namespaceos.html#a7471e14f4cbd7e23b5daa21e556f4eb5">os::unsetenv</a>(<span class="stringliteral">"LIBPROCESS_SSL_ENABLE_SSL_V3"</span>);</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  <a class="code" href="namespaceos.html#a7471e14f4cbd7e23b5daa21e556f4eb5">os::unsetenv</a>(<span class="stringliteral">"LIBPROCESS_SSL_ENABLE_TLS_V1_0"</span>);</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <a class="code" href="namespaceos.html#a7471e14f4cbd7e23b5daa21e556f4eb5">os::uns
etenv</a>(<span class="stringliteral">"LIBPROCESS_SSL_ENABLE_TLS_V1_1"</span>);</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <a class="code" href="namespaceos.html#a7471e14f4cbd7e23b5daa21e556f4eb5">os::unsetenv</a>(<span class="stringliteral">"LIBPROCESS_SSL_ENABLE_TLS_V1_2"</span>);</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span> </div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <span class="comment">// Copy the given map into the clean slate.</span></div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <a class="code" href="foreach_8hpp.html#a66900b166526abe66464d6597536b111">foreachpair</a> (</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <span class="keyword">const</span> std::string& <a class="code" href="namespaceos_1_1Shell.html#acfe16ef2b1146ad49a8651c0a457ce46"
>name</a>, <span class="keyword">const</span> std::string& value, environment) {</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <a class="code" href="namespaceos.html#ac0f608e2a32764327e38c53d0d51527d">os::setenv</a>(name, value);</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  }</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span> </div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <span class="comment">// Make sure the library internally reflects the new environment variables.</span></div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  process::network::openssl::reinitialize();</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  }</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span> </div><div class="line"><a name="l00152"></a><span clas
s="lineno"> 152</span>  <span class="keywordtype">void</span> generate_keys_and_certs() {</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <span class="comment">// We store the allocated objects in these results so that we can</span></div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  <span class="comment">// have a consolidated 'cleanup()' function. This makes all the</span></div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <span class="comment">// 'EXIT()' calls more readable and less error prone.</span></div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <a class="code" href="classResult.html">Result<EVP_PKEY*></a> private_key = <a class="code" href="structNone.html">None</a>();</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <a class="code" href="classResult.html">Resul
t<X509*></a> certificate = <a class="code" href="structNone.html">None</a>();</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <a class="code" href="classResult.html">Result<EVP_PKEY*></a> scrap_key = <a class="code" href="structNone.html">None</a>();</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <a class="code" href="classResult.html">Result<X509*></a> scrap_certificate = <a class="code" href="structNone.html">None</a>();</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span> </div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  <span class="keyword">auto</span> <a class="code" href="namespacecgroups.html#a12d210f286e5fcf7993c0c90b9459606">cleanup</a> = [&private_key, &certificate, &scrap_key, &scrap_certificate](</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  <span
class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a> abort_message = <a class="code" href="structNone.html">None</a>()) {</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  <span class="keywordflow">if</span> (private_key.<a class="code" href="classResult.html#a85eaa52037223d71092e65701c166562">isSome</a>()) { EVP_PKEY_free(private_key.<a class="code" href="classResult.html#aedf79f3b14dcda5791b84a64ada4d412">get</a>()); }</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  <span class="keywordflow">if</span> (certificate.isSome()) { X509_free(certificate.get()); }</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <span class="keywordflow">if</span> (scrap_key.isSome()) { EVP_PKEY_free(scrap_key.get()); }</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <span class="keywordflow">if</span
> (scrap_certificate.<a class="code" href="classResult.html#a85eaa52037223d71092e65701c166562">isSome</a>()) { X509_free(scrap_certificate.<a class="code" href="classResult.html#aedf79f3b14dcda5791b84a64ada4d412">get</a>()); }</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span> </div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  <span class="comment">// We abort here because failure during setup indicates that something</span></div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <span class="comment">// is horribly and irrecoverably wrong.</span></div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <span class="keywordflow">if</span> (abort_message.isSome()) {</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <a class="code" href="abort_8hpp.html#a4d84a74fe6e4f84bc3d2f901b9e89f93">ABORT</a>(abort_message
.get());</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  }</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  };</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span> </div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  <span class="comment">// Generate the authority key.</span></div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  private_key = process::network::openssl::generate_private_rsa_key();</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  <span class="keywordflow">if</span> (private_key.<a class="code" href="classResult.html#aeca16ad17d299ad885c9b46c83b12a3d">isError</a>()) {</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  <a class="code" href="namespacecgroups.html#a12d210f286e5fcf7993c0c90b9459606">cleanup</a>(<span class="
stringliteral">"Could not generate private key: "</span> + private_key.<a class="code" href="classResult.html#a521adf96f5c27d26d6b1d580aae8aaee">error</a>());</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  }</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span> </div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  <span class="comment">// Figure out the hostname that libprocess is advertising.</span></div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  <span class="comment">// Set the hostname of the certificate to this hostname so that</span></div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <span class="comment">// hostname verification of the certificate will pass.</span></div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <a class="code" href="classTry.html">Try&l
t;std::string></a> <a class="code" href="namespacenet.html#a28018530986e91a179ea6239fdf0a447">hostname</a> = <a class="code" href="namespacenet.html#a9228d72b9850d1b39d54b5784068fa1f">net::getHostname</a>(<a class="code" href="namespaceprocess.html#afdecc57ab065ab5d354e728d0ef0ff34">process::address</a>().ip);</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <span class="keywordflow">if</span> (hostname.isError()) {</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  <a class="code" href="namespacecgroups.html#a12d210f286e5fcf7993c0c90b9459606">cleanup</a>(<span class="stringliteral">"Could not determine hostname of libprocess: "</span> +</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  hostname.error());</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  }</div><div class="line"><a name="l00189"></a><span class="
lineno"> 189</span> </div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  <span class="comment">// Generate an authorized certificate.</span></div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  certificate = process::network::openssl::generate_x509(</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  private_key.<a class="code" href="classResult.html#aedf79f3b14dcda5791b84a64ada4d412">get</a>(),</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  private_key.<a class="code" href="classResult.html#aedf79f3b14dcda5791b84a64ada4d412">get</a>(),</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <a class="code" href="structNone.html">None</a>(),</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  1,</div><div class="line"><a name="l00196"></a><span class="lin
eno"> 196</span>  365,</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  hostname.get(),</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  <a class="code" href="classnet_1_1IP.html">net::IP</a>(<a class="code" href="namespaceprocess.html#afdecc57ab065ab5d354e728d0ef0ff34">process::address</a>().ip));</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span> </div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  <span class="keywordflow">if</span> (certificate.isError()) {</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  <a class="code" href="namespacecgroups.html#a12d210f286e5fcf7993c0c90b9459606">cleanup</a>(<span class="stringliteral">"Could not generate certificate: "</span> + certificate.error());</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span> 
}</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span> </div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  <span class="comment">// Write the authority key to disk.</span></div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  <a class="code" href="classTry.html">Try<Nothing></a> key_write =</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  process::network::openssl::write_key_file(private_key.<a class="code" href="classResult.html#aedf79f3b14dcda5791b84a64ada4d412">get</a>(), key_path());</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span> </div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  <span class="keywordflow">if</span> (key_write.isError()) {</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  <a class="code" href="namespacecgro
ups.html#a12d210f286e5fcf7993c0c90b9459606">cleanup</a>(<span class="stringliteral">"Could not write private key to disk: "</span> + key_write.error());</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  }</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span> </div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  <span class="comment">// Write the authorized certificate to disk.</span></div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  <a class="code" href="classTry.html">Try<Nothing></a> certificate_write =</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  process::network::openssl::write_certificate_file(</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  certificate.get(),</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>
0; certificate_path());</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span> </div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  <span class="keywordflow">if</span> (certificate_write.isError()) {</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  <a class="code" href="namespacecgroups.html#a12d210f286e5fcf7993c0c90b9459606">cleanup</a>(<span class="stringliteral">"Could not write certificate to disk: "</span> +</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  certificate_write.error());</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  }</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span> </div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  <span class="comment">// Generate a scrap key.</span></div><div class="li
ne"><a name="l00224"></a><span class="lineno"> 224</span>  scrap_key = process::network::openssl::generate_private_rsa_key();</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  <span class="keywordflow">if</span> (scrap_key.isError()) {</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  <a class="code" href="namespacecgroups.html#a12d210f286e5fcf7993c0c90b9459606">cleanup</a>(<span class="stringliteral">"Could not generate a scrap private key: "</span> + scrap_key.error());</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  }</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span> </div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  <span class="comment">// Write the scrap key to disk.</span></div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  key_write = proce
ss::network::openssl::write_key_file(</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  scrap_key.get(),</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  scrap_key_path());</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span> </div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  <span class="keywordflow">if</span> (key_write.isError()) {</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  <a class="code" href="namespacecgroups.html#a12d210f286e5fcf7993c0c90b9459606">cleanup</a>(<span class="stringliteral">"Could not write scrap key to disk: "</span> + key_write.error());</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  }</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span> </div><div class="line"><a name="l00238"></a><span cl
ass="lineno"> 238</span>  <span class="comment">// Generate a scrap certificate.</span></div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  scrap_certificate = process::network::openssl::generate_x509(</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  scrap_key.get(),</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  scrap_key.get());</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span> </div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  <span class="keywordflow">if</span> (scrap_certificate.isError()) {</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  <a class="code" href="namespacecgroups.html#a12d210f286e5fcf7993c0c90b9459606">cleanup</a>(<span class="stringliteral">"Could not generate a scrap certificate: "</span> +</div><div class="line"><a
name="l00245"></a><span class="lineno"> 245</span>  scrap_certificate.error());</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  }</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span> </div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  <span class="comment">// Write the scrap certificate to disk.</span></div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  certificate_write = process::network::openssl::write_certificate_file(</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  scrap_certificate.get(),</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  scrap_certificate_path());</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span> </div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  <span
class="keywordflow">if</span> (certificate_write.isError()) {</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  <a class="code" href="namespacecgroups.html#a12d210f286e5fcf7993c0c90b9459606">cleanup</a>(<span class="stringliteral">"Could not write scrap certificate to disk: "</span> +</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  certificate_write.error());</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  }</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span> </div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  <span class="comment">// Since we successfully set up all our state, we call cleanup</span></div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  <span class="comment">// without an abort message (so as not to abort).</span></div><div class="l
ine"><a name="l00260"></a><span class="lineno"> 260</span>  <a class="code" href="namespacecgroups.html#a12d210f286e5fcf7993c0c90b9459606">cleanup</a>();</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  }</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span> };</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span> </div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span> </div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span> <span class="keyword">class </span>SSLTest : <span class="keyword">public</span> <a class="code" href="classSSLTemporaryDirectoryTest.html">SSLTemporaryDirectoryTest</a>,</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  <span class="keyword">public</span> ::testing::WithParamInterface<const char*></div><div class="line"><a name="l00274"></a><span class
="lineno"> 274</span> {</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span> <span class="keyword">protected</span>:</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  SSLTest() : data(<span class="stringliteral">"Hello World!"</span>) {}</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span> </div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetUp()</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  {</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  <a class="code" href="classTemporaryDirectoryTest.html#a8c276b7f4a8ac1d5ca5d575d56fbea12">SSLTemporaryDirectoryTest::SetUp</a>();</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  generate_keys_and_certs();</div><di
v class="line"><a name="l00282"></a><span class="lineno"> 282</span>  }</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span> </div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  <a class="code" href="classTry.html">Try<process::network::inet::Socket></a> setup_server(</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  <span class="keyword">const</span> std::map<std::string, std::string>& <a class="code" href="namespacemesos_1_1internal_1_1tests.html#a1396c5e3b0a179220de2792d74770ec2">environment</a>)</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  {</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  set_environment_variables(environment);</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span> </div><div class="line"><a name="l00297"></a><span class="lineno"> 29
7</span>  <span class="keyword">const</span> <a class="code" href="classTry.html">Try<process::network::inet::Socket></a> <a class="code" href="namespacecgroups.html#a2ecc89636706df947027a4c3c2100fbe">create</a> =</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  <a class="code" href="classprocess_1_1network_1_1internal_1_1Socket.html#a63ec4379f16d4f8dbf39f91b1be74a31">process::network::inet::Socket::create</a>(</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  process::network::internal::SocketImpl::Kind::SSL);</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span> </div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  <span class="keywordflow">if</span> (create.<a class="code" href="classTry.html#a0b98f95163b8a38daafd1651b043a276">isError</a>()) {</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>
60; <span class="keywordflow">return</span> <a class="code" href="classError.html">Error</a>(create.<a class="code" href="classTry.html#aec4a11ddd3c036e889d90b7eb6258ba7">error</a>());</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  }</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span> </div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  <a class="code" href="classprocess_1_1network_1_1internal_1_1Socket.html">process::network::inet::Socket</a> server = create.<a class="code" href="classTry.html#a8bc7f43e75a47111ea18e9c83b007be5">get</a>();</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span> </div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  <span class="comment">// We need to explicitly bind to the address advertised by libprocess so the</span></div><div class="line"><a name="l00308"></a><span class="lineno
"> 308</span>  <span class="comment">// certificate we create in this test fixture can be verified.</span></div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  <a class="code" href="classTry.html">Try<process::network::inet::Address></a> <a class="code" href="namespaceprocess_1_1network.html#ad067110a4b38cc83785a43f49bf6c8e2">bind</a> =</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  server.bind(</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  <a class="code" href="classprocess_1_1network_1_1inet_1_1Address.html">process::network::inet::Address</a>(<a class="code" href="classnet_1_1IP.html">net::IP</a>(<a class="code" href="namespaceprocess.html#afdecc57ab065ab5d354e728d0ef0ff34">process::address</a>().ip), 0));</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span> </div><div class="line"><a name="l00313"></a><span class=
"lineno"> 313</span>  <span class="keywordflow">if</span> (bind.<a class="code" href="classTry.html#a0b98f95163b8a38daafd1651b043a276">isError</a>()) {</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  <span class="keywordflow">return</span> <a class="code" href="classError.html">Error</a>(bind.<a class="code" href="classTry.html#aec4a11ddd3c036e889d90b7eb6258ba7">error</a>());</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  }</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span> </div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  <span class="keyword">const</span> <a class="code" href="classTry.html">Try<Nothing></a> <a class="code" href="namespacecgroups_1_1event.html#a6f0a35d2d8f1381bc000001c94155393">listen</a> = server.listen(<a class="code" href="namespacerouting_1_1queueing_1_1statistics.html#afe8c444f1d99c4ed31c37e7dee3
fecfa">BACKLOG</a>);</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  <span class="keywordflow">if</span> (listen.isError()) {</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  <span class="keywordflow">return</span> <a class="code" href="classError.html">Error</a>(listen.error());</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  }</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span> </div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  <span class="keywordflow">return</span> server;</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  }</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span> </div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  <a class="code" href="classTry.html">Try<process::Subprocess></a> l
aunch_client(</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  <span class="keyword">const</span> std::map<std::string, std::string>& environment,</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  <span class="keyword">const</span> <a class="code" href="classprocess_1_1network_1_1internal_1_1Socket.html">process::network::inet::Socket</a>& server,</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  <span class="keywordtype">bool</span> use_ssl_socket)</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  {</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  <span class="keyword">const</span> <a class="code" href="classTry.html">Try<process::network::inet::Address></a> <a class="code" href="namespaceprocess_1_1network.html#a1987d4376ac5e2f04ad72e6c84c7569c">address</a> = server.<a clas
s="code" href="classprocess_1_1network_1_1internal_1_1Socket.html#ae0a90b8a9cbc66e8042905a34652f2db">address</a>();</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  <span class="keywordflow">if</span> (address.<a class="code" href="classTry.html#a0b98f95163b8a38daafd1651b043a276">isError</a>()) {</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>  <span class="keywordflow">return</span> <a class="code" href="classError.html">Error</a>(address.<a class="code" href="classTry.html#aec4a11ddd3c036e889d90b7eb6258ba7">error</a>());</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>  }</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span> </div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  <span class="comment">// Set up arguments to be passed to the 'client-ssl' binary.</span></div><div class="line"><a name="
l00350"></a><span class="lineno"> 350</span>  <span class="keyword">const</span> std::vector<std::string> argv = {</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  <span class="stringliteral">"ssl-client"</span>,</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>  <span class="stringliteral">"--use_ssl="</span> + <a class="code" href="namespacens.html#a28116b46e6543597a11733424cd1aa20">stringify</a>(use_ssl_socket),</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>  <span class="stringliteral">"--server="</span> + <a class="code" href="namespacens.html#a28116b46e6543597a11733424cd1aa20">stringify</a>(address-><a class="code" href="classprocess_1_1network_1_1inet_1_1Address.html#a3e0a3cf87d1bcdfdeb68a82a8595b0fd">ip</a>),</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  <span class="s
tringliteral">"--port="</span> + <a class="code" href="namespacens.html#a28116b46e6543597a11733424cd1aa20">stringify</a>(address-><a class="code" href="classprocess_1_1network_1_1inet_1_1Address.html#ae3e7e66a36596662847c5a36b114af15">port</a>),</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  <span class="stringliteral">"--data="</span> + data};</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span> </div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  <a class="code" href="classResult.html">Result<std::string></a> <a class="code" href="namespacepath.html">path</a> = <a class="code" href="namespaceos.html#aa533c79d98af12b40b567a851e442373">os::realpath</a>(BUILD_DIR);</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  <span class="keywordflow">if</span> (!path.<a class="code" href="classResult.html#a85eaa52037223d7109
2e65701c166562">isSome</a>()) {</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>  <span class="keywordflow">return</span> <a class="code" href="classError.html">Error</a>(<span class="stringliteral">"Could not establish build directory path"</span>);</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  }</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span> </div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  <span class="comment">// Explicitly set `LIBPROCESS_IP` in the subprocess to the same IP that was</span></div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>  <span class="comment">// used to generate the hostname for SSL certificates. This ensures that</span></div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>  <span class="comment">// certificate verification can su
cceed.</span></div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>  std::map<std::string, std::string> full_environment(environment);</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  full_environment[<span class="stringliteral">"LIBPROCESS_IP"</span>] = <a class="code" href="namespacens.html#a28116b46e6543597a11733424cd1aa20">stringify</a>(<a class="code" href="namespaceprocess.html#afdecc57ab065ab5d354e728d0ef0ff34">process::address</a>().ip);</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span> </div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  <span class="keywordflow">return</span> <a class="code" href="namespaceprocess.html#a2d7e0a283bc0c9eca8a8b0532e026269">process::subprocess</a>(</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  <a class="code" href="namespacepath.html#aa86b16a2171ce
c90bb3337930513ef0f">path::join</a>(path.<a class="code" href="classResult.html#aedf79f3b14dcda5791b84a64ada4d412">get</a>(), <span class="stringliteral">"ssl-client"</span>),</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>  argv,</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  <a class="code" href="classprocess_1_1Subprocess.html#a6af5024bd1932707893908fceb86ddad">process::Subprocess::PIPE</a>(),</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  <a class="code" href="classprocess_1_1Subprocess.html#a6af5024bd1932707893908fceb86ddad">process::Subprocess::PIPE</a>(),</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  <a class="code" href="classprocess_1_1Subprocess.html#aaa6e1b76ef54ed6db34d595811122ce0">process::Subprocess::FD</a>(<a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ae2fe17
25bb5e9823d089c46b9ed5266e">STDERR_FILENO</a>),</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  <span class="keyword">nullptr</span>,</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  full_environment);</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  }</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span> </div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  <span class="keyword">static</span> constexpr <span class="keywordtype">size_t</span> <a class="code" href="namespacerouting_1_1queueing_1_1statistics.html#afe8c444f1d99c4ed31c37e7dee3fecfa">BACKLOG</a> = 5;</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span> </div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>  <span class="keyword">const</span> std::string data;</div><div class="line"><
a name="l00381"></a><span class="lineno"> 381</span> };</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span> </div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span> <span class="preprocessor">#endif // USE_SSL_SOCKET</span></div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span> </div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span> <span class="preprocessor">#endif // __PROCESS_SSL_TEST_HPP__</span></div><div class="ttc" id="namespacepath_html"><div class="ttname"><a href="namespacepath.html">path</a></div><div class="ttdef"><b>Definition:</b> path.hpp:26</div></div>
+<a href="libprocess_2include_2process_2ssl_2gtest_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// or more contributor license agreements. See the NOTICE file</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// distributed with this work for additional information</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">// regarding copyright ownership. The ASF licenses this file</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// to you under the Apache License, Version 2.0 (the</span></div><div class="lin
e"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">// "License"); you may not use this file except in compliance</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// with the License. You may obtain a copy of the License at</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">//</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// Unless required by applicable law or agreed to in writing, software</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <
span class="comment">// distributed under the License is distributed on an "AS IS" BASIS,</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">// See the License for the specific language governing permissions and</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// limitations under the License.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#ifndef __PROCESS_SSL_TEST_HPP__</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#define __PROCESS_SSL_TEST_HP
P__</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> </div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#ifdef USE_SSL_SOCKET</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <string></span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <openssl/rsa.h></span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <openssl/bio.h></span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <openssl/x509.h></span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span clas
s="preprocessor">#include <openssl/x509v3.h></span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include <<a class="code" href="3rdparty_2libprocess_2include_2process_2io_8hpp.html">process/io.hpp</a>></span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include <<a class="code" href="libprocess_2include_2process_2process_8hpp.html">process/process.hpp</a>></span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include <<a class="code" href="libprocess_2include_2process_2socket_8hpp.html">process/socket.hpp</a>></span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include <<a class="code" href="include_2process_2subproc
ess_8hpp.html">process/subprocess.hpp</a>></span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#include <<a class="code" href="utilities_8hpp.html">process/ssl/utilities.hpp</a>></span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include <<a class="code" href="none_8hpp.html">stout/none.hpp</a>></span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#include <<a class="code" href="option_8hpp.html">stout/option.hpp</a>></span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#include <<a class="code" href="try_8hpp.html">stout/try.hpp</a>></
span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor">#include <<a class="code" href="result_8hpp.html">stout/result.hpp</a>></span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> </div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="preprocessor">#include <<a class="code" href="realpath_8hpp.html">stout/os/realpath.hpp</a>></span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="preprocessor">#endif // USE_SSL_SOCKET</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor">#include <<a class="code" href="3rdparty_2stout_2include_2stout_2tests_2utils_8hpp.html">stout/tests/utils.hpp</a>></span></div><div class="line"><a name="l00044"></a><
span class="lineno"> 44</span> </div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#ifdef USE_SSL_SOCKET</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="keyword">namespace </span><a class="code" href="namespaceprocess.html">process</a> {</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="keyword">namespace </span>network {</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="keyword">namespace </span>openssl {</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span> </div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="comment">// Forward declare the `reinitialize()` function since we want to</span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="comment">// prog
ramatically change SSL flags during tests.</span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="keywordtype">void</span> reinitialize();</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span> </div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span> } <span class="comment">// namespace openssl {</span></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span> } <span class="comment">// namespace network {</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span> } <span class="comment">// namespace process {</span></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="preprocessor">#endif // USE_SSL_SOCKET</span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span> </div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span
class="comment">// When SSL is not compiled in, we want the `SSLTemporaryDirectoryTest` class</span></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="comment">// to exist, so that other tests can inherit it; this class is equivalent</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="comment">// to the `TemporaryDirectoryTest` under that condition.</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="preprocessor">#ifndef USE_SSL_SOCKET</span></div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="classSSLTemporaryDirectoryTest.html"> 63</a></span> <span class="keyword">class </span><a class="code" href="classSSLTemporaryDirectoryTest.html">SSLTemporaryDirectoryTest</a> : <span class="keyword">public</span> <a class="code" href="classTemporaryDirectoryTest.html">TemporaryDirectoryTest</a> {};</div><
div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span> </div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="keyword">class </span><a class="code" href="classSSLTemporaryDirectoryTest.html">SSLTemporaryDirectoryTest</a> : <span class="keyword">public</span> <a class="code" href="classTemporaryDirectoryTest.html">TemporaryDirectoryTest</a></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span> {</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <span class="keyword">static</span> <span class="keywordtype">void</span> TearDownTestCase()</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span> 
{</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="comment">// Clear and reset any environment variables.</span></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  set_environment_variables({});</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  }</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span> </div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="keyword">protected</span>:</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <a class="code" href="classPath.html">Path</a> key_path()</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  {</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <span class="keywordflow">return</span> <a class="code" href="classPath.html">Path</a>(<a class="code" h
ref="namespacepath.html#aa86b16a2171cec90bb3337930513ef0f">path::join</a>(<a class="code" href="namespaceos.html#a84a3290f051cdd50d88e0fd611645d4a">os::getcwd</a>(), <span class="stringliteral">"key.pem"</span>));</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  }</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span> </div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <a class="code" href="classPath.html">Path</a> certificate_path()</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  {</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  <span class="keywordflow">return</span> <a class="code" href="classPath.html">Path</a>(<a class="code" href="namespacepath.html#aa86b16a2171cec90bb3337930513ef0f">path::join</a>(<a class="code" href="namespaceos.html#a84a3290f051cdd50d88e0fd611645d4a">os::getcwd</a>(), <span c
lass="stringliteral">"cert.pem"</span>));</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  }</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span> </div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <a class="code" href="classPath.html">Path</a> scrap_key_path()</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  {</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <span class="keywordflow">return</span> <a class="code" href="classPath.html">Path</a>(<a class="code" href="namespacepath.html#aa86b16a2171cec90bb3337930513ef0f">path::join</a>(<a class="code" href="namespaceos.html#a84a3290f051cdd50d88e0fd611645d4a">os::getcwd</a>(), <span class="stringliteral">"scrap_key.pem"</span>));</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  }</div><div class="line"><a name
="l00102"></a><span class="lineno"> 102</span> </div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <a class="code" href="classPath.html">Path</a> scrap_certificate_path()</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  {</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <span class="keywordflow">return</span> <a class="code" href="classPath.html">Path</a>(<a class="code" href="namespacepath.html#aa86b16a2171cec90bb3337930513ef0f">path::join</a>(<a class="code" href="namespaceos.html#a84a3290f051cdd50d88e0fd611645d4a">os::getcwd</a>(), <span class="stringliteral">"scrap_cert.pem"</span>));</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  }</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span> </div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <span class="keyword"
>static</span> <span class="keywordtype">void</span> set_environment_variables(</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <span class="keyword">const</span> std::map<std::string, std::string>& <a class="code" href="namespacemesos_1_1internal_1_1tests.html#a1396c5e3b0a179220de2792d74770ec2">environment</a>)</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  {</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <span class="comment">// This unsets all the SSL environment variables. Necessary for</span></div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <span class="comment">// ensuring a clean starting slate between tests.</span></div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <a class="code" href="namespaceos.html#a7471e14f4cbd7e23b5daa21e556f4eb5">os::unsetenv</a>(<span class="stringli
teral">"LIBPROCESS_SSL_ENABLED"</span>);</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <a class="code" href="namespaceos.html#a7471e14f4cbd7e23b5daa21e556f4eb5">os::unsetenv</a>(<span class="stringliteral">"LIBPROCESS_SSL_SUPPORT_DOWNGRADE"</span>);</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <a class="code" href="namespaceos.html#a7471e14f4cbd7e23b5daa21e556f4eb5">os::unsetenv</a>(<span class="stringliteral">"LIBPROCESS_SSL_CERT_FILE"</span>);</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <a class="code" href="namespaceos.html#a7471e14f4cbd7e23b5daa21e556f4eb5">os::unsetenv</a>(<span class="stringliteral">"LIBPROCESS_SSL_KEY_FILE"</span>);</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <a class="code" href="namespaceos.html#a7471e14f4cbd7e23b5daa21e556f4eb5">os::unsetenv</a>(<span
class="stringliteral">"LIBPROCESS_SSL_VERIFY_CERT"</span>);</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <a class="code" href="namespaceos.html#a7471e14f4cbd7e23b5daa21e556f4eb5">os::unsetenv</a>(<span class="stringliteral">"LIBPROCESS_SSL_REQUIRE_CERT"</span>);</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <a class="code" href="namespaceos.html#a7471e14f4cbd7e23b5daa21e556f4eb5">os::unsetenv</a>(<span class="stringliteral">"LIBPROCESS_SSL_VERIFY_DEPTH"</span>);</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <a class="code" href="namespaceos.html#a7471e14f4cbd7e23b5daa21e556f4eb5">os::unsetenv</a>(<span class="stringliteral">"LIBPROCESS_SSL_CA_DIR"</span>);</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <a class="code" href="namespaceos.html#a7471e14f4cbd7e23b5daa21e556f4eb5">os::un
setenv</a>(<span class="stringliteral">"LIBPROCESS_SSL_CA_FILE"</span>);</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <a class="code" href="namespaceos.html#a7471e14f4cbd7e23b5daa21e556f4eb5">os::unsetenv</a>(<span class="stringliteral">"LIBPROCESS_SSL_CIPHERS"</span>);</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <a class="code" href="namespaceos.html#a7471e14f4cbd7e23b5daa21e556f4eb5">os::unsetenv</a>(<span class="stringliteral">"LIBPROCESS_SSL_ENABLE_SSL_V3"</span>);</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  <a class="code" href="namespaceos.html#a7471e14f4cbd7e23b5daa21e556f4eb5">os::unsetenv</a>(<span class="stringliteral">"LIBPROCESS_SSL_ENABLE_TLS_V1_0"</span>);</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <a class="code" href="namespaceos.html#a7471e14f4cbd7e23b5daa21
e556f4eb5">os::unsetenv</a>(<span class="stringliteral">"LIBPROCESS_SSL_ENABLE_TLS_V1_1"</span>);</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <a class="code" href="namespaceos.html#a7471e14f4cbd7e23b5daa21e556f4eb5">os::unsetenv</a>(<span class="stringliteral">"LIBPROCESS_SSL_ENABLE_TLS_V1_2"</span>);</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span> </div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <span class="comment">// Copy the given map into the clean slate.</span></div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <a class="code" href="foreach_8hpp.html#a66900b166526abe66464d6597536b111">foreachpair</a> (</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <span class="keyword">const</span> std::string& <a class="code" href="namespaceos_1_1Shell.html#acfe16ef2b1146ad
49a8651c0a457ce46">name</a>, <span class="keyword">const</span> std::string& value, environment) {</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <a class="code" href="namespaceos.html#ac0f608e2a32764327e38c53d0d51527d">os::setenv</a>(name, value);</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  }</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span> </div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <span class="comment">// Make sure the library internally reflects the new environment variables.</span></div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  process::network::openssl::reinitialize();</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  }</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span> </div><div class="line"><a name="l001
52"></a><span class="lineno"> 152</span>  <span class="keywordtype">void</span> generate_keys_and_certs() {</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <span class="comment">// We store the allocated objects in these results so that we can</span></div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  <span class="comment">// have a consolidated 'cleanup()' function. This makes all the</span></div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <span class="comment">// 'EXIT()' calls more readable and less error prone.</span></div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <a class="code" href="classResult.html">Result<EVP_PKEY*></a> private_key = <a class="code" href="structNone.html">None</a>();</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <a class="code" href="class
Result.html">Result<X509*></a> certificate = <a class="code" href="structNone.html">None</a>();</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <a class="code" href="classResult.html">Result<EVP_PKEY*></a> scrap_key = <a class="code" href="structNone.html">None</a>();</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <a class="code" href="classResult.html">Result<X509*></a> scrap_certificate = <a class="code" href="structNone.html">None</a>();</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span> </div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  <span class="keyword">auto</span> <a class="code" href="namespacecgroups.html#a12d210f286e5fcf7993c0c90b9459606">cleanup</a> = [&private_key, &certificate, &scrap_key, &scrap_certificate](</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#
160; <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a> abort_message = <a class="code" href="structNone.html">None</a>()) {</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  <span class="keywordflow">if</span> (private_key.<a class="code" href="classResult.html#a85eaa52037223d71092e65701c166562">isSome</a>()) { EVP_PKEY_free(private_key.<a class="code" href="classResult.html#aedf79f3b14dcda5791b84a64ada4d412">get</a>()); }</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  <span class="keywordflow">if</span> (certificate.isSome()) { X509_free(certificate.get()); }</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <span class="keywordflow">if</span> (scrap_key.isSome()) { EVP_PKEY_free(scrap_key.get()); }</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <span class="key
wordflow">if</span> (scrap_certificate.<a class="code" href="classResult.html#a85eaa52037223d71092e65701c166562">isSome</a>()) { X509_free(scrap_certificate.<a class="code" href="classResult.html#aedf79f3b14dcda5791b84a64ada4d412">get</a>()); }</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span> </div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  <span class="comment">// We abort here because failure during setup indicates that something</span></div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <span class="comment">// is horribly and irrecoverably wrong.</span></div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <span class="keywordflow">if</span> (abort_message.isSome()) {</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <a class="code" href="abort_8hpp.html#a4d84a74fe6e4f84bc3d2f901b9e89f93">ABORT
</a>(abort_message.get());</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  }</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  };</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span> </div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  <span class="comment">// Generate the authority key.</span></div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  private_key = process::network::openssl::generate_private_rsa_key();</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  <span class="keywordflow">if</span> (private_key.<a class="code" href="classResult.html#aeca16ad17d299ad885c9b46c83b12a3d">isError</a>()) {</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  <a class="code" href="namespacecgroups.html#a12d210f286e5fcf7993c0c90b9459606">cleanup
</a>(<span class="stringliteral">"Could not generate private key: "</span> + private_key.<a class="code" href="classResult.html#a521adf96f5c27d26d6b1d580aae8aaee">error</a>());</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  }</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span> </div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  <span class="comment">// Figure out the hostname that libprocess is advertising.</span></div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  <span class="comment">// Set the hostname of the certificate to this hostname so that</span></div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <span class="comment">// hostname verification of the certificate will pass.</span></div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <a class="code" href="cl
assTry.html">Try<std::string></a> <a class="code" href="namespacenet.html#a28018530986e91a179ea6239fdf0a447">hostname</a> = <a class="code" href="namespacenet.html#a9228d72b9850d1b39d54b5784068fa1f">net::getHostname</a>(<a class="code" href="namespaceprocess.html#afdecc57ab065ab5d354e728d0ef0ff34">process::address</a>().ip);</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <span class="keywordflow">if</span> (hostname.isError()) {</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  <a class="code" href="namespacecgroups.html#a12d210f286e5fcf7993c0c90b9459606">cleanup</a>(<span class="stringliteral">"Could not determine hostname of libprocess: "</span> +</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  hostname.error());</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  }</div><div class="line"><a name="l00189"
></a><span class="lineno"> 189</span> </div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  <span class="comment">// Generate an authorized certificate.</span></div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  certificate = process::network::openssl::generate_x509(</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  private_key.<a class="code" href="classResult.html#aedf79f3b14dcda5791b84a64ada4d412">get</a>(),</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  private_key.<a class="code" href="classResult.html#aedf79f3b14dcda5791b84a64ada4d412">get</a>(),</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <a class="code" href="structNone.html">None</a>(),</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  1,</div><div class="line"><a name="l00196"></
a><span class="lineno"> 196</span>  365,</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  hostname.get(),</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  <a class="code" href="classnet_1_1IP.html">net::IP</a>(<a class="code" href="namespaceprocess.html#afdecc57ab065ab5d354e728d0ef0ff34">process::address</a>().ip));</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span> </div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  <span class="keywordflow">if</span> (certificate.isError()) {</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  <a class="code" href="namespacecgroups.html#a12d210f286e5fcf7993c0c90b9459606">cleanup</a>(<span class="stringliteral">"Could not generate certificate: "</span> + certificate.error());</div><div class="line"><a name="l00202"></a><span class="lineno">
202</span>  }</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span> </div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  <span class="comment">// Write the authority key to disk.</span></div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  <a class="code" href="classTry.html">Try<Nothing></a> key_write =</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  process::network::openssl::write_key_file(private_key.<a class="code" href="classResult.html#aedf79f3b14dcda5791b84a64ada4d412">get</a>(), key_path());</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span> </div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  <span class="keywordflow">if</span> (key_write.isError()) {</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  <a class="code" h
ref="namespacecgroups.html#a12d210f286e5fcf7993c0c90b9459606">cleanup</a>(<span class="stringliteral">"Could not write private key to disk: "</span> + key_write.error());</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  }</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span> </div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  <span class="comment">// Write the authorized certificate to disk.</span></div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  <a class="code" href="classTry.html">Try<Nothing></a> certificate_write =</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  process::network::openssl::write_certificate_file(</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  certificate.get(),</div><div class="line"><a name="l00216"></a><span class="lineno
"> 216</span>  certificate_path());</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span> </div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  <span class="keywordflow">if</span> (certificate_write.isError()) {</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  <a class="code" href="namespacecgroups.html#a12d210f286e5fcf7993c0c90b9459606">cleanup</a>(<span class="stringliteral">"Could not write certificate to disk: "</span> +</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  certificate_write.error());</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  }</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span> </div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  <span class="comment">// Generate a scrap key.</span></
div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  scrap_key = process::network::openssl::generate_private_rsa_key();</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  <span class="keywordflow">if</span> (scrap_key.isError()) {</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  <a class="code" href="namespacecgroups.html#a12d210f286e5fcf7993c0c90b9459606">cleanup</a>(<span class="stringliteral">"Could not generate a scrap private key: "</span> + scrap_key.error());</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  }</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span> </div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  <span class="comment">// Write the scrap key to disk.</span></div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span> 
key_write = process::network::openssl::write_key_file(</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  scrap_key.get(),</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  scrap_key_path());</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>
<TRUNCATED>
[31/50] mesos-site git commit: Updated the website built from mesos
SHA: 7c9c72d.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/include_2process_2subprocess_8hpp_source.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/include_2process_2subprocess_8hpp_source.html b/content/api/latest/c++/include_2process_2subprocess_8hpp_source.html
new file mode 100644
index 0000000..5b4ac19
--- /dev/null
+++ b/content/api/latest/c++/include_2process_2subprocess_8hpp_source.html
@@ -0,0 +1,115 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.11"/>
+<title>Apache Mesos: 3rdparty/libprocess/include/process/subprocess.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">Apache Mesos
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="pages.html"><span>Related Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li><a href="examples.html"><span>Examples</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ <li><a href="globals.html"><span>File Members</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_8cab8f464681f7cc51cee77e79a434cd.html">3rdparty</a></li><li class="navelem"><a class="el" href="dir_043a76de98701f9bddf61b5e98f305ff.html">libprocess</a></li><li class="navelem"><a class="el" href="dir_eac18f7a64f6f8afbd1493ef4e09abdb.html">include</a></li><li class="navelem"><a class="el" href="dir_1894286df79cf582d947dbc4268b06cf.html">process</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">subprocess.hpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="include_2process_2subprocess_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// Licensed under the Apache License, Version 2.0 (the "License");</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// you may not use this file except in compliance with the License.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// You may obtain a copy of the License at</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span
class="comment">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// Unless required by applicable law or agreed to in writing, software</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">// distributed under the License is distributed on an "AS IS" BASIS,</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">// See the License for the specific language governing permissions and</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// limitations under the License</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>
0;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#ifndef __PROCESS_SUBPROCESS_HPP__</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#define __PROCESS_SUBPROCESS_HPP__</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include <map></span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include <memory></span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include <string></span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include <vector></span></div><div class="line"><a name="l00020"></a><
span class="lineno"> 20</span> </div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <<a class="code" href="future_8hpp.html">process/future.hpp</a>></span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <<a class="code" href="3rdparty_2stout_2include_2stout_2flags_8hpp.html">stout/flags.hpp</a>></span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <<a class="code" href="lambda_8hpp.html">stout/lambda.hpp</a>></span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <<a class="code" href="none_8hpp.html">stout/none.hpp</a>></span></div><div class="line"><a name="l00026"></a><span class="lineno">
26</span> <span class="preprocessor">#include <<a class="code" href="option_8hpp.html">stout/option.hpp</a>></span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <<a class="code" href="try_8hpp.html">stout/try.hpp</a>></span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> </div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include <<a class="code" href="shell_8hpp.html">stout/os/shell.hpp</a>></span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include <<a class="code" href="int__fd_8hpp.html">stout/os/int_fd.hpp</a>></span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> </div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div><div class="line"><a name=
"l00033"></a><span class="lineno"> 33</span> <span class="keyword">namespace </span><a class="code" href="namespaceprocess.html">process</a> {</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="classprocess_1_1Subprocess.html"> 43</a></span> <span class="keyword">class </span><a class="code" href="classprocess_1_1Subprocess.html">Subprocess</a></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> {</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <span class="comment">// Forward declarations.</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <span class="keyword">struct </span><a class="code" href="structprocess_1_1Subprocess_1
_1ParentHook.html">ParentHook</a>;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <span class="keyword">class </span><a class="code" href="classprocess_1_1Subprocess_1_1ChildHook.html">ChildHook</a>;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span> </div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="classprocess_1_1Subprocess_1_1IO.html"> 61</a></span>  <span class="keyword">class </span><a class="code" href="classprocess_1_1Subprocess_1_1IO.html">IO</a></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  {</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="keyword">public</span>:</div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors.html"> 73</a></span>  <span class="keyword">struct </span>
<a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors.html">InputFileDescriptors</a></div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  {</div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors.html#a0a3f315345ef7b7ee6f3f1d4d337854d"> 75</a></span>  <a class="code" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> <a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors.html#a0a3f315345ef7b7ee6f3f1d4d337854d">read</a> = -1;</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors.html#ab812da47364d793d9ec0471d3dc8c1bc"> 76</a></span>  <a class="code" href="classOption.html">Option<int_fd></a> <a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors.html#
ab812da47364d793d9ec0471d3dc8c1bc">write</a> = <a class="code" href="structNone.html">None</a>();</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  };</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span> </div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html"> 88</a></span>  <span class="keyword">struct </span><a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html">OutputFileDescriptors</a></div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  {</div><div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html#ac4af678c631a700d4be4410a250e3bce"> 90</a></span>  <a class="code" href="classOption.html">Option<int_fd></a> <a class="code" href="structpr
ocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors.html#a0a3f315345ef7b7ee6f3f1d4d337854d">read</a> = <a class="code" href="structNone.html">None</a>();</div><div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html#a5dabb8e3008efd61ce42478f260b54ac"> 91</a></span>  <a class="code" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> <a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors.html#ab812da47364d793d9ec0471d3dc8c1bc">write</a> = -1;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  };</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span> </div><div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="classprocess_1_1Subprocess_1_1IO.html#adb9433454d727de27b2440f729d19990"> 98</a></span>  <span class="keyword">enum</span> <a class="code"
href="classprocess_1_1Subprocess_1_1IO.html#adb9433454d727de27b2440f729d19990">FDType</a> {</div><div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="classprocess_1_1Subprocess_1_1IO.html#adb9433454d727de27b2440f729d19990af648d44b624da021da40a80190291380"> 103</a></span>  <a class="code" href="classprocess_1_1Subprocess_1_1IO.html#adb9433454d727de27b2440f729d19990af648d44b624da021da40a80190291380">DUPLICATED</a>,</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span> </div><div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="classprocess_1_1Subprocess_1_1IO.html#adb9433454d727de27b2440f729d19990ad3f73761156a6e75873cf903a0d62994"> 110</a></span>  <a class="code" href="classprocess_1_1Subprocess_1_1IO.html#adb9433454d727de27b2440f729d19990ad3f73761156a6e75873cf903a0d62994">OWNED</a></div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  };</div><
div class="line"><a name="l00112"></a><span class="lineno"> 112</span> </div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span> </div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <span class="keyword">private</span>:</div><div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="classprocess_1_1Subprocess_1_1IO.html#a3d12fd22e5deb76d3529ce4e6d9179dc"> 115</a></span>  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classprocess_1_1Subprocess.html">Subprocess</a>;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span> </div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <span class="keyword">friend</span> <a class="code" href="classTry.html">Try<Subprocess></a> <a class="code" href="classprocess_1_1Subprocess_1_1IO.html#afa34ca045f618704548708d7c5e5d82a">subprocess</a>(</di
v><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <span class="keyword">const</span> std::string& <a class="code" href="namespacepath.html">path</a>,</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  std::vector<std::string> argv,</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <span class="keyword">const</span> <a class="code" href="classprocess_1_1Subprocess_1_1IO.html">Subprocess::IO</a>& <a class="code" href="classprocess_1_1Subprocess.html#a60535054108d572796c25011c2aa379d">in</a>,</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <span class="keyword">const</span> <a class="code" href="classprocess_1_1Subprocess_1_1IO.html">Subprocess::IO</a>& <a class="code" href="classprocess_1_1Subprocess.html#a1c1a81931671b15c0c4b310bc49dea56">out</a>,</div><div class="line"><a name="l00122"></a><span class="lin
eno"> 122</span>  <span class="keyword">const</span> <a class="code" href="classprocess_1_1Subprocess_1_1IO.html">Subprocess::IO</a>& <a class="code" href="classprocess_1_1Subprocess.html#a98180558f1427a64a03cf3f656310bc4">err</a>,</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <span class="keyword">const</span> <a class="code" href="classflags_1_1FlagsBase.html">flags::FlagsBase</a>* <a class="code" href="namespaceflags.html">flags</a>,</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option</a><std::map<std::string, std::string>>& <a class="code" href="namespacemesos_1_1internal_1_1tests.html#a1396c5e3b0a179220de2792d74770ec2">environment</a>,</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <span class="keyword">const</span> <a class="code" href="c
lassOption.html">Option</a><lambda::function<</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ab03ced250ed239bc3b50b669493997f9">pid_t</a>(<span class="keyword">const</span> lambda::function<<span class="keywordtype">int</span>()>&)>>& <a class="code" href="namespacens.html#a98bf4d9e11d546326250997a6493f835">clone</a>,</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <span class="keyword">const</span> std::vector<Subprocess::ParentHook>& parent_hooks,</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <span class="keyword">const</span> std::vector<Subprocess::ChildHook>& child_hooks,</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <span class="keyword">const</span> std::vector<int_fd>& w
hitelist_fds);</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span> </div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  <a class="code" href="classprocess_1_1Subprocess_1_1IO.html">IO</a>(<span class="keyword">const</span> lambda::function<<a class="code" href="classTry.html">Try<InputFileDescriptors></a>()>& _input,</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <span class="keyword">const</span> lambda::function<<a class="code" href="classTry.html">Try<OutputFileDescriptors></a>()>& _output)</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  : input(_input),</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  output(_output) {}</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span> </div><div class="line"><a name="l00139"></a><span class="
lineno"> 139</span>  lambda::function<Try<InputFileDescriptors>()> input;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span> </div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  lambda::function<Try<OutputFileDescriptors>()> output;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  };</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span> </div><div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="structprocess_1_1Subprocess_1_1ParentHook.html"> 152</a></span>  <span class="keyword">struct </span><a class="code" href="structprocess_1_1Subprocess_1_1ParentHook.html">ParentHook</a></div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  {</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  <a class="code" href="structprocess_1_
1Subprocess_1_1ParentHook.html">ParentHook</a>(<span class="keyword">const</span> lambda::function<<a class="code" href="classTry.html">Try<Nothing></a>(<a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ab03ced250ed239bc3b50b669493997f9">pid_t</a>)>& _parent_setup);</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span> </div><div class="line"><a name="l00163"></a><span class="lineno"><a class="line" href="structprocess_1_1Subprocess_1_1ParentHook.html#aaf9ff141314d619cd65cd8ec9320fb7d"> 163</a></span>  <span class="keyword">const</span> lambda::function<Try<Nothing>(<a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ab03ced250ed239bc3b50b669493997f9">pid_t</a>)> parent_setup;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span> </div><div class="line"><a name="l00165"></a><span class="lineno"><a class="line" href="structprocess_1_1Subprocess_1_
1ParentHook.html#a3d12fd22e5deb76d3529ce4e6d9179dc"> 165</a></span>  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classprocess_1_1Subprocess.html">Subprocess</a>;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span> </div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span> <span class="preprocessor">#ifdef __WINDOWS__</span></div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span> </div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  <span class="keyword">static</span> <a class="code" href="structprocess_1_1Subprocess_1_1ParentHook.html">ParentHook</a> CREATE_JOB();</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span> <span class="preprocessor">#endif // __WINDOWS__</span></div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  };</div><div class="line"><
a name="l00179"></a><span class="lineno"> 179</span> </div><div class="line"><a name="l00190"></a><span class="lineno"><a class="line" href="classprocess_1_1Subprocess_1_1ChildHook.html"> 190</a></span>  <span class="keyword">class </span><a class="code" href="classprocess_1_1Subprocess_1_1ChildHook.html">ChildHook</a></div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  {</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  <span class="keyword">public</span>:</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  <span class="keyword">static</span> <a class="code" href="classprocess_1_1Subprocess_1_1ChildHook.html">ChildHook</a> CHDIR(<span class="keyword">const</span> std::string& working_directory);</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span> </div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span> 
<span class="keyword">static</span> <a class="code" href="classprocess_1_1Subprocess_1_1ChildHook.html">ChildHook</a> SETSID();</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span> </div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span> <span class="preprocessor">#ifndef __WINDOWS__</span></div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span> </div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  <span class="keyword">static</span> <a class="code" href="classprocess_1_1Subprocess_1_1ChildHook.html">ChildHook</a> DUP2(<span class="keywordtype">int</span> oldFd, <span class="keywordtype">int</span> newFd);</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span> </div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  <span class="keyword">static</span> <a class="code" href="classprocess_1_1Subprocess_1_1ChildH
ook.html">ChildHook</a> UNSET_CLOEXEC(<span class="keywordtype">int</span> fd);</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span> <span class="preprocessor">#endif // __WINDOWS__</span></div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span> </div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  <span class="keyword">static</span> <a class="code" href="classprocess_1_1Subprocess_1_1ChildHook.html">ChildHook</a> SUPERVISOR();</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span> </div><div class="line"><a name="l00226"></a><span class="lineno"><a class="line" href="classprocess_1_1Subprocess_1_1ChildHook.html#ae9a996c6b3aa1113709a3d5ceba37f2c"> 226</a></span>  <a class="code" href="classTry.html">Try<Nothing></a> <a class="code" href="classprocess_1_1Subprocess_1_1ChildHook.html#ae9a996c6b3aa1113709a3d5ceba37f2c">operator()</a>()<span class="keyword
"> const </span>{ <span class="keywordflow">return</span> child_setup(); }</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span> </div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  <span class="keyword">private</span>:</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  <a class="code" href="classprocess_1_1Subprocess_1_1ChildHook.html">ChildHook</a>(<span class="keyword">const</span> lambda::function<<a class="code" href="classTry.html">Try<Nothing></a>()>& _child_setup);</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span> </div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  <span class="keyword">const</span> lambda::function<Try<Nothing>()> child_setup;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  };</div><div class="line"><a name="l00233"></a><span cla
ss="lineno"> 233</span> </div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  <span class="comment">// Some syntactic sugar to create an IO::PIPE redirector.</span></div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  <span class="keyword">static</span> <a class="code" href="classprocess_1_1Subprocess_1_1IO.html">IO</a> <a class="code" href="classprocess_1_1Subprocess.html#a6af5024bd1932707893908fceb86ddad">PIPE</a>();</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  <span class="keyword">static</span> <a class="code" href="classprocess_1_1Subprocess_1_1IO.html">IO</a> <a class="code" href="classprocess_1_1Subprocess.html#a54793e9c516257d68776f63f0872c3c7">PATH</a>(<span class="keyword">const</span> std::string& path);</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  <span class="keyword">static</span> <a class="code" href="classprocess_1_
1Subprocess_1_1IO.html">IO</a> <a class="code" href="classprocess_1_1Subprocess.html#aaa6e1b76ef54ed6db34d595811122ce0">FD</a>(<a class="code" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> fd, <a class="code" href="classprocess_1_1Subprocess_1_1IO.html#adb9433454d727de27b2440f729d19990">IO::FDType</a> <a class="code" href="namespacemesos_1_1internal_1_1fs.html#a2343e2642db514496ba8380776487fba">type</a> = <a class="code" href="classprocess_1_1Subprocess_1_1IO.html#adb9433454d727de27b2440f729d19990af648d44b624da021da40a80190291380">IO::DUPLICATED</a>);</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span> </div><div class="line"><a name="l00242"></a><span class="lineno"><a class="line" href="classprocess_1_1Subprocess.html#ac3af3805968fc8b53e6c5a2a3cbdad2b"> 242</a></span>  <a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ab03ced250ed239bc3b50b669493997f9">pid_t</a> <a class="code" href="classprocess_
1_1Subprocess.html#ac3af3805968fc8b53e6c5a2a3cbdad2b">pid</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> data->pid; }</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span> </div><div class="line"><a name="l00249"></a><span class="lineno"><a class="line" href="classprocess_1_1Subprocess.html#a60535054108d572796c25011c2aa379d"> 249</a></span>  <a class="code" href="classOption.html">Option<int_fd></a> <a class="code" href="classprocess_1_1Subprocess.html#a60535054108d572796c25011c2aa379d">in</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  <span class="keywordflow">return</span> data->in;</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  }</div><div class="line"><a name="l0025
3"></a><span class="lineno"> 253</span> </div><div class="line"><a name="l00259"></a><span class="lineno"><a class="line" href="classprocess_1_1Subprocess.html#a1c1a81931671b15c0c4b310bc49dea56"> 259</a></span>  <a class="code" href="classOption.html">Option<int_fd></a> <a class="code" href="classprocess_1_1Subprocess.html#a1c1a81931671b15c0c4b310bc49dea56">out</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  <span class="keywordflow">return</span> data->out;</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  }</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span> </div><div class="line"><a name="l00269"></a><span class="lineno"><a class="line" href="classprocess_1_1Subprocess.html#a98180558f1427a64a03cf3f65
6310bc4"> 269</a></span>  <a class="code" href="classOption.html">Option<int_fd></a> <a class="code" href="classprocess_1_1Subprocess.html#a98180558f1427a64a03cf3f656310bc4">err</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  <span class="keywordflow">return</span> data->err;</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  }</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span> </div><div class="line"><a name="l00295"></a><span class="lineno"><a class="line" href="classprocess_1_1Subprocess.html#a3946c31d16c0625ea554d5216cd4fa3b"> 295</a></span>  <a class="code" href="classprocess_1_1Future.html">Future<Option<int></a>> <a class="code" href="classprocess_1_1Subprocess.html#a3946c31d16c0625ea
554d5216cd4fa3b">status</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> data->status; }</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span> </div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  <span class="keyword">friend</span> <a class="code" href="classTry.html">Try<Subprocess></a> <a class="code" href="classprocess_1_1Subprocess_1_1IO.html#afa34ca045f618704548708d7c5e5d82a">subprocess</a>(</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  <span class="keyword">const</span> std::string& path,</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  std::vector<std::string> argv,</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  <span cla
ss="keyword">const</span> <a class="code" href="classprocess_1_1Subprocess_1_1IO.html">Subprocess::IO</a>& in,</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  <span class="keyword">const</span> <a class="code" href="classprocess_1_1Subprocess_1_1IO.html">Subprocess::IO</a>& out,</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  <span class="keyword">const</span> <a class="code" href="classprocess_1_1Subprocess_1_1IO.html">Subprocess::IO</a>& err,</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  <span class="keyword">const</span> <a class="code" href="classflags_1_1FlagsBase.html">flags::FlagsBase</a>* flags,</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option</a><std::map<std::string, std::string>>& <a class="code" href=
"namespacemesos_1_1internal_1_1tests.html#a1396c5e3b0a179220de2792d74770ec2">environment</a>,</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option</a><lambda::function<</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  <a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ab03ced250ed239bc3b50b669493997f9">pid_t</a>(<span class="keyword">const</span> lambda::function<<span class="keywordtype">int</span>()>&)>>& <a class="code" href="namespacens.html#a98bf4d9e11d546326250997a6493f835">clone</a>,</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  <span class="keyword">const</span> std::vector<Subprocess::ParentHook>& parent_hooks,</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  <span class="keyw
ord">const</span> std::vector<Subprocess::ChildHook>& child_hooks,</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  <span class="keyword">const</span> std::vector<int_fd>& whitelist_fds);</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span> </div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  <span class="keyword">struct </span>Data</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  {</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  ~Data()</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  {</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  <span class="keywordflow">if</span> (in.isSome()) { <a class="code" href="namespaceos.html#a8df77ec6d6b8d32d9b287a41bc74cfdc">os::close</a>(in.get()); }</div><div class="line"><a
name="l00317"></a><span class="lineno"> 317</span>  <span class="keywordflow">if</span> (out.isSome()) { <a class="code" href="namespaceos.html#a8df77ec6d6b8d32d9b287a41bc74cfdc">os::close</a>(out.get()); }</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  <span class="keywordflow">if</span> (err.isSome()) { <a class="code" href="namespaceos.html#a8df77ec6d6b8d32d9b287a41bc74cfdc">os::close</a>(err.get()); }</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  }</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span> </div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  <a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ab03ced250ed239bc3b50b669493997f9">pid_t</a> <a class="code" href="classprocess_1_1Subprocess.html#ac3af3805968fc8b53e6c5a2a3cbdad2b">pid</a>;</div><div class="line"><a name="l00322"></a><span class="li
neno"> 322</span> </div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span> <span class="preprocessor">#ifdef __WINDOWS__</span></div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  <a class="code" href="classOption.html">Option<::internal::windows::ProcessData></a> process_data;</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span> <span class="preprocessor">#endif // __WINDOWS__</span></div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span> </div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  <span class="comment">// The parent side of the pipe for stdin/stdout/stderr. If the</span></div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  <span class="comment">// IO mode is not a pipe, `None` will be stored.</span></div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>
  <span class="comment">// NOTE: stdin, stdout, stderr are macros on some systems, hence</span></div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  <span class="comment">// these names instead.</span></div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>  <a class="code" href="classOption.html">Option<int_fd></a> <a class="code" href="classprocess_1_1Subprocess.html#a60535054108d572796c25011c2aa379d">in</a>;</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  <a class="code" href="classOption.html">Option<int_fd></a> <a class="code" href="classprocess_1_1Subprocess.html#a1c1a81931671b15c0c4b310bc49dea56">out</a>;</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  <a class="code" href="classOption.html">Option<int_fd></a> <a class="code" href="classprocess_1_1Subprocess.html#a98180558f1427a64a03cf3f656310bc4">err</a>;</div
><div class="line"><a name="l00334"></a><span class="lineno"> 334</span> </div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>  <a class="code" href="classprocess_1_1Future.html">Future<Option<int></a>> <a class="code" href="classprocess_1_1Subprocess.html#a3946c31d16c0625ea554d5216cd4fa3b">status</a>;</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  };</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span> </div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>  <a class="code" href="classprocess_1_1Subprocess_1_1IO.html#a3d12fd22e5deb76d3529ce4e6d9179dc">Subprocess</a>() : data(<span class="keyword">new</span> Data()) {}</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span> </div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  std::shared_ptr<Data> data;</div><div class="li
ne"><a name="l00341"></a><span class="lineno"> 341</span> };</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span> </div><div class="line"><a name="l00343"></a><span class="lineno"><a class="line" href="namespaceprocess.html#afc6611c4913642642277b44447a16e55"> 343</a></span> <span class="keyword">using</span> <a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors.html">InputFileDescriptors</a> = <a class="code" href="namespaceprocess.html#afc6611c4913642642277b44447a16e55">Subprocess::IO::InputFileDescriptors</a>;</div><div class="line"><a name="l00344"></a><span class="lineno"><a class="line" href="namespaceprocess.html#a882829822afa4f33b90aafc9c4ffa9af"> 344</a></span> <span class="keyword">using</span> <a class="code" href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html">OutputFileDescriptors</a> = <a class="code" href="namespaceprocess.html#a882829822afa4f33b90aafc9c4ffa9af">Subprocess::IO::
OutputFileDescriptors</a>;</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span> </div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span> <span class="comment">// TODO(jmlvanre): Consider removing default argument for</span></div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span> <span class="comment">// `parent_hooks` to force the caller to think about setting them.</span></div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span> <a class="code" href="classTry.html">Try<Subprocess></a> <a class="code" href="classprocess_1_1Subprocess_1_1IO.html#afa34ca045f618704548708d7c5e5d82a">subprocess</a>(</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  <span class="keyword">const</span> std::string& path,</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  std::vector<std::string> argv,</div><div c
lass="line"><a name="l00374"></a><span class="lineno"> 374</span>  <span class="keyword">const</span> <a class="code" href="classprocess_1_1Subprocess_1_1IO.html">Subprocess::IO</a>& in = <a class="code" href="classprocess_1_1Subprocess.html#aaa6e1b76ef54ed6db34d595811122ce0">Subprocess::FD</a>(<a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#afcf80a6d91178952d107ad00b165752b">STDIN_FILENO</a>),</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  <span class="keyword">const</span> <a class="code" href="classprocess_1_1Subprocess_1_1IO.html">Subprocess::IO</a>& out = <a class="code" href="classprocess_1_1Subprocess.html#aaa6e1b76ef54ed6db34d595811122ce0">Subprocess::FD</a>(<a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#abd165ee6474b5b75bf075842fff13a04">STDOUT_FILENO</a>),</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  <span class="keyword">con
st</span> <a class="code" href="classprocess_1_1Subprocess_1_1IO.html">Subprocess::IO</a>& err = <a class="code" href="classprocess_1_1Subprocess.html#aaa6e1b76ef54ed6db34d595811122ce0">Subprocess::FD</a>(<a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ae2fe1725bb5e9823d089c46b9ed5266e">STDERR_FILENO</a>),</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  <span class="keyword">const</span> <a class="code" href="classflags_1_1FlagsBase.html">flags::FlagsBase</a>* flags = <span class="keyword">nullptr</span>,</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option</a><std::map<std::string, std::string>>& <a class="code" href="namespacemesos_1_1internal_1_1tests.html#a1396c5e3b0a179220de2792d74770ec2">environment</a> = <a class="code" href="structNone.html">None</a>(),</div><div class="line"><a
name="l00379"></a><span class="lineno"> 379</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option</a><lambda::function<</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>  <a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ab03ced250ed239bc3b50b669493997f9">pid_t</a>(<span class="keyword">const</span> lambda::function<<span class="keywordtype">int</span>()>&)>>& <a class="code" href="namespacens.html#a98bf4d9e11d546326250997a6493f835">clone</a> = <a class="code" href="structNone.html">None</a>(),</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>  <span class="keyword">const</span> std::vector<Subprocess::ParentHook>& parent_hooks = {},</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  <span class="keyword">const</span> std::vector<Subprocess::ChildHook>& child_
hooks = {},</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>  <span class="keyword">const</span> std::vector<int_fd>& whitelist_fds = {});</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span> </div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span> </div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span> <span class="comment">// TODO(jmlvanre): Consider removing default argument for</span></div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span> <span class="comment">// `parent_hooks` to force the caller to think about setting them.</span></div><div class="line"><a name="l00410"></a><span class="lineno"><a class="line" href="namespaceprocess.html#a0a748c548ad3a094196c98f00f9674cf"> 410</a></span> <span class="keyword">inline</span> <a class="code" href="classTry.html">Try<Subprocess></a> <a class="code" href="classpr
ocess_1_1Subprocess_1_1IO.html#afa34ca045f618704548708d7c5e5d82a">subprocess</a>(</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  <span class="keyword">const</span> std::string& command,</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  <span class="keyword">const</span> <a class="code" href="classprocess_1_1Subprocess_1_1IO.html">Subprocess::IO</a>& in = <a class="code" href="classprocess_1_1Subprocess.html#aaa6e1b76ef54ed6db34d595811122ce0">Subprocess::FD</a>(<a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#afcf80a6d91178952d107ad00b165752b">STDIN_FILENO</a>),</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>  <span class="keyword">const</span> <a class="code" href="classprocess_1_1Subprocess_1_1IO.html">Subprocess::IO</a>& out = <a class="code" href="classprocess_1_1Subprocess.html#aaa6e1b76ef54ed6db34d595811122ce0">Subprocess::FD</a>
(<a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#abd165ee6474b5b75bf075842fff13a04">STDOUT_FILENO</a>),</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>  <span class="keyword">const</span> <a class="code" href="classprocess_1_1Subprocess_1_1IO.html">Subprocess::IO</a>& err = <a class="code" href="classprocess_1_1Subprocess.html#aaa6e1b76ef54ed6db34d595811122ce0">Subprocess::FD</a>(<a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ae2fe1725bb5e9823d089c46b9ed5266e">STDERR_FILENO</a>),</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option</a><std::map<std::string, std::string>>& <a class="code" href="namespacemesos_1_1internal_1_1tests.html#a1396c5e3b0a179220de2792d74770ec2">environment</a> = <a class="code" href="structNone.html">None</a>(),</div><div class="line"><a
name="l00416"></a><span class="lineno"> 416</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option</a><lambda::function<</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  <a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ab03ced250ed239bc3b50b669493997f9">pid_t</a>(<span class="keyword">const</span> lambda::function<<span class="keywordtype">int</span>()>&)>>& <a class="code" href="namespacens.html#a98bf4d9e11d546326250997a6493f835">clone</a> = <a class="code" href="structNone.html">None</a>(),</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  <span class="keyword">const</span> std::vector<Subprocess::ParentHook>& parent_hooks = {},</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>  <span class="keyword">const</span> std::vector<Subprocess::ChildHook>& child_h
ooks = {},</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>  <span class="keyword">const</span> std::vector<int_fd>& whitelist_fds = {})</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span> {</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>  std::vector<std::string> argv = {<a class="code" href="namespaceos_1_1Shell.html#adeacb41dacfa03ad5ceebd9a53582997">os::Shell::arg0</a>, <a class="code" href="namespaceos_1_1Shell.html#a44f50f66f2a231de974b53c9f4384ba5">os::Shell::arg1</a>, command};</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span> </div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  <span class="keywordflow">return</span> <a class="code" href="classprocess_1_1Subprocess_1_1IO.html#afa34ca045f618704548708d7c5e5d82a">subprocess</a>(</div><div class="line"><a name="l00425"></a><span class="lineno">
425</span>  <a class="code" href="namespaceos_1_1Shell.html#acfe16ef2b1146ad49a8651c0a457ce46">os::Shell::name</a>,</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>  argv,</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>  in,</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>  out,</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>  err,</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>  <span class="keyword">nullptr</span>,</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>  <a class="code" href="namespacemesos_1_1internal_1_1tests.html#a1396c5e3b0a179220de2792d74770ec2">environment</a>,</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>  <a class="code" href="namespacens.html#a98bf4d9e11d546326250997a6493f835">
clone</a>,</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>  parent_hooks,</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>  child_hooks,</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>  whitelist_fds);</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span> }</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span> </div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span> } <span class="comment">// namespace process {</span></div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span> </div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span> <span class="preprocessor">#endif // __PROCESS_SUBPROCESS_HPP__</span></div><div class="ttc" id="namespacepath_html"><div class="ttname"><a href="namespacepath.html">path</a></div><div class="ttdef"><b>D
efinition:</b> path.hpp:26</div></div>
+<div class="ttc" id="classprocess_1_1Subprocess_html_a60535054108d572796c25011c2aa379d"><div class="ttname"><a href="classprocess_1_1Subprocess.html#a60535054108d572796c25011c2aa379d">process::Subprocess::in</a></div><div class="ttdeci">Option< int_fd > in() const </div><div class="ttdef"><b>Definition:</b> subprocess.hpp:249</div></div>
+<div class="ttc" id="namespaceos_1_1Shell_html_a44f50f66f2a231de974b53c9f4384ba5"><div class="ttname"><a href="namespaceos_1_1Shell.html#a44f50f66f2a231de974b53c9f4384ba5">os::Shell::arg1</a></div><div class="ttdeci">constexpr const char * arg1</div><div class="ttdef"><b>Definition:</b> shell.hpp:45</div></div>
+<div class="ttc" id="classprocess_1_1Subprocess_1_1IO_html_a3d12fd22e5deb76d3529ce4e6d9179dc"><div class="ttname"><a href="classprocess_1_1Subprocess_1_1IO.html#a3d12fd22e5deb76d3529ce4e6d9179dc">process::Subprocess::IO::Subprocess</a></div><div class="ttdeci">friend class Subprocess</div><div class="ttdef"><b>Definition:</b> subprocess.hpp:115</div></div>
+<div class="ttc" id="classOption_html"><div class="ttname"><a href="classOption.html">Option< int_fd ></a></div></div>
+<div class="ttc" id="namespacens_html_a98bf4d9e11d546326250997a6493f835"><div class="ttname"><a href="namespacens.html#a98bf4d9e11d546326250997a6493f835">ns::clone</a></div><div class="ttdeci">Try< pid_t > clone(pid_t target, int nstypes, const lambda::function< int()> &f, int flags)</div><div class="ttdoc">Performs an os::clone after entering a set of namespaces for the specified target process...</div></div>
+<div class="ttc" id="namespaceprocess_html_a882829822afa4f33b90aafc9c4ffa9af"><div class="ttname"><a href="namespaceprocess.html#a882829822afa4f33b90aafc9c4ffa9af">process::OutputFileDescriptors</a></div><div class="ttdeci">Subprocess::IO::OutputFileDescriptors OutputFileDescriptors</div><div class="ttdef"><b>Definition:</b> subprocess.hpp:344</div></div>
+<div class="ttc" id="classprocess_1_1Subprocess_1_1ChildHook_html"><div class="ttname"><a href="classprocess_1_1Subprocess_1_1ChildHook.html">process::Subprocess::ChildHook</a></div><div class="ttdoc">A ChildHook can be passed to a subprocess call. </div><div class="ttdef"><b>Definition:</b> subprocess.hpp:190</div></div>
+<div class="ttc" id="classTry_html"><div class="ttname"><a href="classTry.html">Try</a></div><div class="ttdef"><b>Definition:</b> check.hpp:33</div></div>
+<div class="ttc" id="classprocess_1_1Subprocess_html_a54793e9c516257d68776f63f0872c3c7"><div class="ttname"><a href="classprocess_1_1Subprocess.html#a54793e9c516257d68776f63f0872c3c7">process::Subprocess::PATH</a></div><div class="ttdeci">static IO PATH(const std::string &path)</div></div>
+<div class="ttc" id="classprocess_1_1Subprocess_1_1IO_html_adb9433454d727de27b2440f729d19990ad3f73761156a6e75873cf903a0d62994"><div class="ttname"><a href="classprocess_1_1Subprocess_1_1IO.html#adb9433454d727de27b2440f729d19990ad3f73761156a6e75873cf903a0d62994">process::Subprocess::IO::OWNED</a></div><div class="ttdoc">The file descriptor is not duplicated before being passed to the subprocess. </div><div class="ttdef"><b>Definition:</b> subprocess.hpp:110</div></div>
+<div class="ttc" id="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors_html_a0a3f315345ef7b7ee6f3f1d4d337854d"><div class="ttname"><a href="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors.html#a0a3f315345ef7b7ee6f3f1d4d337854d">process::Subprocess::IO::InputFileDescriptors::read</a></div><div class="ttdeci">int_fd read</div><div class="ttdef"><b>Definition:</b> subprocess.hpp:75</div></div>
+<div class="ttc" id="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors_html"><div class="ttname"><a href="structprocess_1_1Subprocess_1_1IO_1_1OutputFileDescriptors.html">process::Subprocess::IO::OutputFileDescriptors</a></div><div class="ttdoc">For output file descriptors a child writes to the write file descriptor and a parent may read from th...</div><div class="ttdef"><b>Definition:</b> subprocess.hpp:88</div></div>
+<div class="ttc" id="none_8hpp_html"><div class="ttname"><a href="none_8hpp.html">none.hpp</a></div></div>
+<div class="ttc" id="classprocess_1_1Subprocess_html_ac3af3805968fc8b53e6c5a2a3cbdad2b"><div class="ttname"><a href="classprocess_1_1Subprocess.html#ac3af3805968fc8b53e6c5a2a3cbdad2b">process::Subprocess::pid</a></div><div class="ttdeci">pid_t pid() const </div><div class="ttdef"><b>Definition:</b> subprocess.hpp:242</div></div>
+<div class="ttc" id="3rdparty_2stout_2include_2stout_2windows_8hpp_html_ae2fe1725bb5e9823d089c46b9ed5266e"><div class="ttname"><a href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ae2fe1725bb5e9823d089c46b9ed5266e">STDERR_FILENO</a></div><div class="ttdeci">#define STDERR_FILENO</div><div class="ttdef"><b>Definition:</b> windows.hpp:155</div></div>
+<div class="ttc" id="lambda_8hpp_html"><div class="ttname"><a href="lambda_8hpp.html">lambda.hpp</a></div></div>
+<div class="ttc" id="namespaceprocess_html_afc6611c4913642642277b44447a16e55"><div class="ttname"><a href="namespaceprocess.html#afc6611c4913642642277b44447a16e55">process::InputFileDescriptors</a></div><div class="ttdeci">Subprocess::IO::InputFileDescriptors InputFileDescriptors</div><div class="ttdef"><b>Definition:</b> subprocess.hpp:343</div></div>
+<div class="ttc" id="namespaceos_1_1Shell_html_adeacb41dacfa03ad5ceebd9a53582997"><div class="ttname"><a href="namespaceos_1_1Shell.html#adeacb41dacfa03ad5ceebd9a53582997">os::Shell::arg0</a></div><div class="ttdeci">constexpr const char * arg0</div><div class="ttdef"><b>Definition:</b> shell.hpp:44</div></div>
+<div class="ttc" id="classprocess_1_1Subprocess_html"><div class="ttname"><a href="classprocess_1_1Subprocess.html">process::Subprocess</a></div><div class="ttdoc">Represents a fork() exec()ed subprocess. </div><div class="ttdef"><b>Definition:</b> subprocess.hpp:43</div></div>
+<div class="ttc" id="namespacemesos_1_1internal_1_1tests_html_a1396c5e3b0a179220de2792d74770ec2"><div class="ttname"><a href="namespacemesos_1_1internal_1_1tests.html#a1396c5e3b0a179220de2792d74770ec2">mesos::internal::tests::environment</a></div><div class="ttdeci">Environment * environment</div></div>
+<div class="ttc" id="3rdparty_2stout_2include_2stout_2windows_8hpp_html_ab03ced250ed239bc3b50b669493997f9"><div class="ttname"><a href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ab03ced250ed239bc3b50b669493997f9">pid_t</a></div><div class="ttdeci">DWORD pid_t</div><div class="ttdef"><b>Definition:</b> windows.hpp:181</div></div>
+<div class="ttc" id="classprocess_1_1Subprocess_html_aaa6e1b76ef54ed6db34d595811122ce0"><div class="ttname"><a href="classprocess_1_1Subprocess.html#aaa6e1b76ef54ed6db34d595811122ce0">process::Subprocess::FD</a></div><div class="ttdeci">static IO FD(int_fd fd, IO::FDType type=IO::DUPLICATED)</div></div>
+<div class="ttc" id="3rdparty_2stout_2include_2stout_2windows_8hpp_html_abd165ee6474b5b75bf075842fff13a04"><div class="ttname"><a href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#abd165ee6474b5b75bf075842fff13a04">STDOUT_FILENO</a></div><div class="ttdeci">#define STDOUT_FILENO</div><div class="ttdef"><b>Definition:</b> windows.hpp:154</div></div>
+<div class="ttc" id="classprocess_1_1Subprocess_html_a98180558f1427a64a03cf3f656310bc4"><div class="ttname"><a href="classprocess_1_1Subprocess.html#a98180558f1427a64a03cf3f656310bc4">process::Subprocess::err</a></div><div class="ttdeci">Option< int_fd > err() const </div><div class="ttdef"><b>Definition:</b> subprocess.hpp:269</div></div>
+<div class="ttc" id="namespaceos_html_a8df77ec6d6b8d32d9b287a41bc74cfdc"><div class="ttname"><a href="namespaceos.html#a8df77ec6d6b8d32d9b287a41bc74cfdc">os::close</a></div><div class="ttdeci">Try< Nothing > close(int fd)</div><div class="ttdef"><b>Definition:</b> close.hpp:24</div></div>
+<div class="ttc" id="classprocess_1_1Subprocess_1_1IO_html"><div class="ttname"><a href="classprocess_1_1Subprocess_1_1IO.html">process::Subprocess::IO</a></div><div class="ttdoc">Describes how the I/O is redirected for stdin/stdout/stderr. </div><div class="ttdef"><b>Definition:</b> subprocess.hpp:61</div></div>
+<div class="ttc" id="classflags_1_1FlagsBase_html"><div class="ttname"><a href="classflags_1_1FlagsBase.html">flags::FlagsBase</a></div><div class="ttdef"><b>Definition:</b> flags.hpp:44</div></div>
+<div class="ttc" id="3rdparty_2stout_2include_2stout_2flags_8hpp_html"><div class="ttname"><a href="3rdparty_2stout_2include_2stout_2flags_8hpp.html">flags.hpp</a></div></div>
+<div class="ttc" id="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors_html"><div class="ttname"><a href="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors.html">process::Subprocess::IO::InputFileDescriptors</a></div><div class="ttdoc">For input file descriptors a child reads from the read file descriptor and a parent may write to the ...</div><div class="ttdef"><b>Definition:</b> subprocess.hpp:73</div></div>
+<div class="ttc" id="classprocess_1_1Subprocess_1_1IO_html_adb9433454d727de27b2440f729d19990af648d44b624da021da40a80190291380"><div class="ttname"><a href="classprocess_1_1Subprocess_1_1IO.html#adb9433454d727de27b2440f729d19990af648d44b624da021da40a80190291380">process::Subprocess::IO::DUPLICATED</a></div><div class="ttdoc">The file descriptor is duplicated before being passed to the subprocess. </div><div class="ttdef"><b>Definition:</b> subprocess.hpp:103</div></div>
+<div class="ttc" id="option_8hpp_html"><div class="ttname"><a href="option_8hpp.html">option.hpp</a></div></div>
+<div class="ttc" id="3rdparty_2stout_2include_2stout_2windows_8hpp_html_afcf80a6d91178952d107ad00b165752b"><div class="ttname"><a href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#afcf80a6d91178952d107ad00b165752b">STDIN_FILENO</a></div><div class="ttdeci">#define STDIN_FILENO</div><div class="ttdef"><b>Definition:</b> windows.hpp:153</div></div>
+<div class="ttc" id="classprocess_1_1Subprocess_html_a1c1a81931671b15c0c4b310bc49dea56"><div class="ttname"><a href="classprocess_1_1Subprocess.html#a1c1a81931671b15c0c4b310bc49dea56">process::Subprocess::out</a></div><div class="ttdeci">Option< int_fd > out() const </div><div class="ttdef"><b>Definition:</b> subprocess.hpp:259</div></div>
+<div class="ttc" id="classprocess_1_1Subprocess_1_1IO_html_afa34ca045f618704548708d7c5e5d82a"><div class="ttname"><a href="classprocess_1_1Subprocess_1_1IO.html#afa34ca045f618704548708d7c5e5d82a">process::Subprocess::IO::subprocess</a></div><div class="ttdeci">friend Try< Subprocess > subprocess(const std::string &path, std::vector< std::string > argv, const Subprocess::IO &in, const Subprocess::IO &out, const Subprocess::IO &err, const flags::FlagsBase *flags, const Option< std::map< std::string, std::string >> &environment, const Option< lambda::function< pid_t(const lambda::function< int()> &)>> &clone, const std::vector< Subprocess::ParentHook > &parent_hooks, const std::vector< Subprocess::ChildHook > &child_hooks, const std::vector< int_fd > &whitelist_fds)</div></div>
+<div class="ttc" id="future_8hpp_html"><div class="ttname"><a href="future_8hpp.html">future.hpp</a></div></div>
+<div class="ttc" id="structNone_html"><div class="ttname"><a href="structNone.html">None</a></div><div class="ttdef"><b>Definition:</b> none.hpp:27</div></div>
+<div class="ttc" id="classprocess_1_1Subprocess_1_1IO_html_adb9433454d727de27b2440f729d19990"><div class="ttname"><a href="classprocess_1_1Subprocess_1_1IO.html#adb9433454d727de27b2440f729d19990">process::Subprocess::IO::FDType</a></div><div class="ttdeci">FDType</div><div class="ttdoc">Describes the lifecycle of a file descriptor passed into a subprocess via the Subprocess::FD helper...</div><div class="ttdef"><b>Definition:</b> subprocess.hpp:98</div></div>
+<div class="ttc" id="namespaceprocess_html"><div class="ttname"><a href="namespaceprocess.html">process</a></div><div class="ttdef"><b>Definition:</b> executor.hpp:48</div></div>
+<div class="ttc" id="try_8hpp_html"><div class="ttname"><a href="try_8hpp.html">try.hpp</a></div></div>
+<div class="ttc" id="int__fd_8hpp_html"><div class="ttname"><a href="int__fd_8hpp.html">int_fd.hpp</a></div></div>
+<div class="ttc" id="namespacemesos_1_1internal_1_1fs_html_a2343e2642db514496ba8380776487fba"><div class="ttname"><a href="namespacemesos_1_1internal_1_1fs.html#a2343e2642db514496ba8380776487fba">mesos::internal::fs::type</a></div><div class="ttdeci">Try< uint32_t > type(const std::string &path)</div></div>
+<div class="ttc" id="shell_8hpp_html"><div class="ttname"><a href="shell_8hpp.html">shell.hpp</a></div></div>
+<div class="ttc" id="classprocess_1_1Subprocess_html_a6af5024bd1932707893908fceb86ddad"><div class="ttname"><a href="classprocess_1_1Subprocess.html#a6af5024bd1932707893908fceb86ddad">process::Subprocess::PIPE</a></div><div class="ttdeci">static IO PIPE()</div></div>
+<div class="ttc" id="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors_html_ab812da47364d793d9ec0471d3dc8c1bc"><div class="ttname"><a href="structprocess_1_1Subprocess_1_1IO_1_1InputFileDescriptors.html#ab812da47364d793d9ec0471d3dc8c1bc">process::Subprocess::IO::InputFileDescriptors::write</a></div><div class="ttdeci">Option< int_fd > write</div><div class="ttdef"><b>Definition:</b> subprocess.hpp:76</div></div>
+<div class="ttc" id="structprocess_1_1Subprocess_1_1ParentHook_html"><div class="ttname"><a href="structprocess_1_1Subprocess_1_1ParentHook.html">process::Subprocess::ParentHook</a></div><div class="ttdoc">A hook can be passed to a subprocess call. </div><div class="ttdef"><b>Definition:</b> subprocess.hpp:152</div></div>
+<div class="ttc" id="int__fd_8hpp_html_aea4dbda01c90455f158ffa9b924c2f07"><div class="ttname"><a href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a></div><div class="ttdeci">int int_fd</div><div class="ttdef"><b>Definition:</b> int_fd.hpp:35</div></div>
+<div class="ttc" id="namespaceflags_html"><div class="ttname"><a href="namespaceflags.html">flags</a></div><div class="ttdef"><b>Definition:</b> parse.hpp:33</div></div>
+<div class="ttc" id="namespaceos_1_1Shell_html_acfe16ef2b1146ad49a8651c0a457ce46"><div class="ttname"><a href="namespaceos_1_1Shell.html#acfe16ef2b1146ad49a8651c0a457ce46">os::Shell::name</a></div><div class="ttdeci">constexpr const char * name</div><div class="ttdef"><b>Definition:</b> shell.hpp:43</div></div>
+<div class="ttc" id="classprocess_1_1Subprocess_html_a3946c31d16c0625ea554d5216cd4fa3b"><div class="ttname"><a href="classprocess_1_1Subprocess.html#a3946c31d16c0625ea554d5216cd4fa3b">process::Subprocess::status</a></div><div class="ttdeci">Future< Option< int > > status() const </div><div class="ttdoc">Exit status of this subprocess captured as a Future (completed when the subprocess exits)...</div><div class="ttdef"><b>Definition:</b> subprocess.hpp:295</div></div>
+<div class="ttc" id="classprocess_1_1Subprocess_1_1ChildHook_html_ae9a996c6b3aa1113709a3d5ceba37f2c"><div class="ttname"><a href="classprocess_1_1Subprocess_1_1ChildHook.html#ae9a996c6b3aa1113709a3d5ceba37f2c">process::Subprocess::ChildHook::operator()</a></div><div class="ttdeci">Try< Nothing > operator()() const </div><div class="ttdef"><b>Definition:</b> subprocess.hpp:226</div></div>
+<div class="ttc" id="classprocess_1_1Future_html"><div class="ttname"><a href="classprocess_1_1Future.html">process::Future</a></div><div class="ttdef"><b>Definition:</b> future.hpp:58</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.11
+</small></address>
+</body>
+</html>
[24/50] mesos-site git commit: Updated the website built from mesos
SHA: 7c9c72d.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/libprocess_2include_2process_2windows_2jobobject_8hpp.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/libprocess_2include_2process_2windows_2jobobject_8hpp.html b/content/api/latest/c++/libprocess_2include_2process_2windows_2jobobject_8hpp.html
index d0e3575..2e842c7 100644
--- a/content/api/latest/c++/libprocess_2include_2process_2windows_2jobobject_8hpp.html
+++ b/content/api/latest/c++/libprocess_2include_2process_2windows_2jobobject_8hpp.html
@@ -65,7 +65,7 @@
<code>#include <<a class="el" href="defer_8hpp_source.html">process/defer.hpp</a>></code><br />
<code>#include <<a class="el" href="future_8hpp_source.html">process/future.hpp</a>></code><br />
<code>#include <<a class="el" href="reap_8hpp_source.html">process/reap.hpp</a>></code><br />
-<code>#include <<a class="el" href="subprocess_8hpp_source.html">process/subprocess.hpp</a>></code><br />
+<code>#include <<a class="el" href="include_2process_2subprocess_8hpp_source.html">process/subprocess.hpp</a>></code><br />
<code>#include <<a class="el" href="libprocess_2include_2process_2process_8hpp_source.html">process/process.hpp</a>></code><br />
<code>#include <glog/logging.h></code><br />
</div>
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/libprocess_2include_2process_2windows_2jobobject_8hpp_source.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/libprocess_2include_2process_2windows_2jobobject_8hpp_source.html b/content/api/latest/c++/libprocess_2include_2process_2windows_2jobobject_8hpp_source.html
index 6d422ec..da77d47 100644
--- a/content/api/latest/c++/libprocess_2include_2process_2windows_2jobobject_8hpp_source.html
+++ b/content/api/latest/c++/libprocess_2include_2process_2windows_2jobobject_8hpp_source.html
@@ -52,13 +52,13 @@
<div class="title">jobobject.hpp</div> </div>
</div><!--header-->
<div class="contents">
-<a href="libprocess_2include_2process_2windows_2jobobject_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// Licensed under the Apache License, Version 2.0 (the "License");</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// you may not use this file except in compliance with the License.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// You may obtain a copy of the License at</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00006"></a><span class="lineno">
6</span> <span class="comment">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// Unless required by applicable law or agreed to in writing, software</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">// distributed under the License is distributed on an "AS IS" BASIS,</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">// See the License for the specific language governing permissions and</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// limitations under the License</span></div><div class="line"><a name="l00012"></a><span class="line
no"> 12</span> </div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#ifndef __PROCESS_WINDOWS_JOBOBJECT_HPP__</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#define __PROCESS_WINDOWS_JOBOBJECT_HPP__</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include <map></span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include <string></span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> </div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include <<a class="code" href="lambda_8hpp.html">stout/lambda.hpp</a>></span></div><div clas
s="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include <<a class="code" href="nothing_8hpp.html">stout/nothing.hpp</a>></span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <<a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html">stout/windows.hpp</a>></span> <span class="comment">// For `SharedHandle`.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <<a class="code" href="stout_2include_2stout_2os_2windows_2jobobject_8hpp.html">stout/os/windows/jobobject.hpp</a>></span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> </div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#inclu
de <<a class="code" href="defer_8hpp.html">process/defer.hpp</a>></span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include <<a class="code" href="future_8hpp.html">process/future.hpp</a>></span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <<a class="code" href="reap_8hpp.html">process/reap.hpp</a>></span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include <<a class="code" href="subprocess_8hpp.html">process/subprocess.hpp</a>></span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include <<a class="code" href="libprocess_2include_2process_2process_8hpp.html">process/process.hpp</a>></span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> </div><div
class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include <glog/logging.h></span> <span class="comment">// For `CHECK` macro.</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> </div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="keyword">namespace </span><a class="code" href="namespaceprocess.html">process</a> {</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="keyword">namespace </span><a class="code" href="namespaceinternal.html">internal</a> {</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> </div><div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="classprocess_1_1internal_1_1JobObjectManager.html"> 37</a></span> <span class="keyword">class </s
pan><a class="code" href="classprocess_1_1internal_1_1JobObjectManager.html">JobObjectManager</a> : <span class="keyword">public</span> <a class="code" href="classprocess_1_1Process.html">Process</a><JobObjectManager></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> {</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="classprocess_1_1internal_1_1JobObjectManager.html#abbd61e261fe0c9111f2df8af27f8f465"> 40</a></span>  <a class="code" href="classprocess_1_1internal_1_1JobObjectManager.html#abbd61e261fe0c9111f2df8af27f8f465">JobObjectManager</a>() : <a class="code" href="classprocess_1_1ProcessBase.html">ProcessBase</a>(<span class="stringliteral">"__job_object_manager"</span>) {}</div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="classproc
ess_1_1internal_1_1JobObjectManager.html#a1d7ed88d58a332060514091e8a7385d3"> 41</a></span>  <span class="keyword">virtual</span> <a class="code" href="classprocess_1_1internal_1_1JobObjectManager.html#a1d7ed88d58a332060514091e8a7385d3">~JobObjectManager</a>() {}</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="classprocess_1_1internal_1_1JobObjectManager.html#a96b0d960771d03b6682b20fd9f6142ea"> 43</a></span>  <span class="keywordtype">void</span> <a class="code" href="classprocess_1_1internal_1_1JobObjectManager.html#a96b0d960771d03b6682b20fd9f6142ea">manage</a>(</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <span class="keyword">const</span> <a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ab03ced250ed239bc3b50b669493997f9">pid_t</a> pid,</div><div class="line"><a name="l00045"></
a><span class="lineno"> 45</span>  <span class="keyword">const</span> std::wstring& <a class="code" href="namespaceos_1_1Shell.html#acfe16ef2b1146ad49a8651c0a457ce46">name</a>,</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <span class="keyword">const</span> <a class="code" href="classSharedHandle.html">SharedHandle</a>& handle)</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  {</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  jobs.emplace(pid, JobData{<a class="code" href="namespaceos_1_1Shell.html#acfe16ef2b1146ad49a8651c0a457ce46">name</a>, handle});</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span> </div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <a class="code" href="namespaceprocess.html#a8225ae5aa1b4963bb8413312282a91be">process::reap</a>(pid)</div><div class="line"><a na
me="l00051"></a><span class="lineno"> 51</span>  .<a class="code" href="classprocess_1_1Future.html#a71bde220aed3c725cef2040f63adf42a">onAny</a>(<a class="code" href="namespaceprocess.html#a8b27a2ef76eb133bf0ce7a5eea4fb77c">defer</a>(<span class="keyword">self</span>(), &<a class="code" href="namespacecgroups.html#a12d210f286e5fcf7993c0c90b9459606">Self::cleanup</a>, lambda::_1, pid));</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  }</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span> </div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="keyword">protected</span>:</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="classprocess_1_1internal_1_1JobObjectManager.html#adc672b14adbfe22f390c518457d60b2b"> 55</a></span>  <span class="keywordtype">void</span> <a class="code" href="classprocess_1_1internal_1_1JobObjectManag
er.html#adc672b14adbfe22f390c518457d60b2b">cleanup</a>(<a class="code" href="classprocess_1_1Future.html">Future</a><<a class="code" href="classOption.html">Option<int></a>> exit_code, <span class="keyword">const</span> <a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ab03ced250ed239bc3b50b669493997f9">pid_t</a> pid)</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  {</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  CHECK(!exit_code.isPending());</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  CHECK(!exit_code.isDiscarded());</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <a class="code" href="classTry.html">Try<Nothing></a> killJobResult = <a class="code" href="namespaceos.html#a8181969d159a69d91d1e265f1bb1ed
dc">os::kill_job</a>(jobs.at(pid).handle);</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  CHECK(!killJobResult.isError())</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  << <span class="stringliteral">"Failed to kill job object: "</span> << killJobResult.error();</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span> </div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <span class="comment">// Finally, erase the `JobData`, closing the last handle to the job object.</span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <span class="comment">// All functionality requiring a live job object handle (but possibly a</span></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <span class="comment">// dead process) must happen prior to this, e.g. in a ano
ther parent hook.</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  jobs.erase(pid);</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  }</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span> </div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="keyword">struct </span>JobData {</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  std::wstring <a class="code" href="namespaceos_1_1Shell.html#acfe16ef2b1146ad49a8651c0a457ce46">name</a>;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <a class="code" href="classSharedHandle.html">SharedHandle</a> handle;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  };</div><
div class="line"><a name="l00075"></a><span class="lineno"> 75</span> </div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  std::map<pid_t, JobData> jobs;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span> };</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span> </div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="comment">// Global job object manager process. Defined in `process.cpp`.</span></div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="keyword">extern</span> <a class="code" href="structprocess_1_1PID.html">PID<JobObjectManager></a> <a class="code" href="namespaceprocess_1_1internal.html#a05a2591dfe6a59e00bad2a5c9b6c8db3">job_object_manager</a>;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span> </div><div class="line"><a name="l00082"></a><span cl
ass="lineno"> 82</span> } <span class="comment">// namespace internal {</span></div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span> </div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="keyword">inline</span> <a class="code" href="structprocess_1_1Subprocess_1_1ParentHook.html">Subprocess::ParentHook</a> Subprocess::ParentHook::CREATE_JOB() {</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="keywordflow">return</span> <a class="code" href="structprocess_1_1Subprocess_1_1ParentHook.html">Subprocess::ParentHook</a>([](<a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ab03ced250ed239bc3b50b669493997f9">pid_t</a> pid) -> <a class="code" href="classTry.html">Try<Nothing></a> {</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <span class="comment">// NOTE: There are two very important parts to
this hook. First, Windows</span></div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="comment">// does not have a process hierarchy in the same sense that Unix does, so</span></div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <span class="comment">// in order to be able to kill a task, we have to put it in a job object.</span></div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <span class="comment">// Then, when we terminate the job object, it will terminate all the</span></div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <span class="comment">// processes in the task (including any processes that were subsequently</span></div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <span class="comment">// created by any process in this task). Second, the lifetime of the job</span></div><div class="line
"><a name="l00092"></a><span class="lineno"> 92</span>  <span class="comment">// object is greater than the lifetime of the processes it contains. Thus</span></div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <span class="comment">// the job object handle is explicitly owned by the global job object</span></div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <span class="comment">// manager process.</span></div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <a class="code" href="classTry.html">Try<std::wstring></a> <a class="code" href="namespaceos_1_1Shell.html#acfe16ef2b1146ad49a8651c0a457ce46">name</a> = <a class="code" href="namespaceos.html#a4c477c8086d4b3004c170ee05e5be9bf">os::name_job</a>(pid);</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <span class="keywordflow">if</span> (name.<a class="code" href="classTry.htm
l#a0b98f95163b8a38daafd1651b043a276">isError</a>()) {</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <span class="keywordflow">return</span> <a class="code" href="classError.html">Error</a>(name.<a class="code" href="classTry.html#aec4a11ddd3c036e889d90b7eb6258ba7">error</a>());</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  }</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span> </div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <span class="comment">// This creates a named job object in the Windows kernel.</span></div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <span class="comment">// This handle must remain in scope (and open) until</span></div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <span class="comment">// a running process is assigned to it.</span></di
v><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <a class="code" href="classTry.html">Try<SharedHandle></a> handle = <a class="code" href="namespaceos.html#a88a1637a0168d78faad2ac5b82e5cc4d">os::create_job</a>(name.<a class="code" href="classTry.html#a8bc7f43e75a47111ea18e9c83b007be5">get</a>());</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <span class="keywordflow">if</span> (handle.isError()) {</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <span class="keywordflow">return</span> <a class="code" href="classError.html">Error</a>(handle.error());</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  }</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span> </div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <span class="comment">// This actually assigns the process
`pid` to the job object.</span></div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <a class="code" href="classTry.html">Try<Nothing></a> result = <a class="code" href="namespaceos.html#a706dc9d1287978f358a9a23b77037fb0">os::assign_job</a>(handle.get(), pid);</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <span class="keywordflow">if</span> (result.isError()) {</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <span class="keywordflow">return</span> <a class="code" href="classError.html">Error</a>(result.error());</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  }</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span> </div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <span class="comment">// Save the handle to the job object to ensure the object remains</span></d
iv><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <span class="comment">// open for the entire lifetime of the agent process, and is closed</span></div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <span class="comment">// when the process is reaped.</span></div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <a class="code" href="namespaceprocess_1_1internal.html#ac34bccdf47fcfa46cedf2a03771eb221">dispatch</a>(</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <a class="code" href="namespaceprocess_1_1internal.html#a05a2591dfe6a59e00bad2a5c9b6c8db3">process::internal::job_object_manager</a>,</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  &<a class="code" href="classprocess_1_1internal_1_1JobObjectManager.html#a96b0d960771d03b6682b20fd9f6142ea">process::internal::JobObjectManager::manage</a>,</di
v><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  pid,</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  name.<a class="code" href="classTry.html#a8bc7f43e75a47111ea18e9c83b007be5">get</a>(),</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  handle.get());</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span> </div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <span class="keywordflow">return</span> <a class="code" href="structNothing.html">Nothing</a>();</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  });</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span> }</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span> </div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span> } <span class="co
mment">// namespace process {</span></div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span> </div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span> <span class="preprocessor">#endif // __PROCESS_WINDOWS_JOBOBJECT_HPP__</span></div><div class="ttc" id="structNothing_html"><div class="ttname"><a href="structNothing.html">Nothing</a></div><div class="ttdef"><b>Definition:</b> nothing.hpp:16</div></div>
+<a href="libprocess_2include_2process_2windows_2jobobject_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// Licensed under the Apache License, Version 2.0 (the "License");</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// you may not use this file except in compliance with the License.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// You may obtain a copy of the License at</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00006"></a><span class="lineno">
6</span> <span class="comment">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// Unless required by applicable law or agreed to in writing, software</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">// distributed under the License is distributed on an "AS IS" BASIS,</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">// See the License for the specific language governing permissions and</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// limitations under the License</span></div><div class="line"><a name="l00012"></a><span class="line
no"> 12</span> </div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#ifndef __PROCESS_WINDOWS_JOBOBJECT_HPP__</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#define __PROCESS_WINDOWS_JOBOBJECT_HPP__</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include <map></span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include <string></span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> </div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include <<a class="code" href="lambda_8hpp.html">stout/lambda.hpp</a>></span></div><div clas
s="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include <<a class="code" href="nothing_8hpp.html">stout/nothing.hpp</a>></span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <<a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html">stout/windows.hpp</a>></span> <span class="comment">// For `SharedHandle`.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <<a class="code" href="stout_2include_2stout_2os_2windows_2jobobject_8hpp.html">stout/os/windows/jobobject.hpp</a>></span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> </div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#inclu
de <<a class="code" href="defer_8hpp.html">process/defer.hpp</a>></span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include <<a class="code" href="future_8hpp.html">process/future.hpp</a>></span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <<a class="code" href="reap_8hpp.html">process/reap.hpp</a>></span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include <<a class="code" href="include_2process_2subprocess_8hpp.html">process/subprocess.hpp</a>></span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include <<a class="code" href="libprocess_2include_2process_2process_8hpp.html">process/process.hpp</a>></span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span
> </div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include <glog/logging.h></span> <span class="comment">// For `CHECK` macro.</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> </div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="keyword">namespace </span><a class="code" href="namespaceprocess.html">process</a> {</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="keyword">namespace </span><a class="code" href="namespaceinternal.html">internal</a> {</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> </div><div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="classprocess_1_1internal_1_1JobObjectManager.html"> 37</a></span> <span class="
keyword">class </span><a class="code" href="classprocess_1_1internal_1_1JobObjectManager.html">JobObjectManager</a> : <span class="keyword">public</span> <a class="code" href="classprocess_1_1Process.html">Process</a><JobObjectManager></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> {</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="classprocess_1_1internal_1_1JobObjectManager.html#abbd61e261fe0c9111f2df8af27f8f465"> 40</a></span>  <a class="code" href="classprocess_1_1internal_1_1JobObjectManager.html#abbd61e261fe0c9111f2df8af27f8f465">JobObjectManager</a>() : <a class="code" href="classprocess_1_1ProcessBase.html">ProcessBase</a>(<span class="stringliteral">"__job_object_manager"</span>) {}</div><div class="line"><a name="l00041"></a><span class="lineno"><a class="lin
e" href="classprocess_1_1internal_1_1JobObjectManager.html#a1d7ed88d58a332060514091e8a7385d3"> 41</a></span>  <span class="keyword">virtual</span> <a class="code" href="classprocess_1_1internal_1_1JobObjectManager.html#a1d7ed88d58a332060514091e8a7385d3">~JobObjectManager</a>() {}</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="classprocess_1_1internal_1_1JobObjectManager.html#a96b0d960771d03b6682b20fd9f6142ea"> 43</a></span>  <span class="keywordtype">void</span> <a class="code" href="classprocess_1_1internal_1_1JobObjectManager.html#a96b0d960771d03b6682b20fd9f6142ea">manage</a>(</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <span class="keyword">const</span> <a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ab03ced250ed239bc3b50b669493997f9">pid_t</a> pid,</div><div class="line"><
a name="l00045"></a><span class="lineno"> 45</span>  <span class="keyword">const</span> std::wstring& <a class="code" href="namespaceos_1_1Shell.html#acfe16ef2b1146ad49a8651c0a457ce46">name</a>,</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <span class="keyword">const</span> <a class="code" href="classSharedHandle.html">SharedHandle</a>& handle)</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  {</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  jobs.emplace(pid, JobData{<a class="code" href="namespaceos_1_1Shell.html#acfe16ef2b1146ad49a8651c0a457ce46">name</a>, handle});</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span> </div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <a class="code" href="namespaceprocess.html#a8225ae5aa1b4963bb8413312282a91be">process::reap</a>(pid)</div><div
class="line"><a name="l00051"></a><span class="lineno"> 51</span>  .<a class="code" href="classprocess_1_1Future.html#a71bde220aed3c725cef2040f63adf42a">onAny</a>(<a class="code" href="namespaceprocess.html#a8b27a2ef76eb133bf0ce7a5eea4fb77c">defer</a>(<span class="keyword">self</span>(), &<a class="code" href="namespacecgroups.html#a12d210f286e5fcf7993c0c90b9459606">Self::cleanup</a>, lambda::_1, pid));</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  }</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span> </div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="keyword">protected</span>:</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="classprocess_1_1internal_1_1JobObjectManager.html#adc672b14adbfe22f390c518457d60b2b"> 55</a></span>  <span class="keywordtype">void</span> <a class="code" href="classprocess_1_1internal
_1_1JobObjectManager.html#adc672b14adbfe22f390c518457d60b2b">cleanup</a>(<a class="code" href="classprocess_1_1Future.html">Future</a><<a class="code" href="classOption.html">Option<int></a>> exit_code, <span class="keyword">const</span> <a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ab03ced250ed239bc3b50b669493997f9">pid_t</a> pid)</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  {</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  CHECK(!exit_code.isPending());</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  CHECK(!exit_code.isDiscarded());</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <a class="code" href="classTry.html">Try<Nothing></a> killJobResult = <a class="code" href="namespaceos.html#a8181969d159a
69d91d1e265f1bb1eddc">os::kill_job</a>(jobs.at(pid).handle);</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  CHECK(!killJobResult.isError())</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  << <span class="stringliteral">"Failed to kill job object: "</span> << killJobResult.error();</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span> </div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <span class="comment">// Finally, erase the `JobData`, closing the last handle to the job object.</span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <span class="comment">// All functionality requiring a live job object handle (but possibly a</span></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <span class="comment">// dead process) must happen prior to t
his, e.g. in a another parent hook.</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  jobs.erase(pid);</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  }</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span> </div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="keyword">struct </span>JobData {</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  std::wstring <a class="code" href="namespaceos_1_1Shell.html#acfe16ef2b1146ad49a8651c0a457ce46">name</a>;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <a class="code" href="classSharedHandle.html">SharedHandle</a> handle;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span
>  };</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span> </div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  std::map<pid_t, JobData> jobs;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span> };</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span> </div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="comment">// Global job object manager process. Defined in `process.cpp`.</span></div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="keyword">extern</span> <a class="code" href="structprocess_1_1PID.html">PID<JobObjectManager></a> <a class="code" href="namespaceprocess_1_1internal.html#a05a2591dfe6a59e00bad2a5c9b6c8db3">job_object_manager</a>;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span> </div><div class="line"><a name="l0
0082"></a><span class="lineno"> 82</span> } <span class="comment">// namespace internal {</span></div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span> </div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="keyword">inline</span> <a class="code" href="structprocess_1_1Subprocess_1_1ParentHook.html">Subprocess::ParentHook</a> Subprocess::ParentHook::CREATE_JOB() {</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="keywordflow">return</span> <a class="code" href="structprocess_1_1Subprocess_1_1ParentHook.html">Subprocess::ParentHook</a>([](<a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#ab03ced250ed239bc3b50b669493997f9">pid_t</a> pid) -> <a class="code" href="classTry.html">Try<Nothing></a> {</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <span class="comment">// NOTE: There are two very i
mportant parts to this hook. First, Windows</span></div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="comment">// does not have a process hierarchy in the same sense that Unix does, so</span></div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <span class="comment">// in order to be able to kill a task, we have to put it in a job object.</span></div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <span class="comment">// Then, when we terminate the job object, it will terminate all the</span></div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <span class="comment">// processes in the task (including any processes that were subsequently</span></div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <span class="comment">// created by any process in this task). Second, the lifetime of the job</span></di
v><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  <span class="comment">// object is greater than the lifetime of the processes it contains. Thus</span></div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <span class="comment">// the job object handle is explicitly owned by the global job object</span></div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <span class="comment">// manager process.</span></div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <a class="code" href="classTry.html">Try<std::wstring></a> <a class="code" href="namespaceos_1_1Shell.html#acfe16ef2b1146ad49a8651c0a457ce46">name</a> = <a class="code" href="namespaceos.html#a4c477c8086d4b3004c170ee05e5be9bf">os::name_job</a>(pid);</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <span class="keywordflow">if</span> (name.<a class="code"
href="classTry.html#a0b98f95163b8a38daafd1651b043a276">isError</a>()) {</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <span class="keywordflow">return</span> <a class="code" href="classError.html">Error</a>(name.<a class="code" href="classTry.html#aec4a11ddd3c036e889d90b7eb6258ba7">error</a>());</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  }</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span> </div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <span class="comment">// This creates a named job object in the Windows kernel.</span></div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <span class="comment">// This handle must remain in scope (and open) until</span></div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <span class="comment">// a running process is assigned
to it.</span></div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <a class="code" href="classTry.html">Try<SharedHandle></a> handle = <a class="code" href="namespaceos.html#a88a1637a0168d78faad2ac5b82e5cc4d">os::create_job</a>(name.<a class="code" href="classTry.html#a8bc7f43e75a47111ea18e9c83b007be5">get</a>());</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <span class="keywordflow">if</span> (handle.isError()) {</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <span class="keywordflow">return</span> <a class="code" href="classError.html">Error</a>(handle.error());</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  }</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span> </div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <span class="comment">// This actually as
signs the process `pid` to the job object.</span></div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <a class="code" href="classTry.html">Try<Nothing></a> result = <a class="code" href="namespaceos.html#a706dc9d1287978f358a9a23b77037fb0">os::assign_job</a>(handle.get(), pid);</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <span class="keywordflow">if</span> (result.isError()) {</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <span class="keywordflow">return</span> <a class="code" href="classError.html">Error</a>(result.error());</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  }</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span> </div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <span class="comment">// Save the handle to the job object to ensure the object
remains</span></div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <span class="comment">// open for the entire lifetime of the agent process, and is closed</span></div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <span class="comment">// when the process is reaped.</span></div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <a class="code" href="namespaceprocess_1_1internal.html#ac34bccdf47fcfa46cedf2a03771eb221">dispatch</a>(</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <a class="code" href="namespaceprocess_1_1internal.html#a05a2591dfe6a59e00bad2a5c9b6c8db3">process::internal::job_object_manager</a>,</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  &<a class="code" href="classprocess_1_1internal_1_1JobObjectManager.html#a96b0d960771d03b6682b20fd9f6142ea">process::internal::JobObjectManage
r::manage</a>,</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  pid,</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  name.<a class="code" href="classTry.html#a8bc7f43e75a47111ea18e9c83b007be5">get</a>(),</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  handle.get());</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span> </div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <span class="keywordflow">return</span> <a class="code" href="structNothing.html">Nothing</a>();</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  });</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span> }</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span> </div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span> 
;} <span class="comment">// namespace process {</span></div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span> </div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span> <span class="preprocessor">#endif // __PROCESS_WINDOWS_JOBOBJECT_HPP__</span></div><div class="ttc" id="structNothing_html"><div class="ttname"><a href="structNothing.html">Nothing</a></div><div class="ttdef"><b>Definition:</b> nothing.hpp:16</div></div>
<div class="ttc" id="classError_html"><div class="ttname"><a href="classError.html">Error</a></div><div class="ttdef"><b>Definition:</b> errorbase.hpp:36</div></div>
<div class="ttc" id="classOption_html"><div class="ttname"><a href="classOption.html">Option< int ></a></div></div>
<div class="ttc" id="classTry_html_a8bc7f43e75a47111ea18e9c83b007be5"><div class="ttname"><a href="classTry.html#a8bc7f43e75a47111ea18e9c83b007be5">Try::get</a></div><div class="ttdeci">T & get()&</div><div class="ttdef"><b>Definition:</b> try.hpp:73</div></div>
<div class="ttc" id="classSharedHandle_html"><div class="ttname"><a href="classSharedHandle.html">SharedHandle</a></div><div class="ttdef"><b>Definition:</b> windows.hpp:72</div></div>
<div class="ttc" id="classTry_html"><div class="ttname"><a href="classTry.html">Try</a></div><div class="ttdef"><b>Definition:</b> check.hpp:33</div></div>
-<div class="ttc" id="subprocess_8hpp_html"><div class="ttname"><a href="subprocess_8hpp.html">subprocess.hpp</a></div></div>
+<div class="ttc" id="include_2process_2subprocess_8hpp_html"><div class="ttname"><a href="include_2process_2subprocess_8hpp.html">subprocess.hpp</a></div></div>
<div class="ttc" id="namespacecgroups_html_a12d210f286e5fcf7993c0c90b9459606"><div class="ttname"><a href="namespacecgroups.html#a12d210f286e5fcf7993c0c90b9459606">cgroups::cleanup</a></div><div class="ttdeci">process::Future< bool > cleanup(const std::string &hierarchy)</div></div>
<div class="ttc" id="classprocess_1_1internal_1_1JobObjectManager_html_adc672b14adbfe22f390c518457d60b2b"><div class="ttname"><a href="classprocess_1_1internal_1_1JobObjectManager.html#adc672b14adbfe22f390c518457d60b2b">process::internal::JobObjectManager::cleanup</a></div><div class="ttdeci">void cleanup(Future< Option< int >> exit_code, const pid_t pid)</div><div class="ttdef"><b>Definition:</b> jobobject.hpp:55</div></div>
<div class="ttc" id="classprocess_1_1ProcessBase_html"><div class="ttname"><a href="classprocess_1_1ProcessBase.html">process::ProcessBase</a></div><div class="ttdef"><b>Definition:</b> process.hpp:72</div></div>
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/libwinio_8hpp.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/libwinio_8hpp.html b/content/api/latest/c++/libwinio_8hpp.html
new file mode 100644
index 0000000..fd4dd7c
--- /dev/null
+++ b/content/api/latest/c++/libwinio_8hpp.html
@@ -0,0 +1,105 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.11"/>
+<title>Apache Mesos: 3rdparty/libprocess/src/windows/libwinio.hpp File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">Apache Mesos
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="pages.html"><span>Related Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li><a href="examples.html"><span>Examples</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ <li><a href="globals.html"><span>File Members</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_8cab8f464681f7cc51cee77e79a434cd.html">3rdparty</a></li><li class="navelem"><a class="el" href="dir_043a76de98701f9bddf61b5e98f305ff.html">libprocess</a></li><li class="navelem"><a class="el" href="dir_01cbbd8dcbf9de3825992568658f467e.html">src</a></li><li class="navelem"><a class="el" href="dir_4f303781ded361ff602a549327c53cc9.html">windows</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> |
+<a href="#namespaces">Namespaces</a> |
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">libwinio.hpp File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include <<a class="el" href="lambda_8hpp_source.html">stout/lambda.hpp</a>></code><br />
+<code>#include <<a class="el" href="try_8hpp_source.html">stout/try.hpp</a>></code><br />
+<code>#include <<a class="el" href="3rdparty_2stout_2include_2stout_2windows_8hpp_source.html">stout/windows.hpp</a>></code><br />
+<code>#include <<a class="el" href="int__fd_8hpp_source.html">stout/os/int_fd.hpp</a>></code><br />
+<code>#include <<a class="el" href="address_8hpp_source.html">process/address.hpp</a>></code><br />
+<code>#include <<a class="el" href="future_8hpp_source.html">process/future.hpp</a>></code><br />
+</div>
+<p><a href="libwinio_8hpp_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classprocess_1_1windows_1_1EventLoop.html">process::windows::EventLoop</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespaceprocess"><td class="memItemLeft" align="right" valign="top">  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceprocess.html">process</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:namespaceprocess_1_1windows"><td class="memItemLeft" align="right" valign="top">  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceprocess_1_1windows.html">process::windows</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a7436ed89e84ff3415987de0ca9428d08"><td class="memItemLeft" align="right" valign="top">Future< size_t > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceprocess_1_1windows.html#a7436ed89e84ff3415987de0ca9428d08">process::windows::read</a> (const <a class="el" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> &fd, void *buf, size_t size)</td></tr>
+<tr class="separator:a7436ed89e84ff3415987de0ca9428d08"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a69a29846581bb7bb1084e9ee90cbe8e6"><td class="memItemLeft" align="right" valign="top">Future< size_t > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceprocess_1_1windows.html#a69a29846581bb7bb1084e9ee90cbe8e6">process::windows::write</a> (const <a class="el" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> &fd, const void *buf, size_t size)</td></tr>
+<tr class="separator:a69a29846581bb7bb1084e9ee90cbe8e6"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a37fde6f31c2f9838a18cf83c2c865134"><td class="memItemLeft" align="right" valign="top">Future< size_t > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceprocess_1_1windows.html#a37fde6f31c2f9838a18cf83c2c865134">process::windows::recv</a> (const <a class="el" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> &fd, void *buf, size_t size)</td></tr>
+<tr class="separator:a37fde6f31c2f9838a18cf83c2c865134"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a04c64346155d34517acdf8b587162868"><td class="memItemLeft" align="right" valign="top">Future< size_t > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceprocess_1_1windows.html#a04c64346155d34517acdf8b587162868">process::windows::send</a> (const <a class="el" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> &fd, const void *buf, size_t size)</td></tr>
+<tr class="separator:a04c64346155d34517acdf8b587162868"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a1f34e4ee3092afe93c37c170430c03f5"><td class="memItemLeft" align="right" valign="top">Future< <a class="el" href="structNothing.html">Nothing</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceprocess_1_1windows.html#a1f34e4ee3092afe93c37c170430c03f5">process::windows::accept</a> (const <a class="el" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> &fd, const <a class="el" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> &accepted_socket)</td></tr>
+<tr class="separator:a1f34e4ee3092afe93c37c170430c03f5"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a5afdaeaeb57343d0aca728b74dcd3f71"><td class="memItemLeft" align="right" valign="top">Future< <a class="el" href="structNothing.html">Nothing</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceprocess_1_1windows.html#a5afdaeaeb57343d0aca728b74dcd3f71">process::windows::connect</a> (const <a class="el" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> &fd, const network::Address &address)</td></tr>
+<tr class="separator:a5afdaeaeb57343d0aca728b74dcd3f71"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:afc59f27e725b5feb12f76e1c008ba767"><td class="memItemLeft" align="right" valign="top">Future< size_t > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceprocess_1_1windows.html#afc59f27e725b5feb12f76e1c008ba767">process::windows::sendfile</a> (const <a class="el" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> &fd, const <a class="el" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a> &file_fd, off_t offset, size_t size)</td></tr>
+<tr class="separator:afc59f27e725b5feb12f76e1c008ba767"><td class="memSeparator" colspan="2"> </td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.11
+</small></address>
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/libwinio_8hpp_source.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/libwinio_8hpp_source.html b/content/api/latest/c++/libwinio_8hpp_source.html
new file mode 100644
index 0000000..1d49099
--- /dev/null
+++ b/content/api/latest/c++/libwinio_8hpp_source.html
@@ -0,0 +1,91 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.11"/>
+<title>Apache Mesos: 3rdparty/libprocess/src/windows/libwinio.hpp Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">Apache Mesos
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.11 -->
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="pages.html"><span>Related Pages</span></a></li>
+ <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li><a href="examples.html"><span>Examples</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ <li><a href="globals.html"><span>File Members</span></a></li>
+ </ul>
+ </div>
+<div id="nav-path" class="navpath">
+ <ul>
+<li class="navelem"><a class="el" href="dir_8cab8f464681f7cc51cee77e79a434cd.html">3rdparty</a></li><li class="navelem"><a class="el" href="dir_043a76de98701f9bddf61b5e98f305ff.html">libprocess</a></li><li class="navelem"><a class="el" href="dir_01cbbd8dcbf9de3825992568658f467e.html">src</a></li><li class="navelem"><a class="el" href="dir_4f303781ded361ff602a549327c53cc9.html">windows</a></li> </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">libwinio.hpp</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="libwinio_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// Licensed under the Apache License, Version 2.0 (the "License");</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// you may not use this file except in compliance with the License.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// You may obtain a copy of the License at</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">//</
span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// Unless required by applicable law or agreed to in writing, software</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">// distributed under the License is distributed on an "AS IS" BASIS,</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">// See the License for the specific language governing permissions and</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// limitations under the License</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> </div><div class="
line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#ifndef __LIBWINIO_HPP__</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#define __LIBWINIO_HPP__</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include <<a class="code" href="lambda_8hpp.html">stout/lambda.hpp</a>></span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include <<a class="code" href="try_8hpp.html">stout/try.hpp</a>></span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include <<a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html">stout/windows.hpp</a>></span></div><div class="line"><a name="
l00019"></a><span class="lineno"> 19</span> </div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include <<a class="code" href="int__fd_8hpp.html">stout/os/int_fd.hpp</a>></span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <<a class="code" href="address_8hpp.html">process/address.hpp</a>></span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <<a class="code" href="future_8hpp.html">process/future.hpp</a>></span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> </div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="keyword">namespace </span><a class="code" href="namespaceprocess.html">process</a> {</
div><div class="line"><a name="l00026"></a><span class="lineno"><a class="line" href="namespaceprocess_1_1windows.html"> 26</a></span> <span class="keyword">namespace </span>windows {</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div><div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="classprocess_1_1windows_1_1EventLoop.html"> 28</a></span> <span class="keyword">class </span><a class="code" href="classprocess_1_1windows_1_1EventLoop.html">EventLoop</a></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> {</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  <span class="keyword">static</span> <a class="code" href="classTry.html">Try<EventLoop*></a> <a class="code" href="classprocess_1_1windows_1_1EventLoop.html#a3b
d3da5d721cf2c4db9c5551bdccc3a4">create</a>();</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  <span class="comment">// Run the event loop forever.</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  <a class="code" href="classTry.html">Try<Nothing></a> <a class="code" href="classprocess_1_1windows_1_1EventLoop.html#a2578b5fad0eb039f995955c798310c86">run</a>();</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> </div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  <span class="comment">// Signal the event loop to stop.</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  <a class="code" href="classTry.html">Try<Nothing></a> <a class="code" href="classprocess_1_1windows_1_1EventLoop.html#a8a07fc602e31875e6cbcaeac8
008f09a">stop</a>();</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <span class="comment">// Timer event that calls the callback after the timer has fired.</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  <a class="code" href="classTry.html">Try<Nothing></a> <a class="code" href="classprocess_1_1windows_1_1EventLoop.html#a006cb0c8efb7aaadadf0a692d9c2659a">launchTimer</a>(</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <span class="keyword">const</span> <a class="code" href="classDuration.html">Duration</a>& duration, <span class="keyword">const</span> lambda::function<<span class="keywordtype">void</span>()>& callback);</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div><div class="line"><a name="l00043"></a><span class="l
ineno"> 43</span>  <span class="comment">// Register a handle for async IO.</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <a class="code" href="classTry.html">Try<Nothing></a> <a class="code" href="classprocess_1_1windows_1_1EventLoop.html#a832a73998bb3b26b7caa770ceef38827">registerHandle</a>(<span class="keyword">const</span> <a class="code" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a>& fd);</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <a class="code" href="classprocess_1_1windows_1_1EventLoop.html">EventLoop</a>(<a class="code" href="namespacerouting_1_1queueing_1_1ingress.html#a934208b6017d0a9aed90b6594bb8292f">HANDLE</a> iocp_handle);</div><div class=
"line"><a name="l00048"></a><span class="lineno"> 48</span> </div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <span class="comment">// Custom Deleter for a RAII handle.</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <span class="keyword">struct </span>HandleDeleter</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  {</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <span class="comment">// `HANDLE` satisfies the C++ `NullablePointer` interface, since it's</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="comment">// a literal pointer. So we can use the `HANDLE` directly instead of</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="comment">// using a pointer to the `HANDLE`.</span></div><div class="line"><a nam
e="l00055"></a><span class="lineno"> 55</span>  <span class="comment">// See http://en.cppreference.com/w/cpp/memory/unique_ptr for more info.</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <span class="keyword">typedef</span> <a class="code" href="namespacerouting_1_1queueing_1_1ingress.html#a934208b6017d0a9aed90b6594bb8292f">HANDLE</a> pointer;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <span class="keywordtype">void</span> operator()(<a class="code" href="namespacerouting_1_1queueing_1_1ingress.html#a934208b6017d0a9aed90b6594bb8292f">HANDLE</a> h) { ::CloseHandle(h); }</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  };</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span> </div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  std::unique_ptr<HANDLE, HandleDeleter> iocp_handle_;</
div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span> };</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span> </div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="comment">// All of these functions do an asynchronous IO operation. The returned future</span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="comment">// can be discarded to cancel the operation.</span></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <a class="code" href="classprocess_1_1Future.html">Future<size_t></a> <a class="code" href="namespaceprocess_1_1windows.html#a7436ed89e84ff3415987de0ca9428d08">read</a>(<span class="keyword">const</span> <a class="code" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a>& fd, <span cl
ass="keywordtype">void</span>* buf, <span class="keywordtype">size_t</span> <a class="code" href="namespaceos_1_1stat.html#a7a116891923bc8b5d8c50f78da8657be">size</a>);</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span> </div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <a class="code" href="classprocess_1_1Future.html">Future<size_t></a> <a class="code" href="namespaceprocess_1_1windows.html#a69a29846581bb7bb1084e9ee90cbe8e6">write</a>(<span class="keyword">const</span> <a class="code" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a>& fd, <span class="keyword">const</span> <span class="keywordtype">void</span>* buf, <span class="keywordtype">size_t</span> size);</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span> </div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="comment">// Socket only functions.</span></div><d
iv class="line"><a name="l00071"></a><span class="lineno"> 71</span> <a class="code" href="classprocess_1_1Future.html">Future<size_t></a> <a class="code" href="namespaceprocess_1_1windows.html#a37fde6f31c2f9838a18cf83c2c865134">recv</a>(<span class="keyword">const</span> <a class="code" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a>& fd, <span class="keywordtype">void</span>* buf, <span class="keywordtype">size_t</span> size);</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span> </div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <a class="code" href="classprocess_1_1Future.html">Future<size_t></a> <a class="code" href="namespaceprocess_1_1windows.html#a04c64346155d34517acdf8b587162868">send</a>(<span class="keyword">const</span> <a class="code" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a>& fd, <span class="keyword">const</span> <span class="keywo
rdtype">void</span>* buf, <span class="keywordtype">size_t</span> size);</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span> </div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span> <a class="code" href="classprocess_1_1Future.html">Future<Nothing></a> <a class="code" href="namespaceprocess_1_1windows.html#a1f34e4ee3092afe93c37c170430c03f5">accept</a>(<span class="keyword">const</span> <a class="code" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a>& fd, <span class="keyword">const</span> <a class="code" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a>& accepted_socket);</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span> </div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <a class="code" href="classprocess_1_1Future.html">Future<Nothing></a> <a class="code" href="namespaceprocess_1_1windows.html#a5afda
eaeb57343d0aca728b74dcd3f71">connect</a>(<span class="keyword">const</span> <a class="code" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a>& fd, <span class="keyword">const</span> <a class="code" href="classprocess_1_1network_1_1Address.html">network::Address</a>& <a class="code" href="namespaceprocess.html#afdecc57ab065ab5d354e728d0ef0ff34">address</a>);</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span> </div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <a class="code" href="classprocess_1_1Future.html">Future<size_t></a> <a class="code" href="namespaceprocess_1_1windows.html#afc59f27e725b5feb12f76e1c008ba767">sendfile</a>(</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="keyword">const</span> <a class="code" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a>& fd, <span class="keyword">const</span> <a class="
code" href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a>& file_fd, off_t offset, <span class="keywordtype">size_t</span> size);</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span> </div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span> } <span class="comment">// namespace windows {</span></div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span> } <span class="comment">// namespace process {</span></div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span> </div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="preprocessor">#endif // __LIBWINIO_HPP__</span></div><div class="ttc" id="namespaceos_1_1stat_html_a7a116891923bc8b5d8c50f78da8657be"><div class="ttname"><a href="namespaceos_1_1stat.html#a7a116891923bc8b5d8c50f78da8657be">os::stat::size</a></div><div class="ttdeci">Try< Bytes > size(const std::string
&path, const FollowSymlink follow=FollowSymlink::FOLLOW_SYMLINK)</div><div class="ttdef"><b>Definition:</b> stat.hpp:121</div></div>
+<div class="ttc" id="address_8hpp_html"><div class="ttname"><a href="address_8hpp.html">address.hpp</a></div></div>
+<div class="ttc" id="classTry_html"><div class="ttname"><a href="classTry.html">Try</a></div><div class="ttdef"><b>Definition:</b> check.hpp:33</div></div>
+<div class="ttc" id="namespaceprocess_1_1windows_html_a1f34e4ee3092afe93c37c170430c03f5"><div class="ttname"><a href="namespaceprocess_1_1windows.html#a1f34e4ee3092afe93c37c170430c03f5">process::windows::accept</a></div><div class="ttdeci">Future< Nothing > accept(const int_fd &fd, const int_fd &accepted_socket)</div></div>
+<div class="ttc" id="classprocess_1_1windows_1_1EventLoop_html_a832a73998bb3b26b7caa770ceef38827"><div class="ttname"><a href="classprocess_1_1windows_1_1EventLoop.html#a832a73998bb3b26b7caa770ceef38827">process::windows::EventLoop::registerHandle</a></div><div class="ttdeci">Try< Nothing > registerHandle(const int_fd &fd)</div></div>
+<div class="ttc" id="classprocess_1_1network_1_1Address_html"><div class="ttname"><a href="classprocess_1_1network_1_1Address.html">process::network::Address</a></div><div class="ttdef"><b>Definition:</b> address.hpp:276</div></div>
+<div class="ttc" id="namespaceprocess_1_1windows_html_afc59f27e725b5feb12f76e1c008ba767"><div class="ttname"><a href="namespaceprocess_1_1windows.html#afc59f27e725b5feb12f76e1c008ba767">process::windows::sendfile</a></div><div class="ttdeci">Future< size_t > sendfile(const int_fd &fd, const int_fd &file_fd, off_t offset, size_t size)</div><div class="ttdef"><b>Definition:</b> sendfile.hpp:58</div></div>
+<div class="ttc" id="namespaceprocess_1_1windows_html_a37fde6f31c2f9838a18cf83c2c865134"><div class="ttname"><a href="namespaceprocess_1_1windows.html#a37fde6f31c2f9838a18cf83c2c865134">process::windows::recv</a></div><div class="ttdeci">Future< size_t > recv(const int_fd &fd, void *buf, size_t size)</div></div>
+<div class="ttc" id="classprocess_1_1windows_1_1EventLoop_html_a3bd3da5d721cf2c4db9c5551bdccc3a4"><div class="ttname"><a href="classprocess_1_1windows_1_1EventLoop.html#a3bd3da5d721cf2c4db9c5551bdccc3a4">process::windows::EventLoop::create</a></div><div class="ttdeci">static Try< EventLoop * > create()</div></div>
+<div class="ttc" id="3rdparty_2stout_2include_2stout_2windows_8hpp_html"><div class="ttname"><a href="3rdparty_2stout_2include_2stout_2windows_8hpp.html">windows.hpp</a></div></div>
+<div class="ttc" id="classDuration_html"><div class="ttname"><a href="classDuration.html">Duration</a></div><div class="ttdef"><b>Definition:</b> duration.hpp:32</div></div>
+<div class="ttc" id="classprocess_1_1windows_1_1EventLoop_html_a2578b5fad0eb039f995955c798310c86"><div class="ttname"><a href="classprocess_1_1windows_1_1EventLoop.html#a2578b5fad0eb039f995955c798310c86">process::windows::EventLoop::run</a></div><div class="ttdeci">Try< Nothing > run()</div></div>
+<div class="ttc" id="namespaceprocess_1_1windows_html_a69a29846581bb7bb1084e9ee90cbe8e6"><div class="ttname"><a href="namespaceprocess_1_1windows.html#a69a29846581bb7bb1084e9ee90cbe8e6">process::windows::write</a></div><div class="ttdeci">Future< size_t > write(const int_fd &fd, const void *buf, size_t size)</div><div class="ttdef"><b>Definition:</b> write.hpp:72</div></div>
+<div class="ttc" id="lambda_8hpp_html"><div class="ttname"><a href="lambda_8hpp.html">lambda.hpp</a></div></div>
+<div class="ttc" id="classprocess_1_1windows_1_1EventLoop_html_a006cb0c8efb7aaadadf0a692d9c2659a"><div class="ttname"><a href="classprocess_1_1windows_1_1EventLoop.html#a006cb0c8efb7aaadadf0a692d9c2659a">process::windows::EventLoop::launchTimer</a></div><div class="ttdeci">Try< Nothing > launchTimer(const Duration &duration, const lambda::function< void()> &callback)</div></div>
+<div class="ttc" id="namespaceprocess_1_1windows_html_a7436ed89e84ff3415987de0ca9428d08"><div class="ttname"><a href="namespaceprocess_1_1windows.html#a7436ed89e84ff3415987de0ca9428d08">process::windows::read</a></div><div class="ttdeci">Future< size_t > read(const int_fd &fd, void *buf, size_t size)</div><div class="ttdef"><b>Definition:</b> read.hpp:83</div></div>
+<div class="ttc" id="namespacerouting_1_1queueing_1_1ingress_html_a934208b6017d0a9aed90b6594bb8292f"><div class="ttname"><a href="namespacerouting_1_1queueing_1_1ingress.html#a934208b6017d0a9aed90b6594bb8292f">routing::queueing::ingress::HANDLE</a></div><div class="ttdeci">constexpr Handle HANDLE</div><div class="ttdef"><b>Definition:</b> ingress.hpp:37</div></div>
+<div class="ttc" id="future_8hpp_html"><div class="ttname"><a href="future_8hpp.html">future.hpp</a></div></div>
+<div class="ttc" id="namespaceprocess_html"><div class="ttname"><a href="namespaceprocess.html">process</a></div><div class="ttdef"><b>Definition:</b> executor.hpp:48</div></div>
+<div class="ttc" id="classprocess_1_1windows_1_1EventLoop_html_a8a07fc602e31875e6cbcaeac8008f09a"><div class="ttname"><a href="classprocess_1_1windows_1_1EventLoop.html#a8a07fc602e31875e6cbcaeac8008f09a">process::windows::EventLoop::stop</a></div><div class="ttdeci">Try< Nothing > stop()</div></div>
+<div class="ttc" id="try_8hpp_html"><div class="ttname"><a href="try_8hpp.html">try.hpp</a></div></div>
+<div class="ttc" id="int__fd_8hpp_html"><div class="ttname"><a href="int__fd_8hpp.html">int_fd.hpp</a></div></div>
+<div class="ttc" id="namespaceprocess_html_afdecc57ab065ab5d354e728d0ef0ff34"><div class="ttname"><a href="namespaceprocess.html#afdecc57ab065ab5d354e728d0ef0ff34">process::address</a></div><div class="ttdeci">network::inet::Address address()</div><div class="ttdoc">Returns the socket address associated with this instance of the library. </div></div>
+<div class="ttc" id="classprocess_1_1windows_1_1EventLoop_html"><div class="ttname"><a href="classprocess_1_1windows_1_1EventLoop.html">process::windows::EventLoop</a></div><div class="ttdef"><b>Definition:</b> libwinio.hpp:28</div></div>
+<div class="ttc" id="int__fd_8hpp_html_aea4dbda01c90455f158ffa9b924c2f07"><div class="ttname"><a href="int__fd_8hpp.html#aea4dbda01c90455f158ffa9b924c2f07">int_fd</a></div><div class="ttdeci">int int_fd</div><div class="ttdef"><b>Definition:</b> int_fd.hpp:35</div></div>
+<div class="ttc" id="namespaceprocess_1_1windows_html_a5afdaeaeb57343d0aca728b74dcd3f71"><div class="ttname"><a href="namespaceprocess_1_1windows.html#a5afdaeaeb57343d0aca728b74dcd3f71">process::windows::connect</a></div><div class="ttdeci">Future< Nothing > connect(const int_fd &fd, const network::Address &address)</div></div>
+<div class="ttc" id="classprocess_1_1Future_html"><div class="ttname"><a href="classprocess_1_1Future.html">process::Future< size_t ></a></div></div>
+<div class="ttc" id="namespaceprocess_1_1windows_html_a04c64346155d34517acdf8b587162868"><div class="ttname"><a href="namespaceprocess_1_1windows.html#a04c64346155d34517acdf8b587162868">process::windows::send</a></div><div class="ttdeci">Future< size_t > send(const int_fd &fd, const void *buf, size_t size)</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by  <a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.11
+</small></address>
+</body>
+</html>
[30/50] mesos-site git commit: Updated the website built from mesos
SHA: 7c9c72d.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/index.hhc
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/index.hhc b/content/api/latest/c++/index.hhc
index 31630ad..73e4188 100644
--- a/content/api/latest/c++/index.hhc
+++ b/content/api/latest/c++/index.hhc
@@ -400,7 +400,10 @@
<LI><OBJECT type="text/sitemap"><param name="Name" value="ID"><param name="Local" value="namespaceprocess_1_1ID.html"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="inject"><param name="Local" value="namespaceprocess_1_1inject.html"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="internal"><param name="Local" value="namespaceprocess_1_1internal.html"><param name="ImageNumber" value="11"></OBJECT>
- <LI><OBJECT type="text/sitemap"><param name="Name" value="io"><param name="Local" value="namespaceprocess_1_1io.html"><param name="ImageNumber" value="11"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="io"><param name="Local" value="namespaceprocess_1_1io.html"><param name="ImageNumber" value="1"></OBJECT>
+ <UL>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="internal"><param name="Local" value="namespaceprocess_1_1io_1_1internal.html"><param name="ImageNumber" value="11"></OBJECT>
+ </UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="metrics"><param name="Local" value="namespaceprocess_1_1metrics.html"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="internal"><param name="Local" value="namespaceprocess_1_1metrics_1_1internal.html"><param name="ImageNumber" value="11"></OBJECT>
@@ -415,6 +418,7 @@
<LI><OBJECT type="text/sitemap"><param name="Name" value="openssl"><param name="Local" value="namespaceprocess_1_1network_1_1openssl.html"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="unix"><param name="Local" value="namespaceprocess_1_1network_1_1unix.html"><param name="ImageNumber" value="11"></OBJECT>
</UL>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="windows"><param name="Local" value="namespaceprocess_1_1windows.html"><param name="ImageNumber" value="11"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="protobuf"><param name="Local" value="namespaceprotobuf.html"><param name="ImageNumber" value="1"></OBJECT>
<UL>
@@ -6157,7 +6161,9 @@
<LI><OBJECT type="text/sitemap"><param name="Name" value="WindowsFD"><param name="Local" value="classos_1_1WindowsFD.html#a3436f11ccbb859379717ac91e96f7144"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="WindowsFD"><param name="Local" value="classos_1_1WindowsFD.html#a79c98e3c78c0a7155a8ed9f42832fd5d"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="~WindowsFD"><param name="Local" value="classos_1_1WindowsFD.html#ad2ce21d9f77710472e19843e3e86343e"><param name="ImageNumber" value="11"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="assign_iocp"><param name="Local" value="classos_1_1WindowsFD.html#a1a9c96c20213e1b94ba8dcc1bb059163"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="crt"><param name="Local" value="classos_1_1WindowsFD.html#a94b69cae4edb8f3549845fbfa0355b7c"><param name="ImageNumber" value="11"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="get_iocp"><param name="Local" value="classos_1_1WindowsFD.html#a380eb8d9b7bc0e6b3bfae0e8e9c6bb0f"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="is_overlapped"><param name="Local" value="classos_1_1WindowsFD.html#a4dce5dbc3d019589b4b61d6d17e1da45"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="is_valid"><param name="Local" value="classos_1_1WindowsFD.html#ab961444eec07c587c9a67122daf4fd33"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="operator HANDLE"><param name="Local" value="classos_1_1WindowsFD.html#a8ba56c5251264ab13aeaaa34cde39bdb"><param name="ImageNumber" value="11"></OBJECT>
@@ -6166,6 +6172,7 @@
<LI><OBJECT type="text/sitemap"><param name="Name" value="operator="><param name="Local" value="classos_1_1WindowsFD.html#ab780d87119c772425aa855260056d1a1"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="operator="><param name="Local" value="classos_1_1WindowsFD.html#a057780cfa5e1cc2fa84543a6f9b6bca0"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="type"><param name="Local" value="classos_1_1WindowsFD.html#a3ce17a730ace5352a1fc6d49f8336d52"><param name="ImageNumber" value="11"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="dup"><param name="Local" value="classos_1_1WindowsFD.html#ae8d4fd38b52ea9f38605f46195fd040b"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="operator!="><param name="Local" value="classos_1_1WindowsFD.html#a342803d2a16f81ca20f0e0c1c2e598d0"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="operator!="><param name="Local" value="classos_1_1WindowsFD.html#ab72f13c82b5f2fb8a646c5d0d50736e7"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="operator<"><param name="Local" value="classos_1_1WindowsFD.html#a64a9d1d43e26808ec565056c183ae56f"><param name="ImageNumber" value="11"></OBJECT>
@@ -6646,6 +6653,9 @@
<LI><OBJECT type="text/sitemap"><param name="Name" value="type"><param name="Local" value="structprocess_1_1internal_1_1wrap_3_01Future_3_01X_01_4_01_4.html#a4d8096a41c5c51b168a4bac851ae065e"><param name="ImageNumber" value="11"></OBJECT>
</UL>
</UL>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="io"><param name="Local" value="namespaceprocess_1_1io.html"><param name="ImageNumber" value="1"></OBJECT>
+ <UL>
+ </UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="metrics"><param name="Local" value="namespaceprocess_1_1metrics.html"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="internal"><param name="Local" value="namespaceprocess_1_1metrics_1_1internal.html"><param name="ImageNumber" value="1"></OBJECT>
@@ -6853,6 +6863,16 @@
<LI><OBJECT type="text/sitemap"><param name="Name" value="size"><param name="Local" value="classprocess_1_1network_1_1Address.html#a0008f4285e960406a0e2e6ec96f875ad"><param name="ImageNumber" value="11"></OBJECT>
</UL>
</UL>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="windows"><param name="Local" value="namespaceprocess_1_1windows.html"><param name="ImageNumber" value="1"></OBJECT>
+ <UL>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="EventLoop"><param name="Local" value="classprocess_1_1windows_1_1EventLoop.html"><param name="ImageNumber" value="1"></OBJECT>
+ <UL>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="launchTimer"><param name="Local" value="classprocess_1_1windows_1_1EventLoop.html#a006cb0c8efb7aaadadf0a692d9c2659a"><param name="ImageNumber" value="11"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="registerHandle"><param name="Local" value="classprocess_1_1windows_1_1EventLoop.html#a832a73998bb3b26b7caa770ceef38827"><param name="ImageNumber" value="11"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="run"><param name="Local" value="classprocess_1_1windows_1_1EventLoop.html#a2578b5fad0eb039f995955c798310c86"><param name="ImageNumber" value="11"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="stop"><param name="Local" value="classprocess_1_1windows_1_1EventLoop.html#a8a07fc602e31875e6cbcaeac8008f09a"><param name="ImageNumber" value="11"></OBJECT>
+ </UL>
+ </UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="_Deferred"><param name="Local" value="structprocess_1_1__Deferred.html"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="operator Deferred< void"><param name="Local" value="structprocess_1_1__Deferred.html#a60f19ff0e320b6a07d749aa681153af9"><param name="ImageNumber" value="11"></OBJECT>
@@ -9631,6 +9651,7 @@
</UL>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="process::EventLoop"><param name="Local" value="classprocess_1_1EventLoop.html"><param name="ImageNumber" value="11"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="process::windows::EventLoop"><param name="Local" value="classprocess_1_1windows_1_1EventLoop.html"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="process::EventQueue"><param name="Local" value="classprocess_1_1EventQueue.html"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="process::EventVisitor"><param name="Local" value="structprocess_1_1EventVisitor.html"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="os::Exec"><param name="Local" value="structos_1_1Exec.html"><param name="ImageNumber" value="11"></OBJECT>
@@ -10353,8 +10374,8 @@
</UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="protobuf::internal::Read< T >"><param name="Local" value="structprotobuf_1_1internal_1_1Read.html"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="protobuf::internal::Read< google::protobuf::RepeatedPtrField< T > >"><param name="Local" value="structprotobuf_1_1internal_1_1Read_3_01google_1_1protobuf_1_1RepeatedPtrField_3_01T_01_4_01_4.html"><param name="ImageNumber" value="11"></OBJECT>
- <LI><OBJECT type="text/sitemap"><param name="Name" value="mesos::log::Log::Reader"><param name="Local" value="classmesos_1_1log_1_1Log_1_1Reader.html"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="mesos::internal::recordio::Reader< T >"><param name="Local" value="classmesos_1_1internal_1_1recordio_1_1Reader.html"><param name="ImageNumber" value="11"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="mesos::log::Log::Reader"><param name="Local" value="classmesos_1_1log_1_1Log_1_1Reader.html"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="process::http::Pipe::Reader"><param name="Local" value="classprocess_1_1http_1_1Pipe_1_1Reader.html"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="process::ReadWriteLock"><param name="Local" value="classprocess_1_1ReadWriteLock.html"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="mesos::internal::slave::Slave::RecoveryInfo"><param name="Local" value="structmesos_1_1internal_1_1slave_1_1Slave_1_1RecoveryInfo.html"><param name="ImageNumber" value="11"></OBJECT>
@@ -10366,15 +10387,15 @@
<LI><OBJECT type="text/sitemap"><param name="Name" value="JSON::Protobuf"><param name="Local" value="structJSON_1_1Protobuf.html"><param name="ImageNumber" value="11"></OBJECT>
</UL>
</UL>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="mesos::internal::master::Registrar"><param name="Local" value="classmesos_1_1internal_1_1master_1_1Registrar.html"><param name="ImageNumber" value="1"></OBJECT>
+ <UL>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="mesos::internal::tests::MockRegistrar"><param name="Local" value="classmesos_1_1internal_1_1tests_1_1MockRegistrar.html"><param name="ImageNumber" value="11"></OBJECT>
+ </UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="mesos::resource_provider::Registrar"><param name="Local" value="classmesos_1_1resource__provider_1_1Registrar.html"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="mesos::resource_provider::GenericRegistrar"><param name="Local" value="classmesos_1_1resource__provider_1_1GenericRegistrar.html"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="mesos::resource_provider::MasterRegistrar"><param name="Local" value="classmesos_1_1resource__provider_1_1MasterRegistrar.html"><param name="ImageNumber" value="11"></OBJECT>
</UL>
- <LI><OBJECT type="text/sitemap"><param name="Name" value="mesos::internal::master::Registrar"><param name="Local" value="classmesos_1_1internal_1_1master_1_1Registrar.html"><param name="ImageNumber" value="1"></OBJECT>
- <UL>
- <LI><OBJECT type="text/sitemap"><param name="Name" value="mesos::internal::tests::MockRegistrar"><param name="Local" value="classmesos_1_1internal_1_1tests_1_1MockRegistrar.html"><param name="ImageNumber" value="11"></OBJECT>
- </UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="mesos::internal::log::Replica"><param name="Local" value="classmesos_1_1internal_1_1log_1_1Replica.html"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="process::http::Request"><param name="Local" value="structprocess_1_1http_1_1Request.html"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="mesos::internal::RequestMediaTypes"><param name="Local" value="structmesos_1_1internal_1_1RequestMediaTypes.html"><param name="ImageNumber" value="11"></OBJECT>
@@ -10489,9 +10510,9 @@
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="SharedHandle"><param name="Local" value="classSharedHandle.html"><param name="ImageNumber" value="11"></OBJECT>
</UL>
- <LI><OBJECT type="text/sitemap"><param name="Name" value="mesos::internal::tests::cluster::Slave"><param name="Local" value="classmesos_1_1internal_1_1tests_1_1cluster_1_1Slave.html"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="mesos::internal::master::Slave"><param name="Local" value="structmesos_1_1internal_1_1master_1_1Slave.html"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="mesos::internal::master::allocator::internal::HierarchicalAllocatorProcess::Slave"><param name="Local" value="classmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess_1_1Slave.html"><param name="ImageNumber" value="11"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="mesos::internal::tests::cluster::Slave"><param name="Local" value="classmesos_1_1internal_1_1tests_1_1cluster_1_1Slave.html"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="mesos::internal::slave::state::SlaveState"><param name="Local" value="structmesos_1_1internal_1_1slave_1_1state_1_1SlaveState.html"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="process::network::internal::Socket< AddressType >"><param name="Local" value="classprocess_1_1network_1_1internal_1_1Socket.html"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="process::network::internal::Socket< inet::Address >"><param name="Local" value="classprocess_1_1network_1_1internal_1_1Socket.html"><param name="ImageNumber" value="11"></OBJECT>
@@ -10503,14 +10524,14 @@
<LI><OBJECT type="text/sitemap"><param name="Name" value="mesos::internal::master::allocator::RandomSorter"><param name="Local" value="classmesos_1_1internal_1_1master_1_1allocator_1_1RandomSorter.html"><param name="ImageNumber" value="11"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="os::Stack"><param name="Local" value="classos_1_1Stack.html"><param name="ImageNumber" value="11"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="mesos::internal::StatusUpdateManagerProcess< IDType, CheckpointType, UpdateType >::State"><param name="Local" value="structmesos_1_1internal_1_1StatusUpdateManagerProcess_1_1State.html"><param name="ImageNumber" value="11"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="mesos::internal::slave::state::State"><param name="Local" value="structmesos_1_1internal_1_1slave_1_1state_1_1State.html"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="mesos::state::State"><param name="Local" value="classmesos_1_1state_1_1State.html"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="mesos::state::protobuf::State"><param name="Local" value="classmesos_1_1state_1_1protobuf_1_1State.html"><param name="ImageNumber" value="11"></OBJECT>
</UL>
- <LI><OBJECT type="text/sitemap"><param name="Name" value="mesos::internal::StatusUpdateManagerProcess< IDType, CheckpointType, UpdateType >::State"><param name="Local" value="structmesos_1_1internal_1_1StatusUpdateManagerProcess_1_1State.html"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="mesos::internal::StatusUpdateManagerProcess< IDType, CheckpointType, UpdateType >::StatusUpdateStream::State"><param name="Local" value="structmesos_1_1internal_1_1StatusUpdateManagerProcess_1_1StatusUpdateStream_1_1State.html"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="mesos::internal::log::Storage::State"><param name="Local" value="structmesos_1_1internal_1_1log_1_1Storage_1_1State.html"><param name="ImageNumber" value="11"></OBJECT>
- <LI><OBJECT type="text/sitemap"><param name="Name" value="mesos::internal::slave::state::State"><param name="Local" value="structmesos_1_1internal_1_1slave_1_1state_1_1State.html"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="process::StateMachine< State >"><param name="Local" value="classprocess_1_1StateMachine.html"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="static_visitor"><param name="ImageNumber" value="1"></OBJECT>
<UL>
@@ -11109,15 +11130,15 @@
</UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="cgroups::blkio::Value"><param name="Local" value="structcgroups_1_1blkio_1_1Value.html"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="process::TimeSeries< T >::Value"><param name="Local" value="structprocess_1_1TimeSeries_1_1Value.html"><param name="ImageNumber" value="11"></OBJECT>
- <LI><OBJECT type="text/sitemap"><param name="Name" value="Jvm::Variable< T, name, signature >"><param name="Local" value="classJvm_1_1Variable.html"><param name="ImageNumber" value="11"></OBJECT>
- <LI><OBJECT type="text/sitemap"><param name="Name" value="mesos::state::Variable"><param name="Local" value="classmesos_1_1state_1_1Variable.html"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="mesos::state::protobuf::Variable< T >"><param name="Local" value="classmesos_1_1state_1_1protobuf_1_1Variable.html"><param name="ImageNumber" value="11"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="mesos::state::Variable"><param name="Local" value="classmesos_1_1state_1_1Variable.html"><param name="ImageNumber" value="11"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="Jvm::Variable< T, name, signature >"><param name="Local" value="classJvm_1_1Variable.html"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="Jvm::Variable< org::apache::zookeeper::server::SessionTracker, ZOOKEEPERSERVER_SESSIONTRACKER, ZOOKEEPERSERVER_SESSIONTRACKER_SIGNATURE >"><param name="Local" value="classJvm_1_1Variable.html"><param name="ImageNumber" value="11"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="Variant< T, Ts >"><param name="Local" value="classVariant.html"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="Variant"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="JSON::Value"><param name="Local" value="structJSON_1_1Value.html"><param name="ImageNumber" value="11"></OBJECT>
</UL>
- <LI><OBJECT type="text/sitemap"><param name="Name" value="Variant< T, Ts >"><param name="Local" value="classVariant.html"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="Variant< check::Command, check::Http, check::Tcp >"><param name="Local" value="classVariant.html"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="Variant< runtime::Plain, runtime::Docker, runtime::Nested >"><param name="Local" value="classVariant.html"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="Variant< unix::Address, inet4::Address, inet6::Address >"><param name="Local" value="classVariant.html"><param name="ImageNumber" value="1"></OBJECT>
@@ -11138,8 +11159,8 @@
<LI><OBJECT type="text/sitemap"><param name="Name" value="os::WindowsFD"><param name="Local" value="classos_1_1WindowsFD.html"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="process::internal::wrap< T >"><param name="Local" value="structprocess_1_1internal_1_1wrap.html"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="process::internal::wrap< Future< X > >"><param name="Local" value="structprocess_1_1internal_1_1wrap_3_01Future_3_01X_01_4_01_4.html"><param name="ImageNumber" value="11"></OBJECT>
- <LI><OBJECT type="text/sitemap"><param name="Name" value="process::http::Pipe::Writer"><param name="Local" value="classprocess_1_1http_1_1Pipe_1_1Writer.html"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="mesos::log::Log::Writer"><param name="Local" value="classmesos_1_1log_1_1Log_1_1Writer.html"><param name="ImageNumber" value="11"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="process::http::Pipe::Writer"><param name="Local" value="classprocess_1_1http_1_1Pipe_1_1Writer.html"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="JSON::WriterProxy"><param name="Local" value="classJSON_1_1WriterProxy.html"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="process::http::header::WWWAuthenticate"><param name="Local" value="classprocess_1_1http_1_1header_1_1WWWAuthenticate.html"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="ZooKeeper"><param name="Local" value="classZooKeeper.html"><param name="ImageNumber" value="11"></OBJECT>
@@ -12586,7 +12607,9 @@
</UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="io.hpp"><param name="Local" value="3rdparty_2libprocess_2include_2process_2io_8hpp.html"><param name="ImageNumber" value="1"></OBJECT>
<UL>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="is_async"><param name="Local" value="3rdparty_2libprocess_2include_2process_2io_8hpp.html#ada6541d78cad2ecc225be8a26662c748"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="poll"><param name="Local" value="3rdparty_2libprocess_2include_2process_2io_8hpp.html#af71c45e0a85e21f6b39060f4e716cebf"><param name="ImageNumber" value="11"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="prepare_async"><param name="Local" value="3rdparty_2libprocess_2include_2process_2io_8hpp.html#a9db94d84fb44b21fb669ade7c6a82114"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="read"><param name="Local" value="3rdparty_2libprocess_2include_2process_2io_8hpp.html#a4c34d22e475e29f12ac739921dcc580f"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="read"><param name="Local" value="3rdparty_2libprocess_2include_2process_2io_8hpp.html#ad1290a283a4d16068acfef3903bfd88b"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="redirect"><param name="Local" value="3rdparty_2libprocess_2include_2process_2io_8hpp.html#ab9c4a52a88fcc9983438e391643424ca"><param name="ImageNumber" value="11"></OBJECT>
@@ -13198,7 +13221,7 @@
<LI><OBJECT type="text/sitemap"><param name="Name" value="p9999"><param name="Local" value="structprocess_1_1Statistics.html#a44d4be6321166bda0dfb11463a60f849"><param name="ImageNumber" value="11"></OBJECT>
</UL>
</UL>
- <LI><OBJECT type="text/sitemap"><param name="Name" value="subprocess.hpp"><param name="Local" value="subprocess_8hpp.html"><param name="ImageNumber" value="1"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="subprocess.hpp"><param name="Local" value="include_2process_2subprocess_8hpp.html"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="Subprocess"><param name="Local" value="classprocess_1_1Subprocess.html"><param name="ImageNumber" value="1"></OBJECT>
<UL>
@@ -13279,10 +13302,10 @@
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="operator()"><param name="Local" value="classprocess_1_1Subprocess_1_1ChildHook.html#ae9a996c6b3aa1113709a3d5ceba37f2c"><param name="ImageNumber" value="11"></OBJECT>
</UL>
- <LI><OBJECT type="text/sitemap"><param name="Name" value="InputFileDescriptors"><param name="Local" value="subprocess_8hpp.html#afc6611c4913642642277b44447a16e55"><param name="ImageNumber" value="11"></OBJECT>
- <LI><OBJECT type="text/sitemap"><param name="Name" value="OutputFileDescriptors"><param name="Local" value="subprocess_8hpp.html#a882829822afa4f33b90aafc9c4ffa9af"><param name="ImageNumber" value="11"></OBJECT>
- <LI><OBJECT type="text/sitemap"><param name="Name" value="subprocess"><param name="Local" value="subprocess_8hpp.html#a2d7e0a283bc0c9eca8a8b0532e026269"><param name="ImageNumber" value="11"></OBJECT>
- <LI><OBJECT type="text/sitemap"><param name="Name" value="subprocess"><param name="Local" value="subprocess_8hpp.html#a0a748c548ad3a094196c98f00f9674cf"><param name="ImageNumber" value="11"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="InputFileDescriptors"><param name="Local" value="include_2process_2subprocess_8hpp.html#afc6611c4913642642277b44447a16e55"><param name="ImageNumber" value="11"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="OutputFileDescriptors"><param name="Local" value="include_2process_2subprocess_8hpp.html#a882829822afa4f33b90aafc9c4ffa9af"><param name="ImageNumber" value="11"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="subprocess"><param name="Local" value="include_2process_2subprocess_8hpp.html#a2d7e0a283bc0c9eca8a8b0532e026269"><param name="ImageNumber" value="11"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="subprocess"><param name="Local" value="include_2process_2subprocess_8hpp.html#a0a748c548ad3a094196c98f00f9674cf"><param name="ImageNumber" value="11"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="system.hpp"><param name="Local" value="system_8hpp.html"><param name="ImageNumber" value="11"></OBJECT>
<UL>
@@ -13386,6 +13409,90 @@
</UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="src"><param name="Local" value="dir_01cbbd8dcbf9de3825992568658f467e.html"><param name="ImageNumber" value="1"></OBJECT>
<UL>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="posix"><param name="Local" value="dir_0ac73505685689cb4a842e520ca4cca6.html"><param name="ImageNumber" value="1"></OBJECT>
+ <UL>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="libev"><param name="Local" value="dir_ecbc207ab261ae6376e9b7d1e9eba3c1.html"><param name="ImageNumber" value="1"></OBJECT>
+ <UL>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="libev.hpp"><param name="Local" value="libev_8hpp.html"><param name="ImageNumber" value="1"></OBJECT>
+ <UL>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="__in_event_loop__"><param name="Local" value="libev_8hpp.html#a8a6cf2ec36d767c973bd04779f513986"><param name="ImageNumber" value="11"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="_run_in_event_loop"><param name="Local" value="libev_8hpp.html#ad224a6bc6e6b3ca551939fea690af936"><param name="ImageNumber" value="11"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="run_in_event_loop"><param name="Local" value="libev_8hpp.html#abd611a6cc14dc5e3d73fad6c84268342"><param name="ImageNumber" value="11"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="_in_event_loop_"><param name="Local" value="libev_8hpp.html#a3d7b11f4e8691d998daa100de16ed8bc"><param name="ImageNumber" value="11"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="async_watcher"><param name="Local" value="libev_8hpp.html#abde24dee21e5f3c5110d36020c9f8d89"><param name="ImageNumber" value="11"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="functions"><param name="Local" value="libev_8hpp.html#a2f79b2f1afbe2c85db95b8276735d861"><param name="ImageNumber" value="11"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="loop"><param name="Local" value="libev_8hpp.html#a59c192ee8ea5abbbee1642957f47c92a"><param name="ImageNumber" value="11"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="watchers"><param name="Local" value="libev_8hpp.html#a73ddff05d642ba235230804b85c7ee43"><param name="ImageNumber" value="11"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="watchers_mutex"><param name="Local" value="libev_8hpp.html#ac2a375f1a48140736670146a43426b85"><param name="ImageNumber" value="11"></OBJECT>
+ </UL>
+ </UL>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="libevent"><param name="Local" value="dir_b2935a02400d93f2f95b894ab5508ef6.html"><param name="ImageNumber" value="1"></OBJECT>
+ <UL>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="libevent.hpp"><param name="Local" value="libevent_8hpp.html"><param name="ImageNumber" value="1"></OBJECT>
+ <UL>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="__in_event_loop__"><param name="Local" value="libevent_8hpp.html#a8a6cf2ec36d767c973bd04779f513986"><param name="ImageNumber" value="11"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="EventLoopLogicFlow"><param name="Local" value="libevent_8hpp.html#af8d01fbc04e5157d594146e377243573"><param name="ImageNumber" value="1"></OBJECT>
+ <UL>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="ALLOW_SHORT_CIRCUIT"><param name="Local" value="libevent_8hpp.html#af8d01fbc04e5157d594146e377243573a240417b1e0b6d0ddcbe488f9b18f679c"><param name="ImageNumber" value="11"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="DISALLOW_SHORT_CIRCUIT"><param name="Local" value="libevent_8hpp.html#af8d01fbc04e5157d594146e377243573a22a3dd39a9c94dd501273e0a76806c41"><param name="ImageNumber" value="11"></OBJECT>
+ </UL>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="run_in_event_loop"><param name="Local" value="libevent_8hpp.html#ad91a0486ed34c25dc10ba404f4a1fc9b"><param name="ImageNumber" value="11"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="base"><param name="Local" value="libevent_8hpp.html#a373bd5e2bd8f2694e4589293af477854"><param name="ImageNumber" value="11"></OBJECT>
+ </UL>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="libevent_ssl_socket.hpp"><param name="Local" value="libevent__ssl__socket_8hpp.html"><param name="ImageNumber" value="11"></OBJECT>
+ <UL>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="LibeventSSLSocketImpl"><param name="Local" value="classprocess_1_1network_1_1internal_1_1LibeventSSLSocketImpl.html"><param name="ImageNumber" value="1"></OBJECT>
+ <UL>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="LibeventSSLSocketImpl"><param name="Local" value="classprocess_1_1network_1_1internal_1_1LibeventSSLSocketImpl.html#a8c1ea3c61d392c14a70d594c8e930df8"><param name="ImageNumber" value="11"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="~LibeventSSLSocketImpl"><param name="Local" value="classprocess_1_1network_1_1internal_1_1LibeventSSLSocketImpl.html#ad2077833906c7d37189588ff67b43a20"><param name="ImageNumber" value="11"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="accept"><param name="Local" value="classprocess_1_1network_1_1internal_1_1LibeventSSLSocketImpl.html#a5dd3f53871f2152a0092a222ff63a778"><param name="ImageNumber" value="11"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="connect"><param name="Local" value="classprocess_1_1network_1_1internal_1_1LibeventSSLSocketImpl.html#a4ee00c94cb838618b65c5f231e7c367a"><param name="ImageNumber" value="11"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="initialize"><param name="Local" value="classprocess_1_1network_1_1internal_1_1LibeventSSLSocketImpl.html#a0585a14478590e525165a418df7beb3a"><param name="ImageNumber" value="11"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="kind"><param name="Local" value="classprocess_1_1network_1_1internal_1_1LibeventSSLSocketImpl.html#ad0ecd3ed460c9cf93b32e4d68b0107e7"><param name="ImageNumber" value="11"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="listen"><param name="Local" value="classprocess_1_1network_1_1internal_1_1LibeventSSLSocketImpl.html#a107ac49390f671b4cd5d180e5bddb4ad"><param name="ImageNumber" value="11"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="recv"><param name="Local" value="classprocess_1_1network_1_1internal_1_1LibeventSSLSocketImpl.html#a25118017aa15a1ee25039e69fdfd8ea4"><param name="ImageNumber" value="11"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="send"><param name="Local" value="classprocess_1_1network_1_1internal_1_1LibeventSSLSocketImpl.html#a6c91fd87e95efe9c12fe77e02bf306da"><param name="ImageNumber" value="11"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="sendfile"><param name="Local" value="classprocess_1_1network_1_1internal_1_1LibeventSSLSocketImpl.html#a3ee2460274ef43b0665de263b08e3539"><param name="ImageNumber" value="11"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="shutdown"><param name="Local" value="classprocess_1_1network_1_1internal_1_1LibeventSSLSocketImpl.html#a5d1386c7494d6681a764ddf0cff19e40"><param name="ImageNumber" value="11"></OBJECT>
+ </UL>
+ </UL>
+ </UL>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="subprocess.hpp"><param name="Local" value="src_2posix_2subprocess_8hpp.html"><param name="ImageNumber" value="1"></OBJECT>
+ <UL>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="childMain"><param name="Local" value="src_2posix_2subprocess_8hpp.html#a902e2646d88c41ce674a3009cafe0aad"><param name="ImageNumber" value="11"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="cloexec"><param name="Local" value="src_2posix_2subprocess_8hpp.html#a345a534b82b79bf20333fb6faef43e93"><param name="ImageNumber" value="11"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="cloneChild"><param name="Local" value="src_2posix_2subprocess_8hpp.html#afe2c3a3ffdd0ee6fda82e198ece80a37"><param name="ImageNumber" value="11"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="defaultClone"><param name="Local" value="src_2posix_2subprocess_8hpp.html#af2f19b6f367cddc0c8283560a9cd9215"><param name="ImageNumber" value="11"></OBJECT>
+ </UL>
+ </UL>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="windows"><param name="Local" value="dir_4f303781ded361ff602a549327c53cc9.html"><param name="ImageNumber" value="1"></OBJECT>
+ <UL>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="event_loop.hpp"><param name="Local" value="windows_2event__loop_8hpp.html"><param name="ImageNumber" value="1"></OBJECT>
+ <UL>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="libwinio_loop"><param name="Local" value="windows_2event__loop_8hpp.html#a3b1f9b3719ea6358ad426ae31bc8eae6"><param name="ImageNumber" value="11"></OBJECT>
+ </UL>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="libwinio.hpp"><param name="Local" value="libwinio_8hpp.html"><param name="ImageNumber" value="1"></OBJECT>
+ <UL>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="EventLoop"><param name="Local" value="classprocess_1_1windows_1_1EventLoop.html"><param name="ImageNumber" value="1"></OBJECT>
+ <UL>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="launchTimer"><param name="Local" value="classprocess_1_1windows_1_1EventLoop.html#a006cb0c8efb7aaadadf0a692d9c2659a"><param name="ImageNumber" value="11"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="registerHandle"><param name="Local" value="classprocess_1_1windows_1_1EventLoop.html#a832a73998bb3b26b7caa770ceef38827"><param name="ImageNumber" value="11"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="run"><param name="Local" value="classprocess_1_1windows_1_1EventLoop.html#a2578b5fad0eb039f995955c798310c86"><param name="ImageNumber" value="11"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="stop"><param name="Local" value="classprocess_1_1windows_1_1EventLoop.html#a8a07fc602e31875e6cbcaeac8008f09a"><param name="ImageNumber" value="11"></OBJECT>
+ </UL>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="accept"><param name="Local" value="libwinio_8hpp.html#a1f34e4ee3092afe93c37c170430c03f5"><param name="ImageNumber" value="11"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="connect"><param name="Local" value="libwinio_8hpp.html#a5afdaeaeb57343d0aca728b74dcd3f71"><param name="ImageNumber" value="11"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="read"><param name="Local" value="libwinio_8hpp.html#a7436ed89e84ff3415987de0ca9428d08"><param name="ImageNumber" value="11"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="recv"><param name="Local" value="libwinio_8hpp.html#a37fde6f31c2f9838a18cf83c2c865134"><param name="ImageNumber" value="11"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="send"><param name="Local" value="libwinio_8hpp.html#a04c64346155d34517acdf8b587162868"><param name="ImageNumber" value="11"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="sendfile"><param name="Local" value="libwinio_8hpp.html#afc59f27e725b5feb12f76e1c008ba767"><param name="ImageNumber" value="11"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="write"><param name="Local" value="libwinio_8hpp.html#a69a29846581bb7bb1084e9ee90cbe8e6"><param name="ImageNumber" value="11"></OBJECT>
+ </UL>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="subprocess.hpp"><param name="Local" value="src_2windows_2subprocess_8hpp.html"><param name="ImageNumber" value="1"></OBJECT>
+ <UL>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="createChildProcess"><param name="Local" value="src_2windows_2subprocess_8hpp.html#a32020f2bbbcc116f2e055e209b4b8ce7"><param name="ImageNumber" value="11"></OBJECT>
+ </UL>
+ </UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="authenticator_manager.hpp"><param name="Local" value="authenticator__manager_8hpp.html"><param name="ImageNumber" value="11"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="AuthenticatorManager"><param name="Local" value="classprocess_1_1http_1_1authentication_1_1AuthenticatorManager.html"><param name="ImageNumber" value="1"></OBJECT>
@@ -13540,45 +13647,12 @@
<LI><OBJECT type="text/sitemap"><param name="Name" value="handle"><param name="Local" value="classprocess_1_1HttpProxy.html#af7583014e65aee0dd1055f15463ea24b"><param name="ImageNumber" value="11"></OBJECT>
</UL>
</UL>
- <LI><OBJECT type="text/sitemap"><param name="Name" value="libev.hpp"><param name="Local" value="libev_8hpp.html"><param name="ImageNumber" value="1"></OBJECT>
- <UL>
- <LI><OBJECT type="text/sitemap"><param name="Name" value="__in_event_loop__"><param name="Local" value="libev_8hpp.html#a8a6cf2ec36d767c973bd04779f513986"><param name="ImageNumber" value="11"></OBJECT>
- <LI><OBJECT type="text/sitemap"><param name="Name" value="_run_in_event_loop"><param name="Local" value="libev_8hpp.html#ad224a6bc6e6b3ca551939fea690af936"><param name="ImageNumber" value="11"></OBJECT>
- <LI><OBJECT type="text/sitemap"><param name="Name" value="run_in_event_loop"><param name="Local" value="libev_8hpp.html#abd611a6cc14dc5e3d73fad6c84268342"><param name="ImageNumber" value="11"></OBJECT>
- <LI><OBJECT type="text/sitemap"><param name="Name" value="_in_event_loop_"><param name="Local" value="libev_8hpp.html#a3d7b11f4e8691d998daa100de16ed8bc"><param name="ImageNumber" value="11"></OBJECT>
- <LI><OBJECT type="text/sitemap"><param name="Name" value="async_watcher"><param name="Local" value="libev_8hpp.html#abde24dee21e5f3c5110d36020c9f8d89"><param name="ImageNumber" value="11"></OBJECT>
- <LI><OBJECT type="text/sitemap"><param name="Name" value="functions"><param name="Local" value="libev_8hpp.html#a2f79b2f1afbe2c85db95b8276735d861"><param name="ImageNumber" value="11"></OBJECT>
- <LI><OBJECT type="text/sitemap"><param name="Name" value="loop"><param name="Local" value="libev_8hpp.html#a59c192ee8ea5abbbee1642957f47c92a"><param name="ImageNumber" value="11"></OBJECT>
- <LI><OBJECT type="text/sitemap"><param name="Name" value="watchers"><param name="Local" value="libev_8hpp.html#a73ddff05d642ba235230804b85c7ee43"><param name="ImageNumber" value="11"></OBJECT>
- <LI><OBJECT type="text/sitemap"><param name="Name" value="watchers_mutex"><param name="Local" value="libev_8hpp.html#ac2a375f1a48140736670146a43426b85"><param name="ImageNumber" value="11"></OBJECT>
- </UL>
- <LI><OBJECT type="text/sitemap"><param name="Name" value="libevent.hpp"><param name="Local" value="libevent_8hpp.html"><param name="ImageNumber" value="1"></OBJECT>
- <UL>
- <LI><OBJECT type="text/sitemap"><param name="Name" value="__in_event_loop__"><param name="Local" value="libevent_8hpp.html#a8a6cf2ec36d767c973bd04779f513986"><param name="ImageNumber" value="11"></OBJECT>
- <LI><OBJECT type="text/sitemap"><param name="Name" value="EventLoopLogicFlow"><param name="Local" value="libevent_8hpp.html#af8d01fbc04e5157d594146e377243573"><param name="ImageNumber" value="1"></OBJECT>
- <UL>
- <LI><OBJECT type="text/sitemap"><param name="Name" value="ALLOW_SHORT_CIRCUIT"><param name="Local" value="libevent_8hpp.html#af8d01fbc04e5157d594146e377243573a240417b1e0b6d0ddcbe488f9b18f679c"><param name="ImageNumber" value="11"></OBJECT>
- <LI><OBJECT type="text/sitemap"><param name="Name" value="DISALLOW_SHORT_CIRCUIT"><param name="Local" value="libevent_8hpp.html#af8d01fbc04e5157d594146e377243573a22a3dd39a9c94dd501273e0a76806c41"><param name="ImageNumber" value="11"></OBJECT>
- </UL>
- <LI><OBJECT type="text/sitemap"><param name="Name" value="run_in_event_loop"><param name="Local" value="libevent_8hpp.html#ad91a0486ed34c25dc10ba404f4a1fc9b"><param name="ImageNumber" value="11"></OBJECT>
- <LI><OBJECT type="text/sitemap"><param name="Name" value="base"><param name="Local" value="libevent_8hpp.html#a373bd5e2bd8f2694e4589293af477854"><param name="ImageNumber" value="11"></OBJECT>
- </UL>
- <LI><OBJECT type="text/sitemap"><param name="Name" value="libevent_ssl_socket.hpp"><param name="Local" value="libevent__ssl__socket_8hpp.html"><param name="ImageNumber" value="11"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="io_internal.hpp"><param name="Local" value="io__internal_8hpp.html"><param name="ImageNumber" value="1"></OBJECT>
<UL>
- <LI><OBJECT type="text/sitemap"><param name="Name" value="LibeventSSLSocketImpl"><param name="Local" value="classprocess_1_1network_1_1internal_1_1LibeventSSLSocketImpl.html"><param name="ImageNumber" value="1"></OBJECT>
- <UL>
- <LI><OBJECT type="text/sitemap"><param name="Name" value="LibeventSSLSocketImpl"><param name="Local" value="classprocess_1_1network_1_1internal_1_1LibeventSSLSocketImpl.html#a8c1ea3c61d392c14a70d594c8e930df8"><param name="ImageNumber" value="11"></OBJECT>
- <LI><OBJECT type="text/sitemap"><param name="Name" value="~LibeventSSLSocketImpl"><param name="Local" value="classprocess_1_1network_1_1internal_1_1LibeventSSLSocketImpl.html#ad2077833906c7d37189588ff67b43a20"><param name="ImageNumber" value="11"></OBJECT>
- <LI><OBJECT type="text/sitemap"><param name="Name" value="accept"><param name="Local" value="classprocess_1_1network_1_1internal_1_1LibeventSSLSocketImpl.html#a5dd3f53871f2152a0092a222ff63a778"><param name="ImageNumber" value="11"></OBJECT>
- <LI><OBJECT type="text/sitemap"><param name="Name" value="connect"><param name="Local" value="classprocess_1_1network_1_1internal_1_1LibeventSSLSocketImpl.html#a4ee00c94cb838618b65c5f231e7c367a"><param name="ImageNumber" value="11"></OBJECT>
- <LI><OBJECT type="text/sitemap"><param name="Name" value="initialize"><param name="Local" value="classprocess_1_1network_1_1internal_1_1LibeventSSLSocketImpl.html#a0585a14478590e525165a418df7beb3a"><param name="ImageNumber" value="11"></OBJECT>
- <LI><OBJECT type="text/sitemap"><param name="Name" value="kind"><param name="Local" value="classprocess_1_1network_1_1internal_1_1LibeventSSLSocketImpl.html#ad0ecd3ed460c9cf93b32e4d68b0107e7"><param name="ImageNumber" value="11"></OBJECT>
- <LI><OBJECT type="text/sitemap"><param name="Name" value="listen"><param name="Local" value="classprocess_1_1network_1_1internal_1_1LibeventSSLSocketImpl.html#a107ac49390f671b4cd5d180e5bddb4ad"><param name="ImageNumber" value="11"></OBJECT>
- <LI><OBJECT type="text/sitemap"><param name="Name" value="recv"><param name="Local" value="classprocess_1_1network_1_1internal_1_1LibeventSSLSocketImpl.html#a25118017aa15a1ee25039e69fdfd8ea4"><param name="ImageNumber" value="11"></OBJECT>
- <LI><OBJECT type="text/sitemap"><param name="Name" value="send"><param name="Local" value="classprocess_1_1network_1_1internal_1_1LibeventSSLSocketImpl.html#a6c91fd87e95efe9c12fe77e02bf306da"><param name="ImageNumber" value="11"></OBJECT>
- <LI><OBJECT type="text/sitemap"><param name="Name" value="sendfile"><param name="Local" value="classprocess_1_1network_1_1internal_1_1LibeventSSLSocketImpl.html#a3ee2460274ef43b0665de263b08e3539"><param name="ImageNumber" value="11"></OBJECT>
- <LI><OBJECT type="text/sitemap"><param name="Name" value="shutdown"><param name="Local" value="classprocess_1_1network_1_1internal_1_1LibeventSSLSocketImpl.html#a5d1386c7494d6681a764ddf0cff19e40"><param name="ImageNumber" value="11"></OBJECT>
- </UL>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="is_async"><param name="Local" value="io__internal_8hpp.html#a2291f1f69f4bdf80f3b114c493eb1e37"><param name="ImageNumber" value="11"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="prepare_async"><param name="Local" value="io__internal_8hpp.html#a9458b24220892124c2112b3fe85e585e"><param name="ImageNumber" value="11"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="read"><param name="Local" value="io__internal_8hpp.html#ac0a90b8abf47098e5a57d90e744a42a8"><param name="ImageNumber" value="11"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="write"><param name="Local" value="io__internal_8hpp.html#ab4ecbbe96ef3c0600060e16c47988798"><param name="ImageNumber" value="11"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="memory_profiler.hpp"><param name="Local" value="memory__profiler_8hpp.html"><param name="ImageNumber" value="11"></OBJECT>
<UL>
@@ -13692,17 +13766,6 @@
</UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="socket_manager"><param name="Local" value="socket__manager_8hpp.html#a355bad70041c7d49455fb810578a72cf"><param name="ImageNumber" value="11"></OBJECT>
</UL>
- <LI><OBJECT type="text/sitemap"><param name="Name" value="subprocess_posix.hpp"><param name="Local" value="subprocess__posix_8hpp.html"><param name="ImageNumber" value="1"></OBJECT>
- <UL>
- <LI><OBJECT type="text/sitemap"><param name="Name" value="childMain"><param name="Local" value="subprocess__posix_8hpp.html#a902e2646d88c41ce674a3009cafe0aad"><param name="ImageNumber" value="11"></OBJECT>
- <LI><OBJECT type="text/sitemap"><param name="Name" value="cloexec"><param name="Local" value="subprocess__posix_8hpp.html#a345a534b82b79bf20333fb6faef43e93"><param name="ImageNumber" value="11"></OBJECT>
- <LI><OBJECT type="text/sitemap"><param name="Name" value="cloneChild"><param name="Local" value="subprocess__posix_8hpp.html#afe2c3a3ffdd0ee6fda82e198ece80a37"><param name="ImageNumber" value="11"></OBJECT>
- <LI><OBJECT type="text/sitemap"><param name="Name" value="defaultClone"><param name="Local" value="subprocess__posix_8hpp.html#af2f19b6f367cddc0c8283560a9cd9215"><param name="ImageNumber" value="11"></OBJECT>
- </UL>
- <LI><OBJECT type="text/sitemap"><param name="Name" value="subprocess_windows.hpp"><param name="Local" value="subprocess__windows_8hpp.html"><param name="ImageNumber" value="1"></OBJECT>
- <UL>
- <LI><OBJECT type="text/sitemap"><param name="Name" value="createChildProcess"><param name="Local" value="subprocess__windows_8hpp.html#a32020f2bbbcc116f2e055e209b4b8ce7"><param name="ImageNumber" value="11"></OBJECT>
- </UL>
</UL>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="stout"><param name="Local" value="dir_aa547de1d719d14adccfca1dfb1735b3.html"><param name="ImageNumber" value="1"></OBJECT>
@@ -14248,7 +14311,9 @@
<LI><OBJECT type="text/sitemap"><param name="Name" value="WindowsFD"><param name="Local" value="classos_1_1WindowsFD.html#a3436f11ccbb859379717ac91e96f7144"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="WindowsFD"><param name="Local" value="classos_1_1WindowsFD.html#a79c98e3c78c0a7155a8ed9f42832fd5d"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="~WindowsFD"><param name="Local" value="classos_1_1WindowsFD.html#ad2ce21d9f77710472e19843e3e86343e"><param name="ImageNumber" value="11"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="assign_iocp"><param name="Local" value="classos_1_1WindowsFD.html#a1a9c96c20213e1b94ba8dcc1bb059163"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="crt"><param name="Local" value="classos_1_1WindowsFD.html#a94b69cae4edb8f3549845fbfa0355b7c"><param name="ImageNumber" value="11"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="get_iocp"><param name="Local" value="classos_1_1WindowsFD.html#a380eb8d9b7bc0e6b3bfae0e8e9c6bb0f"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="is_overlapped"><param name="Local" value="classos_1_1WindowsFD.html#a4dce5dbc3d019589b4b61d6d17e1da45"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="is_valid"><param name="Local" value="classos_1_1WindowsFD.html#ab961444eec07c587c9a67122daf4fd33"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="operator HANDLE"><param name="Local" value="classos_1_1WindowsFD.html#a8ba56c5251264ab13aeaaa34cde39bdb"><param name="ImageNumber" value="11"></OBJECT>
@@ -14257,6 +14322,7 @@
<LI><OBJECT type="text/sitemap"><param name="Name" value="operator="><param name="Local" value="classos_1_1WindowsFD.html#ab780d87119c772425aa855260056d1a1"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="operator="><param name="Local" value="classos_1_1WindowsFD.html#a057780cfa5e1cc2fa84543a6f9b6bca0"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="type"><param name="Local" value="classos_1_1WindowsFD.html#a3ce17a730ace5352a1fc6d49f8336d52"><param name="ImageNumber" value="11"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="dup"><param name="Local" value="classos_1_1WindowsFD.html#ae8d4fd38b52ea9f38605f46195fd040b"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="operator!="><param name="Local" value="classos_1_1WindowsFD.html#a342803d2a16f81ca20f0e0c1c2e598d0"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="operator!="><param name="Local" value="classos_1_1WindowsFD.html#ab72f13c82b5f2fb8a646c5d0d50736e7"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="operator<"><param name="Local" value="classos_1_1WindowsFD.html#a64a9d1d43e26808ec565056c183ae56f"><param name="ImageNumber" value="11"></OBJECT>
@@ -14917,6 +14983,7 @@
<LI><OBJECT type="text/sitemap"><param name="Name" value="unsetenv"><param name="Local" value="windows_2os_8hpp.html#a7471e14f4cbd7e23b5daa21e556f4eb5"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="var"><param name="Local" value="windows_2os_8hpp.html#a547f04b42e472b2ff0070897010fac78"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="waitpid"><param name="Local" value="windows_2os_8hpp.html#a59caf358baf81de389c29d983b8e21ad"><param name="ImageNumber" value="11"></OBJECT>
+ <LI><OBJECT type="text/sitemap"><param name="Name" value="windows_to_unix_epoch"><param name="Local" value="windows_2os_8hpp.html#a1493e5fcc92753702d08b36881ee8f97"><param name="ImageNumber" value="11"></OBJECT>
</UL>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="abort.hpp"><param name="Local" value="abort_8hpp.html"><param name="ImageNumber" value="1"></OBJECT>
[38/50] mesos-site git commit: Updated the website built from mesos
SHA: 7c9c72d.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/docker__common_8hpp.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/docker__common_8hpp.html b/content/api/latest/c++/docker__common_8hpp.html
index 0807d17..84232e2 100644
--- a/content/api/latest/c++/docker__common_8hpp.html
+++ b/content/api/latest/c++/docker__common_8hpp.html
@@ -61,7 +61,7 @@
<code>#include <<a class="el" href="libprocess_2include_2process_2gtest_8hpp_source.html">process/gtest.hpp</a>></code><br />
<code>#include <<a class="el" href="3rdparty_2libprocess_2include_2process_2io_8hpp_source.html">process/io.hpp</a>></code><br />
<code>#include <<a class="el" href="owned_8hpp_source.html">process/owned.hpp</a>></code><br />
-<code>#include <<a class="el" href="subprocess_8hpp_source.html">process/subprocess.hpp</a>></code><br />
+<code>#include <<a class="el" href="include_2process_2subprocess_8hpp_source.html">process/subprocess.hpp</a>></code><br />
<code>#include <<a class="el" href="format_8hpp_source.html">stout/format.hpp</a>></code><br />
<code>#include <<a class="el" href="stout_2include_2stout_2gtest_8hpp_source.html">stout/gtest.hpp</a>></code><br />
<code>#include <<a class="el" href="lambda_8hpp_source.html">stout/lambda.hpp</a>></code><br />
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/docker__common_8hpp_source.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/docker__common_8hpp_source.html b/content/api/latest/c++/docker__common_8hpp_source.html
index 4312ea4..41b47ea 100644
--- a/content/api/latest/c++/docker__common_8hpp_source.html
+++ b/content/api/latest/c++/docker__common_8hpp_source.html
@@ -52,7 +52,7 @@
<div class="title">docker_common.hpp</div> </div>
</div><!--header-->
<div class="contents">
-<a href="docker__common_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// or more contributor license agreements. See the NOTICE file</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// distributed with this work for additional information</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">// regarding copyright ownership. The ASF licenses this file</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00006"></a><s
pan class="lineno"> 6</span> <span class="comment">// "License"); you may not use this file except in compliance</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// with the License. You may obtain a copy of the License at</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">//</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// Unless required by applicable law or agreed to in writing, software</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment">// di
stributed under the License is distributed on an "AS IS" BASIS,</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">// See the License for the specific language governing permissions and</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// limitations under the License.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#ifndef __TEST_DOCKER_COMMON_HPP__</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#define __TEST_DOCKER_COMMON_HPP__</span></div><div c
lass="line"><a name="l00019"></a><span class="lineno"> 19</span> </div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include <string></span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <<a class="code" href="future_8hpp.html">process/future.hpp</a>></span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <<a class="code" href="libprocess_2include_2process_2gtest_8hpp.html">process/gtest.hpp</a>></span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <<a class="code" href="3rdparty_2libprocess_2include_2process_2io_8hpp.html">process/io.hpp</a>></span></div><div class="line"><a name="l00025"></a><spa
n class="lineno"> 25</span> <span class="preprocessor">#include <<a class="code" href="owned_8hpp.html">process/owned.hpp</a>></span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include <<a class="code" href="subprocess_8hpp.html">process/subprocess.hpp</a>></span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include <<a class="code" href="format_8hpp.html">stout/format.hpp</a>></span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include <<a class="code" href="stout_2include_2stout_2gtest_8hpp.html">stout/gtest.hpp</a>></span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include <<a class="code" href="lambd
a_8hpp.html">stout/lambda.hpp</a>></span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include <<a class="code" href="nothing_8hpp.html">stout/nothing.hpp</a>></span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#include <<a class="code" href="option_8hpp.html">stout/option.hpp</a>></span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#include <<a class="code" href="try_8hpp.html">stout/try.hpp</a>></span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include <<a class="code" href="mkdtemp_8hpp.html">stout/os/mkdtemp.hpp</a>></span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> </di
v><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#include "<a class="code" href="docker_2docker_8hpp.html">docker/docker.hpp</a>"</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor">#include "<a class="code" href="src_2tests_2flags_8hpp.html">tests/flags.hpp</a>"</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="keyword">namespace </span><a class="code" href="namespacemesos.html">mesos</a> {</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="keyword">namespace </span><a class="code" href="namespaceinternal.html">internal</a> {</div><div class="line"><a name="l00043"></a><span class
="lineno"> 43</span> <span class="keyword">namespace </span>tests {</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#ifdef __WINDOWS__</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="comment">// The following image is the microsoft/nanoserver image with</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="comment">// ContainerAdministrator as the default user. There are some permission bugs</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="comment">// with accessing volume mounts in process (but not Hyper-V) isolation as</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="comment">// the regular ContainerUser user, but accesing
them as ContainerAdministrator</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="comment">// works fine.</span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="keyword">static</span> constexpr <span class="keywordtype">char</span> DOCKER_TEST_IMAGE[] = <span class="stringliteral">"akagup/nano-admin"</span>;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="comment">// We use a custom HTTP(S) server here, because the official `microsoft/iis`</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="comment">// HTTP server image is ~20x larger than this one, so pulling it takes too</span></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="comment">// long. Th
is server supports HTTP and HTTPS listening on port 80 and 443.</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="comment">// For more information, see https://github.com/gupta-ak/https-server.</span></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="keyword">static</span> constexpr <span class="keywordtype">char</span> DOCKER_HTTP_IMAGE[] = <span class="stringliteral">"akagup/https-server"</span>;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="keyword">static</span> constexpr <span class="keywordtype">char</span> DOCKER_HTTP_COMMAND[] = <span class="stringliteral">"http.exe"</span>;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="keyword">static</span> constexpr <span class="keywordtype">char</span> DOCKER_HTTPS_IMAGE[] = <span class="stringliteral">"akagup/https-s
erver"</span>;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="keyword">static</span> constexpr <span class="keywordtype">char</span> DOCKER_HTTPS_COMMAND[] = <span class="stringliteral">"http.exe"</span>;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="keyword">static</span> constexpr <span class="keywordtype">char</span> DOCKER_TEST_IMAGE[] = <span class="stringliteral">"alpine"</span>;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span> </div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="comment">// The HTTP server is netcat running on alpine.</span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="keyword">static</span
> constexpr <span class="keywordtype">char</span> DOCKER_HTTP_IMAGE[] = <span class="stringliteral">"alpine"</span>;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="keyword">static</span> constexpr <span class="keywordtype">char</span> DOCKER_HTTP_COMMAND[] =</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <span class="stringliteral">"nc -lk -p 80 -e echo -e \"HTTP/1.1 200 OK\r\nContent-Length: 0\r\n\""</span>;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span> </div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="comment">// Refer to https://github.com/qianzhangxa/https-server for</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="comment">// how the Docker image `zhq527725/https-server` works.</span></div><div class="line"><a name="l00071"></a
><span class="lineno"> 71</span> <span class="keyword">static</span> constexpr <span class="keywordtype">char</span> DOCKER_HTTPS_IMAGE[] = <span class="stringliteral">"zhq527725/https-server"</span>;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="keyword">static</span> constexpr <span class="keywordtype">char</span> DOCKER_HTTPS_COMMAND[] = <span class="stringliteral">"python https_server.py 443"</span>;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="preprocessor">#endif // __WINDOWS__</span></div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span> </div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="namespacemesos_1_1internal_1_1tests.html#a3e9b4c80f181d9d31576c268120dd49e"> 75</a></span> constexpr <span class="keywordtype">char</span> <a class="code" href="namespacemesos_1_1internal_1_1test
s.html#a3e9b4c80f181d9d31576c268120dd49e">DOCKER_IPv6_NETWORK</a>[] = <span class="stringliteral">"mesos-docker-ip6-test"</span>;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span> </div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span> </div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="namespacemesos_1_1internal_1_1tests.html#a15c592efe4e9ba851ddcf2c79f4b2dcf"> 78</a></span> <span class="keyword">inline</span> <a class="code" href="classprocess_1_1Future.html">process::Future<Nothing></a> <a class="code" href="namespacemesos_1_1internal_1_1tests.html#a15c592efe4e9ba851ddcf2c79f4b2dcf">pullDockerImage</a>(<span class="keyword">const</span> std::string& imageName)</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span> {</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <a class="code" href="classTry.
html">Try<process::Owned<Docker></a>> <a class="code" href="namespacedocker.html">docker</a> =</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <a class="code" href="classDocker.html#a370c1d613e35cc8b8e393dc8c83876e6">Docker::create</a>(<a class="code" href="namespacemesos_1_1internal_1_1tests.html#af8289f648a916c3f66923867452c7b1b">tests::flags</a>.docker, <a class="code" href="namespacemesos_1_1internal_1_1tests.html#af8289f648a916c3f66923867452c7b1b">tests::flags</a>.docker_socket, <span class="keyword">false</span>);</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span> </div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <span class="keywordflow">if</span> (docker.isError()) {</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <span class="keywordflow">return</span> <a class="code" href="structprocess_1_1Failure.html">process::Failu
re</a>(docker.error());</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  }</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span> </div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="keyword">const</span> <a class="code" href="classTry.html">Try<std::string></a> directory = <a class="code" href="namespaceos.html#afe70fd86d13b8f10cafb222bb80adcf6">os::mkdtemp</a>();</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <span class="keywordflow">if</span> (directory.isError()) {</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <span class="keywordflow">return</span> <a class="code" href="structprocess_1_1Failure.html">process::Failure</a>(docker.error());</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  }</div><div class="line"><a name="l00091"></a><span class="lineno
"> 91</span> </div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  <span class="keywordflow">return</span> docker.get()->pull(directory.get(), imageName)</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  .<a class="code" href="namespaceprocess_1_1internal.html#a7885011cf6470b707294a6ef4ec7a0a6">then</a>([]() {</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <span class="comment">// `Docker::pull` returns a `Future<Docker::Image`>, but we only really</span></div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <span class="comment">// if the pull was successful, so we just return `Nothing` to match the</span></div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <span class="comment">// return type of `pullDockerImage`.</span></div><div class="line"><a name="l00097"></a><span class="lineno">
97</span>  <span class="keywordflow">return</span> <a class="code" href="structNothing.html">Nothing</a>();</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  })</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  .onAny([directory]() -> <a class="code" href="classprocess_1_1Future.html">process::Future<Nothing></a> {</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <a class="code" href="classTry.html">Try<Nothing></a> <a class="code" href="namespaceos.html#a84298b990ad52dfd353358427b04ff3f">rmdir</a> = <a class="code" href="namespaceos.html#a84298b990ad52dfd353358427b04ff3f">os::rmdir</a>(directory.get());</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <span class="keywordflow">if</span> (rmdir.<a class="code" href="classTry.html#a0b98f95163b8a38daafd1651b043a276">isError</a>()) {</div><div class="line">
<a name="l00102"></a><span class="lineno"> 102</span>  <span class="keywordflow">return</span> <a class="code" href="structprocess_1_1Failure.html">process::Failure</a>(rmdir.<a class="code" href="classTry.html#aec4a11ddd3c036e889d90b7eb6258ba7">error</a>());</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  }</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <span class="keywordflow">return</span> <a class="code" href="structNothing.html">Nothing</a>();</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  });</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span> }</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span> </div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span> </div><div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="namespacemesos_1
_1internal_1_1tests.html#a971a18f563bfbd01896a97a7a72ccde1"> 109</a></span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespacemesos_1_1internal_1_1tests.html#a971a18f563bfbd01896a97a7a72ccde1">createDockerIPv6UserNetwork</a>()</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span> {</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <span class="comment">// Docker IPv6 is not supported on Windows, so no-op on that platform.</span></div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <span class="comment">// TODO(akagup): Remove the #ifdef when Windows supports IPv6 networks</span></div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <span class="comment">// in docker containers. See MESOS-8566.</span></div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span> <span class="pre
processor">#ifndef __WINDOWS__</span></div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <span class="comment">// Create a Docker user network with IPv6 enabled.</span></div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <a class="code" href="classTry.html">Try<std::string></a> dockerCommand = <a class="code" href="namespacestrings.html#a7884a23bea2a6543b8a93ad48faabe0c">strings::format</a>(</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <span class="stringliteral">"docker network create --driver=bridge --ipv6 "</span></div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <span class="stringliteral">"--subnet=fd01::/64 %s"</span>,</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  DOCKER_IPv6_NETWORK);</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>
 </div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <a class="code" href="classTry.html">Try<process::Subprocess></a> s = <a class="code" href="namespaceprocess.html#a2d7e0a283bc0c9eca8a8b0532e026269">process::subprocess</a>(</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  dockerCommand.<a class="code" href="classTry.html#a8bc7f43e75a47111ea18e9c83b007be5">get</a>(),</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <a class="code" href="classprocess_1_1Subprocess.html#a54793e9c516257d68776f63f0872c3c7">process::Subprocess::PATH</a>(<span class="stringliteral">"/dev/null"</span>),</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <a class="code" href="classprocess_1_1Subprocess.html#a54793e9c516257d68776f63f0872c3c7">process::Subprocess::PATH</a>(<span class="stringliteral">"/dev/null"</span>),</div><
div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <a class="code" href="classprocess_1_1Subprocess.html#a6af5024bd1932707893908fceb86ddad">process::Subprocess::PIPE</a>());</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span> </div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <a class="code" href="stout_2include_2stout_2gtest_8hpp.html#a0add664e84bbf99f845f1b715dd63f90">ASSERT_SOME</a>(s) << <span class="stringliteral">"Unable to create the Docker IPv6 network: "</span></div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  << <a class="code" href="namespacemesos_1_1internal_1_1tests.html#a3e9b4c80f181d9d31576c268120dd49e">DOCKER_IPv6_NETWORK</a>;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span> </div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <a clas
s="code" href="classprocess_1_1Future.html">process::Future<std::string></a> err = <a class="code" href="namespaceprocess_1_1io.html#a4c34d22e475e29f12ac739921dcc580f">process::io::read</a>(s-><a class="code" href="classprocess_1_1Subprocess.html#a98180558f1427a64a03cf3f656310bc4">err</a>().<a class="code" href="classOption.html#a21358442c0fac1cc978a67a9a9089a79">get</a>());</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span> </div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <span class="comment">// Wait for the network to be created.</span></div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <a class="code" href="libprocess_2include_2process_2gtest_8hpp.html#a269c59ba4bb2bec7ac8e361e45f52d43">AWAIT_READY</a>(s-><a class="code" href="classprocess_1_1Subprocess.html#a3946c31d16c0625ea554d5216cd4fa3b">status</a>());</div><div class="line"><a name="l00134"></a><span class="li
neno"> 134</span>  <a class="code" href="libprocess_2include_2process_2gtest_8hpp.html#a269c59ba4bb2bec7ac8e361e45f52d43">AWAIT_READY</a>(err);</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span> </div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <a class="code" href="stout_2include_2stout_2gtest_8hpp.html#a0add664e84bbf99f845f1b715dd63f90">ASSERT_SOME</a>(s-><a class="code" href="classprocess_1_1Subprocess.html#a3946c31d16c0625ea554d5216cd4fa3b">status</a>().<a class="code" href="classprocess_1_1Future.html#aa78977d3b585a5f5ccd682c1e9e2ddc4">get</a>());</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  ASSERT_EQ(s-><a class="code" href="classprocess_1_1Subprocess.html#a3946c31d16c0625ea554d5216cd4fa3b">status</a>()-><a class="code" href="classOption.html#a21358442c0fac1cc978a67a9a9089a79">get</a>(), 0)</div><div class="line"><a name="l00138"></a><span class="lineno">
138</span>  << <span class="stringliteral">"Unable to create the Docker IPv6 network "</span></div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  << DOCKER_IPv6_NETWORK</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  << <span class="stringliteral">" : "</span> << err.<a class="code" href="classprocess_1_1Future.html#aa78977d3b585a5f5ccd682c1e9e2ddc4">get</a>();</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span> <span class="preprocessor">#endif // __WINDOWS__</span></div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span> }</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span> </div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span> </div><div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="namespacemesos_1_1internal
_1_1tests.html#a4143a755ba48009f54529ab97cb3beb3"> 145</a></span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespacemesos_1_1internal_1_1tests.html#a4143a755ba48009f54529ab97cb3beb3">removeDockerIPv6UserNetwork</a>()</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span> {</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <span class="comment">// Docker IPv6 is not supported on Windows, so no-op on that platform.</span></div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  <span class="comment">// TODO(akagup): Remove the #ifdef when Windows supports IPv6 networks</span></div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  <span class="comment">// in docker containers. See MESOS-8566.</span></div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span> <span class="preprocessor"
>#ifndef __WINDOWS__</span></div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <span class="comment">// Delete the Docker user network.</span></div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  <a class="code" href="classTry.html">Try<std::string></a> dockerCommand =</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <a class="code" href="namespacestrings.html#a7884a23bea2a6543b8a93ad48faabe0c">strings::format</a>(<span class="stringliteral">"docker network rm %s"</span>, DOCKER_IPv6_NETWORK);</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span> </div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <a class="code" href="classTry.html">Try<process::Subprocess></a> s = <a class="code" href="namespaceprocess.html#a2d7e0a283bc0c9eca8a8b0532e026269">subprocess</a>(</div><div class="line"><a name="l00156
"></a><span class="lineno"> 156</span>  dockerCommand.<a class="code" href="classTry.html#a8bc7f43e75a47111ea18e9c83b007be5">get</a>(),</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <a class="code" href="classprocess_1_1Subprocess.html#a54793e9c516257d68776f63f0872c3c7">process::Subprocess::PATH</a>(<span class="stringliteral">"/dev/null"</span>),</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <a class="code" href="classprocess_1_1Subprocess.html#a54793e9c516257d68776f63f0872c3c7">process::Subprocess::PATH</a>(<span class="stringliteral">"/dev/null"</span>),</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <a class="code" href="classprocess_1_1Subprocess.html#a6af5024bd1932707893908fceb86ddad">process::Subprocess::PIPE</a>());</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span> </div><div class="lin
e"><a name="l00161"></a><span class="lineno"> 161</span>  <span class="comment">// This is best effort cleanup. In case of an error just a log an</span></div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  <span class="comment">// error.</span></div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  <a class="code" href="stout_2include_2stout_2gtest_8hpp.html#a0add664e84bbf99f845f1b715dd63f90">ASSERT_SOME</a>(s) << <span class="stringliteral">"Unable to delete the Docker IPv6 network: "</span></div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  << <a class="code" href="namespacemesos_1_1internal_1_1tests.html#a3e9b4c80f181d9d31576c268120dd49e">DOCKER_IPv6_NETWORK</a>;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span> </div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <a class="cod
e" href="classprocess_1_1Future.html">process::Future<std::string></a> err = <a class="code" href="namespaceprocess_1_1io.html#a4c34d22e475e29f12ac739921dcc580f">process::io::read</a>(s-><a class="code" href="classprocess_1_1Subprocess.html#a98180558f1427a64a03cf3f656310bc4">err</a>().<a class="code" href="classOption.html#a21358442c0fac1cc978a67a9a9089a79">get</a>());</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span> </div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  <span class="comment">// Wait for the network to be deleted.</span></div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <a class="code" href="libprocess_2include_2process_2gtest_8hpp.html#a269c59ba4bb2bec7ac8e361e45f52d43">AWAIT_READY</a>(s-><a class="code" href="classprocess_1_1Subprocess.html#a3946c31d16c0625ea554d5216cd4fa3b">status</a>());</div><div class="line"><a name="l00170"></a><span class="lineno">
170</span>  <a class="code" href="libprocess_2include_2process_2gtest_8hpp.html#a269c59ba4bb2bec7ac8e361e45f52d43">AWAIT_READY</a>(err);</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span> </div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  <a class="code" href="stout_2include_2stout_2gtest_8hpp.html#a0add664e84bbf99f845f1b715dd63f90">ASSERT_SOME</a>(s-><a class="code" href="classprocess_1_1Subprocess.html#a3946c31d16c0625ea554d5216cd4fa3b">status</a>().<a class="code" href="classprocess_1_1Future.html#aa78977d3b585a5f5ccd682c1e9e2ddc4">get</a>());</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  ASSERT_EQ(s-><a class="code" href="classprocess_1_1Subprocess.html#a3946c31d16c0625ea554d5216cd4fa3b">status</a>()-><a class="code" href="classOption.html#a21358442c0fac1cc978a67a9a9089a79">get</a>(), 0)</div><div class="line"><a name="l00174"></a><span class="lineno"> 174<
/span>  << <span class="stringliteral">"Unable to delete the Docker IPv6 network "</span></div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  << DOCKER_IPv6_NETWORK</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  << <span class="stringliteral">" : "</span> << err.<a class="code" href="classprocess_1_1Future.html#aa78977d3b585a5f5ccd682c1e9e2ddc4">get</a>();</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span> <span class="preprocessor">#endif // __WINDOWS__</span></div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span> }</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span> </div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span> </div><div class="line"><a name="l00181"></a><span class="lineno"><a class="line" href="namespacemesos_1_1internal_1_1te
sts.html#af386ecbbf46a9598c02450185b4ba3e2"> 181</a></span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespacemesos_1_1internal_1_1tests.html#af386ecbbf46a9598c02450185b4ba3e2">assertDockerKillStatus</a>(<a class="code" href="classprocess_1_1Future.html">process::Future</a><<a class="code" href="classOption.html">Option<int></a>>& <a class="code" href="namespaceproc.html#a34396c6140a28f583dc13fee3c3c35d4">status</a>)</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span> {</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span> <span class="preprocessor">#ifdef __WINDOWS__</span></div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <span class="comment">// On Windows, there is no standard exit code for determining if a process</span></div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <spa
n class="comment">// as been killed. However, in Docker, it will not return 0.</span></div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  <a class="code" href="libprocess_2include_2process_2gtest_8hpp.html#ae4d00c37c2287bce910fff6885429cfb">AWAIT_EXPECT_WEXITSTATUS_NE</a>(0, <a class="code" href="namespaceproc.html#a34396c6140a28f583dc13fee3c3c35d4">status</a>.get());</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  <a class="code" href="libprocess_2include_2process_2gtest_8hpp.html#a222e5f770c87370e0f92d2a597b95b2d">AWAIT_EXPECT_WEXITSTATUS_EQ</a>(128 + <a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#a1c2b5693161bbc9d516ef5d16c7b54f5">SIGKILL</a>, <a class="code" href="namespaceproc.html#a34396c6140a28f583dc13fee3c3c35d4">status</a>);</div><div class="line"><a name="l0
0189"></a><span class="lineno"> 189</span> <span class="preprocessor">#endif // __WINDOWS__</span></div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span> }</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span> </div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span> } <span class="comment">// namespace tests {</span></div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span> } <span class="comment">// namespace internal {</span></div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span> } <span class="comment">// namespace mesos {</span></div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span> </div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span> <span class="preprocessor">#endif // __TEST_DOCKER_COMMON_HPP__</span></div><div class="ttc" id="namespaceos_html_a84298b990ad52dfd353358427b04ff3f"
><div class="ttname"><a href="namespaceos.html#a84298b990ad52dfd353358427b04ff3f">os::rmdir</a></div><div class="ttdeci">Try< Nothing > rmdir(const std::string &directory, bool recursive=true, bool removeRoot=true, bool continueOnError=false)</div><div class="ttdef"><b>Definition:</b> rmdir.hpp:43</div></div>
+<a href="docker__common_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// or more contributor license agreements. See the NOTICE file</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// distributed with this work for additional information</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">// regarding copyright ownership. The ASF licenses this file</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00006"></a><s
pan class="lineno"> 6</span> <span class="comment">// "License"); you may not use this file except in compliance</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// with the License. You may obtain a copy of the License at</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">//</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// Unless required by applicable law or agreed to in writing, software</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment">// di
stributed under the License is distributed on an "AS IS" BASIS,</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">// See the License for the specific language governing permissions and</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// limitations under the License.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#ifndef __TEST_DOCKER_COMMON_HPP__</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#define __TEST_DOCKER_COMMON_HPP__</span></div><div c
lass="line"><a name="l00019"></a><span class="lineno"> 19</span> </div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include <string></span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <<a class="code" href="future_8hpp.html">process/future.hpp</a>></span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <<a class="code" href="libprocess_2include_2process_2gtest_8hpp.html">process/gtest.hpp</a>></span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <<a class="code" href="3rdparty_2libprocess_2include_2process_2io_8hpp.html">process/io.hpp</a>></span></div><div class="line"><a name="l00025"></a><spa
n class="lineno"> 25</span> <span class="preprocessor">#include <<a class="code" href="owned_8hpp.html">process/owned.hpp</a>></span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include <<a class="code" href="include_2process_2subprocess_8hpp.html">process/subprocess.hpp</a>></span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include <<a class="code" href="format_8hpp.html">stout/format.hpp</a>></span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include <<a class="code" href="stout_2include_2stout_2gtest_8hpp.html">stout/gtest.hpp</a>></span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include <<a class=
"code" href="lambda_8hpp.html">stout/lambda.hpp</a>></span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include <<a class="code" href="nothing_8hpp.html">stout/nothing.hpp</a>></span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#include <<a class="code" href="option_8hpp.html">stout/option.hpp</a>></span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#include <<a class="code" href="try_8hpp.html">stout/try.hpp</a>></span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include <<a class="code" href="mkdtemp_8hpp.html">stout/os/mkdtemp.hpp</a>></span></div><div class="line"><a name="l00036"></a><span class="lineno"> 3
6</span> </div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#include "<a class="code" href="docker_2docker_8hpp.html">docker/docker.hpp</a>"</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor">#include "<a class="code" href="src_2tests_2flags_8hpp.html">tests/flags.hpp</a>"</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="keyword">namespace </span><a class="code" href="namespacemesos.html">mesos</a> {</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="keyword">namespace </span><a class="code" href="namespaceinternal.html">internal</a> {</div><div class="line"><a name="l0004
3"></a><span class="lineno"> 43</span> <span class="keyword">namespace </span>tests {</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#ifdef __WINDOWS__</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="comment">// The following image is the microsoft/nanoserver image with</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="comment">// ContainerAdministrator as the default user. There are some permission bugs</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="comment">// with accessing volume mounts in process (but not Hyper-V) isolation as</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="comment">// the regular ContainerUser
user, but accesing them as ContainerAdministrator</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="comment">// works fine.</span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="keyword">static</span> constexpr <span class="keywordtype">char</span> DOCKER_TEST_IMAGE[] = <span class="stringliteral">"akagup/nano-admin"</span>;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="comment">// We use a custom HTTP(S) server here, because the official `microsoft/iis`</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span> <span class="comment">// HTTP server image is ~20x larger than this one, so pulling it takes too</span></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="co
mment">// long. This server supports HTTP and HTTPS listening on port 80 and 443.</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="comment">// For more information, see https://github.com/gupta-ak/https-server.</span></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="keyword">static</span> constexpr <span class="keywordtype">char</span> DOCKER_HTTP_IMAGE[] = <span class="stringliteral">"akagup/https-server"</span>;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="keyword">static</span> constexpr <span class="keywordtype">char</span> DOCKER_HTTP_COMMAND[] = <span class="stringliteral">"http.exe"</span>;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="keyword">static</span> constexpr <span class="keywordtype">char</span> DOCKER_HTTPS_IMAGE[] = <span class="stringliteral">&q
uot;akagup/https-server"</span>;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="keyword">static</span> constexpr <span class="keywordtype">char</span> DOCKER_HTTPS_COMMAND[] = <span class="stringliteral">"http.exe"</span>;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="keyword">static</span> constexpr <span class="keywordtype">char</span> DOCKER_TEST_IMAGE[] = <span class="stringliteral">"alpine"</span>;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span> </div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="comment">// The HTTP server is netcat running on alpine.</span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="key
word">static</span> constexpr <span class="keywordtype">char</span> DOCKER_HTTP_IMAGE[] = <span class="stringliteral">"alpine"</span>;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="keyword">static</span> constexpr <span class="keywordtype">char</span> DOCKER_HTTP_COMMAND[] =</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <span class="stringliteral">"nc -lk -p 80 -e echo -e \"HTTP/1.1 200 OK\r\nContent-Length: 0\r\n\""</span>;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span> </div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="comment">// Refer to https://github.com/qianzhangxa/https-server for</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="comment">// how the Docker image `zhq527725/https-server` works.</span></div><div class="line"><a
name="l00071"></a><span class="lineno"> 71</span> <span class="keyword">static</span> constexpr <span class="keywordtype">char</span> DOCKER_HTTPS_IMAGE[] = <span class="stringliteral">"zhq527725/https-server"</span>;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="keyword">static</span> constexpr <span class="keywordtype">char</span> DOCKER_HTTPS_COMMAND[] = <span class="stringliteral">"python https_server.py 443"</span>;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="preprocessor">#endif // __WINDOWS__</span></div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span> </div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="namespacemesos_1_1internal_1_1tests.html#a3e9b4c80f181d9d31576c268120dd49e"> 75</a></span> constexpr <span class="keywordtype">char</span> <a class="code" href="namespacemesos_1
_1internal_1_1tests.html#a3e9b4c80f181d9d31576c268120dd49e">DOCKER_IPv6_NETWORK</a>[] = <span class="stringliteral">"mesos-docker-ip6-test"</span>;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span> </div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span> </div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="namespacemesos_1_1internal_1_1tests.html#a15c592efe4e9ba851ddcf2c79f4b2dcf"> 78</a></span> <span class="keyword">inline</span> <a class="code" href="classprocess_1_1Future.html">process::Future<Nothing></a> <a class="code" href="namespacemesos_1_1internal_1_1tests.html#a15c592efe4e9ba851ddcf2c79f4b2dcf">pullDockerImage</a>(<span class="keyword">const</span> std::string& imageName)</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span> {</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <a class="cod
e" href="classTry.html">Try<process::Owned<Docker></a>> <a class="code" href="namespacedocker.html">docker</a> =</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <a class="code" href="classDocker.html#a370c1d613e35cc8b8e393dc8c83876e6">Docker::create</a>(<a class="code" href="namespacemesos_1_1internal_1_1tests.html#af8289f648a916c3f66923867452c7b1b">tests::flags</a>.docker, <a class="code" href="namespacemesos_1_1internal_1_1tests.html#af8289f648a916c3f66923867452c7b1b">tests::flags</a>.docker_socket, <span class="keyword">false</span>);</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span> </div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <span class="keywordflow">if</span> (docker.isError()) {</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <span class="keywordflow">return</span> <a class="code" href="structprocess_1_1Failure.ht
ml">process::Failure</a>(docker.error());</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  }</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span> </div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="keyword">const</span> <a class="code" href="classTry.html">Try<std::string></a> directory = <a class="code" href="namespaceos.html#afe70fd86d13b8f10cafb222bb80adcf6">os::mkdtemp</a>();</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <span class="keywordflow">if</span> (directory.isError()) {</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <span class="keywordflow">return</span> <a class="code" href="structprocess_1_1Failure.html">process::Failure</a>(docker.error());</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  }</div><div class="line"><a name="l00091"></a><
span class="lineno"> 91</span> </div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  <span class="keywordflow">return</span> docker.get()->pull(directory.get(), imageName)</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  .<a class="code" href="namespaceprocess_1_1internal.html#a7885011cf6470b707294a6ef4ec7a0a6">then</a>([]() {</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <span class="comment">// `Docker::pull` returns a `Future<Docker::Image`>, but we only really</span></div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <span class="comment">// if the pull was successful, so we just return `Nothing` to match the</span></div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <span class="comment">// return type of `pullDockerImage`.</span></div><div class="line"><a name="l00097"></a><sp
an class="lineno"> 97</span>  <span class="keywordflow">return</span> <a class="code" href="structNothing.html">Nothing</a>();</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  })</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  .onAny([directory]() -> <a class="code" href="classprocess_1_1Future.html">process::Future<Nothing></a> {</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <a class="code" href="classTry.html">Try<Nothing></a> <a class="code" href="namespaceos.html#a84298b990ad52dfd353358427b04ff3f">rmdir</a> = <a class="code" href="namespaceos.html#a84298b990ad52dfd353358427b04ff3f">os::rmdir</a>(directory.get());</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <span class="keywordflow">if</span> (rmdir.<a class="code" href="classTry.html#a0b98f95163b8a38daafd1651b043a276">isError</a>()) {</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <span class="keywordflow">return</span> <a class="code" href="structprocess_1_1Failure.html">process::Failure</a>(rmdir.<a class="code" href="classTry.html#aec4a11ddd3c036e889d90b7eb6258ba7">error</a>());</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  }</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <span class="keywordflow">return</span> <a class="code" href="structNothing.html">Nothing</a>();</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  });</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span> }</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span> </div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span> </div><div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href
="namespacemesos_1_1internal_1_1tests.html#a971a18f563bfbd01896a97a7a72ccde1"> 109</a></span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespacemesos_1_1internal_1_1tests.html#a971a18f563bfbd01896a97a7a72ccde1">createDockerIPv6UserNetwork</a>()</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span> {</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <span class="comment">// Docker IPv6 is not supported on Windows, so no-op on that platform.</span></div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <span class="comment">// TODO(akagup): Remove the #ifdef when Windows supports IPv6 networks</span></div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <span class="comment">// in docker containers. See MESOS-8566.</span></div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>
0;<span class="preprocessor">#ifndef __WINDOWS__</span></div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <span class="comment">// Create a Docker user network with IPv6 enabled.</span></div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <a class="code" href="classTry.html">Try<std::string></a> dockerCommand = <a class="code" href="namespacestrings.html#a7884a23bea2a6543b8a93ad48faabe0c">strings::format</a>(</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <span class="stringliteral">"docker network create --driver=bridge --ipv6 "</span></div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <span class="stringliteral">"--subnet=fd01::/64 %s"</span>,</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  DOCKER_IPv6_NETWORK);</div><div class="line"><a name="l00120"></a><span class="li
neno"> 120</span> </div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <a class="code" href="classTry.html">Try<process::Subprocess></a> s = <a class="code" href="namespaceprocess.html#a2d7e0a283bc0c9eca8a8b0532e026269">process::subprocess</a>(</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  dockerCommand.<a class="code" href="classTry.html#a8bc7f43e75a47111ea18e9c83b007be5">get</a>(),</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <a class="code" href="classprocess_1_1Subprocess.html#a54793e9c516257d68776f63f0872c3c7">process::Subprocess::PATH</a>(<span class="stringliteral">"/dev/null"</span>),</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <a class="code" href="classprocess_1_1Subprocess.html#a54793e9c516257d68776f63f0872c3c7">process::Subprocess::PATH</a>(<span class="stringliteral">"/dev/null&quo
t;</span>),</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <a class="code" href="classprocess_1_1Subprocess.html#a6af5024bd1932707893908fceb86ddad">process::Subprocess::PIPE</a>());</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span> </div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <a class="code" href="stout_2include_2stout_2gtest_8hpp.html#a0add664e84bbf99f845f1b715dd63f90">ASSERT_SOME</a>(s) << <span class="stringliteral">"Unable to create the Docker IPv6 network: "</span></div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  << <a class="code" href="namespacemesos_1_1internal_1_1tests.html#a3e9b4c80f181d9d31576c268120dd49e">DOCKER_IPv6_NETWORK</a>;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span> </div><div class="line"><a name="l00130"></a><span class="lineno"> 130</sp
an>  <a class="code" href="classprocess_1_1Future.html">process::Future<std::string></a> err = <a class="code" href="namespaceprocess_1_1io.html#a4c34d22e475e29f12ac739921dcc580f">process::io::read</a>(s-><a class="code" href="classprocess_1_1Subprocess.html#a98180558f1427a64a03cf3f656310bc4">err</a>().<a class="code" href="classOption.html#a21358442c0fac1cc978a67a9a9089a79">get</a>());</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span> </div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <span class="comment">// Wait for the network to be created.</span></div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <a class="code" href="libprocess_2include_2process_2gtest_8hpp.html#a269c59ba4bb2bec7ac8e361e45f52d43">AWAIT_READY</a>(s-><a class="code" href="classprocess_1_1Subprocess.html#a3946c31d16c0625ea554d5216cd4fa3b">status</a>());</div><div class="line"><a name="l00134"><
/a><span class="lineno"> 134</span>  <a class="code" href="libprocess_2include_2process_2gtest_8hpp.html#a269c59ba4bb2bec7ac8e361e45f52d43">AWAIT_READY</a>(err);</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span> </div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <a class="code" href="stout_2include_2stout_2gtest_8hpp.html#a0add664e84bbf99f845f1b715dd63f90">ASSERT_SOME</a>(s-><a class="code" href="classprocess_1_1Subprocess.html#a3946c31d16c0625ea554d5216cd4fa3b">status</a>().<a class="code" href="classprocess_1_1Future.html#aa78977d3b585a5f5ccd682c1e9e2ddc4">get</a>());</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  ASSERT_EQ(s-><a class="code" href="classprocess_1_1Subprocess.html#a3946c31d16c0625ea554d5216cd4fa3b">status</a>()-><a class="code" href="classOption.html#a21358442c0fac1cc978a67a9a9089a79">get</a>(), 0)</div><div class="line"><a name="l00138"></a><sp
an class="lineno"> 138</span>  << <span class="stringliteral">"Unable to create the Docker IPv6 network "</span></div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  << DOCKER_IPv6_NETWORK</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  << <span class="stringliteral">" : "</span> << err.<a class="code" href="classprocess_1_1Future.html#aa78977d3b585a5f5ccd682c1e9e2ddc4">get</a>();</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span> <span class="preprocessor">#endif // __WINDOWS__</span></div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span> }</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span> </div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span> </div><div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="namespac
emesos_1_1internal_1_1tests.html#a4143a755ba48009f54529ab97cb3beb3"> 145</a></span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespacemesos_1_1internal_1_1tests.html#a4143a755ba48009f54529ab97cb3beb3">removeDockerIPv6UserNetwork</a>()</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span> {</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <span class="comment">// Docker IPv6 is not supported on Windows, so no-op on that platform.</span></div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  <span class="comment">// TODO(akagup): Remove the #ifdef when Windows supports IPv6 networks</span></div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  <span class="comment">// in docker containers. See MESOS-8566.</span></div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span> <span cl
ass="preprocessor">#ifndef __WINDOWS__</span></div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <span class="comment">// Delete the Docker user network.</span></div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  <a class="code" href="classTry.html">Try<std::string></a> dockerCommand =</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <a class="code" href="namespacestrings.html#a7884a23bea2a6543b8a93ad48faabe0c">strings::format</a>(<span class="stringliteral">"docker network rm %s"</span>, DOCKER_IPv6_NETWORK);</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span> </div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <a class="code" href="classTry.html">Try<process::Subprocess></a> s = <a class="code" href="namespaceprocess.html#a2d7e0a283bc0c9eca8a8b0532e026269">subprocess</a>(</div><div class="lin
e"><a name="l00156"></a><span class="lineno"> 156</span>  dockerCommand.<a class="code" href="classTry.html#a8bc7f43e75a47111ea18e9c83b007be5">get</a>(),</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <a class="code" href="classprocess_1_1Subprocess.html#a54793e9c516257d68776f63f0872c3c7">process::Subprocess::PATH</a>(<span class="stringliteral">"/dev/null"</span>),</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <a class="code" href="classprocess_1_1Subprocess.html#a54793e9c516257d68776f63f0872c3c7">process::Subprocess::PATH</a>(<span class="stringliteral">"/dev/null"</span>),</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <a class="code" href="classprocess_1_1Subprocess.html#a6af5024bd1932707893908fceb86ddad">process::Subprocess::PIPE</a>());</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span> </d
iv><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  <span class="comment">// This is best effort cleanup. In case of an error just a log an</span></div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  <span class="comment">// error.</span></div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  <a class="code" href="stout_2include_2stout_2gtest_8hpp.html#a0add664e84bbf99f845f1b715dd63f90">ASSERT_SOME</a>(s) << <span class="stringliteral">"Unable to delete the Docker IPv6 network: "</span></div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  << <a class="code" href="namespacemesos_1_1internal_1_1tests.html#a3e9b4c80f181d9d31576c268120dd49e">DOCKER_IPv6_NETWORK</a>;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span> </div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>
60; <a class="code" href="classprocess_1_1Future.html">process::Future<std::string></a> err = <a class="code" href="namespaceprocess_1_1io.html#a4c34d22e475e29f12ac739921dcc580f">process::io::read</a>(s-><a class="code" href="classprocess_1_1Subprocess.html#a98180558f1427a64a03cf3f656310bc4">err</a>().<a class="code" href="classOption.html#a21358442c0fac1cc978a67a9a9089a79">get</a>());</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span> </div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  <span class="comment">// Wait for the network to be deleted.</span></div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <a class="code" href="libprocess_2include_2process_2gtest_8hpp.html#a269c59ba4bb2bec7ac8e361e45f52d43">AWAIT_READY</a>(s-><a class="code" href="classprocess_1_1Subprocess.html#a3946c31d16c0625ea554d5216cd4fa3b">status</a>());</div><div class="line"><a name="l00170"></a><sp
an class="lineno"> 170</span>  <a class="code" href="libprocess_2include_2process_2gtest_8hpp.html#a269c59ba4bb2bec7ac8e361e45f52d43">AWAIT_READY</a>(err);</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span> </div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  <a class="code" href="stout_2include_2stout_2gtest_8hpp.html#a0add664e84bbf99f845f1b715dd63f90">ASSERT_SOME</a>(s-><a class="code" href="classprocess_1_1Subprocess.html#a3946c31d16c0625ea554d5216cd4fa3b">status</a>().<a class="code" href="classprocess_1_1Future.html#aa78977d3b585a5f5ccd682c1e9e2ddc4">get</a>());</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  ASSERT_EQ(s-><a class="code" href="classprocess_1_1Subprocess.html#a3946c31d16c0625ea554d5216cd4fa3b">status</a>()-><a class="code" href="classOption.html#a21358442c0fac1cc978a67a9a9089a79">get</a>(), 0)</div><div class="line"><a name="l00174"></a><span cla
ss="lineno"> 174</span>  << <span class="stringliteral">"Unable to delete the Docker IPv6 network "</span></div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  << DOCKER_IPv6_NETWORK</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  << <span class="stringliteral">" : "</span> << err.<a class="code" href="classprocess_1_1Future.html#aa78977d3b585a5f5ccd682c1e9e2ddc4">get</a>();</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span> <span class="preprocessor">#endif // __WINDOWS__</span></div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span> }</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span> </div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span> </div><div class="line"><a name="l00181"></a><span class="lineno"><a class="line" href="namespacemesos
_1_1internal_1_1tests.html#af386ecbbf46a9598c02450185b4ba3e2"> 181</a></span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespacemesos_1_1internal_1_1tests.html#af386ecbbf46a9598c02450185b4ba3e2">assertDockerKillStatus</a>(<a class="code" href="classprocess_1_1Future.html">process::Future</a><<a class="code" href="classOption.html">Option<int></a>>& <a class="code" href="namespaceproc.html#a34396c6140a28f583dc13fee3c3c35d4">status</a>)</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span> {</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span> <span class="preprocessor">#ifdef __WINDOWS__</span></div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <span class="comment">// On Windows, there is no standard exit code for determining if a process</span></div><div class="line"><a name="l00185"></a><span class="lineno"> 185<
/span>  <span class="comment">// as been killed. However, in Docker, it will not return 0.</span></div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  <a class="code" href="libprocess_2include_2process_2gtest_8hpp.html#ae4d00c37c2287bce910fff6885429cfb">AWAIT_EXPECT_WEXITSTATUS_NE</a>(0, <a class="code" href="namespaceproc.html#a34396c6140a28f583dc13fee3c3c35d4">status</a>.get());</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  <a class="code" href="libprocess_2include_2process_2gtest_8hpp.html#a222e5f770c87370e0f92d2a597b95b2d">AWAIT_EXPECT_WEXITSTATUS_EQ</a>(128 + <a class="code" href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#a1c2b5693161bbc9d516ef5d16c7b54f5">SIGKILL</a>, <a class="code" href="namespaceproc.html#a34396c6140a28f583dc13fee3c3c35d4">status</a>);</div><div class=
"line"><a name="l00189"></a><span class="lineno"> 189</span> <span class="preprocessor">#endif // __WINDOWS__</span></div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span> }</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span> </div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span> } <span class="comment">// namespace tests {</span></div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span> } <span class="comment">// namespace internal {</span></div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span> } <span class="comment">// namespace mesos {</span></div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span> </div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span> <span class="preprocessor">#endif // __TEST_DOCKER_COMMON_HPP__</span></div><div class="ttc" id="namespaceos_html_a84298b990ad52df
d353358427b04ff3f"><div class="ttname"><a href="namespaceos.html#a84298b990ad52dfd353358427b04ff3f">os::rmdir</a></div><div class="ttdeci">Try< Nothing > rmdir(const std::string &directory, bool recursive=true, bool removeRoot=true, bool continueOnError=false)</div><div class="ttdef"><b>Definition:</b> rmdir.hpp:43</div></div>
<div class="ttc" id="structNothing_html"><div class="ttname"><a href="structNothing.html">Nothing</a></div><div class="ttdef"><b>Definition:</b> nothing.hpp:16</div></div>
<div class="ttc" id="classOption_html"><div class="ttname"><a href="classOption.html">Option< int ></a></div></div>
<div class="ttc" id="classTry_html_a8bc7f43e75a47111ea18e9c83b007be5"><div class="ttname"><a href="classTry.html#a8bc7f43e75a47111ea18e9c83b007be5">Try::get</a></div><div class="ttdeci">T & get()&</div><div class="ttdef"><b>Definition:</b> try.hpp:73</div></div>
@@ -61,8 +61,8 @@
<div class="ttc" id="3rdparty_2stout_2include_2stout_2windows_8hpp_html_a1c2b5693161bbc9d516ef5d16c7b54f5"><div class="ttname"><a href="3rdparty_2stout_2include_2stout_2windows_8hpp.html#a1c2b5693161bbc9d516ef5d16c7b54f5">SIGKILL</a></div><div class="ttdeci">const mode_t SIGKILL</div><div class="ttdef"><b>Definition:</b> windows.hpp:335</div></div>
<div class="ttc" id="classTry_html"><div class="ttname"><a href="classTry.html">Try</a></div><div class="ttdef"><b>Definition:</b> check.hpp:33</div></div>
<div class="ttc" id="src_2tests_2flags_8hpp_html"><div class="ttname"><a href="src_2tests_2flags_8hpp.html">flags.hpp</a></div></div>
-<div class="ttc" id="subprocess_8hpp_html"><div class="ttname"><a href="subprocess_8hpp.html">subprocess.hpp</a></div></div>
<div class="ttc" id="structprocess_1_1Failure_html"><div class="ttname"><a href="structprocess_1_1Failure.html">process::Failure</a></div><div class="ttdef"><b>Definition:</b> future.hpp:668</div></div>
+<div class="ttc" id="include_2process_2subprocess_8hpp_html"><div class="ttname"><a href="include_2process_2subprocess_8hpp.html">subprocess.hpp</a></div></div>
<div class="ttc" id="namespaceproc_html_a34396c6140a28f583dc13fee3c3c35d4"><div class="ttname"><a href="namespaceproc.html#a34396c6140a28f583dc13fee3c3c35d4">proc::status</a></div><div class="ttdeci">Result< ProcessStatus > status(pid_t pid)</div><div class="ttdef"><b>Definition:</b> proc.hpp:166</div></div>
<div class="ttc" id="classprocess_1_1Subprocess_html_a54793e9c516257d68776f63f0872c3c7"><div class="ttname"><a href="classprocess_1_1Subprocess.html#a54793e9c516257d68776f63f0872c3c7">process::Subprocess::PATH</a></div><div class="ttdeci">static IO PATH(const std::string &path)</div></div>
<div class="ttc" id="format_8hpp_html"><div class="ttname"><a href="format_8hpp.html">format.hpp</a></div></div>
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/encoder_8hpp_source.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/encoder_8hpp_source.html b/content/api/latest/c++/encoder_8hpp_source.html
index 30f8ddb..1742635 100644
--- a/content/api/latest/c++/encoder_8hpp_source.html
+++ b/content/api/latest/c++/encoder_8hpp_source.html
@@ -124,7 +124,7 @@
<div class="ttc" id="namespaceprocess_html_a13d37773ca341b12d88d7e5cf2654e83"><div class="ttname"><a href="namespaceprocess.html#a13d37773ca341b12d88d7e5cf2654e83">process::GZIP_MINIMUM_BODY_LENGTH</a></div><div class="ttdeci">const uint32_t GZIP_MINIMUM_BODY_LENGTH</div><div class="ttdef"><b>Definition:</b> encoder.hpp:35</div></div>
<div class="ttc" id="namespacecgroups_1_1blkio_1_1cfq_html_abe4d7d69fdf7ca70fb30c6cd34a953e4"><div class="ttname"><a href="namespacecgroups_1_1blkio_1_1cfq.html#abe4d7d69fdf7ca70fb30c6cd34a953e4">cgroups::blkio::cfq::time</a></div><div class="ttdeci">Try< std::vector< Value > > time(const std::string &hierarchy, const std::string &cgroup)</div></div>
<div class="ttc" id="classprocess_1_1Encoder_html_a61ab7c7c77f3285b9e1a91c3f962a007a0268afc52c40ae5367e3735511000246"><div class="ttname"><a href="classprocess_1_1Encoder.html#a61ab7c7c77f3285b9e1a91c3f962a007a0268afc52c40ae5367e3735511000246">process::Encoder::FILE</a></div><div class="ttdef"><b>Definition:</b> encoder.hpp:47</div></div>
-<div class="ttc" id="namespaceos_html_a5e0295f0e3bae2bd29d86803f9293b5d"><div class="ttname"><a href="namespaceos.html#a5e0295f0e3bae2bd29d86803f9293b5d">os::gmtime_r</a></div><div class="ttdeci">tm * gmtime_r(const time_t *timep, tm *result)</div><div class="ttdef"><b>Definition:</b> os.hpp:401</div></div>
+<div class="ttc" id="namespaceos_html_a5e0295f0e3bae2bd29d86803f9293b5d"><div class="ttname"><a href="namespaceos.html#a5e0295f0e3bae2bd29d86803f9293b5d">os::gmtime_r</a></div><div class="ttdeci">tm * gmtime_r(const time_t *timep, tm *result)</div><div class="ttdef"><b>Definition:</b> os.hpp:431</div></div>
<div class="ttc" id="classprocess_1_1FileEncoder_html_a25204db3e56d1089156b5954f3ca973b"><div class="ttname"><a href="classprocess_1_1FileEncoder.html#a25204db3e56d1089156b5954f3ca973b">process::FileEncoder::~FileEncoder</a></div><div class="ttdeci">virtual ~FileEncoder()</div><div class="ttdef"><b>Definition:</b> encoder.hpp:246</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/fd_8hpp.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/fd_8hpp.html b/content/api/latest/c++/fd_8hpp.html
index e8a3155..f8b5aba 100644
--- a/content/api/latest/c++/fd_8hpp.html
+++ b/content/api/latest/c++/fd_8hpp.html
@@ -59,11 +59,13 @@
<div class="textblock"><code>#include <fcntl.h></code><br />
<code>#include <io.h></code><br />
<code>#include <array></code><br />
+<code>#include <atomic></code><br />
<code>#include <memory></code><br />
<code>#include <ostream></code><br />
<code>#include <type_traits></code><br />
<code>#include <<a class="el" href="stout_2include_2stout_2check_8hpp_source.html">stout/check.hpp</a>></code><br />
<code>#include <<a class="el" href="nothing_8hpp_source.html">stout/nothing.hpp</a>></code><br />
+<code>#include <<a class="el" href="synchronized_8hpp_source.html">stout/synchronized.hpp</a>></code><br />
<code>#include <<a class="el" href="try_8hpp_source.html">stout/try.hpp</a>></code><br />
<code>#include <<a class="el" href="unreachable_8hpp_source.html">stout/unreachable.hpp</a>></code><br />
<code>#include <<a class="el" href="3rdparty_2stout_2include_2stout_2windows_8hpp_source.html">stout/windows.hpp</a>></code><br />
[07/50] mesos-site git commit: Updated the website built from mesos
SHA: 7c9c72d.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/tests_2containerizer_2launcher_8hpp_source.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/tests_2containerizer_2launcher_8hpp_source.html b/content/api/latest/c++/tests_2containerizer_2launcher_8hpp_source.html
index 96fe1ac..8ca040e 100644
--- a/content/api/latest/c++/tests_2containerizer_2launcher_8hpp_source.html
+++ b/content/api/latest/c++/tests_2containerizer_2launcher_8hpp_source.html
@@ -52,14 +52,14 @@
<div class="title">launcher.hpp</div> </div>
</div><!--header-->
<div class="contents">
-<a href="tests_2containerizer_2launcher_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// or more contributor license agreements. See the NOTICE file</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// distributed with this work for additional information</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">// regarding copyright ownership. The ASF licenses this file</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name
="l00006"></a><span class="lineno"> 6</span> <span class="comment">// "License"); you may not use this file except in compliance</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// with the License. You may obtain a copy of the License at</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">//</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// Unless required by applicable law or agreed to in writing, software</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class
="comment">// distributed under the License is distributed on an "AS IS" BASIS,</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">// See the License for the specific language governing permissions and</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// limitations under the License.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#ifndef __TEST_LAUNCHER_HPP__</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#define __TEST_LAUNCHER_HPP__</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> </div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include <map></span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <string></span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <vector></span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> </div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <gmock/gmock.h></span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include <<a class="code" href="include_2mesos_2mesos_8hpp.html">meso
s/mesos.hpp</a>></span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include <<a class="code" href="include_2mesos_2slave_2isolator_8hpp.html">mesos/slave/isolator.hpp</a>></span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> </div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include <<a class="code" href="future_8hpp.html">process/future.hpp</a>></span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include <<a class="code" href="owned_8hpp.html">process/owned.hpp</a>></span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#include <<a class="code" href="subprocess_8hpp.html">process/subproc
ess.hpp</a>></span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> </div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#include <<a class="code" href="3rdparty_2stout_2include_2stout_2flags_8hpp.html">stout/flags.hpp</a>></span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include <<a class="code" href="lambda_8hpp.html">stout/lambda.hpp</a>></span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#include <<a class="code" href="nothing_8hpp.html">stout/nothing.hpp</a>></span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#include <<a class="code" href="option_8hpp.html">stout/option.hpp</a>></span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>
 </div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor">#include "<a class="code" href="slave_2containerizer_2mesos_2launcher_8hpp.html">slave/containerizer/mesos/launcher.hpp</a>"</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="keyword">namespace </span><a class="code" href="namespacemesos.html">mesos</a> {</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="keyword">namespace </span><a class="code" href="namespaceinternal.html">internal</a> {</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="keyword">namespace </span>tests {</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>
60;</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1tests_1_1TestLauncher.html"> 46</a></span> <span class="keyword">class </span><a class="code" href="classmesos_1_1internal_1_1tests_1_1TestLauncher.html">TestLauncher</a> : <span class="keyword">public</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Launcher.html">slave::Launcher</a></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span> {</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <a class="code" href="classmesos_1_1internal_1_1tests_1_1TestLauncher.html#a03b2e4b3d90bb58e6e032c153e929722">TestLauncher</a>(<span class="keyword">const</span> <a class="code" href="classprocess_1_1Owned.html">process::Owned<slave::Launcher></a>& _real);</div><div class
="line"><a name="l00050"></a><span class="lineno"> 50</span> </div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <a class="code" href="classmesos_1_1internal_1_1tests_1_1TestLauncher.html#a79fd9c048b6ad3aa6ea8081da0773a37">~TestLauncher</a>();</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <a class="code" href="classmesos_1_1internal_1_1tests_1_1TestLauncher.html#a364457036ee4eee072a47db251e590ab">MOCK_METHOD1</a>(</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <a class="code" href="classmesos_1_1internal_1_1slave_1_1Launcher.html#a93e8c38b7a4d497b37ce82d9108fedb4">recover</a>,</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <a class="code" href="classprocess_1_1Future.html">process::Future</a><<a class="code" href="classhashset.html">has
hset<ContainerID></a>>(</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <span class="keyword">const</span> std::vector<mesos::slave::ContainerState>& states));</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span> </div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <a class="code" href="classmesos_1_1internal_1_1tests_1_1TestLauncher.html#a6c773728de6975683f0059474a7fca31">MOCK_METHOD9</a>(</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <a class="code" href="classmesos_1_1internal_1_1slave_1_1Launcher.html#acb021e7df5f9a5cc902de09e2da7b1df">fork</a>,</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <a class="code" href="classTry.html">Try<pid_t></a>(</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="keyword">const</s
pan> ContainerID& containerId,</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="keyword">const</span> std::string& <a class="code" href="namespacepath.html">path</a>,</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="keyword">const</span> std::vector<std::string>& argv,</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <span class="keyword">const</span> <a class="code" href="structmesos_1_1slave_1_1ContainerIO.html">mesos::slave::ContainerIO</a>& containerIO,</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <span class="keyword">const</span> <a class="code" href="classflags_1_1FlagsBase.html">flags::FlagsBase</a>* <a class="code" href="namespaceflags.html">flags</a>,</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <span
class="keyword">const</span> <a class="code" href="classOption.html">Option</a><std::map<std::string, std::string>>& env,</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<int></a>& enterNamespaces,</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<int></a>& cloneNamespaces,</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="keyword">const</span> std::vector<int_fd>& whitelistFds));</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span> </div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <a class="code" href="classmesos_1_1internal_1_1tests_1_1TestLauncher.html#a364457036ee4eee
072a47db251e590ab">MOCK_METHOD1</a>(</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <a class="code" href="classmesos_1_1internal_1_1slave_1_1Launcher.html#adf9cd543b7aaf0b999a2a00aa31c6175">destroy</a>,</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <a class="code" href="classprocess_1_1Future.html">process::Future<Nothing></a>(<span class="keyword">const</span> ContainerID& containerId));</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span> </div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <a class="code" href="classmesos_1_1internal_1_1tests_1_1TestLauncher.html#a364457036ee4eee072a47db251e590ab">MOCK_METHOD1</a>(</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <a class="code" href="classmesos_1_1internal_1_1slave_1_1Launcher.html#a45a6d7403aeb433663419923a9956bc0">status</a>,</div><
div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <a class="code" href="classprocess_1_1Future.html">process::Future<ContainerStatus></a>(<span class="keyword">const</span> ContainerID& containerId));</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span> </div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1tests_1_1TestLauncher.html#af98963da1a56e1ec7422f074b889d286"> 79</a></span>  <a class="code" href="classprocess_1_1Owned.html">process::Owned<slave::Launcher></a> <a class="code" href="classmesos_1_1internal_1_1tests_1_1TestLauncher.html#af98963da1a56e1ec7422f074b889d286">real</a>;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span> };</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span> </div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span> } <sp
an class="comment">// namespace tests {</span></div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span> } <span class="comment">// namespace internal {</span></div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span> } <span class="comment">// namespace mesos {</span></div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span> </div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="preprocessor">#endif // __TEST_LAUNCHER_HPP__</span></div><div class="ttc" id="namespacepath_html"><div class="ttname"><a href="namespacepath.html">path</a></div><div class="ttdef"><b>Definition:</b> path.hpp:26</div></div>
+<a href="tests_2containerizer_2launcher_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// or more contributor license agreements. See the NOTICE file</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// distributed with this work for additional information</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">// regarding copyright ownership. The ASF licenses this file</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name
="l00006"></a><span class="lineno"> 6</span> <span class="comment">// "License"); you may not use this file except in compliance</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// with the License. You may obtain a copy of the License at</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">//</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// Unless required by applicable law or agreed to in writing, software</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class
="comment">// distributed under the License is distributed on an "AS IS" BASIS,</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">// See the License for the specific language governing permissions and</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// limitations under the License.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#ifndef __TEST_LAUNCHER_HPP__</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#define __TEST_LAUNCHER_HPP__</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> </div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include <map></span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <string></span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <vector></span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> </div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <gmock/gmock.h></span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include <<a class="code" href="include_2mesos_2mesos_8hpp.html">meso
s/mesos.hpp</a>></span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include <<a class="code" href="include_2mesos_2slave_2isolator_8hpp.html">mesos/slave/isolator.hpp</a>></span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> </div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include <<a class="code" href="future_8hpp.html">process/future.hpp</a>></span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include <<a class="code" href="owned_8hpp.html">process/owned.hpp</a>></span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#include <<a class="code" href="include_2process_2subprocess_8hpp.htm
l">process/subprocess.hpp</a>></span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> </div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#include <<a class="code" href="3rdparty_2stout_2include_2stout_2flags_8hpp.html">stout/flags.hpp</a>></span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include <<a class="code" href="lambda_8hpp.html">stout/lambda.hpp</a>></span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#include <<a class="code" href="nothing_8hpp.html">stout/nothing.hpp</a>></span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#include <<a class="code" href="option_8hpp.html">stout/option.hpp</a>></span></div><div class="line"><a name="l00038"></a><span class="li
neno"> 38</span> </div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor">#include "<a class="code" href="slave_2containerizer_2mesos_2launcher_8hpp.html">slave/containerizer/mesos/launcher.hpp</a>"</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="keyword">namespace </span><a class="code" href="namespacemesos.html">mesos</a> {</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="keyword">namespace </span><a class="code" href="namespaceinternal.html">internal</a> {</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="keyword">namespace </span>tests {</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div><div class="line"><a name="l00045"></a><span class="linen
o"> 45</span> </div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1tests_1_1TestLauncher.html"> 46</a></span> <span class="keyword">class </span><a class="code" href="classmesos_1_1internal_1_1tests_1_1TestLauncher.html">TestLauncher</a> : <span class="keyword">public</span> <a class="code" href="classmesos_1_1internal_1_1slave_1_1Launcher.html">slave::Launcher</a></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span> {</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <a class="code" href="classmesos_1_1internal_1_1tests_1_1TestLauncher.html#a03b2e4b3d90bb58e6e032c153e929722">TestLauncher</a>(<span class="keyword">const</span> <a class="code" href="classprocess_1_1Owned.html">process::Owned<slave::Launcher></a>& _real
);</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> </div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <a class="code" href="classmesos_1_1internal_1_1tests_1_1TestLauncher.html#a79fd9c048b6ad3aa6ea8081da0773a37">~TestLauncher</a>();</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <a class="code" href="classmesos_1_1internal_1_1tests_1_1TestLauncher.html#a364457036ee4eee072a47db251e590ab">MOCK_METHOD1</a>(</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <a class="code" href="classmesos_1_1internal_1_1slave_1_1Launcher.html#a93e8c38b7a4d497b37ce82d9108fedb4">recover</a>,</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <a class="code" href="classprocess_1_1Future.html">process::Future</a><<a class="code" href="clas
shashset.html">hashset<ContainerID></a>>(</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <span class="keyword">const</span> std::vector<mesos::slave::ContainerState>& states));</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span> </div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <a class="code" href="classmesos_1_1internal_1_1tests_1_1TestLauncher.html#a6c773728de6975683f0059474a7fca31">MOCK_METHOD9</a>(</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <a class="code" href="classmesos_1_1internal_1_1slave_1_1Launcher.html#acb021e7df5f9a5cc902de09e2da7b1df">fork</a>,</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <a class="code" href="classTry.html">Try<pid_t></a>(</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class=
"keyword">const</span> ContainerID& containerId,</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="keyword">const</span> std::string& <a class="code" href="namespacepath.html">path</a>,</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="keyword">const</span> std::vector<std::string>& argv,</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <span class="keyword">const</span> <a class="code" href="structmesos_1_1slave_1_1ContainerIO.html">mesos::slave::ContainerIO</a>& containerIO,</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <span class="keyword">const</span> <a class="code" href="classflags_1_1FlagsBase.html">flags::FlagsBase</a>* <a class="code" href="namespaceflags.html">flags</a>,</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>
0; <span class="keyword">const</span> <a class="code" href="classOption.html">Option</a><std::map<std::string, std::string>>& env,</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<int></a>& enterNamespaces,</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<int></a>& cloneNamespaces,</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="keyword">const</span> std::vector<int_fd>& whitelistFds));</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span> </div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <a class="code" href="classmesos_1_1internal_1_1tests_1_1TestLauncher.htm
l#a364457036ee4eee072a47db251e590ab">MOCK_METHOD1</a>(</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <a class="code" href="classmesos_1_1internal_1_1slave_1_1Launcher.html#adf9cd543b7aaf0b999a2a00aa31c6175">destroy</a>,</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <a class="code" href="classprocess_1_1Future.html">process::Future<Nothing></a>(<span class="keyword">const</span> ContainerID& containerId));</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span> </div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <a class="code" href="classmesos_1_1internal_1_1tests_1_1TestLauncher.html#a364457036ee4eee072a47db251e590ab">MOCK_METHOD1</a>(</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <a class="code" href="classmesos_1_1internal_1_1slave_1_1Launcher.html#a45a6d7403aeb433663419923a9956bc0">
status</a>,</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <a class="code" href="classprocess_1_1Future.html">process::Future<ContainerStatus></a>(<span class="keyword">const</span> ContainerID& containerId));</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span> </div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1tests_1_1TestLauncher.html#af98963da1a56e1ec7422f074b889d286"> 79</a></span>  <a class="code" href="classprocess_1_1Owned.html">process::Owned<slave::Launcher></a> <a class="code" href="classmesos_1_1internal_1_1tests_1_1TestLauncher.html#af98963da1a56e1ec7422f074b889d286">real</a>;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span> };</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span> </div><div class="line"><a name="l00082"></a><span class="lineno"> 82
</span> } <span class="comment">// namespace tests {</span></div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span> } <span class="comment">// namespace internal {</span></div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span> } <span class="comment">// namespace mesos {</span></div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span> </div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="preprocessor">#endif // __TEST_LAUNCHER_HPP__</span></div><div class="ttc" id="namespacepath_html"><div class="ttname"><a href="namespacepath.html">path</a></div><div class="ttdef"><b>Definition:</b> path.hpp:26</div></div>
<div class="ttc" id="classmesos_1_1internal_1_1slave_1_1Launcher_html"><div class="ttname"><a href="classmesos_1_1internal_1_1slave_1_1Launcher.html">mesos::internal::slave::Launcher</a></div><div class="ttdef"><b>Definition:</b> launcher.hpp:47</div></div>
<div class="ttc" id="classOption_html"><div class="ttname"><a href="classOption.html">Option</a></div><div class="ttdef"><b>Definition:</b> option.hpp:28</div></div>
<div class="ttc" id="classmesos_1_1internal_1_1slave_1_1Launcher_html_a93e8c38b7a4d497b37ce82d9108fedb4"><div class="ttname"><a href="classmesos_1_1internal_1_1slave_1_1Launcher.html#a93e8c38b7a4d497b37ce82d9108fedb4">mesos::internal::slave::Launcher::recover</a></div><div class="ttdeci">virtual process::Future< hashset< ContainerID > > recover(const std::vector< mesos::slave::ContainerState > &states)=0</div></div>
<div class="ttc" id="classTry_html"><div class="ttname"><a href="classTry.html">Try</a></div><div class="ttdef"><b>Definition:</b> check.hpp:33</div></div>
<div class="ttc" id="classmesos_1_1internal_1_1tests_1_1TestLauncher_html_a79fd9c048b6ad3aa6ea8081da0773a37"><div class="ttname"><a href="classmesos_1_1internal_1_1tests_1_1TestLauncher.html#a79fd9c048b6ad3aa6ea8081da0773a37">mesos::internal::tests::TestLauncher::~TestLauncher</a></div><div class="ttdeci">~TestLauncher()</div></div>
<div class="ttc" id="classhashset_html"><div class="ttname"><a href="classhashset.html">hashset< ContainerID ></a></div></div>
-<div class="ttc" id="subprocess_8hpp_html"><div class="ttname"><a href="subprocess_8hpp.html">subprocess.hpp</a></div></div>
+<div class="ttc" id="include_2process_2subprocess_8hpp_html"><div class="ttname"><a href="include_2process_2subprocess_8hpp.html">subprocess.hpp</a></div></div>
<div class="ttc" id="include_2mesos_2mesos_8hpp_html"><div class="ttname"><a href="include_2mesos_2mesos_8hpp.html">mesos.hpp</a></div></div>
<div class="ttc" id="include_2mesos_2slave_2isolator_8hpp_html"><div class="ttname"><a href="include_2mesos_2slave_2isolator_8hpp.html">isolator.hpp</a></div></div>
<div class="ttc" id="classmesos_1_1internal_1_1slave_1_1Launcher_html_acb021e7df5f9a5cc902de09e2da7b1df"><div class="ttname"><a href="classmesos_1_1internal_1_1slave_1_1Launcher.html#acb021e7df5f9a5cc902de09e2da7b1df">mesos::internal::slave::Launcher::fork</a></div><div class="ttdeci">virtual Try< pid_t > fork(const ContainerID &containerId, const std::string &path, const std::vector< std::string > &argv, const mesos::slave::ContainerIO &containerIO, const flags::FlagsBase *flags, const Option< std::map< std::string, std::string >> &environment, const Option< int > &enterNamespaces, const Option< int > &cloneNamespaces, const std::vector< int_fd > &whitelistFds)=0</div></div>
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/v1_2resource__provider_8hpp_source.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/v1_2resource__provider_8hpp_source.html b/content/api/latest/c++/v1_2resource__provider_8hpp_source.html
index 4c63aa5..0c7a2c6 100644
--- a/content/api/latest/c++/v1_2resource__provider_8hpp_source.html
+++ b/content/api/latest/c++/v1_2resource__provider_8hpp_source.html
@@ -52,7 +52,7 @@
<div class="title">resource_provider.hpp</div> </div>
</div><!--header-->
<div class="contents">
-<a href="v1_2resource__provider_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// or more contributor license agreements. See the NOTICE file</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// distributed with this work for additional information</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">// regarding copyright ownership. The ASF licenses this file</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00006
"></a><span class="lineno"> 6</span> <span class="comment">// "License"); you may not use this file except in compliance</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// with the License. You may obtain a copy of the License at</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">//</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// Unless required by applicable law or agreed to in writing, software</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="commen
t">// distributed under the License is distributed on an "AS IS" BASIS,</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">// See the License for the specific language governing permissions and</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// limitations under the License.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#ifndef __MESOS_V1_RESOURCE_PROVIDER_HPP__</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#define __MESOS_V1_RESOURCE_PROVIDER_
HPP__</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> </div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include <functional></span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <queue></span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <<a class="code" href="future_8hpp.html">process/future.hpp</a>></span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <<a class="code" href="3rdparty_2libprocess_2include_2process_2http_8hpp.html">process/http.hpp</a>></span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="prepr
ocessor">#include <<a class="code" href="owned_8hpp.html">process/owned.hpp</a>></span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <<a class="code" href="include_2mesos_2http_8hpp.html">mesos/http.hpp</a>></span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> </div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include <<a class="code" href="include_2mesos_2v1_2mesos_8hpp.html">mesos/v1/mesos.hpp</a>></span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> </div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include <<a class="code" href="v1_2resource__provider_2resource__provider_8hpp.html">mesos/v1/resource_provider/re
source_provider.hpp</a>></span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#include <<a class="code" href="nothing_8hpp.html">stout/nothing.hpp</a>></span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#include <<a class="code" href="option_8hpp.html">stout/option.hpp</a>></span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> </div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="keyword">namespace </span><a class="code" href="namespacemesos.html">mesos</a> {</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="keyword">namespace </span><a class="code" href="namespaceinternal.html">internal</a> {</div><div class="line"><a name="l00038"></
a><span class="lineno"> 38</span> </div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="comment">// Forward declarations.</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Call, <span class="keyword">typename</span> Event></div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1HttpConnectionProcess.html"> 41</a></span> <span class="keyword">class </span><a class="code" href="classmesos_1_1internal_1_1HttpConnectionProcess.html">HttpConnectionProcess</a>;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="keyword">class </span><a class="code" href="classmesos_1_1internal_1_1EndpointDetector.html">EndpointDetector</a>;</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> } <span class="comment">// namespace internal {</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> </div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="keyword">namespace </span>v1 {</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="keyword">namespace </span>resource_provider {</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span> </div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="namespacemesos_1_1v1_1_1resource__provider.html#a8979cd8b1f8485e283620cf6827d21fc"> 50</a></span> typedef ::mesos::internal::HttpConnectionProcess<Call, Event> <a class="code" href="namespacemesos_1_1v1_1_1resource__provider.html#a8979cd8b1f84
85e283620cf6827d21fc">DriverProcess</a>;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="classmesos_1_1v1_1_1resource__provider_1_1Driver.html"> 56</a></span> <span class="keyword">class </span><a class="code" href="classmesos_1_1v1_1_1resource__provider_1_1Driver.html">Driver</a></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span> {</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <a class="code" href="classmesos_1_1v1_1_1resource__provider_1_1Driver.html">Driver</a>(<a class="code" href="classprocess_1_1Owned.html">process::Owned<mesos::internal::EndpointDetector></a> detector,</di
v><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <a class="code" href="namespacemesos.html#a13035ce0cc66cca4a467787b4716039e">ContentType</a> contentType,</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <span class="keyword">const</span> std::function<<span class="keywordtype">void</span>(<span class="keywordtype">void</span>)>& connected,</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <span class="keyword">const</span> std::function<<span class="keywordtype">void</span>(<span class="keywordtype">void</span>)>& disconnected,</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <span class="keyword">const</span> std::function<<span class="keywordtype">void</span>(<span class="keyword">const</span> std::queue<Event>&)>& received,</div><div class="line"><a name="l00084"></a><span c
lass="lineno"> 84</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a>& token);</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span> </div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  ~<a class="code" href="classmesos_1_1v1_1_1resource__provider_1_1Driver.html">Driver</a>();</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span> </div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <span class="keywordtype">void</span> <a class="code" href="namespacesystemd_1_1slices.html#a95aa197d8eed9f20dacb44f433b15f01">start</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span> </div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <a class="code" href="classmesos_1_1v1_1_1resource__provider_1_1
Driver.html">Driver</a>(<span class="keyword">const</span> <a class="code" href="classmesos_1_1v1_1_1resource__provider_1_1Driver.html">Driver</a>& other) = <span class="keyword">delete</span>;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <a class="code" href="classmesos_1_1v1_1_1resource__provider_1_1Driver.html">Driver</a>& operator=(<span class="keyword">const</span> <a class="code" href="classmesos_1_1v1_1_1resource__provider_1_1Driver.html">Driver</a>& other) = <span class="keyword">delete</span>;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span> </div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <a class="code" href="classprocess_1_1Future.html">process::Future<Nothing></a> <a class="code" href="namespacenet.html#aa0a46766b4aca53ea50e1921567ddb40">send</a>(<span class="keyword">const</span> <a class="code" href="namespacemesos_1_1internal_1_1tests_1_1v1
_1_1scheduler.html#acb18ceaa5f6f2338f2a9727af398eb79">Call</a>& call);</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span> </div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <a class="code" href="classprocess_1_1Owned.html">process::Owned<DriverProcess></a> <a class="code" href="namespaceos.html#ae19e4161a51b86a1f330f3bf1dc75389">process</a>;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span> };</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span> </div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span> } <span class="comment">// namespace resource_provider {</span></div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span> } <span class="comment">// namespace v1 {</span></div><
div class="line"><a name="l00101"></a><span class="lineno"> 101</span> } <span class="comment">// namespace mesos {</span></div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span> </div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <span class="preprocessor">#endif // __MESOS_V1_RESOURCE_PROVIDER_HPP__</span></div><div class="ttc" id="include_2mesos_2http_8hpp_html"><div class="ttname"><a href="include_2mesos_2http_8hpp.html">http.hpp</a></div></div>
+<a href="v1_2resource__provider_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// or more contributor license agreements. See the NOTICE file</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// distributed with this work for additional information</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">// regarding copyright ownership. The ASF licenses this file</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00006
"></a><span class="lineno"> 6</span> <span class="comment">// "License"); you may not use this file except in compliance</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// with the License. You may obtain a copy of the License at</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">//</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// Unless required by applicable law or agreed to in writing, software</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="commen
t">// distributed under the License is distributed on an "AS IS" BASIS,</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">// See the License for the specific language governing permissions and</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// limitations under the License.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#ifndef __MESOS_V1_RESOURCE_PROVIDER_HPP__</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#define __MESOS_V1_RESOURCE_PROVIDER_
HPP__</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> </div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include <functional></span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <queue></span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <<a class="code" href="future_8hpp.html">process/future.hpp</a>></span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <<a class="code" href="3rdparty_2libprocess_2include_2process_2http_8hpp.html">process/http.hpp</a>></span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="prepr
ocessor">#include <<a class="code" href="owned_8hpp.html">process/owned.hpp</a>></span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <<a class="code" href="include_2mesos_2http_8hpp.html">mesos/http.hpp</a>></span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> </div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include <<a class="code" href="include_2mesos_2v1_2mesos_8hpp.html">mesos/v1/mesos.hpp</a>></span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> </div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include <<a class="code" href="v1_2resource__provider_2resource__provider_8hpp.html">mesos/v1/resource_provider/re
source_provider.hpp</a>></span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#include <<a class="code" href="nothing_8hpp.html">stout/nothing.hpp</a>></span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#include <<a class="code" href="option_8hpp.html">stout/option.hpp</a>></span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> </div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="keyword">namespace </span><a class="code" href="namespacemesos.html">mesos</a> {</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="keyword">namespace </span><a class="code" href="namespaceinternal.html">internal</a> {</div><div class="line"><a name="l00038"></
a><span class="lineno"> 38</span> </div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="comment">// Forward declarations.</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Call, <span class="keyword">typename</span> Event></div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1HttpConnectionProcess.html"> 41</a></span> <span class="keyword">class </span><a class="code" href="classmesos_1_1internal_1_1HttpConnectionProcess.html">HttpConnectionProcess</a>;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="keyword">class </span><a class="code" href="classmesos_1_1internal_1_1EndpointDetector.html">EndpointDetector</a>;</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> } <span class="comment">// namespace internal {</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> </div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="keyword">namespace </span>v1 {</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="keyword">namespace </span>resource_provider {</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span> </div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="namespacemesos_1_1v1_1_1resource__provider.html#a8979cd8b1f8485e283620cf6827d21fc"> 50</a></span> typedef ::mesos::internal::HttpConnectionProcess<Call, Event> <a class="code" href="namespacemesos_1_1v1_1_1resource__provider.html#a8979cd8b1f84
85e283620cf6827d21fc">DriverProcess</a>;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span> </div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="classmesos_1_1v1_1_1resource__provider_1_1Driver.html"> 56</a></span> <span class="keyword">class </span><a class="code" href="classmesos_1_1v1_1_1resource__provider_1_1Driver.html">Driver</a></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span> {</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <a class="code" href="classmesos_1_1v1_1_1resource__provider_1_1Driver.html">Driver</a>(<a class="code" href="classprocess_1_1Owned.html">process::Owned<mesos::internal::EndpointDetector></a> detector,</di
v><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <a class="code" href="namespacemesos.html#a13035ce0cc66cca4a467787b4716039e">ContentType</a> contentType,</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <span class="keyword">const</span> std::function<<span class="keywordtype">void</span>(<span class="keywordtype">void</span>)>& connected,</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <span class="keyword">const</span> std::function<<span class="keywordtype">void</span>(<span class="keywordtype">void</span>)>& disconnected,</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <span class="keyword">const</span> std::function<<span class="keywordtype">void</span>(<span class="keyword">const</span> std::queue<Event>&)>& received,</div><div class="line"><a name="l00084"></a><span c
lass="lineno"> 84</span>  <span class="keyword">const</span> <a class="code" href="classOption.html">Option<std::string></a>& token);</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span> </div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  ~<a class="code" href="classmesos_1_1v1_1_1resource__provider_1_1Driver.html">Driver</a>();</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span> </div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <span class="keywordtype">void</span> <a class="code" href="namespacesystemd_1_1slices.html#a95aa197d8eed9f20dacb44f433b15f01">start</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span> </div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <a class="code" href="classmesos_1_1v1_1_1resource__provider_1_1
Driver.html">Driver</a>(<span class="keyword">const</span> <a class="code" href="classmesos_1_1v1_1_1resource__provider_1_1Driver.html">Driver</a>& other) = <span class="keyword">delete</span>;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <a class="code" href="classmesos_1_1v1_1_1resource__provider_1_1Driver.html">Driver</a>& operator=(<span class="keyword">const</span> <a class="code" href="classmesos_1_1v1_1_1resource__provider_1_1Driver.html">Driver</a>& other) = <span class="keyword">delete</span>;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span> </div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <a class="code" href="classprocess_1_1Future.html">process::Future<Nothing></a> <a class="code" href="namespaceprocess_1_1windows.html#a04c64346155d34517acdf8b587162868">send</a>(<span class="keyword">const</span> <a class="code" href="namespacemesos_1_1internal
_1_1tests_1_1v1_1_1scheduler.html#acb18ceaa5f6f2338f2a9727af398eb79">Call</a>& call);</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span> </div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <a class="code" href="classprocess_1_1Owned.html">process::Owned<DriverProcess></a> <a class="code" href="namespaceos.html#ae19e4161a51b86a1f330f3bf1dc75389">process</a>;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span> };</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span> </div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span> } <span class="comment">// namespace resource_provider {</span></div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span> } <span class="comment">// namespace v1
{</span></div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span> } <span class="comment">// namespace mesos {</span></div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span> </div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <span class="preprocessor">#endif // __MESOS_V1_RESOURCE_PROVIDER_HPP__</span></div><div class="ttc" id="include_2mesos_2http_8hpp_html"><div class="ttname"><a href="include_2mesos_2http_8hpp.html">http.hpp</a></div></div>
<div class="ttc" id="namespacemesos_html_a13035ce0cc66cca4a467787b4716039e"><div class="ttname"><a href="namespacemesos.html#a13035ce0cc66cca4a467787b4716039e">mesos::ContentType</a></div><div class="ttdeci">ContentType</div><div class="ttdef"><b>Definition:</b> http.hpp:43</div></div>
<div class="ttc" id="classOption_html"><div class="ttname"><a href="classOption.html">Option< std::string ></a></div></div>
<div class="ttc" id="namespacemesos_1_1internal_1_1tests_1_1v1_1_1scheduler_html_acb18ceaa5f6f2338f2a9727af398eb79"><div class="ttname"><a href="namespacemesos_1_1internal_1_1tests_1_1v1_1_1scheduler.html#acb18ceaa5f6f2338f2a9727af398eb79">mesos::internal::tests::v1::scheduler::Call</a></div><div class="ttdeci">mesos::v1::scheduler::Call Call</div><div class="ttdef"><b>Definition:</b> mesos.hpp:2660</div></div>
@@ -62,7 +62,6 @@
<div class="ttc" id="namespacemesos_1_1v1_1_1resource__provider_html_a8979cd8b1f8485e283620cf6827d21fc"><div class="ttname"><a href="namespacemesos_1_1v1_1_1resource__provider.html#a8979cd8b1f8485e283620cf6827d21fc">mesos::v1::resource_provider::DriverProcess</a></div><div class="ttdeci">::mesos::internal::HttpConnectionProcess< Call, Event > DriverProcess</div><div class="ttdef"><b>Definition:</b> resource_provider.hpp:50</div></div>
<div class="ttc" id="namespacesystemd_1_1slices_html_a95aa197d8eed9f20dacb44f433b15f01"><div class="ttname"><a href="namespacesystemd_1_1slices.html#a95aa197d8eed9f20dacb44f433b15f01">systemd::slices::start</a></div><div class="ttdeci">Try< Nothing > start(const std::string &name)</div><div class="ttdoc">Starts the slice with the given name (via &#39;systemctl start <name>&#39;). </div></div>
<div class="ttc" id="classmesos_1_1v1_1_1resource__provider_1_1Driver_html"><div class="ttname"><a href="classmesos_1_1v1_1_1resource__provider_1_1Driver.html">mesos::v1::resource_provider::Driver</a></div><div class="ttdoc">Resource provider driver. </div><div class="ttdef"><b>Definition:</b> resource_provider.hpp:56</div></div>
-<div class="ttc" id="namespacenet_html_aa0a46766b4aca53ea50e1921567ddb40"><div class="ttname"><a href="namespacenet.html#aa0a46766b4aca53ea50e1921567ddb40">net::send</a></div><div class="ttdeci">ssize_t send(const int_fd &fd, const void *buf, size_t len, int flags)</div><div class="ttdef"><b>Definition:</b> socket.hpp:159</div></div>
<div class="ttc" id="nothing_8hpp_html"><div class="ttname"><a href="nothing_8hpp.html">nothing.hpp</a></div></div>
<div class="ttc" id="namespacemesos_html"><div class="ttname"><a href="namespacemesos.html">mesos</a></div><div class="ttdef"><b>Definition:</b> spec.hpp:30</div></div>
<div class="ttc" id="option_8hpp_html"><div class="ttname"><a href="option_8hpp.html">option.hpp</a></div></div>
@@ -74,6 +73,7 @@
<div class="ttc" id="classprocess_1_1Owned_html"><div class="ttname"><a href="classprocess_1_1Owned.html">process::Owned< mesos::internal::EndpointDetector ></a></div></div>
<div class="ttc" id="3rdparty_2libprocess_2include_2process_2http_8hpp_html"><div class="ttname"><a href="3rdparty_2libprocess_2include_2process_2http_8hpp.html">http.hpp</a></div></div>
<div class="ttc" id="classprocess_1_1Future_html"><div class="ttname"><a href="classprocess_1_1Future.html">process::Future< Nothing ></a></div></div>
+<div class="ttc" id="namespaceprocess_1_1windows_html_a04c64346155d34517acdf8b587162868"><div class="ttname"><a href="namespaceprocess_1_1windows.html#a04c64346155d34517acdf8b587162868">process::windows::send</a></div><div class="ttdeci">Future< size_t > send(const int_fd &fd, const void *buf, size_t size)</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
[47/50] mesos-site git commit: Updated the website built from mesos
SHA: 7c9c72d.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/3rdparty_2libprocess_2include_2process_2protobuf_8hpp_source.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/3rdparty_2libprocess_2include_2process_2protobuf_8hpp_source.html b/content/api/latest/c++/3rdparty_2libprocess_2include_2process_2protobuf_8hpp_source.html
index ffa98d0..472d98a 100644
--- a/content/api/latest/c++/3rdparty_2libprocess_2include_2process_2protobuf_8hpp_source.html
+++ b/content/api/latest/c++/3rdparty_2libprocess_2include_2process_2protobuf_8hpp_source.html
@@ -52,7 +52,7 @@
<div class="title">protobuf.hpp</div> </div>
</div><!--header-->
<div class="contents">
-<a href="3rdparty_2libprocess_2include_2process_2protobuf_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// Licensed under the Apache License, Version 2.0 (the "License");</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// you may not use this file except in compliance with the License.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// You may obtain a copy of the License at</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00006"></a><span class="lineno">
6</span> <span class="comment">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// Unless required by applicable law or agreed to in writing, software</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">// distributed under the License is distributed on an "AS IS" BASIS,</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">// See the License for the specific language governing permissions and</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// limitations under the License</span></div><div class="line"><a name="l00012"></a><span class="line
no"> 12</span> </div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#ifndef __PROCESS_PROTOBUF_HPP__</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#define __PROCESS_PROTOBUF_HPP__</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include <glog/logging.h></span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> </div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include <google/protobuf/arena.h></span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include <google/protobuf/message.h></span></div><div class="line"><a name="l00020"
></a><span class="lineno"> 20</span> <span class="preprocessor">#include <google/protobuf/repeated_field.h></span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <iterator></span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <set></span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <vector></span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include <<a class="code" href="defer_8hpp.html">process/defer.hpp</a>></span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <
span class="preprocessor">#include <<a class="code" href="dispatch_8hpp.html">process/dispatch.hpp</a>></span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include <<a class="code" href="id_8hpp.html">process/id.hpp</a>></span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include <<a class="code" href="libprocess_2include_2process_2process_8hpp.html">process/process.hpp</a>></span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> </div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include <<a class="code" href="hashmap_8hpp.html">stout/hashmap.hpp</a>></span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#include <<a class="code" href="lambda_8hpp.html">stout/lambda.hpp</
a>></span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> </div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="comment">// Provides an implementation of process::post that for a protobuf.</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="keyword">namespace </span><a class="code" href="namespaceprocess.html">process</a> {</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> </div><div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="namespaceprocess.html#ab52d25f9fe4b28df7268c688725894d9"> 38</a></span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespaceprocess.html#a2b0f5478fa6a52497167aa994ff600d9">post</a>(<span class="keyword">const</span> <a clas
s="code" href="structprocess_1_1UPID.html">process::UPID</a>& to,</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <span class="keyword">const</span> google::protobuf::Message& message)</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> {</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  std::string data;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  message.SerializeToString(&data);</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <a class="code" href="namespaceprocess.html#a2b0f5478fa6a52497167aa994ff600d9">post</a>(to, message.GetTypeName(), data.data(), data.size());</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> }</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div><div class="line"><a name="l00046"></a><
span class="lineno"> 46</span> </div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="namespaceprocess.html#a45cacee57eaefdcc54028e6a5c5ba83d"> 47</a></span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespaceprocess.html#a2b0f5478fa6a52497167aa994ff600d9">post</a>(<span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">process::UPID</a>& from,</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">process::UPID</a>& to,</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <span class="keyword">const</span> google::protobuf::Message& message)</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> {</div><div class="line"><a name="l00051"></a>
<span class="lineno"> 51</span>  std::string data;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  message.SerializeToString(&data);</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <a class="code" href="namespaceprocess.html#a2b0f5478fa6a52497167aa994ff600d9">post</a>(from, to, message.GetTypeName(), data.data(), data.size());</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span> }</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span> } <span class="comment">// namespace process {</span></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span> </div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span> </div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="comment">//
The rest of this file provides libprocess "support" for using</span></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="comment">// protocol buffers. In particular, this file defines a subclass of</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="comment">// Process (ProtobufProcess) that allows you to install protocol</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="comment">// buffer handlers in addition to normal message and HTTP</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="comment">// handlers. Install handlers can optionally take the sender's UPID</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="comment">// as their first argument.</span></div><div class="line"><a name="l00065"></a><span class="lineno">
65</span> <span class="comment">// Note that this header file assumes you will be linking</span></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="comment">// against BOTH libprotobuf and libglog.</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span> </div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="namespacegoogle.html"> 68</a></span> <span class="keyword">namespace </span><a class="code" href="namespacegoogle.html">google</a> {</div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="namespacegoogle_1_1protobuf.html"> 69</a></span> <span class="keyword">namespace </span><a class="code" href="namespaceprotobuf.html">protobuf</a> {</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span> </div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="comment
">// Type conversions helpful for changing between protocol buffer types</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="comment">// and standard C++ types (for parameters).</span></div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="namespacegoogle_1_1protobuf.html#aee8eca8614f1e8ce851c94890b57482b"> 74</a></span> <span class="keyword">const</span> T& <a class="code" href="convert_8hpp.html#aebbb6488a44f0e941d3aa6e7eb087e52">convert</a>(<span class="keyword">const</span> T& t)</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span> {</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <span class="keywordflow">return</span> t;</div><div class="line"><a na
me="l00077"></a><span class="lineno"> 77</span> }</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span> </div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span> </div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="namespacegoogle_1_1protobuf.html#aa37c14fc80bf93a711b3955ca6fc879b"> 81</a></span> std::vector<T> <a class="code" href="convert_8hpp.html#aebbb6488a44f0e941d3aa6e7eb087e52">convert</a>(<span class="keyword">const</span> google::protobuf::RepeatedPtrField<T>& items)</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span> {</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <span class="keywordflow">return</span> std::vector<T&
gt;(items.begin(), items.end());</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span> }</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span> </div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span> </div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="namespacegoogle_1_1protobuf.html#ab7dad5f52d7a173b8d69759e2d206c3a"> 88</a></span> std::vector<T> <a class="code" href="convert_8hpp.html#aebbb6488a44f0e941d3aa6e7eb087e52">convert</a>(google::protobuf::RepeatedPtrField<T>&& items)</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span> {</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <span class="keywordflow">
return</span> std::vector<T>(</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  std::make_move_iterator(items.begin()),</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  std::make_move_iterator(items.end()));</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span> }</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span> </div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span> } <span class="comment">// namespace protobuf {</span></div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span> } <span class="comment">// namespace google {</span></div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span> </div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span> </div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <span clas
s="keyword">template</span> <<span class="keyword">typename</span> T></div><div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="classProtobufProcess.html"> 100</a></span> <span class="keyword">class </span><a class="code" href="classProtobufProcess.html">ProtobufProcess</a> : <span class="keyword">public</span> <a class="code" href="classprocess_1_1Process.html">process::Process</a><T></div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span> {</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="classProtobufProcess.html#ade255e672ae628b3297c614e95b7917d"> 103</a></span>  <span class="keyword">virtual</span> <a class="code" href="classProtobufProcess.html#ade255e672ae628b3297c614e95b7917d">~ProtobufProcess</a>() {}</div><div class="line"><a name="l00104
"></a><span class="lineno"> 104</span> </div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <span class="keyword">protected</span>:</div><div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="classProtobufProcess.html#a5c6659fa98d4c54ae10ced56690f08ee"> 106</a></span>  <span class="keywordtype">void</span> <a class="code" href="classProtobufProcess.html#a5c6659fa98d4c54ae10ced56690f08ee">consume</a>(<a class="code" href="structprocess_1_1MessageEvent.html">process::MessageEvent</a>&& event)<span class="keyword"> override</span></div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <span class="keywordflow">if</span> (protobufHandlers.count(event.message.name) > 0) {</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  fr
om = <span class="keyword">event</span>.message.from; <span class="comment">// For 'reply'.</span></div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  protobufHandlers[<span class="keyword">event</span>.message.name](</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <span class="keyword">event</span>.message.from, <span class="keyword">event</span>.message.body);</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  from = <a class="code" href="structprocess_1_1UPID.html">process::UPID</a>();</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <a class="code" href="classprocess_1_1ProcessBase.html#aab442a83e7b73449ad9237af4ad02a80">process::Process<T>::consume</a>(std::move(event));</div><div
class="line"><a name="l00115"></a><span class="lineno"> 115</span>  }</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  }</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span> </div><div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="classProtobufProcess.html#a6c404fdc490a7199a0d2ad881d588e5c"> 118</a></span>  <span class="keywordtype">void</span> <a class="code" href="classProtobufProcess.html#a6c404fdc490a7199a0d2ad881d588e5c">send</a>(<span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">process::UPID</a>& to,</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <span class="keyword">const</span> google::protobuf::Message& message)</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  {</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</spa
n>  std::string data;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  message.SerializeToString(&data);</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <a class="code" href="classprocess_1_1ProcessBase.html#af90d581940120abfb787e46568e7a3af">process::Process<T>::send</a>(to, message.GetTypeName(), std::move(data));</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  }</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span> </div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <span class="keyword">using</span> <a class="code" href="classprocess_1_1Process.html">process::Process<T>::send</a>;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span> </div><div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="classProtobufProcess.html#aac3a38
ee730baa94fcc6c94482f8f756"> 128</a></span>  <span class="keywordtype">void</span> <a class="code" href="classProtobufProcess.html#aac3a38ee730baa94fcc6c94482f8f756">reply</a>(<span class="keyword">const</span> google::protobuf::Message& message)</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  {</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  CHECK(from) << <span class="stringliteral">"Attempting to reply without a sender"</span>;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  <a class="code" href="namespacenet.html#aa0a46766b4aca53ea50e1921567ddb40">send</a>(from, message);</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  }</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span> </div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <span class="com
ment">// Installs that take the sender as the first argument.</span></div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> M></div><div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="classProtobufProcess.html#a9e844001b1b4af4b57923a719f1e128a"> 136</a></span>  <span class="keywordtype">void</span> <a class="code" href="classProtobufProcess.html#a9e844001b1b4af4b57923a719f1e128a">install</a>(<span class="keywordtype">void</span> (T::*method)(<span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">process::UPID</a>&, <span class="keyword">const</span> M&))</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  {</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  google::protobuf::Message* m = <span class="keyword">new</span> M();</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  T* t = <span class="keyword">static_cast<</span>T*<span class="keyword">></span>(<span class="keyword">this</span>);</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  protobufHandlers[m->GetTypeName()] =</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <a class="code" href="namespaceprocess_1_1network.html#ad067110a4b38cc83785a43f49bf6c8e2">lambda::bind</a>(&handlerM<M>,</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  t, method,</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  lambda::_1, lambda::_2);</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <span class="keyword">delete</span> m;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#
160; }</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span> </div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> M></div><div class="line"><a name="l00148"></a><span class="lineno"><a class="line" href="classProtobufProcess.html#a8da6cd512073b5db2aa06a95c250efc1"> 148</a></span>  <span class="keywordtype">void</span> <a class="code" href="classProtobufProcess.html#a8da6cd512073b5db2aa06a95c250efc1">install</a>(<span class="keywordtype">void</span> (T::*method)(<span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">process::UPID</a>&, M&&))</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  {</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  google::protobuf::Message* m = <span class="keyword">new</span> M();</div><div cl
ass="line"><a name="l00151"></a><span class="lineno"> 151</span>  T* t = <span class="keyword">static_cast<</span>T*<span class="keyword">></span>(<span class="keyword">this</span>);</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  protobufHandlers[m->GetTypeName()] =</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <a class="code" href="namespaceprocess_1_1network.html#ad067110a4b38cc83785a43f49bf6c8e2">lambda::bind</a>(&handlerMutM<M>,</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  t, method,</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  lambda::_1, lambda::_2);</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <span class="keyword">delete</span> m;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span> 
}</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span> </div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> M, <span class="keyword">typename</span> P></div><div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="classProtobufProcess.html#a0657fb99bfae4fb1d83cb9fd13f8935a"> 160</a></span>  <span class="keyword">using</span> <a class="code" href="classProtobufProcess.html#a0657fb99bfae4fb1d83cb9fd13f8935a">MessageProperty</a> = P(M::*)() <span class="keyword">const</span>;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span> </div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> M></div><div class="line"><a name="l00163"></a><span class="lineno"><a class="line" hre
f="classProtobufProcess.html#a1e6490de580b7d7ac897c24d81554536"> 163</a></span>  <span class="keywordtype">void</span> <a class="code" href="classProtobufProcess.html#a1e6490de580b7d7ac897c24d81554536">install</a>(<span class="keywordtype">void</span> (T::*method)(<span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">process::UPID</a>&))</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  {</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  google::protobuf::Message* m = <span class="keyword">new</span> M();</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  T* t = <span class="keyword">static_cast<</span>T*<span class="keyword">></span>(<span class="keyword">this</span>);</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  protobufHandlers[m->GetTypeName()] =</div><div class="line"><a name="l00
168"></a><span class="lineno"> 168</span>  <a class="code" href="namespaceprocess_1_1network.html#ad067110a4b38cc83785a43f49bf6c8e2">lambda::bind</a>(&handler0,</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  t, method,</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  lambda::_1, lambda::_2);</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <span class="keyword">delete</span> m;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  }</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span> </div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> M,</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  <span class="keyword"
>typename</span> ...P, <span class="keyword">typename</span> ...PC></div><div class="line"><a name="l00176"></a><span class="lineno"><a class="line" href="classProtobufProcess.html#a26c145390616b42ec6b6e913adb60449"> 176</a></span>  <span class="keywordtype">void</span> <a class="code" href="classProtobufProcess.html#a26c145390616b42ec6b6e913adb60449">install</a>(</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  <span class="keywordtype">void</span> (T::*method)(<span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">process::UPID</a>&, PC...),</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  <a class="code" href="classProtobufProcess.html#a0657fb99bfae4fb1d83cb9fd13f8935a">MessageProperty<M, P></a>... param)</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  {</div><div class="line"><a name="l00180"></a><span class="linen
o"> 180</span>  google::protobuf::Message* m = <span class="keyword">new</span> M();</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  T* t = <span class="keyword">static_cast<</span>T*<span class="keyword">></span>(<span class="keyword">this</span>);</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  protobufHandlers[m->GetTypeName()] =</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <a class="code" href="namespaceprocess_1_1network.html#ad067110a4b38cc83785a43f49bf6c8e2">lambda::bind</a>(<span class="keyword">static_cast<</span><span class="keywordtype">void</span>(&)(</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  T*,</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <span class="keywordtype">void</span> (T::*)(<span class="keywor
d">const </span><a class="code" href="structprocess_1_1UPID.html">process::UPID</a>&, PC...),</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  <span class="keyword">const </span><a class="code" href="structprocess_1_1UPID.html">process::UPID</a>&,</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  <span class="keyword">const </span>std::string&,</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  <a class="code" href="classProtobufProcess.html#a0657fb99bfae4fb1d83cb9fd13f8935a">MessageProperty<M, P></a>...)<span class="keyword">></span>(handlerN),</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  t, method,</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  lambda::_1, lambda::_2, param...);</div><
div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  <span class="keyword">delete</span> m;</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  }</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span> </div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <span class="comment">// Installs that do not take the sender.</span></div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> M></div><div class="line"><a name="l00196"></a><span class="lineno"><a class="line" href="classProtobufProcess.html#ab3b1e7dbf45da39a0292fb8f0852e4a5"> 196</a></span>  <span class="keywordtype">void</span> <a class="code" href="classProtobufProcess.html#ab3b1e7dbf45da39a0292fb8f0852e4a5">install</a>(<span class="keywordtype">void</span> (T::*method)(<span class="keyword">co
nst</span> M&))</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  {</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  google::protobuf::Message* m = <span class="keyword">new</span> M();</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  T* t = <span class="keyword">static_cast<</span>T*<span class="keyword">></span>(<span class="keyword">this</span>);</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  protobufHandlers[m->GetTypeName()] =</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  <a class="code" href="namespaceprocess_1_1network.html#ad067110a4b38cc83785a43f49bf6c8e2">lambda::bind</a>(&_handlerM<M>,</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  t, method,</div><div class="line"><a name="l00203"></a><span class="lineno
"> 203</span>  lambda::_1, lambda::_2);</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  <span class="keyword">delete</span> m;</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  }</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span> </div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> M></div><div class="line"><a name="l00208"></a><span class="lineno"><a class="line" href="classProtobufProcess.html#a4faf2af38ed759b4c9ea9112b991921d"> 208</a></span>  <span class="keywordtype">void</span> <a class="code" href="classProtobufProcess.html#a4faf2af38ed759b4c9ea9112b991921d">install</a>(<span class="keywordtype">void</span> (T::*method)(M&&))</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  {</div><di
v class="line"><a name="l00210"></a><span class="lineno"> 210</span>  google::protobuf::Message* m = <span class="keyword">new</span> M();</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  T* t = <span class="keyword">static_cast<</span>T*<span class="keyword">></span>(<span class="keyword">this</span>);</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  protobufHandlers[m->GetTypeName()] =</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  <a class="code" href="namespaceprocess_1_1network.html#ad067110a4b38cc83785a43f49bf6c8e2">lambda::bind</a>(&_handlerMutM<M>,</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  t, method,</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  lambda::_1, lambda::_2);</div><div class="line"><a name="l00216"></a><spa
n class="lineno"> 216</span>  <span class="keyword">delete</span> m;</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  }</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span> </div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> M></div><div class="line"><a name="l00220"></a><span class="lineno"><a class="line" href="classProtobufProcess.html#a78e5925cac3e2cfed66f5a1d0c1aee3e"> 220</a></span>  <span class="keywordtype">void</span> <a class="code" href="classProtobufProcess.html#a78e5925cac3e2cfed66f5a1d0c1aee3e">install</a>(<span class="keywordtype">void</span> (T::*method)())</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  {</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  google::protobuf::Message* m = <span class="
keyword">new</span> M();</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  T* t = <span class="keyword">static_cast<</span>T*<span class="keyword">></span>(<span class="keyword">this</span>);</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  protobufHandlers[m->GetTypeName()] =</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  <a class="code" href="namespaceprocess_1_1network.html#ad067110a4b38cc83785a43f49bf6c8e2">lambda::bind</a>(&_handler0,</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  t, method,</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  lambda::_1, lambda::_2);</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  <span class="keyword">delete</span> m;</div><div class="line"><a name="l00229"></a><span class="
lineno"> 229</span>  }</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span> </div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> M,</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  <span class="keyword">typename</span> ...P, <span class="keyword">typename</span> ...PC></div><div class="line"><a name="l00233"></a><span class="lineno"><a class="line" href="classProtobufProcess.html#a2a43dbf78901ee50fb93fa330f9632d7"> 233</a></span>  <span class="keywordtype">void</span> <a class="code" href="classProtobufProcess.html#a2a43dbf78901ee50fb93fa330f9632d7">install</a>(</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  <span class="keywordtype">void</span> (T::*method)(PC...),</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</sp
an>  <a class="code" href="classProtobufProcess.html#a0657fb99bfae4fb1d83cb9fd13f8935a">MessageProperty<M, P></a>... param)</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  {</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  google::protobuf::Message* m = <span class="keyword">new</span> M();</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  T* t = <span class="keyword">static_cast<</span>T*<span class="keyword">></span>(<span class="keyword">this</span>);</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  protobufHandlers[m->GetTypeName()] =</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  <a class="code" href="namespaceprocess_1_1network.html#ad067110a4b38cc83785a43f49bf6c8e2">lambda::bind</a>(<span class="keyword">static_cast<</span><span class="keywordtype">void</span>
(&)(</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  T*,</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  <span class="keywordtype">void</span> (T::*)(PC...),</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  <span class="keyword">const </span><a class="code" href="structprocess_1_1UPID.html">process::UPID</a>&,</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  <span class="keyword">const </span>std::string&,</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  <a class="code" href="classProtobufProcess.html#a0657fb99bfae4fb1d83cb9fd13f8935a">MessageProperty<M, P></a>...)<span class="keyword">></span>(_handlerN),</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</spa
n>  t, method,</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  lambda::_1, lambda::_2, param...);</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  <span class="keyword">delete</span> m;</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  }</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span> </div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  <span class="keyword">using</span> <a class="code" href="classprocess_1_1Process.html">process::Process<T>::install</a>;</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span> </div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  <span class="comment">/
/ Handlers that take the sender as the first argument.</span></div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> M></div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  <span class="keyword">static</span> <span class="keywordtype">void</span> handlerM(</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  T* t,</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  <span class="keywordtype">void</span> (T::*method)(<span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">process::UPID</a>&, <span class="keyword">const</span> M&),</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  <span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">process::UPID</a>& sender,</d
iv><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  <span class="keyword">const</span> std::string& data)</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  {</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  google::protobuf::Arena arena;</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  M* m = CHECK_NOTNULL(google::protobuf::Arena::CreateMessage<M>(&arena));</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  m->ParseFromString(data);</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span> </div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  <span class="keywordflow">if</span> (m->IsInitialized()) {</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  (t->*method)(sender, *m);</div><div
class="line"><a name="l00268"></a><span class="lineno"> 268</span>  } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  LOG(WARNING) << <span class="stringliteral">"Initialization errors: "</span></div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  << m->InitializationErrorString();</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  }</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  }</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span> </div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> M></div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  <span class="keyword">static</span
> <span class="keywordtype">void</span> handlerMutM(</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  T* t,</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  <span class="keywordtype">void</span> (T::*method)(<span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">process::UPID</a>&, M&&),</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  <span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">process::UPID</a>& sender,</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  <span class="keyword">const</span> std::string& data)</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  {</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  M m;</div><div class="line"><a name="l00282"></a><span class
="lineno"> 282</span>  m.ParseFromString(data);</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span> </div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  <span class="keywordflow">if</span> (m.IsInitialized()) {</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  (t->*method)(sender, std::move(m));</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  LOG(WARNING) << <span class="stringliteral">"Initialization errors: "</span></div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  << m.InitializationErrorString();</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  }</div><div class="line"><a name="l00290"><
/a><span class="lineno"> 290</span>  }</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span> </div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  <span class="keyword">static</span> <span class="keywordtype">void</span> handler0(</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  T* t,</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  <span class="keywordtype">void</span> (T::*method)(<span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">process::UPID</a>&),</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  <span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">process::UPID</a>& sender,</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  <span class="keyword">const</span> std::string& data)</
div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  {</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  (t->*method)(sender);</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  }</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span> </div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> M,</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  <span class="keyword">typename</span> ...P, <span class="keyword">typename</span> ...PC></div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  <span class="keyword">static</span> <span class="keywordtype">void</span> handlerN(</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  T* t,</div><div
class="line"><a name="l00305"></a><span class="lineno"> 305</span>  <span class="keywordtype">void</span> (T::*method)(<span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">process::UPID</a>&, PC...),</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  <span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">process::UPID</a>& sender,</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  <span class="keyword">const</span> std::string& data,</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  <a class="code" href="classProtobufProcess.html#a0657fb99bfae4fb1d83cb9fd13f8935a">MessageProperty<M, P></a>... p)</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  {</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  google::proto
buf::Arena arena;</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  M* m = CHECK_NOTNULL(google::protobuf::Arena::CreateMessage<M>(&arena));</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  m->ParseFromString(data);</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span> </div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  <span class="keywordflow">if</span> (m->IsInitialized()) {</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  (t->*method)(sender, <a class="code" href="namespacegoogle_1_1protobuf.html#aee8eca8614f1e8ce851c94890b57482b">google::protobuf::convert</a>((m->*p)())...);</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#
160; LOG(WARNING) << <span class="stringliteral">"Initialization errors: "</span></div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  << m->InitializationErrorString();</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  }</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  }</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span> </div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  <span class="comment">// Handlers that ignore the sender.</span></div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> M></div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  <span class="keyword">static</span> <span class="keywordtype">void</span> _handler
M(</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  T* t,</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  <span class="keywordtype">void</span> (T::*method)(<span class="keyword">const</span> M&),</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  <span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">process::UPID</a>&,</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  <span class="keyword">const</span> std::string& data)</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  {</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  google::protobuf::Arena arena;</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>  M* m = CHECK_NOTNULL(google::protobuf::Arena::CreateMessage<M>(&aren
a));</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  m->ParseFromString(data);</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span> </div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  <span class="keywordflow">if</span> (m->IsInitialized()) {</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>  (t->*method)(*m);</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  LOG(WARNING) << <span class="stringliteral">"Initialization errors: "</span></div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>  << m->InitializationErrorString();</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span
>  }</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  }</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span> </div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> M></div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  <span class="keyword">static</span> <span class="keywordtype">void</span> _handlerMutM(</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  T* t,</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  <span class="keywordtype">void</span> (T::*method)(M&&),</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>  <span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">process::UPID</a>&,</div><div class="line"
><a name="l00347"></a><span class="lineno"> 347</span>  <span class="keyword">const</span> std::string& data)</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>  {</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  M m;</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>  m.ParseFromString(data);</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span> </div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>  <span class="keywordflow">if</span> (m.IsInitialized()) {</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>  (t->*method)(std::move(m));</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  LOG(WARNING) &
lt;< <span class="stringliteral">"Initialization errors: "</span></div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  << m.InitializationErrorString();</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  }</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  }</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span> </div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  <span class="keyword">static</span> <span class="keywordtype">void</span> _handler0(</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>  T* t,</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  <span class="keywordtype">void</span> (T::*method)(),</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>  <span class="keywor
d">const</span> <a class="code" href="structprocess_1_1UPID.html">process::UPID</a>&,</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>  <span class="keyword">const</span> std::string& data)</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>  {</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  (t->*method)();</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  }</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span> </div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> M,</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>  <span class="keyword">typename</span> ...P, <span class="keyword">typename</span> ...PC></div><div class="line"><a name="l00371"><
/a><span class="lineno"> 371</span>  <span class="keyword">static</span> <span class="keywordtype">void</span> _handlerN(</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  T* t,</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  <span class="keywordtype">void</span> (T::*method)(PC...),</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  <span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">process::UPID</a>&,</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  <span class="keyword">const</span> std::string& data,</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  <a class="code" href="classProtobufProcess.html#a0657fb99bfae4fb1d83cb9fd13f8935a">MessageProperty<M, P></a>... p)</div><div class="line"><a name="l00377"></a><span class="lineno"> 377
</span>  {</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  google::protobuf::Arena arena;</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  M* m = CHECK_NOTNULL(google::protobuf::Arena::CreateMessage<M>(&arena));</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>  m->ParseFromString(data);</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span> </div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  <span class="keywordflow">if</span> (m->IsInitialized()) {</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>  (t->*method)(<a class="code" href="namespacegoogle_1_1protobuf.html#aee8eca8614f1e8ce851c94890b57482b">google::protobuf::convert</a>((m->*p)())...);</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>  } <span clas
s="keywordflow">else</span> {</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>  LOG(WARNING) << <span class="stringliteral">"Initialization errors: "</span></div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  << m->InitializationErrorString();</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  }</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  }</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span> </div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  <span class="keyword">typedef</span> lambda::function<</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  void(<span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">process::UPID</a>&, <span class="keyword">const</span
> std::string&)> handler;</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  <a class="code" href="classhashmap.html">hashmap<std::string, handler></a> protobufHandlers;</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span> </div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  <span class="comment">// Sender of "current" message, inaccessible by subclasses.</span></div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  <span class="comment">// This is only used for reply().</span></div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  <a class="code" href="structprocess_1_1UPID.html">process::UPID</a> from;</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span> };</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span> </div><div class="line"><a name="l00
399"></a><span class="lineno"> 399</span> </div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span> <span class="comment">// Implements a process for sending protobuf "requests" to a process</span></div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span> <span class="comment">// and waiting for a protobuf "response", but uses futures so that</span></div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span> <span class="comment">// this can be done without needing to implement a process.</span></div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Req, <span class="keyword">typename</span> Res></div><div class="line"><a name="l00404"></a><span class="lineno"><a class="line" href="classReqResProcess.html"> 404</a></span> <span class="keyword">class </span><a class="cod
e" href="classReqResProcess.html">ReqResProcess</a> : <span class="keyword">public</span> <a class="code" href="classProtobufProcess.html">ProtobufProcess</a><ReqResProcess<Req, Res>></div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span> {</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00407"></a><span class="lineno"><a class="line" href="classReqResProcess.html#a47e2ce59480781d2fa17021dd4044148"> 407</a></span>  <a class="code" href="classReqResProcess.html#a47e2ce59480781d2fa17021dd4044148">ReqResProcess</a>(<span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">process::UPID</a>& _pid, <span class="keyword">const</span> Req& _req)</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>  : <a class="code" href="namespaceprocess.html">process</a>::ProcessBase(<a c
lass="code" href="namespaceprocess.html">process</a>::ID::<a class="code" href="namespaceprocess_1_1ID.html#aeb11a48c9def1da169d8455a30d0ee39">generate</a>(<span class="stringliteral">"__req_res__"</span>)),</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>  pid(_pid),</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  req(_req)</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  {</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  <a class="code" href="classProtobufProcess.html">ProtobufProcess<ReqResProcess<Req, Res></a>>::template</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>  install<Res>(&<a class="code" href="classReqResProcess.html">ReqResProcess<Req, Res>::response</a>);</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span> 
}</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span> </div><div class="line"><a name="l00416"></a><span class="lineno"><a class="line" href="classReqResProcess.html#a169374a0aedeade8a80229cb2b32ad5f"> 416</a></span>  <span class="keyword">virtual</span> <a class="code" href="classReqResProcess.html#a169374a0aedeade8a80229cb2b32ad5f">~ReqResProcess</a>()</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  {</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  <span class="comment">// Discard the promise.</span></div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>  <a class="code" href="namespacemesos_1_1internal_1_1log_1_1protocol.html#a3b1f8bd7b18c51af9d1f58842950b545">promise</a>.discard();</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>  }</div><div class="line"><a name="l00421"></a><span class="lineno"> 42
1</span> </div><div class="line"><a name="l00422"></a><span class="lineno"><a class="line" href="classReqResProcess.html#aa88a64351fac32c4d142a4119b8fe45e"> 422</a></span>  <a class="code" href="classprocess_1_1Future.html">process::Future<Res></a> <a class="code" href="classReqResProcess.html#aa88a64351fac32c4d142a4119b8fe45e">run</a>()</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>  {</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  <a class="code" href="namespacemesos_1_1internal_1_1log_1_1protocol.html#a3b1f8bd7b18c51af9d1f58842950b545">promise</a>.future().onDiscard(<a class="code" href="namespaceprocess.html#a8b27a2ef76eb133bf0ce7a5eea4fb77c">defer</a>(<span class="keyword">this</span>, &ReqResProcess::discarded));</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span> </div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span> 
<a class="code" href="classProtobufProcess.html">ProtobufProcess<ReqResProcess<Req, Res></a>><a class="code" href="namespacenet.html#aa0a46766b4aca53ea50e1921567ddb40">::send</a>(pid, req);</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span> </div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>  <span class="keywordflow">return</span> <a class="code" href="namespacemesos_1_1internal_1_1log_1_1protocol.html#a3b1f8bd7b18c51af9d1f58842950b545">promise</a>.future();</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>  }</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span> </div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>  <span class="keywordtype">void</span> <a class="code" href="namespaceproces
s_1_1internal.html#aa03406abec646ff3df058f9e55749c11">discarded</a>()</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>  {</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>  <a class="code" href="namespacemesos_1_1internal_1_1log_1_1protocol.html#a3b1f8bd7b18c51af9d1f58842950b545">promise</a>.discard();</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>  <a class="code" href="namespaceprocess.html#a20443908afa3212215166e26065349e5">process::terminate</a>(<span class="keyword">this</span>);</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>  }</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span> </div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>  <span class="keywordtype">void</span> response(<span class="keyword">const</span> Res& res)</div><div class="line"><a name="l00439"></a><
span class="lineno"> 439</span>  {</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>  <a class="code" href="namespacemesos_1_1internal_1_1log_1_1protocol.html#a3b1f8bd7b18c51af9d1f58842950b545">promise</a>.set(res);</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>  <a class="code" href="namespaceprocess.html#a20443908afa3212215166e26065349e5">process::terminate</a>(<span class="keyword">this</span>);</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>  }</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span> </div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>  <span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">process::UPID</a> pid;</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>  <span class="keyword">const</span> Req req;</div><div class="lin
e"><a name="l00446"></a><span class="lineno"> 446</span>  <a class="code" href="classprocess_1_1Promise.html">process::Promise<Res></a> <a class="code" href="namespacemesos_1_1internal_1_1log_1_1protocol.html#a3b1f8bd7b18c51af9d1f58842950b545">promise</a>;</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span> };</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span> </div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span> </div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span> <span class="comment">// Allows you to describe request/response protocols and then use</span></div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span> <span class="comment">// those for sending requests and getting back responses.</span></div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span> <span class="keyword">template</span> <
<span class="keyword">typename</span> Req, <span class="keyword">typename</span> Res></div><div class="line"><a name="l00453"></a><span class="lineno"><a class="line" href="structProtocol.html"> 453</a></span> <span class="keyword">struct </span><a class="code" href="structProtocol.html">Protocol</a></div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span> {</div><div class="line"><a name="l00455"></a><span class="lineno"><a class="line" href="structProtocol.html#a19a92c2a83f9584a1880032e9c5c63da"> 455</a></span>  <a class="code" href="classprocess_1_1Future.html">process::Future<Res></a> <a class="code" href="structProtocol.html#a19a92c2a83f9584a1880032e9c5c63da">operator()</a>(</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>  <span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">process::UPID</a>& pid,</div><div class="line"><a name="l00457"></a><span class="l
ineno"> 457</span>  <span class="keyword">const</span> Req& req)<span class="keyword"> const</span></div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>  <span class="comment">// Help debugging by adding some "type constraints".</span></div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>  { Req* req = <span class="keyword">nullptr</span>; google::protobuf::Message* m = req; (void)m; }</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>  { Res* res = <span class="keyword">nullptr</span>; google::protobuf::Message* m = res; (void)m; }</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span> </div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>  <a class="code" href="classReqResProcess.html"
>ReqResProcess<Req, Res></a>* <a class="code" href="namespaceprocess.html">process</a> = <span class="keyword">new</span> <a class="code" href="classReqResProcess.html">ReqResProcess<Req, Res></a>(pid, req);</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>  <a class="code" href="namespaceprocess.html#aff22904a83567125d3b4d0d88e5a2270">process::spawn</a>(process, <span class="keyword">true</span>);</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>  <span class="keywordflow">return</span> <a class="code" href="namespaceprocess.html#acfbc29404bc653268289691b0dd59e22">process::dispatch</a>(process, &<a class="code" href="classReqResProcess.html">ReqResProcess<Req, Res>::run</a>);</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>  }</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span> };</div><div class="line"><a name="l00468"></a>
<span class="lineno"> 468</span> </div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span> <span class="preprocessor">#endif // __PROCESS_PROTOBUF_HPP__</span></div><div class="ttc" id="namespaceprocess_1_1ID_html_aeb11a48c9def1da169d8455a30d0ee39"><div class="ttname"><a href="namespaceprocess_1_1ID.html#aeb11a48c9def1da169d8455a30d0ee39">process::ID::generate</a></div><div class="ttdeci">std::string generate(const std::string &prefix="")</div><div class="ttdoc">Returns &#39;prefix(N)&#39; where N represents the number of instances where the same prefix (wrt...</div></div>
+<a href="3rdparty_2libprocess_2include_2process_2protobuf_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// Licensed under the Apache License, Version 2.0 (the "License");</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// you may not use this file except in compliance with the License.</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// You may obtain a copy of the License at</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00006"></a><span class="lineno">
6</span> <span class="comment">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// Unless required by applicable law or agreed to in writing, software</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">// distributed under the License is distributed on an "AS IS" BASIS,</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">// See the License for the specific language governing permissions and</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// limitations under the License</span></div><div class="line"><a name="l00012"></a><span class="line
no"> 12</span> </div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#ifndef __PROCESS_PROTOBUF_HPP__</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#define __PROCESS_PROTOBUF_HPP__</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor">#include <glog/logging.h></span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> </div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#include <google/protobuf/arena.h></span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#include <google/protobuf/message.h></span></div><div class="line"><a name="l00020"
></a><span class="lineno"> 20</span> <span class="preprocessor">#include <google/protobuf/repeated_field.h></span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <iterator></span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <set></span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <vector></span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include <<a class="code" href="defer_8hpp.html">process/defer.hpp</a>></span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <
span class="preprocessor">#include <<a class="code" href="dispatch_8hpp.html">process/dispatch.hpp</a>></span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include <<a class="code" href="id_8hpp.html">process/id.hpp</a>></span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include <<a class="code" href="libprocess_2include_2process_2process_8hpp.html">process/process.hpp</a>></span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> </div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include <<a class="code" href="hashmap_8hpp.html">stout/hashmap.hpp</a>></span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#include <<a class="code" href="lambda_8hpp.html">stout/lambda.hpp</
a>></span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> </div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="comment">// Provides an implementation of process::post that for a protobuf.</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="keyword">namespace </span><a class="code" href="namespaceprocess.html">process</a> {</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> </div><div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="namespaceprocess.html#ab52d25f9fe4b28df7268c688725894d9"> 38</a></span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespaceprocess.html#a2b0f5478fa6a52497167aa994ff600d9">post</a>(<span class="keyword">const</span> <a clas
s="code" href="structprocess_1_1UPID.html">process::UPID</a>& to,</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <span class="keyword">const</span> google::protobuf::Message& message)</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> {</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  std::string data;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  message.SerializeToString(&data);</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <a class="code" href="namespaceprocess.html#a2b0f5478fa6a52497167aa994ff600d9">post</a>(to, message.GetTypeName(), data.data(), data.size());</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> }</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div><div class="line"><a name="l00046"></a><
span class="lineno"> 46</span> </div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="namespaceprocess.html#a45cacee57eaefdcc54028e6a5c5ba83d"> 47</a></span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespaceprocess.html#a2b0f5478fa6a52497167aa994ff600d9">post</a>(<span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">process::UPID</a>& from,</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <span class="keyword">const</span> <a class="code" href="structprocess_1_1UPID.html">process::UPID</a>& to,</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <span class="keyword">const</span> google::protobuf::Message& message)</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> {</div><div class="line"><a name="l00051"></a>
<span class="lineno"> 51</span>  std::string data;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  message.SerializeToString(&data);</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <a class="code" href="namespaceprocess.html#a2b0f5478fa6a52497167aa994ff600d9">post</a>(from, to, message.GetTypeName(), data.data(), data.size());</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span> }</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span> } <span class="comment">// namespace process {</span></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span> </div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span> </div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="comment">//
The rest of this file provides libprocess "support" for using</span></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="comment">// protocol buffers. In particular, this file defines a subclass of</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="comment">// Process (ProtobufProcess) that allows you to install protocol</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="comment">// buffer handlers in addition to normal message and HTTP</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span> <span class="comment">// handlers. Install handlers can optionally take the sender's UPID</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="comment">// as their first argument.</span></div><div class="line"><a name="l00065"></a><span class="lineno">
65</span> <span class="comment">// Note that this header file assumes you will be linking</span></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="comment">// against BOTH libprotobuf and libglog.</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span> </div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="namespacegoogle.html"> 68</a></span> <span class="keyword">namespace </span><a class="code" href="namespacegoogle.html">google</a> {</div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="namespacegoogle_1_1protobuf.html"> 69</a></span> <span class="keyword">namespace </span><a class="code" href="namespaceprotobuf.html">protobuf</a> {</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span> </div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="comment
">// Type conversions helpful for changing between protocol buffer types</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="comment">// and standard C++ types (for parameters).</span></div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="namespacegoogle_1_1protobuf.html#aee8eca8614f1e8ce851c94890b57482b"> 74</a></span> <span class="keyword">const</span> T& <a class="code" href="convert_8hpp.html#aebbb6488a44f0e941d3aa6e7eb087e52">convert</a>(<span class="keyword">const</span> T& t)</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span> {</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <span class="keywordflow">return</span> t;</div><div class="line"><a na
me="l00077"></a><span class="lineno"> 77</span> }</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span> </div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span> </div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="namespacegoogle_1_1protobuf.html#aa37c14fc80bf93a711b3955ca6fc879b"> 81</a></span> std::vector<T> <a class="code" href="convert_8hpp.html#aebbb6488a44f0e941d3aa6e7eb087e52">convert</a>(<span class="keyword">const</span> google::protobuf::RepeatedPtrField<T>& items)</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span> {</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <span class="keywordflow">return</span> std::vector<T&
gt;(items.begin(), items.end());</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span> }</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span> </div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span> </div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="namespacegoogle_1_1protobuf.html#ab7dad5f52d7a173b8d69759e2d206c3a"> 88</a></span> std::vector<T> <a class="code" href="convert_8hpp.html#aebbb6488a44f0e941d3aa6e7eb087e52">convert</a>(google::protobuf::RepeatedPtrField<T>&& items)</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span> {</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <span class="keywordflow">
return</span> std::vector<T>(</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  std::make_move_iterator(items.begin()),</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  std::make_move_iterator(items.end()));</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span> }</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span> </div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span> } <span class="comment">// namespace protobuf {</span></div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span> } <span class="comment">// namespace google {</span></div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span> </div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span> </div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <span clas
s="keyword">template</span> <<span class="keyword">typename</span> T></div><div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="classProtobufProcess.html"> 100</a></span> <span class="keyword">class </span><a class="code" href="classProtobufProcess.html">ProtobufProcess</a> : <span class="keyword">public</span> <a class="code"
<TRUNCATED>
[16/50] mesos-site git commit: Updated the website built from mesos
SHA: 7c9c72d.
Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/09fd0301/content/api/latest/c++/src_2master_2allocator_2sorter_2random_2utils_8hpp_source.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/src_2master_2allocator_2sorter_2random_2utils_8hpp_source.html b/content/api/latest/c++/src_2master_2allocator_2sorter_2random_2utils_8hpp_source.html
index c0e19d5..74a3615 100644
--- a/content/api/latest/c++/src_2master_2allocator_2sorter_2random_2utils_8hpp_source.html
+++ b/content/api/latest/c++/src_2master_2allocator_2sorter_2random_2utils_8hpp_source.html
@@ -55,7 +55,7 @@
<a href="src_2master_2allocator_2sorter_2random_2utils_8hpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// or more contributor license agreements. See the NOTICE file</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// distributed with this work for additional information</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">// regarding copyright ownership. The ASF licenses this file</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// to you under the Apache License, Version 2.0 (the</span></div><div class
="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">// "License"); you may not use this file except in compliance</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// with the License. You may obtain a copy of the License at</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">//</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">//</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// Unless required by applicable law or agreed to in writing, software</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#
160;<span class="comment">// distributed under the License is distributed on an "AS IS" BASIS,</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">// See the License for the specific language governing permissions and</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// limitations under the License.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#ifndef __MASTER_ALLOCATOR_SORTER_RANDOM_UTILS_HPP__</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#def
ine __MASTER_ALLOCATOR_SORTER_RANDOM_UTILS_HPP__</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> </div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#include <algorithm></span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include <cmath></span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <numeric></span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <random></span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <vector></span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </div><div class="line"><a name="l00026"></a><span class="lineno">
26</span> <span class="preprocessor">#include <<a class="code" href="stout_2include_2stout_2check_8hpp.html">stout/check.hpp</a>></span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="keyword">namespace </span><a class="code" href="namespacemesos.html">mesos</a> {</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="keyword">namespace </span><a class="code" href="namespaceinternal.html">internal</a> {</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="keyword">namespace </span><a class="code" href="namespacemesos_1_1v1_1_1master.html">master</a> {</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="keyword">namespace </span>allocator {</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</sp
an> </div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="comment">// A weighted variant of std::shuffle. Items with higher weight</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="comment">// have a higher chance of being towards the front of the list,</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="comment">// equivalent to weighted random sampling without replacement.</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="comment">// Code adapted from the following paper:</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="comment">//</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="comment">// http://utopia.duth.gr/~pefraimi/research/data/2007EncOfAlg.pdf</span></div><div cla
ss="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="comment">// Found from: https://softwareengineering.stackexchange.com/a/344274</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="comment">//</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="comment">// This has O(n log n) runtime complexity.</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="keyword">template</span> <<span class="keyword">class</span> RandomAccessIterator, <span class="keyword">class</span> URBG></div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="namespacemesos_1_1internal_1_1master_1_1allocator.html#affc489370541ae3ab4bdd809b990eba4"> 43</a></span> <span class="keywordtype">void</span> <a class="code" href="namespacemesos_1_1internal_1_1master_1_1allocator.html#affc489370541ae3ab
4bdd809b990eba4">weightedShuffle</a>(</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  RandomAccessIterator begin,</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  RandomAccessIterator end,</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <span class="keyword">const</span> std::vector<double>& weights,</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  URBG&& urbg)</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> {</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  CHECK_EQ(end - begin, (<span class="keywordtype">int</span>) weights.size());</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> </div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  std::vector<double> keys(weights.size(
));</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i < weights.size(); ++i) {</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  CHECK_GT(weights[i], 0.0);</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <span class="comment">// Make the key negative so that we don't have to reverse sort.</span></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <span class="keywordtype">double</span> <a class="code" href="namespaceos.html#aede9f61dcb4b7d1f276302a7bce37446">random</a> = std::uniform_real_distribution<>(0.0, 1.0)(urbg);</div><div class="line"><a name="l00058"></a><span class="
lineno"> 58</span>  keys[i] = 0.0 - std::pow(random, (1.0 / weights[i]));</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  }</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span> </div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="comment">// Sort from smallest to largest keys. We store the sort permutation</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="comment">// so that we can apply it to `items`.</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  std::vector<size_t> permutation(keys.size());</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  std::iota(permutation.begin(), permutation.end(), 0);</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span> </div><div class="line"><a name="l00066"></a><s
pan class="lineno"> 66</span>  std::sort(permutation.begin(), permutation.end(),</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  [&](<span class="keywordtype">size_t</span> i, <span class="keywordtype">size_t</span> j){ <span class="keywordflow">return</span> keys[i] < keys[j]; });</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span> </div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="comment">// Now apply the permutation to `items`.</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <span class="comment">//</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="comment">// TODO(bmahler): Consider avoiding the copy of entries in `items`</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <span class="comment">// via an in-p
lace application of the permutation:</span></div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <span class="comment">// https://blog.merovius.de/2014/08/12/applying-permutation-in-constant.html</span></div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  std::vector<typename std::iterator_traits<RandomAccessIterator>::value_type></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  shuffled(end - begin);</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span> </div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <a class="code" href="namespacemesos_1_1internal_1_1recordio.html#a5fcab68176c462aaeed909f304c91bdf">std::transform</a>(</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  permutation.begin(),</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span
>  permutation.end(),</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  shuffled.begin(),</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  [&](<span class="keywordtype">size_t</span> i){ <span class="keywordflow">return</span> begin[i]; });</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span> </div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <span class="comment">// Move the shuffled copy back into the `items`.</span></div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  std::move(shuffled.begin(), shuffled.end(), begin);</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span> }</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span> </div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span> } <span class="comment">//
namespace allocator {</span></div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span> } <span class="comment">// namespace master {</span></div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span> } <span class="comment">// namespace internal {</span></div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span> } <span class="comment">// namespace mesos {</span></div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span> </div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <span class="preprocessor">#endif // __MASTER_ALLOCATOR_SORTER_RANDOM_UTILS_HPP__</span></div><div class="ttc" id="namespacemesos_1_1v1_1_1master_html"><div class="ttname"><a href="namespacemesos_1_1v1_1_1master.html">mesos::v1::master</a></div><div class="ttdef"><b>Definition:</b> master.hpp:27</div></div>
<div class="ttc" id="stout_2include_2stout_2check_8hpp_html"><div class="ttname"><a href="stout_2include_2stout_2check_8hpp.html">check.hpp</a></div></div>
<div class="ttc" id="namespacemesos_html"><div class="ttname"><a href="namespacemesos.html">mesos</a></div><div class="ttdef"><b>Definition:</b> spec.hpp:30</div></div>
-<div class="ttc" id="namespaceos_html_aede9f61dcb4b7d1f276302a7bce37446"><div class="ttname"><a href="namespaceos.html#aede9f61dcb4b7d1f276302a7bce37446">os::random</a></div><div class="ttdeci">int random()</div><div class="ttdef"><b>Definition:</b> os.hpp:550</div></div>
+<div class="ttc" id="namespaceos_html_aede9f61dcb4b7d1f276302a7bce37446"><div class="ttname"><a href="namespaceos.html#aede9f61dcb4b7d1f276302a7bce37446">os::random</a></div><div class="ttdeci">int random()</div><div class="ttdef"><b>Definition:</b> os.hpp:580</div></div>
<div class="ttc" id="namespacemesos_1_1internal_1_1master_1_1allocator_html_affc489370541ae3ab4bdd809b990eba4"><div class="ttname"><a href="namespacemesos_1_1internal_1_1master_1_1allocator.html#affc489370541ae3ab4bdd809b990eba4">mesos::internal::master::allocator::weightedShuffle</a></div><div class="ttdeci">void weightedShuffle(RandomAccessIterator begin, RandomAccessIterator end, const std::vector< double > &weights, URBG &&urbg)</div><div class="ttdef"><b>Definition:</b> utils.hpp:43</div></div>
<div class="ttc" id="namespacemesos_1_1internal_1_1recordio_html_a5fcab68176c462aaeed909f304c91bdf"><div class="ttname"><a href="namespacemesos_1_1internal_1_1recordio.html#a5fcab68176c462aaeed909f304c91bdf">mesos::internal::recordio::transform</a></div><div class="ttdeci">process::Future< Nothing > transform(process::Owned< Reader< T >> &&reader, const std::function< std::string(const T &)> &func, process::http::Pipe::Writer writer)</div><div class="ttdoc">This is a helper function that reads records from a Reader, applies a transformation to the records a...</div><div class="ttdef"><b>Definition:</b> recordio.hpp:112</div></div>
<div class="ttc" id="namespaceinternal_html"><div class="ttname"><a href="namespaceinternal.html">internal</a></div><div class="ttdef"><b>Definition:</b> attributes.hpp:24</div></div>