[DEV] remove owner interface to simplify

This commit is contained in:
Edouard DUPIN 2014-05-20 23:24:51 +02:00
parent 87c622ddc0
commit 5e861e002c
7 changed files with 14 additions and 12 deletions

View File

@ -71,12 +71,14 @@ void ewol::Object::operator delete[](void* _ptr, std::size_t _sz) {
} }
void ewol::Object::autoDestroy() { void ewol::Object::autoDestroy() {
std::unique_lock<std::mutex> lock(m_lockRefCount); {
if (m_isDestroyed == true) { std::unique_lock<std::mutex> lock(m_lockRefCount);
EWOL_WARNING("Request remove of a removed object"); if (m_isDestroyed == true) {
return; EWOL_WARNING("Request remove of a removed object");
return;
}
m_isDestroyed = true;
} }
m_isDestroyed = true;
getObjectManager().autoRemove(this); getObjectManager().autoRemove(this);
} }

View File

@ -17,7 +17,7 @@ namespace ewol {
namespace resource { namespace resource {
class Manager { class Manager {
private: private:
std::vector<ewol::object::Owner<ewol::Resource>> m_resourceList; std::vector<ewol::object::Shared<ewol::Resource>> m_resourceList;
std::vector<ewol::object::Shared<ewol::Resource>> m_resourceListToUpdate; std::vector<ewol::object::Shared<ewol::Resource>> m_resourceListToUpdate;
bool m_contextHasBeenRemoved; bool m_contextHasBeenRemoved;
public: public:

View File

@ -21,7 +21,7 @@ namespace ewol {
*/ */
class Container : public ewol::Widget { class Container : public ewol::Widget {
protected: protected:
ewol::object::Owner<ewol::Widget> m_subWidget; ewol::object::Shared<ewol::Widget> m_subWidget;
public: public:
/** /**
* @brief Constructor * @brief Constructor

View File

@ -22,7 +22,7 @@ namespace ewol {
*/ */
class Container2 : public ewol::Widget { class Container2 : public ewol::Widget {
protected: protected:
ewol::object::Owner<ewol::Widget> m_subWidget[2]; //!< 2 subwidget possible ewol::object::Shared<ewol::Widget> m_subWidget[2]; //!< 2 subwidget possible
int32_t m_idWidgetDisplayed; //!< current widget displayed int32_t m_idWidgetDisplayed; //!< current widget displayed
public: public:
/** /**

View File

@ -21,7 +21,7 @@ namespace ewol {
*/ */
class ContainerN : public ewol::Widget { class ContainerN : public ewol::Widget {
protected: protected:
std::vector<ewol::object::Owner<ewol::Widget>> m_subWidget; std::vector<ewol::object::Shared<ewol::Widget>> m_subWidget;
public: public:
/** /**
* @brief Constructor * @brief Constructor

View File

@ -26,7 +26,7 @@ namespace ewol {
private: private:
class GirdProperties { class GirdProperties {
public: public:
ewol::object::Owner<ewol::Widget> widget; ewol::object::Shared<ewol::Widget> widget;
int32_t row; int32_t row;
int32_t col; int32_t col;
}; };

View File

@ -56,8 +56,8 @@ namespace ewol {
m_hasDecoration = true; m_hasDecoration = true;
} }
private: private:
ewol::object::Owner<ewol::Widget> m_subWidget; ewol::object::Shared<ewol::Widget> m_subWidget;
std::vector<ewol::object::Owner<ewol::Widget>> m_popUpWidgetList; std::vector<ewol::object::Shared<ewol::Widget>> m_popUpWidgetList;
public: public:
void setSubWidget(ewol::object::Shared<ewol::Widget> _widget); void setSubWidget(ewol::object::Shared<ewol::Widget> _widget);
void popUpWidgetPush(ewol::object::Shared<ewol::Widget> _widget); void popUpWidgetPush(ewol::object::Shared<ewol::Widget> _widget);