Android-cuttlefish cvd tool
flag_forwarder.h
Go to the documentation of this file.
1//
2// Copyright (C) 2019 The Android Open Source Project
3//
4// Licensed under the Apache License, Version 2.0 (the "License");
5// you may not use this file except in compliance with the License.
6// You may obtain a copy of the License at
7//
8// http://www.apache.org/licenses/LICENSE-2.0
9//
10// Unless required by applicable law or agreed to in writing, software
11// distributed under the License is distributed on an "AS IS" BASIS,
12// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13// See the License for the specific language governing permissions and
14// limitations under the License.
15
16#pragma once
17
18#include <memory>
19#include <set>
20#include <string>
21#include <vector>
22
23namespace cuttlefish {
24
25class SubprocessFlag;
26
28 std::set<std::string> subprocesses_;
29 std::set<std::unique_ptr<SubprocessFlag>> flags_;
30
31public:
32 FlagForwarder(std::set<std::string> subprocesses,
33 const std::vector<std::vector<std::string>>& args);
36 FlagForwarder(const FlagForwarder&) = delete;
39
40 void UpdateFlagDefaults() const;
41 std::vector<std::string> ArgvForSubprocess(
42 const std::string& subprocess,
43 const std::vector<std::string>& args = std::vector<std::string>()) const;
44};
45
46} // namespace cuttlefish
Definition: flag_forwarder.h:27
void UpdateFlagDefaults() const
Definition: flag_forwarder.cc:289
std::set< std::unique_ptr< SubprocessFlag > > flags_
Definition: flag_forwarder.h:29
FlagForwarder(const FlagForwarder &)=delete
std::vector< std::string > ArgvForSubprocess(const std::string &subprocess, const std::vector< std::string > &args=std::vector< std::string >()) const
Definition: flag_forwarder.cc:333
std::set< std::string > subprocesses_
Definition: flag_forwarder.h:28
FlagForwarder(std::set< std::string > subprocesses, const std::vector< std::vector< std::string > > &args)
Definition: flag_forwarder.cc:238
FlagForwarder & operator=(FlagForwarder &&)=default
FlagForwarder(FlagForwarder &&)=default
FlagForwarder & operator=(const FlagForwarder &)=delete
Definition: alloc_utils.cpp:23