Google Cloud Storage C++ Client  1.32.1
A C++ Client Library for Google Cloud Storage
override_default_project.h
Go to the documentation of this file.
1 // Copyright 2019 Google LLC
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 // http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14 
15 #ifndef GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_STORAGE_OVERRIDE_DEFAULT_PROJECT_H
16 #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_STORAGE_OVERRIDE_DEFAULT_PROJECT_H
17 
18 #include "google/cloud/storage/internal/complex_option.h"
19 #include "google/cloud/storage/version.h"
20 #include <string>
21 
22 namespace google {
23 namespace cloud {
24 namespace storage {
25 inline namespace STORAGE_CLIENT_NS {
26 /**
27  * Override the default project.
28  *
29  * In a small number of operations it is convenient to override the project id
30  * configured in a `storage::Client`. This option overrides the project id,
31  * without requiring additional overloads for each function.
32  */
34  : public internal::ComplexOption<OverrideDefaultProject, std::string> {
35  using ComplexOption<OverrideDefaultProject, std::string>::ComplexOption;
36  // GCC <= 7.0 does not use the inherited default constructor, redeclare it
37  // explicitly
39  static char const* name() { return "override_default_project"; }
40 };
41 
42 } // namespace STORAGE_CLIENT_NS
43 } // namespace storage
44 } // namespace cloud
45 } // namespace google
46 
47 #endif // GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_STORAGE_OVERRIDE_DEFAULT_PROJECT_H