libzypp  17.38.8
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 
20 #include <zypp-core/Pathname.h>
21 
24 
26 namespace 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:
99  PluginScript();
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  Pathname getChroot() const;
122 
124  int lastReturn() const;
125 
129  const std::string & lastExecError() const;
130 
131  public:
135  long sendTimeout() const;
136 
138  long receiveTimeout() const;
139 
141  void sendTimeout( long newval_r );
142 
144  void receiveTimeout( long newval_r );
145 
147  void timeout( long newval_r )
148  { sendTimeout( newval_r ); receiveTimeout( newval_r ); }
150 
151  public:
157  void open();
158 
160  void open( const Pathname & script_r );
161 
163  void open( const Pathname & script_r, const Arguments & args_r );
164 
168  void open( const Pathname & script_r, const Pathname & chroot_r );
169 
173  void open( const Pathname & script_r, const Arguments & args_r, const Pathname & chroot_r );
174 
182  void openChrooted( const Pathname & chroot_r );
183 
185  int close();
186 
187  public:
195  void send( const PluginFrame & frame_r ) const;
196 
203  PluginFrame receive() const;
204 
205  public:
207  struct Impl;
208  private:
211  };
212 
214  std::ostream & operator<<( std::ostream & str, const PluginScript & obj );
215 
217 } // namespace zypp
219 #endif // ZYPP_PLUGINSCRIPT_H
static void defaultTimeout(long newval_r)
Set global default timeout (sec.) (both: send and receive).
Definition: PluginScript.h:93
friend std::ostream & operator<<(std::ostream &str, const PluginScript &obj)
relates: PluginScript Stream output
void timeout(long newval_r)
Set local default timeout (sec.) (both: send and receive).
Definition: PluginScript.h:147
Command frame for communication with PluginScript.
Definition: PluginFrame.h:41
PluginScript implementation.
String related utilities and Regular expression matching.
PluginScript()
Default ctor.
const Pathname & script() const
Return the script path if set.
static const pid_t NotConnected
pid_t(-1) constant indicating no connection.
Definition: PluginScript.h:71
PluginFrame receive() const
Receive a PluginFrame.
const Arguments & args() const
Return the script arguments if set.
long receiveTimeout() const
Local default timeout (sec.) when receiving data.
RW_pointer< Impl > _pimpl
Pointer to implementation.
Definition: PluginScript.h:207
void send(const PluginFrame &frame_r) const
Send a PluginFrame.
static long defaultSendTimeout()
Global default timeout (sec.) when sending data.
static long defaultReceiveTimeout()
Global default timeout (sec.) when receiving data.
Pathname getChroot() const
Return a connected scripts chroot or an empty Pathname.
pid_t getPid() const
Return a connected scripts pid or NotConnected.
long sendTimeout() const
Local default timeout (sec.) when sending data.
void open()
Setup connection and execute script.
const std::string & lastExecError() const
Remembers a scripts execError string after close until next open.
std::vector< std::string > Arguments
Commandline arguments passed to a script on open.
Definition: PluginScript.h:68
int close()
Close any open connection.
std::ostream & operator<<(std::ostream &str, const Capabilities &obj)
relates: Capabilities Stream output
Definition: Capabilities.cc:65
int lastReturn() const
Remembers a scripts return value after close until next open.
Interface to plugin scripts using a Stomp inspired communication protocol.
Definition: PluginScript.h:62
Easy-to use interface to the ZYPP dependency resolver.
Definition: CodePitfalls.doc:1
bool isOpen() const
Whether we are connected to a script.
void openChrooted(const Pathname &chroot_r)
Like open() but runs the script chrooted into chroot_r.