libzypp  13.10.6
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)
const Arguments & args() const
Return the script arguments if set.
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
long sendTimeout() const
Local default timeout (sec.) when sending data.
pid_t getPid() const
Return a connected scripts pid or NotConnected.
PluginScript implementation.
PluginScript()
Default ctor.
static const pid_t NotConnected
pid_t(-1) constant indicating no connection.
Definition: PluginScript.h:71
int lastReturn() const
Remembers a scripts return value after close until next open.
RW_pointer< Impl > _pimpl
Pointer to implementation.
Definition: PluginScript.h:185
std::ostream & operator<<(std::ostream &str, const Exception &obj)
Definition: Exception.cc:120
const Pathname & script() const
Return the script path if set.
static long defaultSendTimeout()
Global default timeout (sec.) when sending data.
long receiveTimeout() const
Local default timeout (sec.) when receiving data.
static long defaultReceiveTimeout()
Global default timeout (sec.) when receiving data.
void open()
Setup connection and execute script.
PluginFrame receive() const
Receive a PluginFrame.
bool isOpen() const
Whether we are connected to a script.
const std::string & lastExecError() const
Remembers a scripts execError string after close until next open.
int close()
Close any open connection.
Wrapper for const correct access via Smart pointer types.
Definition: PtrTypes.h:265
Interface to pluigin scripts using a Stomp inspired communication protocol.
Definition: PluginScript.h:62
void send(const PluginFrame &frame_r) const
Send a PluginFrame.