libzypp  11.13.5
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