1 #ifndef CONNECT_SERVICES__REMOTE_APP_MB_HPP
2 #define CONNECT_SERVICES__REMOTE_APP_MB_HPP
59 string&
data,
size_t& data_size) :
60 m_Storage(storage), m_Data(&
data), m_DataSize(&data_size)
75 static int x_GetTypeAndName(
CNcbiIstream& istream,
string& name);
106 void SetCmdLine(
const string& cmdline) { m_CmdLine = cmdline; }
128 return m_StdIn.GetOStream(
"",
eBlobStorage, m_MaxInlineSize);
133 return m_StdIn.GetIStream();
141 const string& stderr_fname,
144 m_StdOutFileName = stdout_fname;
145 m_StdErrFileName = stderr_fname;
146 m_StorageType =
type;
152 {
return m_StorageType; }
213 m_NetCacheAPI(netcache_api),
215 m_StdOut(netcache_api, m_OutBlobIdOrData, m_OutBlobSize),
217 m_StdErr(netcache_api, m_ErrBlobIdOrData, m_ErrBlobSize),
220 m_MaxInlineSize(max_inline_size)
228 return m_StdOut.GetOStream(m_StdOutFileName,
229 m_StorageType, m_MaxInlineSize);
234 return m_StdOut.GetIStream(&m_StdOutFileName, &m_StorageType);
239 return m_StdErr.GetOStream(m_StdErrFileName,
240 m_StorageType, m_MaxInlineSize);
245 return m_StdErr.GetIStream(&m_StdErrFileName, &m_StorageType);
258 const string& stderr_fname,
261 m_StdOutFileName = stdout_fname;
262 m_StdErrFileName = stderr_fname;
263 m_StorageType =
type;
268 {
return m_StorageType; }
273 { m_MaxInlineSize = max_inline_size; }
CBlobStreamHelper(CNetCacheAPI::TInstance storage, string &data, size_t &data_size)
Client API for NetCache server.
Remote Application Request (both client side and application executor side)
CNetCacheAPI m_NetCacheAPI
CNcbiIstream & GetStdInForRead()
Get the stdin stream of the remote application.
EStdOutErrStorageType m_StorageType
const TFiles & GetFileNames() const
CNetCacheAPI & GetNetCacheAPI()
bool IsExclusiveMode() const
const string & GetWorkingDir() const
void SetExclusiveMode(bool on_off)
void SetMaxInlineSize(size_t max_inline_size)
void SetStdOutErrFileNames(const string &stdout_fname, const string &stderr_fname, EStdOutErrStorageType type)
void AddFileForTransfer(const string &fname, EStdOutErrStorageType tt=eBlobStorage)
Transfer a file to an application executor side.
const string & GetStdOutFileName() const
CBlobStreamHelper m_StdIn
const string & GetInBlobIdOrData() const
map< string, EStdOutErrStorageType > TFiles
static CAtomicCounter sm_DirCounter
void Deserialize(CNcbiIstream &is)
void SetAppRunTimeout(unsigned int sec)
EStdOutErrStorageType GetStdOutErrStorageType() const
const string & GetCmdLine() const
Get the command line of the remote application.
CNcbiOstream & GetStdIn()
Get an output stream to write data to a remote application stdin.
const string & GetStdErrFileName() const
unsigned int GetAppRunTimeout() const
unsigned int m_AppRunTimeout
map< string, string > TStoredFiles
void SetCmdLine(const string &cmdline)
Set the command line for the remote application.
Remote Application Result (both client side and application executor side)
CBlobStreamHelper m_StdErr
void SetRetCode(int ret_code)
CNcbiOstream & GetStdOutForWrite()
Get a stream to put remote application's stdout to.
const string & GetErrBlobIdOrData() const
CNcbiIstream & GetStdErr()
Get a remote application stderr.
CNetCacheAPI m_NetCacheAPI
const string & GetStdOutFileName() const
EStdOutErrStorageType GetStdOutErrStorageType() const
CNcbiIstream & GetStdOut()
Get a remote application stdout.
void SetStdOutErrFileNames(const string &stdout_fname, const string &stderr_fname, EStdOutErrStorageType type)
CRemoteAppResult(CNetCacheAPI::TInstance netcache_api, size_t max_inline_size=kMaxBlobInlineSize)
const string & GetStdErrFileName() const
const string & GetOutBlobIdOrData() const
void SetMaxInlineSize(size_t max_inline_size)
EStdOutErrStorageType m_StorageType
CNcbiOstream & GetStdErrForWrite()
CBlobStreamHelper m_StdOut
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
IO_PREFIX::ostream CNcbiOstream
Portable alias for ostream.
IO_PREFIX::istream CNcbiIstream
Portable alias for istream.
#define NCBI_XCONNECT_EXPORT
Miscellaneous common-use basic types and functionality.
Portable reference counted smart and weak pointers using CWeakRef, CRef, CObject and CObjectEx.
NCBI C++ stream class wrappers for triggering between "new" and "old" C++ stream libraries.
const size_t kMaxBlobInlineSize
string JoinCmdLine(const vector< string > &args)
void TokenizeCmdLine(const string &cmdline, vector< string > &args)
void Serialize(CNcbiOstream &, const CRawScoreVector< Key, Score > &)
Generics These throw an exception; we must implement serialization for each type.
unique_ptr< CObjectIStream > GetIStream(string path, ESerialDataFormat serial_format)