Changeset 5915 for branches/newapi

Show
Ignore:
Timestamp:
12/02/07 20:58:20 (12 months ago)
Author:
erijo
Message:

Added PluginManager::setPluginLogSink for setting the LogSink? that
plugins will log to.

Location:
branches/newapi/licq/src
Files:
5 modified

Legend:

Unmodified
Added
Removed
  • branches/newapi/licq/src/daemon.cpp

    r5911 r5915  
    176176  if (vm.count("plugin")) 
    177177  { 
     178    PluginManager* pluginManager = PluginManager::getInstance(); 
     179 
    178180    std::vector<std::string> 
    179181        plugins = vm["plugin"].as< std::vector<std::string> >(); 
     
    181183         it != plugins.end(); ++it) 
    182184    { 
    183       /* 
    184       Licq::Plugin::Id 
    185           id = myPluginManager->loadPlugin(*it, myLogDistributor, 0, NULL); 
     185      Licq::Plugin::Id id = pluginManager->loadPlugin(*it, 0, NULL); 
    186186      myLog.debug(tr("Loaded plugin %1% with id %2%") % *it % id); 
    187       */ 
    188187    } 
    189188  } 
  • branches/newapi/licq/src/main.cpp

    r5910 r5915  
    1010#include "licq/exception/exception.h" 
    1111#include "licq/exception/invalidargumentexception.h" 
     12#include "plugin/pluginmanager.h" 
    1213#include "util/log.h" 
    1314#include "util/logdistributor.h" 
     
    6465  if (!isatty(STDERR_FILENO)) 
    6566    streamLogSink.setUseColors(false); 
     67 
     68  // Configure PluginManager 
     69  LicqDaemon::PluginManager::getInstance()->setPluginLogSink(&logDistributor); 
    6670 
    6771  // Fail if argv[0] isn't set 
  • branches/newapi/licq/src/plugin/pluginmanager.h

    r5909 r5915  
    4949  static PluginManager* getInstance(); 
    5050 
     51  virtual void setPluginLogSink(Licq::LogSink* sink) = 0; 
     52 
    5153  virtual void getPluginInformation( 
    5254    std::vector< boost::shared_ptr<const Licq::Plugin::Information> >* info) = 0; 
    5355 
    5456  virtual Licq::Plugin::Id 
    55   loadPlugin(const std::string& filename, 
    56              Licq::LogSink& sink, 
    57              int argc, char** argv) = 0; 
     57  loadPlugin(const std::string& filename, int argc, char** argv) = 0; 
    5858 
    5959  virtual PluginCache* getPluginCache() const = 0; 
  • branches/newapi/licq/src/plugin/pluginmanagerimpl.cpp

    r5797 r5915  
    2323 
    2424LicqDaemon::PluginManagerImpl::PluginManagerImpl(PluginCache& cache) 
    25   : myCache(cache) 
     25  : myCache(cache), 
     26    myPluginLogSink(NULL) 
    2627{ 
    2728  // Empty 
     
    3132{ 
    3233  // Empty 
     34} 
     35 
     36void LicqDaemon::PluginManagerImpl::setPluginLogSink(Licq::LogSink* sink) 
     37{ 
     38  assert(myPluginLogSink == NULL); 
     39  myPluginLogSink = sink; 
    3340} 
    3441 
     
    4552 
    4653Licq::Plugin::Id LicqDaemon::PluginManagerImpl:: 
    47 loadPlugin(const std::string& filename, 
    48            Licq::LogSink& sink, 
    49            int argc, char** argv) 
     54loadPlugin(const std::string& filename, int argc, char** argv) 
    5055{ 
     56  assert(myPluginLogSink != NULL); 
     57 
    5158  const size_t index = myCache.getIndex(filename); 
    5259 
     
    5764 
    5865  boost::shared_ptr<PluginInstance> 
    59       instance(new PluginInstanceImpl(info, lib, sink)); 
     66      instance(new PluginInstanceImpl(info, lib, *myPluginLogSink)); 
    6067 
    6168  Licq::Plugin::Id id = instance->load(argc, argv); 
  • branches/newapi/licq/src/plugin/pluginmanagerimpl.h

    r5909 r5915  
    4040  ~PluginManagerImpl(); 
    4141 
     42  /** 
     43   * Set the LogSink that plugins will log to. This must have been 
     44   * called before the first call to loadPlugin(). 
     45   */ 
     46  void setPluginLogSink(Licq::LogSink* sink); 
     47 
    4248  void getPluginInformation( 
    4349    std::vector< boost::shared_ptr<const Licq::Plugin::Information> >* info); 
    4450 
    45   Licq::Plugin::Id loadPlugin(const std::string& filename, 
    46                               Licq::LogSink& sink, 
    47                               int argc, char** argv); 
     51  Licq::Plugin::Id 
     52    loadPlugin(const std::string& filename, int argc, char** argv); 
    4853 
    4954  /** 
     
    5459private: 
    5560  PluginCache& myCache; 
     61  Licq::LogSink* myPluginLogSink; 
    5662   
    5763  typedef std::map<Licq::Plugin::Id,