-// Copyright (C) 2006-2013 CEA/DEN, EDF R&D
+// Copyright (C) 2006-2024 CEA, EDF
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
// License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
{
namespace ENGINE
{
- class Container;
+ class Task;
class ServiceNode;
+ class Container;
class YACSLIBENGINE_EXPORT ComponentInstance : public PropertyInterface, public RefCounter
{
virtual void setAnonymous(bool anon) { _anonymous = anon; };
virtual bool isAnonymous() { return _anonymous; };
int getNumId() const { return _numId; }
- virtual void setContainer(Container *cont);
+ virtual bool setContainer(Container *cont);
Container *getContainer() const { return _container; }
//! Load the component instance
- virtual void load() = 0;
+ virtual void load(Task *askingNode) = 0;
//! Unload the component instance
- virtual void unload() = 0;
+ virtual void unload(Task *askingNode) = 0;
//! Indicate if the component instance is loaded (true) or not
- virtual bool isLoaded() = 0;
+ virtual bool isLoaded(Task *askingNode) const = 0;
virtual void attachOnCloning() const;
virtual void dettachOnCloning() const;
bool isAttachedOnCloning() const;
virtual std::string getFileRepr() const;
virtual ServiceNode* createNode(const std::string& name)=0;
virtual ComponentInstance *clone() const = 0;
+ virtual ComponentInstance *cloneAlways() const = 0;
virtual std::string getKind() const;
+ virtual std::string getKindForNode() const;
static const char KIND[];
virtual void shutdown(int level);
protected: