libzypp 17.25.7
IOTools.h
Go to the documentation of this file.
1/*---------------------------------------------------------------------\
2| ____ _ __ __ ___ |
3| |__ / \ / / . \ . \ |
4| / / \ V /| _/ _/ |
5| / /__ | | | | | | |
6| /_____||_| |_| |_| |
7| |
8\---------------------------------------------------------------------*/
12#ifndef ZYPP_BASE_IOTOOLS_H
13#define ZYPP_BASE_IOTOOLS_H
14
15#include <stdio.h>
16#include <utility>
17#include <string>
18#include <zypp/base/Exception.h>
19
20namespace zypp::io {
21
22 enum class BlockingMode{
23 FailedToSetMode = -1,
26 };
27
32 BlockingMode setFILEBlocking ( FILE *file, bool mode = true );
33
34
36 {
37 public:
41 TimeoutException() : Exception( "Timeout Exception" )
42 {}
46 TimeoutException( const std::string & msg_r )
47 : Exception( msg_r )
48 {}
49
51 virtual ~TimeoutException() noexcept override;
52 };
53
59 };
60
61 using timeout_type = size_t;
62 static const timeout_type no_timeout = static_cast<timeout_type>(-1);
63
70 std::pair<ReceiveUpToResult, std::string> receiveUpto( FILE * file, char c, timeout_type timeout, bool failOnUnblockError = true );
71
72}
73
74#endif
time_t timeout
Definition: MediaCurl.cc:67
Base class for Exception.
Definition: Exception.h:146
TimeoutException(const std::string &msg_r)
Ctor taking message.
Definition: IOTools.h:46
virtual ~TimeoutException() noexcept override
Dtor.
Definition: IOTools.cc:131
TimeoutException()
Ctor taking message.
Definition: IOTools.h:41
BlockingMode setFILEBlocking(FILE *file, bool mode)
Enables or disabled non blocking mode on a file descriptor.
Definition: IOTools.cc:24
static const timeout_type no_timeout
Definition: IOTools.h:62
std::pair< ReceiveUpToResult, std::string > receiveUpto(FILE *file, char c, timeout_type timeout, bool failOnUnblockError)
Definition: IOTools.cc:52
BlockingMode
Definition: IOTools.h:22
@ WasBlocking
FD was blocking before.
@ FailedToSetMode
Failed to block or unblock the fd.
@ WasNonBlocking
FD was non blocking before.
ReceiveUpToResult
Definition: IOTools.h:54
@ Timeout
Definition: IOTools.h:56
@ Success
Definition: IOTools.h:55
@ Error
Definition: IOTools.h:58
@ EndOfFile
Definition: IOTools.h:57
size_t timeout_type
Definition: IOTools.h:61