tensorflow:: serving:: SourceAdapter
This is an abstract class.
#include <source_adapter.h>
An abstraction for a module that receives aspired-version callbacks with data of type InputType and converts them into calls with data of type OutputType.
Summary
A common example uses InputType=StoragePath, OutputType=unique_ptr<Loader>, in which case the module "converts" each incoming storage path into a loader capable of loading a (particular type of) servable based on the path.
SourceAdapters are typically stateless. However, as with all Sources they can house state that is shared among multiple emitted servables. See the discussion in source.h.
Implementing subclasses supply an implementation of the Adapt() virtual method, which converts a servable version list from InputType to OutputType.
IMPORTANT: Every leaf derived class must call Detach() at the top of its destructor. (See documentation on TargetBase::Detach() in target.h.) Doing so ensures that no Adapt() calls are in flight during destruction of member variables.
Inheritance
Inherits from: TargetBase< InputType >, tensorflow::serving::Source< OutputType >
Constructors and Destructors |
|
---|---|
~SourceAdapter()
|
Public functions |
|
---|---|
Adapt(const StringPiece servable_name, std::vector< ServableData< InputType >> versions)=0
|
virtual std::vector< ServableData< OutputType > >
Given an InputType-based aspired-versions request, produces a corresponding OutputType-based request.
|
AdaptOneVersion(ServableData< InputType > input)
|
ServableData< OutputType >
Adapts a single servable data item. (Implemented on top of Adapt().)
|
SetAspiredVersions(const StringPiece servable_name, std::vector< ServableData< InputType >> versions) final
|
void
This method is implemented in terms of Adapt(), which the implementing subclass must supply.
|
SetAspiredVersionsCallback(typename Source< OutputType >::AspiredVersionsCallback callback) final
|
void
|
Protected functions |
|
---|---|
SourceAdapter()=default
|
|
Public functions
Adapt
virtual std::vector< ServableData< OutputType > > Adapt( const StringPiece servable_name, std::vector< ServableData< InputType >> versions )=0
Given an InputType-based aspired-versions request, produces a corresponding OutputType-based request.
AdaptOneVersion
ServableData< OutputType > AdaptOneVersion( ServableData< InputType > input )
Adapts a single servable data item. (Implemented on top of Adapt().)
SetAspiredVersions
void SetAspiredVersions( const StringPiece servable_name, std::vector< ServableData< InputType >> versions ) final
This method is implemented in terms of Adapt(), which the implementing subclass must supply.
SetAspiredVersionsCallback
void SetAspiredVersionsCallback( typename Source< OutputType >::AspiredVersionsCallback callback ) final
~SourceAdapter
virtual ~SourceAdapter() override=0
Protected functions
SourceAdapter
SourceAdapter()=default