From 696e44c41cf928a17d2d8793184e06b0f1857cf0 Mon Sep 17 00:00:00 2001 From: "davidmc%netscape.com" Date: Mon, 19 Apr 1999 22:22:28 +0000 Subject: [PATCH] add NilRowObjectError(); --- db/mork/src/morkRowCellCursor.cpp | 6 + db/mork/src/morkRowCellCursor.h | 3 +- mailnews/db/mork/src/morkRowCellCursor.cpp | 165 --------------------- mailnews/db/mork/src/morkRowCellCursor.h | 97 ------------ 4 files changed, 8 insertions(+), 263 deletions(-) diff --git a/db/mork/src/morkRowCellCursor.cpp b/db/mork/src/morkRowCellCursor.cpp index 58c7e786259..cb4aa27a371 100644 --- a/db/mork/src/morkRowCellCursor.cpp +++ b/db/mork/src/morkRowCellCursor.cpp @@ -138,6 +138,12 @@ morkRowCellCursor::CloseRowCellCursor(morkEnv* ev) // } ===== end morkNode methods ===== // ````` ````` ````` ````` ````` +/*static*/ void +morkRowCellCursor::NilRowObjectError(morkEnv* ev) +{ + ev->NewError("nil mRowCellCursor_RowObject"); +} + /*static*/ void morkRowCellCursor::NonRowCellCursorTypeError(morkEnv* ev) { diff --git a/db/mork/src/morkRowCellCursor.h b/db/mork/src/morkRowCellCursor.h index 5bfb05cddb7..133e3c22737 100644 --- a/db/mork/src/morkRowCellCursor.h +++ b/db/mork/src/morkRowCellCursor.h @@ -76,7 +76,8 @@ public: // dynamic type identification { return IsNode() && mNode_Derived == morkDerived_kRowCellCursor; } // } ===== end morkNode methods ===== -public: // typing +public: // errors + static void NilRowObjectError(morkEnv* ev); static void NonRowCellCursorTypeError(morkEnv* ev); public: // other cell cursor methods diff --git a/mailnews/db/mork/src/morkRowCellCursor.cpp b/mailnews/db/mork/src/morkRowCellCursor.cpp index 58c7e786259..e69de29bb2d 100644 --- a/mailnews/db/mork/src/morkRowCellCursor.cpp +++ b/mailnews/db/mork/src/morkRowCellCursor.cpp @@ -1,165 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- - * - * The contents of this file are subject to the Netscape Public License - * Version 1.0 (the "NPL"); you may not use this file except in - * compliance with the NPL. You may obtain a copy of the NPL at - * http://www.mozilla.org/NPL/ - * - * Software distributed under the NPL is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL - * for the specific language governing rights and limitations under the - * NPL. - * - * The Initial Developer of this code under the NPL is Netscape - * Communications Corporation. Portions created by Netscape are - * Copyright (C) 1999 Netscape Communications Corporation. All Rights - * Reserved. - */ - -#ifndef _MDB_ -#include "mdb.h" -#endif - -#ifndef _MORK_ -#include "mork.h" -#endif - -#ifndef _MORKNODE_ -#include "morkNode.h" -#endif - -#ifndef _MORKENV_ -#include "morkEnv.h" -#endif - -#ifndef _MORKCURSOR_ -#include "morkCursor.h" -#endif - -#ifndef _MORKROWCELLCURSOR_ -#include "morkRowCellCursor.h" -#endif - -#ifndef _ORKINROWCELLCURSOR_ -#include "orkinRowCellCursor.h" -#endif - -#ifndef _MORKSTORE_ -#include "morkStore.h" -#endif - -#ifndef _MORKROWOBJECT_ -#include "morkRowObject.h" -#endif - -#ifndef _MORKROW_ -#include "morkRow.h" -#endif - -//3456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789 - -// ````` ````` ````` ````` ````` -// { ===== begin morkNode interface ===== - -/*public virtual*/ void -morkRowCellCursor::CloseMorkNode(morkEnv* ev) // CloseRowCellCursor() only if open -{ - if ( this->IsOpenNode() ) - { - this->MarkClosing(); - this->CloseRowCellCursor(ev); - this->MarkShut(); - } -} - -/*public virtual*/ -morkRowCellCursor::~morkRowCellCursor() // CloseRowCellCursor() executed earlier -{ - MORK_ASSERT(this->IsShutNode()); -} - -/*public non-poly*/ -morkRowCellCursor::morkRowCellCursor(morkEnv* ev, - const morkUsage& inUsage, - nsIMdbHeap* ioHeap, morkRowObject* ioRowObject) -: morkCursor(ev, inUsage, ioHeap) -, mRowCellCursor_RowObject( 0 ) -, mRowCellCursor_Col( 0 ) -{ - if ( ev->Good() ) - { - if ( ioRowObject ) - { - morkRow* row = ioRowObject->mRowObject_Row; - if ( row ) - { - if ( row->IsRow() ) - { - mCursor_Pos = -1; - mCursor_Seed = row->mRow_Seed; - - morkRowObject::SlotStrongRowObject(ioRowObject, ev, - &mRowCellCursor_RowObject); - if ( ev->Good() ) - mNode_Derived = morkDerived_kRowCellCursor; - } - else - row->NonRowTypeError(ev); - } - else - ioRowObject->NilRowError(ev); - } - else - ev->NilPointerError(); - } -} - -/*public non-poly*/ void -morkRowCellCursor::CloseRowCellCursor(morkEnv* ev) -{ - if ( this ) - { - if ( this->IsNode() ) - { - mCursor_Pos = -1; - mCursor_Seed = 0; - morkRowObject::SlotStrongRowObject((morkRowObject*) 0, ev, - &mRowCellCursor_RowObject); - this->CloseCursor(ev); - this->MarkShut(); - } - else - this->NonNodeError(ev); - } - else - ev->NilPointerError(); -} - -// } ===== end morkNode methods ===== -// ````` ````` ````` ````` ````` - -/*static*/ void -morkRowCellCursor::NonRowCellCursorTypeError(morkEnv* ev) -{ - ev->NewError("non morkRowCellCursor"); -} - -orkinRowCellCursor* -morkRowCellCursor::AcquireRowCellCursorHandle(morkEnv* ev) -{ - orkinRowCellCursor* outCursor = 0; - orkinRowCellCursor* c = (orkinRowCellCursor*) mObject_Handle; - if ( c ) // have an old handle? - c->AddStrongRef(ev->AsMdbEnv()); - else // need new handle? - { - c = orkinRowCellCursor::MakeRowCellCursor(ev, this); - mObject_Handle = c; - } - if ( c ) - outCursor = c; - return outCursor; -} - - -//3456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789 diff --git a/mailnews/db/mork/src/morkRowCellCursor.h b/mailnews/db/mork/src/morkRowCellCursor.h index 5bfb05cddb7..e69de29bb2d 100644 --- a/mailnews/db/mork/src/morkRowCellCursor.h +++ b/mailnews/db/mork/src/morkRowCellCursor.h @@ -1,97 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- - * - * The contents of this file are subject to the Netscape Public License - * Version 1.0 (the "NPL"); you may not use this file except in - * compliance with the NPL. You may obtain a copy of the NPL at - * http://www.mozilla.org/NPL/ - * - * Software distributed under the NPL is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL - * for the specific language governing rights and limitations under the - * NPL. - * - * The Initial Developer of this code under the NPL is Netscape - * Communications Corporation. Portions created by Netscape are - * Copyright (C) 1999 Netscape Communications Corporation. All Rights - * Reserved. - */ - -#ifndef _MORKROWCELLCURSOR_ -#define _MORKROWCELLCURSOR_ 1 - -#ifndef _MORK_ -#include "mork.h" -#endif - -#ifndef _MORKCURSOR_ -#include "morkCursor.h" -#endif - -//3456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789 - -class orkinRowCellCursor; -#define morkDerived_kRowCellCursor /*i*/ 0x6343 /* ascii 'cC' */ - -class morkRowCellCursor : public morkCursor { // row iterator - -// public: // slots inherited from morkObject (meant to inform only) - // nsIMdbHeap* mNode_Heap; - // mork_able mNode_Mutable; // can this node be modified? - // mork_load mNode_Load; // is this node clean or dirty? - // mork_base mNode_Base; // must equal morkBase_kNode - // mork_derived mNode_Derived; // depends on specific node subclass - // mork_access mNode_Access; // kOpen, kClosing, kShut, or kDead - // mork_usage mNode_Usage; // kHeap, kStack, kMember, kGlobal, kNone - // mork_uses mNode_Uses; // refcount for strong refs - // mork_refs mNode_Refs; // refcount for strong refs + weak refs - - // morkFactory* mObject_Factory; // weak ref to suite factory - - // mork_seed mCursor_Seed; - // mork_pos mCursor_Pos; - // mork_bool mCursor_DoFailOnSeedOutOfSync; - // mork_u1 mCursor_Pad[ 3 ]; // explicitly pad to u4 alignment - -public: // state is public because the entire Mork system is private - - morkRowObject* mRowCellCursor_RowObject; // strong ref to row - mork_column mRowCellCursor_Col; // col of cell last at mCursor_Pos - -// { ===== begin morkNode interface ===== -public: // morkNode virtual methods - virtual void CloseMorkNode(morkEnv* ev); // CloseRowCellCursor() - virtual ~morkRowCellCursor(); // assert that close executed earlier - -public: // morkRowCellCursor construction & destruction - morkRowCellCursor(morkEnv* ev, const morkUsage& inUsage, - nsIMdbHeap* ioHeap, morkRowObject* ioRowObject); - void CloseRowCellCursor(morkEnv* ev); // called by CloseMorkNode(); - -private: // copying is not allowed - morkRowCellCursor(const morkRowCellCursor& other); - morkRowCellCursor& operator=(const morkRowCellCursor& other); - -public: // dynamic type identification - mork_bool IsRowCellCursor() const - { return IsNode() && mNode_Derived == morkDerived_kRowCellCursor; } -// } ===== end morkNode methods ===== - -public: // typing - static void NonRowCellCursorTypeError(morkEnv* ev); - -public: // other cell cursor methods - orkinRowCellCursor* AcquireRowCellCursorHandle(morkEnv* ev); - -public: // typesafe refcounting inlines calling inherited morkNode methods - static void SlotWeakRowCellCursor(morkRowCellCursor* me, - morkEnv* ev, morkRowCellCursor** ioSlot) - { morkNode::SlotWeakNode((morkNode*) me, ev, (morkNode**) ioSlot); } - - static void SlotStrongRowCellCursor(morkRowCellCursor* me, - morkEnv* ev, morkRowCellCursor** ioSlot) - { morkNode::SlotStrongNode((morkNode*) me, ev, (morkNode**) ioSlot); } -}; - -//3456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789 - -#endif /* _MORKROWCELLCURSOR_ */