Adding virtual functions that now need implementation object
Bruno JOFRET [Mon, 1 Mar 2010 10:08:02 +0000 (11:08 +0100)]
scilab/modules/types/includes/objectmatrix.hxx
scilab/modules/types/includes/ooutils.hxx
scilab/modules/types/src/cpp/class.cpp
scilab/modules/types/src/cpp/objectmatrix.cpp
scilab/modules/types/src/cpp/ooutils-private.hxx

index f680a7e..dbcdfd7 100644 (file)
@@ -28,7 +28,7 @@ namespace types
                Object **GetElems() { return m_pObj; }
                bool SetElem(int pos, Object *val);
                bool SetElem(int row, int col, Object *val);
-               bool Insert(int row, int col, const ObjectMatrix *other);
+               bool Insert(int row, int col,  ObjectMatrix *other);
        
                std::string toString(int, int);
                void whoAmI() { std::cout << "types::Object"; }
index 628867d..7d1ecaa 100644 (file)
@@ -29,6 +29,15 @@ namespace types
                
                typedef Callable::ReturnValue (*GW_METH)(typed_list &_in, int _iRetCount, typed_list &_out, const MethodCallCtx &_ctx);
        
+         std::string toString(int _iPrecision, int _iLineLen)
+         {
+               // FIXME : Return something usable
+               return "FIXME : Method";
+         }
+         
+         // FIXME : Should not return NULL;
+         Method* clone() { return NULL; }
+
                Callable::ReturnValue call(typed_list &_in, int _iRetCount, typed_list &_out);
                Callable::ReturnValue call(typed_list &_in, int _iRetCount, typed_list &_out, const MethodCallCtx &_ctx)
                {
index c03362c..df93ab6 100644 (file)
@@ -71,7 +71,7 @@ namespace types
        {
                if(m_instanceSlots.find(p_slotName) != m_instanceSlots.end())
                {
-                       printf("Error: slot already exists\n");
+                 std::cerr <<"Error: slot already exists" << std::endl;
                        return;
                }
                
@@ -108,7 +108,7 @@ namespace types
        {
                if(m_instanceSlots.find(p_slotName) != m_instanceSlots.end())
                {
-                       printf("Error: slot already exists\n");
+                 std::cerr << "Error: slot already exists" << std::endl;
                        return;
                }
                
index f748ccc..ca99c6c 100644 (file)
@@ -133,7 +133,7 @@ namespace types
                return true;
        }
        
-       bool ObjectMatrix::Insert(int row, int col, const ObjectMatrix *other)
+       bool ObjectMatrix::Insert(int row, int col, ObjectMatrix *other)
        {
                /* Out of bounds check */
                if(row + other->rows_get() > m_iRows || col + other->cols_get() > m_iCols)
index ff055ad..9e29664 100644 (file)
@@ -20,11 +20,20 @@ namespace types
        class BoundMethod: public Callable
        {
        public:
-               BoundMethod(Callable *_pFunc, Object *_pSelf, Object *_pLevel, ObjectMatrix *_pSender);
-               virtual ~BoundMethod();
+         BoundMethod(Callable *_pFunc, Object *_pSelf, Object *_pLevel, ObjectMatrix *_pSender);
+         virtual ~BoundMethod();
+         
+         std::string toString(int _iPrecision, int _iLineLen)
+         {
+               // FIXME : Return something usable
+               return "FIXME : BoundMethod";
+         }
+         
+         // FIXME : Should not return NULL;
+         BoundMethod* clone() { return NULL; }
                
-               Callable::ReturnValue call(typed_list &_in, int _iRetCount, typed_list &_out);
-               virtual Callable::ReturnValue InnerCall(typed_list &_in, int _iRetCount, typed_list &_out);
+         Callable::ReturnValue call(typed_list &_in, int _iRetCount, typed_list &_out);
+         virtual Callable::ReturnValue InnerCall(typed_list &_in, int _iRetCount, typed_list &_out);
        
        protected:
                Callable *m_pFunc;