Use prefix to 'DS' 75/241475/1
authorMinJeong Kim <minjjj.kim@samsung.com>
Tue, 18 Feb 2020 08:04:25 +0000 (17:04 +0900)
committerSung-Jin Park <sj76.park@samsung.com>
Thu, 20 Aug 2020 09:43:17 +0000 (18:43 +0900)
Change-Id: Ib78ae073b7e6782c56a3b182c44f80e603b01b8a
Signed-off-by: MinJeong Kim <minjjj.kim@samsung.com>
20 files changed:
src/bin/sample1.cpp
src/core/WCallbackIface.h [deleted file]
src/core/WObject.cpp [deleted file]
src/core/WObject.h [deleted file]
src/core/WObjectPrivate.h [deleted file]
src/core/WProperty.cpp [deleted file]
src/core/WProperty.h [deleted file]
src/core/WPropertyPrivate.h [deleted file]
src/core/WRefBase.cpp [deleted file]
src/lib/DSCallbackIface.h [new file with mode: 0644]
src/lib/DSObject.cpp [new file with mode: 0644]
src/lib/DSObject.h [new file with mode: 0644]
src/lib/DSObjectPrivate.h [new file with mode: 0644]
src/lib/DSProperty.cpp [new file with mode: 0644]
src/lib/DSProperty.h [new file with mode: 0644]
src/lib/DSPropertyPrivate.h [new file with mode: 0644]
src/lib/DSRefBase.cpp [moved from src/core/WRefBasePrivate.h with 100% similarity]
src/lib/DSRefBase.h [moved from src/core/WRefBase.h with 57% similarity]
src/lib/DSSignal.cpp [moved from src/core/WSignal.cpp with 60% similarity]
src/lib/DSSignal.h [moved from src/core/WSignal.h with 52% similarity]

index acb5f61..94bfedc 100644 (file)
@@ -1,18 +1,35 @@
-#include "../core/WObject.h"
-#include "../core/WSignal.h"
-#include "../core/WRefBase.h"
+#include "../lib/DSObject.h"
+#include "../lib/DSSignal.h"
+#include "../lib/DSRefBase.h"
 #include <string>
 
+/* SAMPLE RESULT
+construct Sender sender
+construct Sender sender2
+construct Receiver receiver1
+construct Receiver receiver2
+slotA invoked! a:1234
+slotA2 invoked! a:1234
+slotB invoked! a:45.67
+Lambda slot invoked! val: 45.67
+destruct Receiver(ref: 0) receiver2
+slotB invoked! a:5678
+slotA invoked! a:90
+destruct Sender sender
+destruct Sender sender2
+destruct Receiver(ref: 1) receiver1
+ */
+
 using namespace TizenDisplayServer;
 
-using SignalAType = WSignal<int>;
-using SignalBType = WSignal<double>;
+using SignalAType = DSSignal<int>;
+using SignalBType = DSSignal<double>;
 
-class Sender : public WObject
+class Sender : public DSObject
 {
     public:
-    Sender() : WObject("Sender"){ std::cout << "construct Sender" << std::endl;}
-    Sender(std::string name) : WObject(name) {std::cout << "construct Sender " << name << std::endl;}
+    Sender() : DSObject("Sender"){ std::cout << "construct Sender" << std::endl;}
+    Sender(std::string name) : DSObject(name) {std::cout << "construct Sender " << name << std::endl;}
     ~Sender(){ std::cout << "destruct Sender " << getName() << std::endl;}
 
     struct SignalA : public SignalAType {
@@ -24,10 +41,10 @@ class Sender : public WObject
     } signalB;
 };
 
-class Receiver : public WObject, public WRefBase {
+class Receiver : public DSObject, public DSRefBase {
     public:
-    Receiver() : WObject("Receiver"), WRefBase() { std::cout << "construct Receiver" << std::endl;}
-    Receiver(std::string name) : WObject(name), WRefBase() { std::cout << "construct Receiver " << name << std::endl;}
+    Receiver() : DSObject("Receiver"), DSRefBase() { std::cout << "construct Receiver" << std::endl;}
+    Receiver(std::string name) : DSObject(name), DSRefBase() { std::cout << "construct Receiver " << name << std::endl;}
     ~Receiver() { std::cout << "destruct Receiver(ref: " << getref() << ") " << getName() << std::endl; }
 
     static void slotA(int a) { std::cout << "slotA invoked! a:" << a << std::endl; };
diff --git a/src/core/WCallbackIface.h b/src/core/WCallbackIface.h
deleted file mode 100644 (file)
index e9c4e87..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-#ifndef WCALLBACKIFACE_H
-# define WCALLBACKIFACE_H
-namespace TizenDisplayServer{
-    struct WCallbackIface{
-        WCallbackIface(){}
-        WCallbackIface(const WCallbackIface& cp){
-        }
-    };
-
-}
-#else
-#endif
\ No newline at end of file
diff --git a/src/core/WObject.cpp b/src/core/WObject.cpp
deleted file mode 100644 (file)
index 53152db..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-#include "WObjectPrivate.h"
-#include "WObject.h"
-
-namespace TizenDisplayServer{
-    WObjectPrivate::WObjectPrivate(WObject *p_ptr, std::string name) : p_ptr(p_ptr)
-    {
-        type_info.name = name;
-    }
-
-    WObjectPrivate::~WObjectPrivate()
-    {
-    }
-
-    void WObjectPrivate::attachDestroyObserver(WObjectObserverIface *ob)
-    {
-        observers.push_back(ob);
-    }
-
-    void WObjectPrivate::detachDestroyObserver(WObjectObserverIface *ob)
-    {
-        observers.remove(ob);
-    }
-
-    bool WObjectPrivate::setProperty(std::string key, WProperty property)
-    {
-    }
-
-    WProperty& WObjectPrivate::getProperty(std::string key)
-    {
-    }
-
-    void WObjectPrivate::destroyNotify(void)
-    {
-        for (WObjectObserverIface* ob : observers)
-        {
-            ob->destroyed(p_ptr);
-        }
-        observers.clear();
-    }
-
-    std::string WObjectPrivate::getName(void)
-    {
-        return type_info.name;
-    }
-
-    WObject::WObject(std::string name)
-    {
-        std::unique_ptr<WObjectPrivate> ptr(new WObjectPrivate(this, name));
-        d_ptr = std::move(ptr);
-    }
-
-    WObject::~WObject(){
-        destroyNotify();
-    }
-
-    void WObject::destroyNotify(void)
-    {
-        d_func()->destroyNotify();
-    }
-
-    void WObject::attachDestroyObserver(WObjectObserverIface *ob)
-    {
-        d_func()->attachDestroyObserver(ob);
-    }
-
-    void WObject::detachDestroyObserver(WObjectObserverIface *ob)
-    {
-        d_func()->detachDestroyObserver(ob);
-    }
-
-    bool WObject::setProperty(std::string key, WProperty property)
-    {
-
-    }
-
-    WProperty& WObject::getProperty(std::string key)
-    {
-
-    }
-
-    std::string WObject::getName(void)
-    {
-        return d_func()->getName();
-    }
-}
diff --git a/src/core/WObject.h b/src/core/WObject.h
deleted file mode 100644 (file)
index 86a4211..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-#ifndef WOBJECT_H
-# define WOBJECT_H
-
-#include "WObjectPrivate.h"
-#include "WProperty.h"
-#include <memory>
-#include <vector>
-#include <list>
-#include <iostream>
-#include <string>
-
-namespace TizenDisplayServer{
-class WObjectPrivate;
-class WObjectObserverIface;
-class WProperty;
-
-class WObject {
-    std::unique_ptr<WObjectPrivate> d_ptr;
-
-    inline WObjectPrivate* d_func() { return d_ptr.get(); }
-    inline const WObjectPrivate* d_func() const { return d_ptr.get(); }
-
-    public:
-    WObject(std::string name = "WObject");
-    virtual ~WObject();
-
-    void attachDestroyObserver(WObjectObserverIface *ob);
-    void detachDestroyObserver(WObjectObserverIface *ob);
-    void destroyNotify(void);
-
-    bool setProperty(std::string key, WProperty property);
-    WProperty& getProperty(std::string key);
-
-    std::string getName(void);
-};
-
-class WObjectObserverIface {
-    public:
-    WObjectObserverIface() {}
-    virtual ~WObjectObserverIface() {}
-    virtual void destroyed(WObject *obj) = 0;
-};
-
-}
-#else
-#endif
\ No newline at end of file
diff --git a/src/core/WObjectPrivate.h b/src/core/WObjectPrivate.h
deleted file mode 100644 (file)
index 8bd9a0d..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-#ifndef WOBJECTPRIVATE_H
-# define WOBJECTPRIVATE_H
-
-#include "WObject.h"
-#include "WProperty.h"
-#include <iostream>
-#include <list>
-#include <unordered_map>
-#include <string>
-
-namespace TizenDisplayServer{
-
-class WObject;
-class WObjectObserverIface;
-
-class WObjectPrivate {
-
-    struct TypeInfo{
-        std::string name;
-    };
-
-    WObject *p_ptr;
-
-    std::list<WObjectObserverIface*> observers;
-    std::unordered_map<std::string, WProperty> properties;
-    TypeInfo type_info;
-
-    public:
-    WObjectPrivate() = delete;
-    WObjectPrivate(WObject *p_ptr, std::string name = "default");
-    ~WObjectPrivate();
-
-    inline const WObject *p_func() const{ return p_ptr;}
-
-    void attachDestroyObserver(WObjectObserverIface *ob);
-    void detachDestroyObserver(WObjectObserverIface *ob);
-    bool setProperty(std::string key, WProperty property);
-    WProperty& getProperty(std::string key);
-    void destroyNotify();
-
-    std::string getName(void);
-};
-}
-#else
-#endif
\ No newline at end of file
diff --git a/src/core/WProperty.cpp b/src/core/WProperty.cpp
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/src/core/WProperty.h b/src/core/WProperty.h
deleted file mode 100644 (file)
index c811603..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-#ifndef WPROPERTY_H
-# define WPROPERTY_H
-namespace TizenDisplayServer{
-    class WProperty {
-        public:
-        WProperty(){}
-        virtual ~WProperty() {}
-    };
-}
-
-#else
-#endif
\ No newline at end of file
diff --git a/src/core/WPropertyPrivate.h b/src/core/WPropertyPrivate.h
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/src/core/WRefBase.cpp b/src/core/WRefBase.cpp
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/src/lib/DSCallbackIface.h b/src/lib/DSCallbackIface.h
new file mode 100644 (file)
index 0000000..801328c
--- /dev/null
@@ -0,0 +1,12 @@
+#ifndef DSCALLBACKIFACE_H
+# define DSCALLBACKIFACE_H
+namespace TizenDisplayServer{
+    struct DSCallbackIface{
+        DSCallbackIface(){}
+        DSCallbackIface(const DSCallbackIface& cp){
+        }
+    };
+
+}
+#else
+#endif /* DSCALLBACKIFACE_H */
diff --git a/src/lib/DSObject.cpp b/src/lib/DSObject.cpp
new file mode 100644 (file)
index 0000000..9829b71
--- /dev/null
@@ -0,0 +1,85 @@
+#include "DSObjectPrivate.h"
+#include "DSObject.h"
+
+namespace TizenDisplayServer{
+    DSObjectPrivate::DSObjectPrivate(DSObject *p_ptr, std::string name) : p_ptr(p_ptr)
+    {
+        type_info.name = name;
+    }
+
+    DSObjectPrivate::~DSObjectPrivate()
+    {
+    }
+
+    void DSObjectPrivate::attachDestroyObserver(DSObjectObserverIface *ob)
+    {
+        observers.push_back(ob);
+    }
+
+    void DSObjectPrivate::detachDestroyObserver(DSObjectObserverIface *ob)
+    {
+        observers.remove(ob);
+    }
+
+    bool DSObjectPrivate::setProperty(std::string key, DSProperty&& property)
+    {
+
+    }
+
+    DSProperty& DSObjectPrivate::getProperty(std::string key)
+    {
+    }
+
+    void DSObjectPrivate::destroyNotify(void)
+    {
+        for (DSObjectObserverIface* ob : observers)
+        {
+            ob->destroyed(p_ptr);
+        }
+        observers.clear();
+    }
+
+    std::string DSObjectPrivate::getName(void)
+    {
+        return type_info.name;
+    }
+
+    DSObject::DSObject(std::string name)
+    {
+        std::unique_ptr<DSObjectPrivate> ptr(new DSObjectPrivate(this, name));
+        d_ptr = std::move(ptr);
+    }
+
+    DSObject::~DSObject(){
+        destroyNotify();
+    }
+
+    void DSObject::destroyNotify(void)
+    {
+        d_func()->destroyNotify();
+    }
+
+    void DSObject::attachDestroyObserver(DSObjectObserverIface *ob)
+    {
+        d_func()->attachDestroyObserver(ob);
+    }
+
+    void DSObject::detachDestroyObserver(DSObjectObserverIface *ob)
+    {
+        d_func()->detachDestroyObserver(ob);
+    }
+
+    bool DSObject::setProperty(std::string key, DSPropertyVariant& data, DSPropertyType type)
+    {
+    }
+
+    DSPropertyVariant& DSObject::getProperty(std::string key)
+    {
+
+    }
+
+    std::string DSObject::getName(void)
+    {
+        return d_func()->getName();
+    }
+}
diff --git a/src/lib/DSObject.h b/src/lib/DSObject.h
new file mode 100644 (file)
index 0000000..23dd8f9
--- /dev/null
@@ -0,0 +1,46 @@
+#ifndef DSOBJECT_H
+# define DSOBJECT_H
+
+#include "DSObjectPrivate.h"
+#include "DSProperty.h"
+#include <memory>
+#include <iostream>
+#include <string>
+
+namespace TizenDisplayServer{
+class DSObjectPrivate;
+class DSObjectObserverIface;
+class DSProperty;
+
+class DSObject {
+    std::unique_ptr<DSObjectPrivate> d_ptr;
+
+    inline DSObjectPrivate* d_func() { return d_ptr.get(); }
+    inline const DSObjectPrivate* d_func() const { return d_ptr.get(); }
+
+    public:
+    DSObject(std::string name = "WObject");
+    virtual ~DSObject();
+
+    void attachDestroyObserver(DSObjectObserverIface *ob);
+    void detachDestroyObserver(DSObjectObserverIface *ob);
+    void destroyNotify(void);
+
+    bool setProperty(std::string key, DSPropertyVariant& data, DSPropertyType type);
+    DSPropertyVariant& getProperty(std::string key);
+
+    std::string getName(void);
+};
+
+class DSObjectObserverIface {
+    protected:
+    DSObjectObserverIface() {}
+    virtual ~DSObjectObserverIface() {}
+
+    public:
+    virtual void destroyed(DSObject *obj) = 0;
+};
+
+}
+#else
+#endif /* DSOBJECT_H */
diff --git a/src/lib/DSObjectPrivate.h b/src/lib/DSObjectPrivate.h
new file mode 100644 (file)
index 0000000..89e3f16
--- /dev/null
@@ -0,0 +1,45 @@
+#ifndef DSOBJECTPRIVATE_H
+# define DSOBJECTPRIVATE_H
+
+#include "DSObject.h"
+#include "DSProperty.h"
+#include <iostream>
+#include <list>
+#include <unordered_map>
+#include <string>
+
+namespace TizenDisplayServer{
+
+class DSObject;
+class DSObjectObserverIface;
+
+class DSObjectPrivate {
+
+    struct {
+        std::string name;
+    }type_info;
+
+    DSObject *p_ptr;
+
+    std::list<DSObjectObserverIface*> observers;
+    std::unordered_map<std::string, DSProperty> properties;
+
+    public:
+    DSObjectPrivate() = delete;
+    DSObjectPrivate(DSObject *p_ptr, std::string name = "default");
+    virtual ~DSObjectPrivate();
+
+    inline const DSObject *p_func() const{ return p_ptr;}
+
+    void attachDestroyObserver(DSObjectObserverIface *ob);
+    void detachDestroyObserver(DSObjectObserverIface *ob);
+    void destroyNotify();
+
+    bool setProperty(std::string key, DSProperty&& property);
+    DSProperty& getProperty(std::string key);
+
+    std::string getName(void);
+};
+}
+#else
+#endif /* DSOBJECTPRIVATE_H */
diff --git a/src/lib/DSProperty.cpp b/src/lib/DSProperty.cpp
new file mode 100644 (file)
index 0000000..09251e9
--- /dev/null
@@ -0,0 +1,26 @@
+#include "DSProperty.h"
+
+namespace TizenDisplayServer{
+    DSProperty::DSProperty(std::string _key, DSPropertyVariant& _data, DSPropertyType _type) : key(_key), type(_type)
+    {
+        switch(_type)
+        {
+            //copy case
+            case DSPropertyType::INTEGER:
+            case DSPropertyType::DOUBLE:
+            case DSPropertyType::FLOAT:
+            case DSPropertyType::STRING:
+               data = _data;  //copy
+               break;
+            case DSPropertyType::OBJECT:
+               data = &_data; //address
+               break;
+            default:
+               break;
+        }
+    }
+
+    DSProperty::~DSProperty()
+    {
+    }
+}
diff --git a/src/lib/DSProperty.h b/src/lib/DSProperty.h
new file mode 100644 (file)
index 0000000..372de21
--- /dev/null
@@ -0,0 +1,36 @@
+#ifndef DSPROPERTY_H
+# define DSPROPERTY_H
+#include <string>
+#include <variant>
+
+namespace TizenDisplayServer{
+    using DSPropertyType = enum type{
+            NONE,
+            INTEGER,
+            FLOAT,
+            DOUBLE,
+            STRING,
+            OBJECT,
+    };
+
+    using DSPropertyVariant = std::variant<int,
+                                          float,
+                                          double,
+                                          std::string,
+                                          void*>;
+
+    class DSProperty
+    {
+        private:
+        std::string key;
+        DSPropertyVariant data;
+        DSPropertyType type;
+
+        public:
+        DSProperty(std::string key, DSPropertyVariant& data, DSPropertyType type);
+        virtual ~DSProperty();
+    };
+}
+
+#else
+#endif /* DSPROPERTY_H */
diff --git a/src/lib/DSPropertyPrivate.h b/src/lib/DSPropertyPrivate.h
new file mode 100644 (file)
index 0000000..d7abaa5
--- /dev/null
@@ -0,0 +1,4 @@
+#ifndef DSPROPERTYPRIVATE_H
+# define DSPROPERTYPRIVATE_H
+#else
+#endif /* DSPROPERTYPRIVATE_H */
similarity index 57%
rename from src/core/WRefBase.h
rename to src/lib/DSRefBase.h
index 00007f8..d5ba124 100644 (file)
@@ -1,13 +1,13 @@
-#ifndef WREFBASE_H
-# define WREFBASE_H
+#ifndef DSREFBASE_H
+# define DSREFBASE_H
 namespace TizenDisplayServer{
 
-class WRefBase {
+class DSRefBase {
     int mCount;
 
     public:
-    WRefBase() : mCount(1) {}
-    virtual ~WRefBase() {}
+    DSRefBase() : mCount(1) {}
+    virtual ~DSRefBase() {}
 
     void ref() { ++mCount; }
     void unref() {if (--mCount == 0) delete this;}
@@ -16,4 +16,4 @@ class WRefBase {
 
 }
 #else
-#endif
\ No newline at end of file
+#endif /* DSREFBASE_H */
similarity index 60%
rename from src/core/WSignal.cpp
rename to src/lib/DSSignal.cpp
index 418065b..ecac107 100644 (file)
@@ -1,16 +1,16 @@
-#include "WSignal.h"
+#include "DSSignal.h"
 #include <type_traits>
 
 namespace TizenDisplayServer {
-    void WSlotsObserver::addSlot(WObject *slot)
+    void DSSlotsObserver::addSlot(DSObject *slot)
     {
         slots.push_back(slot);
     }
-    void WSlotsObserver::destroyed(WObject *slot)
+    void DSSlotsObserver::destroyed(DSObject *slot)
     {
         slots.remove(slot);
         if (slots.empty())
            delete this;
     }
 
-}
\ No newline at end of file
+}
similarity index 52%
rename from src/core/WSignal.h
rename to src/lib/DSSignal.h
index 578620d..3809174 100644 (file)
@@ -1,56 +1,57 @@
-#ifndef WSIGNAL_H
-# define WSIGNAL_H
-#include "WObject.h"
+#ifndef DSSIGNAL_H
+# define DSSIGNAL_H
+
+#include "DSObject.h"
 #include <list>
 #include <memory>
 #include <iostream>
 #include <string>
 
 namespace TizenDisplayServer{
-    class WSlotsObserver : public WObjectObserverIface {
+    class DSSlotsObserver : public DSObjectObserverIface {
         protected:
-        std::list<WObject *> slots;
+        std::list<DSObject *> slots;
         public:
-        WSlotsObserver(){}
-        ~WSlotsObserver(){}
+        DSSlotsObserver(){}
+        ~DSSlotsObserver(){}
 
-        virtual void destroyed(WObject *obj);
-        virtual void addSlot(WObject *slot);
+        virtual void destroyed(DSObject *obj);
+        virtual void addSlot(DSObject *slot);
     };
 
     template <typename... Args>
-    class WSlotConnection : public WSlotsObserver{
+    class DSSlotConnection : public DSSlotsObserver{
         //TODO: make callback as callback iface
-        //std::unique_ptr<WCallbackIface> callback;
+        //std::unique_ptr<DSCallbackIface> callback;
         void (*callback)(Args...);
-        template <typename... _Args> friend class WSignal;
+        template <typename... _Args> friend class DSSignal;
 
         public:
-        WSlotConnection() {}
-        WSlotConnection(WObject *slot, void (*func) (Args...)) : callback(func) {
+        DSSlotConnection() {}
+        DSSlotConnection(DSObject *slot, void (*func) (Args...)) : callback(func) {
             //TODO: make callback as callback iface
-            //std::unique_ptr<WCallbackIface> ptr(new WCallbackIface(func));
+            //std::unique_ptr<DSCallbackIface> ptr(new DSCallbackIface(func));
             //callback = std::move(ptr);
             addSlot(slot);
         }
-        virtual ~WSlotConnection()
+        virtual ~DSSlotConnection()
         {
             for (auto &&slot : slots)
                 slot->detachDestroyObserver(this);
             slots.clear();
         }
 
-        void addSlot (WObject *slot) override
+        void addSlot (DSObject *slot) override
         {
             slots.push_back(slot);
             slot->attachDestroyObserver(this);
         }
-        void destroyed(WObject *slot) override
+        void destroyed(DSObject *slot) override
         {
             slots.remove(slot);
             if (slots.empty())
             {
-                //TODO: detete from WSignal connections list with guarded pointer
+                //TODO: delete from DSSignal connections list with [guard pointer]
             }
         }
 
@@ -63,9 +64,9 @@ namespace TizenDisplayServer{
     };
 
     template <typename... Args>
-    class WSignal {
-        std::list<std::unique_ptr<WSlotConnection<Args...>>> connections;
-        WSlotConnection<Args...> *findcon(void (*func)(Args...)) {
+    class DSSignal {
+        std::list<std::unique_ptr<DSSlotConnection<Args...>>> connections;
+        DSSlotConnection<Args...> *findcon(void (*func)(Args...)) {
             for (auto&& con : connections)
             {
               if (con->callback == func)
@@ -75,12 +76,12 @@ namespace TizenDisplayServer{
         }
 
         public:
-        WSignal() {}
-        virtual ~WSignal() {}
+        DSSignal() {}
+        virtual ~DSSignal() {}
 
-        WSignal<Args...>& operator()(void) { return *this; } // functor
+        DSSignal<Args...>& operator()(void) { return *this; } // functor
 
-        void connect(WObject *slot, void (*func)(Args...))
+        void connect(DSObject *slot, void (*func)(Args...))
         {
             if ((!slot) || (!func))
                 return;
@@ -90,7 +91,7 @@ namespace TizenDisplayServer{
             }
             else
             {
-                connections.emplace_back(new WSlotConnection<Args...>(slot, func));
+                connections.emplace_back(new DSSlotConnection<Args...>(slot, func));
             }
         }
 
@@ -102,4 +103,4 @@ namespace TizenDisplayServer{
     };
 }
 #else
-#endif
\ No newline at end of file
+#endif /* DSSIGNAL_H */