libzypp  17.35.12
ExternalDataSource.h
Go to the documentation of this file.
1 /*---------------------------------------------------------------------\
2 | ____ _ __ __ ___ |
3 | |__ / \ / / . \ . \ |
4 | / / \ V /| _/ _/ |
5 | / /__ | | | | | | |
6 | /_____||_| |_| |_| |
7 | |
8 \---------------------------------------------------------------------*/
12 #ifndef ZYPP_EXTERNALDATASOURCE_H
13 #define ZYPP_EXTERNALDATASOURCE_H
14 
15 #include <stdio.h>
16 
17 #include <string>
18 #include <optional>
19 #include <zypp-core/base/IOTools.h>
20 
21 namespace zypp {
22  namespace externalprogram {
23 
28  {
29  protected:
32 
33  private:
34  char *linebuffer;
36 
37  public:
44  ExternalDataSource( FILE *inputfile = 0, FILE *outputfile = 0 );
45 
49  virtual ~ExternalDataSource ();
50 
56  bool send( const char *buffer, size_t length );
57 
62  bool send( std::string s );
63 
70  size_t receive( char *buffer, size_t length );
71 
76  std::string receiveLine();
77 
85  std::string receiveLine( io::timeout_type timeout );
86 
92  std::string receiveUpto( char c );
93 
101  std::string receiveUpto( char c, io::timeout_type timeout );
102 
108  void setBlocking( bool mode );
109 
113  virtual int close();
114 
118  FILE *inputFile() const { return inputfile; }
119 
123  FILE *outputFile() const { return outputfile; }
124  };
125 
126  } // namespace externalprogram
127 } // namespace zypp
128 
129 #endif // ZYPP_EXTERNALDATASOURCE_H
130 
Bidirectional stream to external data.
FILE * outputFile() const
Return the output stream.
size_t timeout_type
Definition: IOTools.h:77
const Arch Arch_armv7hnl Arch_armv7nhl ZYPP_API
Definition: ResTraits.h:93
std::pair< ReceiveUpToResult, std::string > receiveUpto(FILE *file, char c, timeout_type timeout, bool failOnUnblockError)
Definition: IOTools.cc:85
constexpr std::string_view FILE("file")
FILE * inputFile() const
Return the input stream.
Easy-to use interface to the ZYPP dependency resolver.
Definition: Application.cc:19