libzypp 17.35.9
PluginScript.h
Go to the documentation of this file.
1/*---------------------------------------------------------------------\
2| ____ _ __ __ ___ |
3| |__ / \ / / . \ . \ |
4| / / \ V /| _/ _/ |
5| / /__ | | | | | | |
6| /_____||_| |_| |_| |
7| |
8\---------------------------------------------------------------------*/
12#ifndef ZYPP_PLUGINSCRIPT_H
13#define ZYPP_PLUGINSCRIPT_H
14
15#include <iosfwd>
16#include <string>
17#include <vector>
18
19#include <zypp/base/PtrTypes.h>
20#include <zypp/Pathname.h>
21
24
26namespace zypp
27{
28
63 {
64 friend std::ostream & operator<<( std::ostream & str, const PluginScript & obj );
65
66 public:
68 using Arguments = std::vector<std::string>;
69
71 static const pid_t NotConnected;
72
73 public:
81 static long defaultSendTimeout();
82
84 static long defaultReceiveTimeout();
85
87 static void defaultSendTimeout( long newval_r );
88
90 static void defaultReceiveTimeout( long newval_r );
91
93 static void defaultTimeout( long newval_r )
94 { defaultSendTimeout( newval_r ); defaultReceiveTimeout( newval_r ); }
96
97 public:
100
102 PluginScript( Pathname script_r );
103
105 PluginScript( Pathname script_r, Arguments args_r );
106
107 public:
109 const Pathname & script() const;
110
112 const Arguments & args() const;
113
115 bool isOpen() const;
116
118 pid_t getPid() const;
119
121 int lastReturn() const;
122
126 const std::string & lastExecError() const;
127
128 public:
132 long sendTimeout() const;
133
135 long receiveTimeout() const;
136
138 void sendTimeout( long newval_r );
139
141 void receiveTimeout( long newval_r );
142
144 void timeout( long newval_r )
145 { sendTimeout( newval_r ); receiveTimeout( newval_r ); }
147
148 public:
154 void open();
155
157 void open( const Pathname & script_r );
158
160 void open( const Pathname & script_r, const Arguments & args_r );
161
163 int close();
164
165 public:
173 void send( const PluginFrame & frame_r ) const;
174
181 PluginFrame receive() const;
182
183 public:
185 struct Impl;
186 private:
189 };
190
192 std::ostream & operator<<( std::ostream & str, const PluginScript & obj );
193
195} // namespace zypp
197#endif // ZYPP_PLUGINSCRIPT_H
Command frame for communication with PluginScript.
Definition PluginFrame.h:42
Interface to plugin scripts using a Stomp inspired communication protocol.
std::vector< std::string > Arguments
Commandline arguments passed to a script on open.
RW_pointer< Impl > _pimpl
Pointer to implementation.
static const pid_t NotConnected
pid_t(-1) constant indicating no connection.
void timeout(long newval_r)
Set local default timeout (sec.) (both: send and receive).
static void defaultTimeout(long newval_r)
Set global default timeout (sec.) (both: send and receive).
String related utilities and Regular expression matching.
Easy-to use interface to the ZYPP dependency resolver.
std::ostream & operator<<(std::ostream &str, const SerialNumber &obj)
const Arch Arch_armv7hnl Arch_armv7nhl ZYPP_API
Definition Arch.h:247
Wrapper for const correct access via Smart pointer types.
Definition PtrTypes.h:293