libzypp  17.5.0
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 
22 #include "zypp/PluginFrame.h"
24 
26 namespace zypp
27 {
28 
63  {
64  friend std::ostream & operator<<( std::ostream & str, const PluginScript & obj );
65 
66  public:
68  typedef std::vector<std::string> Arguments;
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( const Pathname & script_r );
103 
105  PluginScript( const Pathname & script_r, const 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  class Impl;
186  private:
189  };
190 
192  std::ostream & operator<<( std::ostream & str, const PluginScript & obj );
193 
195 } // namespace zypp
197 #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)
void timeout(long newval_r)
Set local default timeout (sec.) (both: send and receive).
Definition: PluginScript.h:144
Command frame for communication with PluginScript.
Definition: PluginFrame.h:40
std::vector< std::string > Arguments
Commandline arguments passed to a script on open.
Definition: PluginScript.h:68
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:185
std::ostream & operator<<(std::ostream &str, const Exception &obj)
Definition: Exception.cc:147
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.
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.
int close()
Close any open connection.
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.