Apache Mesos
docker.hpp
Go to the documentation of this file.
1 // Licensed to the Apache Software Foundation (ASF) under one
2 // or more contributor license agreements. See the NOTICE file
3 // distributed with this work for additional information
4 // regarding copyright ownership. The ASF licenses this file
5 // to you under the Apache License, Version 2.0 (the
6 // "License"); you may not use this file except in compliance
7 // with the License. You may obtain a copy of the License at
8 //
9 // http://www.apache.org/licenses/LICENSE-2.0
10 //
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an "AS IS" BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
16 
17 #ifndef __URI_SCHEMES_DOCKER_HPP__
18 #define __URI_SCHEMES_DOCKER_HPP__
19 
20 #include <string>
21 
22 #include <mesos/uri/uri.hpp>
23 
24 #include "uri/utils.hpp"
25 
26 namespace mesos {
27 namespace uri {
28 namespace docker {
29 
30 inline URI image(
31  const std::string& repository,
32  const std::string& reference, // Either tag or digest.
33  const std::string& registry,
34  const Option<std::string>& scheme = None(),
35  const Option<int>& port = None())
36 {
37  return construct(
38  "docker",
39  repository,
40  registry,
41  port,
42  reference,
43  scheme);
44 }
45 
46 
47 inline URI manifest(
48  const std::string& repository,
49  const std::string& reference, // Either tag or digest.
50  const std::string& registry,
51  const Option<std::string>& scheme = None(),
52  const Option<int>& port = None())
53 {
54  return construct(
55  "docker-manifest",
56  repository,
57  registry,
58  port,
59  reference,
60  scheme);
61 }
62 
63 
64 inline URI blob(
65  const std::string& repository,
66  const std::string& digest,
67  const std::string& registry,
68  const Option<std::string>& scheme = None(),
69  const Option<int>& port = None())
70 {
71  return construct(
72  "docker-blob",
73  repository,
74  registry,
75  port,
76  digest,
77  scheme);
78 }
79 
80 } // namespace docker {
81 } // namespace uri {
82 } // namespace mesos {
83 
84 #endif // __URI_SCHEMES_DOCKER_HPP__
URI construct(const std::string &scheme, const std::string &path="", const Option< std::string > &host=None(), const Option< int > &port=None(), const Option< std::string > &query=None(), const Option< std::string > &fragment=None(), const Option< std::string > &user=None(), const Option< std::string > &password=None())
Construct an URI with the given parameters.
URI blob(const std::string &repository, const std::string &digest, const std::string &registry, const Option< std::string > &scheme=None(), const Option< int > &port=None())
Definition: docker.hpp:64
URI manifest(const std::string &repository, const std::string &reference, const std::string &registry, const Option< std::string > &scheme=None(), const Option< int > &port=None())
Definition: docker.hpp:47
Definition: agent.hpp:25
URI image(const std::string &repository, const std::string &reference, const std::string &registry, const Option< std::string > &scheme=None(), const Option< int > &port=None())
Definition: docker.hpp:30
Definition: none.hpp:27
Definition: uri.hpp:21
Definition: spec.hpp:35