Android-cuttlefish cvd tool
Public Member Functions | Private Member Functions | Private Attributes | Friends | List of all members
cuttlefish::FetchBuildContext Class Reference

#include <fetch_context.h>

Collaboration diagram for cuttlefish::FetchBuildContext:
Collaboration graph
[legend]

Public Member Functions

const cuttlefish::BuildBuild () const
 
std::string GetBuildZipName (const std::string &) const
 
std::optional< std::string > GetFilepath () const
 
FetchArtifact Artifact (std::string artifact_name)
 

Private Member Functions

 FetchBuildContext (class FetchContext &, ::cuttlefish::Build, std::string_view target_directory, FileSource, FetchTracer::Trace)
 
Result< void > DesparseFiles (std::vector< std::string > files)
 
Result< void > AddFileToConfig (std::string file, std::string archive_name="", std::string archive_path="")
 

Private Attributes

class FetchContextfetch_context_
 
::cuttlefish::Build build_
 
std::string target_directory_
 
FileSource file_source_
 
FetchTracer::Trace trace_
 

Friends

class FetchArtifact
 
class FetchContext
 

Detailed Description

Wraps standard download operations with cross-cutting concerns:

File paths for return values and argument values are relative to the target directory.

By hiding the target directory from direct access, IO operations are funneled through an instance of this type, which guarantees none of the cross-cutting concerns are missed. Additionally, this could be replaced with a fake implementation later to support unit testing the business logic.

Constructor & Destructor Documentation

◆ FetchBuildContext()

cuttlefish::FetchBuildContext::FetchBuildContext ( class FetchContext fetch_context,
::cuttlefish::Build  build,
std::string_view  target_directory,
FileSource  file_source,
FetchTracer::Trace  trace 
)
private

Member Function Documentation

◆ AddFileToConfig()

Result< void > cuttlefish::FetchBuildContext::AddFileToConfig ( std::string  file,
std::string  archive_name = "",
std::string  archive_path = "" 
)
private

◆ Artifact()

FetchArtifact cuttlefish::FetchBuildContext::Artifact ( std::string  artifact_name)

◆ Build()

const cuttlefish::Build & cuttlefish::FetchBuildContext::Build ( ) const

◆ DesparseFiles()

Result< void > cuttlefish::FetchBuildContext::DesparseFiles ( std::vector< std::string >  files)
private

◆ GetBuildZipName()

std::string cuttlefish::FetchBuildContext::GetBuildZipName ( const std::string &  name) const

◆ GetFilepath()

std::optional< std::string > cuttlefish::FetchBuildContext::GetFilepath ( ) const

Friends And Related Function Documentation

◆ FetchArtifact

friend class FetchArtifact
friend

◆ FetchContext

friend class FetchContext
friend

Member Data Documentation

◆ build_

::cuttlefish::Build cuttlefish::FetchBuildContext::build_
private

◆ fetch_context_

class FetchContext& cuttlefish::FetchBuildContext::fetch_context_
private

◆ file_source_

FileSource cuttlefish::FetchBuildContext::file_source_
private

◆ target_directory_

std::string cuttlefish::FetchBuildContext::target_directory_
private

◆ trace_

FetchTracer::Trace cuttlefish::FetchBuildContext::trace_
private

The documentation for this class was generated from the following files: