libzypp  15.28.6
PluginExecutor.h
Go to the documentation of this file.
1 /*---------------------------------------------------------------------\
2 | ____ _ __ __ ___ |
3 | |__ / \ / / . \ . \ |
4 | / / \ V /| _/ _/ |
5 | / /__ | | | | | | |
6 | /_____||_| |_| |_| |
7 | |
8 \---------------------------------------------------------------------*/
11 #ifndef ZYPP_PLUGINEXECUTOR_H
12 #define ZYPP_PLUGINEXECUTOR_H
13 
14 #include <iosfwd>
15 
16 #include "zypp/base/PtrTypes.h"
17 #include "zypp/PluginScript.h"
18 
20 namespace zypp
21 {
42  {
43  friend std::ostream & operator<<( std::ostream & str, const PluginExecutor & obj );
44  friend bool operator==( const PluginExecutor & lhs, const PluginExecutor & rhs );
45 
46  public:
49 
52 
53  public:
55  explicit operator bool() const
56  { return !empty(); }
57 
59  bool empty() const;
60 
62  size_t size() const;
63 
64  public:
71  void load( const Pathname & path_r );
72 
76  void send( const PluginFrame & frame_r );
77 
78  public:
79  class Impl;
80  private:
82  };
83 
85  std::ostream & operator<<( std::ostream & str, const PluginExecutor & obj );
86 
88  inline bool operator==( const PluginExecutor & lhs, const PluginExecutor & rhs )
89  { return ( lhs._pimpl == rhs._pimpl ); }
90 
92  inline bool operator!=( const PluginExecutor & lhs, const PluginExecutor & rhs )
93  { return( ! operator==( lhs, rhs ) ); }
94 
95 } // namespace zypp
97 #endif // ZYPP_PLUGINEXECUTOR_H
PluginExecutor()
Default ctor: Empty plugin list.
bool empty() const
Whether no plugins are waiting.
Command frame for communication with PluginScript.
Definition: PluginFrame.h:40
friend bool operator==(const PluginExecutor &lhs, const PluginExecutor &rhs)
friend std::ostream & operator<<(std::ostream &str, const PluginExecutor &obj)
Parallel execution of stateful PluginScripts.
~PluginExecutor()
Dtor: Send PLUGINEND and close all plugins.
std::ostream & operator<<(std::ostream &str, const Exception &obj)
Definition: Exception.cc:120
void send(const PluginFrame &frame_r)
Send PluginFrame to all open plugins.
size_t size() const
Number of open plugins.
RW_pointer< Impl > _pimpl
Implementation class.
void load(const Pathname &path_r)
Find and launch plugins sending PLUGINBEGIN.
bool operator!=(const PluginExecutor &lhs, const PluginExecutor &rhs)
PluginExecutor implementation.