Example #1
0
//----------------------------------------------------------------------------
QList<ctkPlugin*> ctkPlugins::getPlugins(const QString& name, const ctkVersionRange& range) const
{
  if (!fwCtx)
  { // This plugins instance has been closed!
    throw std::logic_error("ctkPlugins::getPlugins(name, versionRange) called on closed plugins object.");
  }

  QList<ctkPlugin*> pluginsWithName = getPlugins(name);
  QList<ctkPlugin*> res;

  QListIterator<ctkPlugin*> it(pluginsWithName);
  while (it.hasNext()) {
    ctkPlugin* plugin = it.next();
    if (range.withinRange(plugin->getVersion()))
    {
      int j = res.size();
      while (--j >= 0)
      {
        if (plugin->getVersion().compare(res.at(j)->getVersion()) <= 0)
        {
          break;
        }
      }
      res.insert(j + 1, plugin);
    }
  }

  return res;
}
void
NegotiatorPluginManager::Update(const ClassAd &ad)
{
	NegotiatorPlugin *plugin;
	SimpleList<NegotiatorPlugin *> plugins = getPlugins();
	plugins.Rewind();
	while (plugins.Next(plugin)) {
		plugin->update(ad);
	}
}
void
NegotiatorPluginManager::Shutdown()
{
	NegotiatorPlugin *plugin;
	SimpleList<NegotiatorPlugin *> plugins = getPlugins();
	plugins.Rewind();
	while (plugins.Next(plugin)) {
		plugin->shutdown();
	}
}
void
NegotiatorPluginManager::Initialize()
{
	NegotiatorPlugin *plugin;
	SimpleList<NegotiatorPlugin *> plugins = getPlugins();
	plugins.Rewind();
	while (plugins.Next(plugin)) {
		plugin->initialize();
	}
}
void
CollectorPluginManager::Invalidate(int command, const ClassAd &ad)
{
	CollectorPlugin *plugin;
	SimpleList<CollectorPlugin *> plugins = getPlugins();
	plugins.Rewind();
	while (plugins.Next(plugin)) {
		plugin->invalidate(command, ad);
	}
}
void
CollectorPluginManager::Shutdown()
{
	CollectorPlugin *plugin;
	SimpleList<CollectorPlugin *> plugins = getPlugins();
	plugins.Rewind();
	while (plugins.Next(plugin)) {
		plugin->shutdown();
	}
}
Example #7
0
	void serialize( Archive& ar, const unsigned int version )
	{
		ar& BOOST_SERIALIZATION_NVP( _filePath );
		ar& BOOST_SERIALIZATION_NVP( _bundlePath );
		ar& BOOST_SERIALIZATION_NVP( _plugins );
		ar& BOOST_SERIALIZATION_NVP( _fileModificationTime );
		ar& BOOST_SERIALIZATION_NVP( _fileSize );

		if( typename Archive::is_loading() )
		{
			_binary.init( _filePath );
			checkBinaryChanged();

			for( PluginVector::iterator it = getPlugins().begin(), itEnd = getPlugins().end();
			     it != itEnd;
			     ++it )
			{
				it->setBinary( *this );
			}
		}
	}
static Bool
ccpReload (void *closure)
{
    CompPlugin *p;

    CCP_CORE (&core);

    for (p = getPlugins (); p; p = p->next)
    {
	if (!p->vTable->getObjectOptions)
	    continue;

	ccpReloadObjectTree (&core.base, (void *) p);
    }
    cc->reloadHandle = 0;

    return FALSE;
}
Example #9
0
static Bool
kconfigRcReload (void *closure)
{
    CompPlugin  *p;

    KCONFIG_CORE (&core);

    kc->config->reparseConfiguration ();

    for (p = getPlugins (); p; p = p->next)
    {
	if (!p->vTable->getObjectOptions)
	    continue;

	kconfigReloadObjectTree (&core.base, (void *) p);
    }

    kc->reloadHandle = 0;

    return FALSE;
}
Example #10
0
void PluginManager::disablePlugins()
{
	std::vector<Plugin *> plugins = getPlugins();
	for(int i = plugins.size() - 1; i >= 0; i--)
		disablePlugin(plugins[i]);
}
Example #11
0
File: fuse.c Project: zmike/compiz
static void
fuseUpdateInode(CompDisplay *d,
                FuseInode *inode)
{
   CompScreen *s;
   CompPlugin *p;
   CompOption *option;
   char str[256];

   if (inode->type & FUSE_INODE_TYPE_ROOT)
     {
        FuseInode *c;

        for (c = inode->child; c; c = c->sibling)
          {
             if (!findActivePlugin(c->name))
               fuseRemoveInode(inode, c);
          }

        for (p = getPlugins(); p; p = p->next)
          if (!fuseLookupChild(inode, p->vTable->name))
            fuseAddInode(inode, FUSE_INODE_TYPE_PLUGIN,
                         p->vTable->name);
     }
   else if (inode->type & FUSE_INODE_TYPE_PLUGIN)
     {
        int n;

        if (fuseGetOptionsFromInode(&d->base, inode, &n))
          fuseAddInode(inode, FUSE_INODE_TYPE_DISPLAY, "allscreens");

        for (s = d->screens; s; s = s->next)
          {
             if (fuseGetOptionsFromInode(&s->base, inode, &n))
               {
                  sprintf(str, "screen%d", s->screenNum);
                  fuseAddInode(inode, FUSE_INODE_TYPE_SCREEN, str);
               }
          }
     }
   else if (inode->type & (FUSE_INODE_TYPE_DISPLAY | FUSE_INODE_TYPE_SCREEN))
     {
        CompObject *object;

        object = fuseGetObjectFromInode(inode);
        if (object)
          {
             int nOption;

             option = fuseGetOptionsFromInode(object, inode->parent, &nOption);
             if (option)
               {
                  while (nOption--)
                    {
                       fuseAddInode(inode, FUSE_INODE_TYPE_OPTION, option->name);

                       option++;
                    }
               }
          }
     }
   else if (inode->type & FUSE_INODE_TYPE_OPTION)
     {
        option = fuseGetOptionFromInode(inode);
        if (option)
          {
             fuseAddInode(inode, FUSE_INODE_TYPE_TYPE, "type");

             switch (option->type)
               {
                case CompOptionTypeFloat:
                  fuseAddInode(inode, FUSE_INODE_TYPE_PRECISION, "precision");

                /* fall-through */
                case CompOptionTypeInt:
                  fuseAddInode(inode, FUSE_INODE_TYPE_MIN, "min");
                  fuseAddInode(inode, FUSE_INODE_TYPE_MAX, "max");

                /* fall-through */
                case CompOptionTypeBool:
                case CompOptionTypeString:
                case CompOptionTypeColor:
                case CompOptionTypeKey:
                case CompOptionTypeButton:
                case CompOptionTypeEdge:
                case CompOptionTypeBell:
                case CompOptionTypeMatch:
                  fuseAddInode(inode, FUSE_INODE_TYPE_VALUE, "value");
                  break;

                case CompOptionTypeList:
                  fuseAddInode(inode, FUSE_INODE_TYPE_ITEMS, "items");
                  fuseAddInode(inode, FUSE_INODE_TYPE_ITEM_COUNT,
                               "number_of_items");
                  fuseAddInode(inode, FUSE_INODE_TYPE_ITEM_TYPE, "item_type");

                default:
                  break;
               }
          }
     }
   else if (inode->type & FUSE_INODE_TYPE_ITEMS)
     {
        option = fuseGetOptionFromInode(inode->parent);
        if (option && option->type == CompOptionTypeList)
          {
             FuseInode *c, *next;
             int i, nValue = option->value.list.nValue;

             for (i = 0; i < option->value.list.nValue; i++)
               {
                  sprintf(str, "value%d", i);
                  if (!fuseLookupChild(inode, str))
                    fuseAddInode(inode, FUSE_INODE_TYPE_ITEM_VALUE, str);
               }

             for (c = inode->child; c; c = next)
               {
                  next = c->sibling;

                  if (sscanf(c->name, "value%d", &i) == 0 || i >= nValue)
                    fuseRemoveInode(inode, c);
               }
          }
     }
}