Back to index

lightning-sunbird  0.9+nobinonly
Public Member Functions | Public Attributes
morkCell Class Reference

#include <morkCell.h>

Collaboration diagram for morkCell:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 morkCell ()
 morkCell (const morkCell &c)
 morkCell (mork_column inCol, mork_change inChange, morkAtom *ioAtom)
void Init (mork_column inCol, mork_change inChange, morkAtom *ioAtom)
mork_column GetColumn () const
mork_change GetChange () const
mork_bool IsCellClean () const
mork_bool IsCellDirty () const
void SetCellClean ()
void SetCellDirty ()
void SetCellColumnDirty (mork_column inCol)
void SetCellColumnClean (mork_column inCol)
void SetColumnAndChange (mork_column inCol, mork_change inChange)
morkAtomGetAtom ()
void SetAtom (morkEnv *ev, morkAtom *ioAtom, morkPool *ioPool)
void SetYarn (morkEnv *ev, const mdbYarn *inYarn, morkStore *ioStore)
void AliasYarn (morkEnv *ev, mdbYarn *outYarn) const
void GetYarn (morkEnv *ev, mdbYarn *outYarn) const

Public Attributes

mork_delta mCell_Delta
morkAtommCell_Atom

Detailed Description

Definition at line 54 of file morkCell.h.


Constructor & Destructor Documentation

morkCell::morkCell ( ) [inline]

Definition at line 61 of file morkCell.h.

: mCell_Delta( 0 ), mCell_Atom( 0 ) { }
morkCell::morkCell ( const morkCell c) [inline]

Definition at line 63 of file morkCell.h.

morkCell::morkCell ( mork_column  inCol,
mork_change  inChange,
morkAtom ioAtom 
) [inline]

Definition at line 67 of file morkCell.h.

  {
    morkDelta_Init(mCell_Delta, inCol,inChange);
    mCell_Atom = ioAtom;
  }

Member Function Documentation

void morkCell::AliasYarn ( morkEnv ev,
mdbYarn outYarn 
) const

Definition at line 84 of file morkCell.cpp.

{
  MORK_USED_1(ev);
  mCell_Atom->AliasYarn(outYarn);
}

Here is the call graph for this function:

morkAtom* morkCell::GetAtom ( ) [inline]

Definition at line 98 of file morkCell.h.

{ return mCell_Atom; }

Here is the caller graph for this function:

mork_change morkCell::GetChange ( ) const [inline]

Definition at line 81 of file morkCell.h.

Here is the caller graph for this function:

mork_column morkCell::GetColumn ( ) const [inline]

Definition at line 80 of file morkCell.h.

Here is the caller graph for this function:

void morkCell::GetYarn ( morkEnv ev,
mdbYarn outYarn 
) const

Definition at line 77 of file morkCell.cpp.

{
  MORK_USED_1(ev);
  mCell_Atom->GetYarn(outYarn);
}

Here is the call graph for this function:

Here is the caller graph for this function:

void morkCell::Init ( mork_column  inCol,
mork_change  inChange,
morkAtom ioAtom 
) [inline]

Definition at line 74 of file morkCell.h.

  {
    morkDelta_Init(mCell_Delta,inCol,inChange);
    mCell_Atom = ioAtom;
  }
mork_bool morkCell::IsCellClean ( ) const [inline]

Definition at line 83 of file morkCell.h.

{ return GetChange() == morkChange_kNil; }

Here is the call graph for this function:

mork_bool morkCell::IsCellDirty ( ) const [inline]

Definition at line 84 of file morkCell.h.

{ return GetChange() != morkChange_kNil; }

Here is the call graph for this function:

void morkCell::SetAtom ( morkEnv ev,
morkAtom ioAtom,
morkPool ioPool 
)

Definition at line 106 of file morkCell.cpp.

{
  morkAtom* oldAtom = mCell_Atom;
  if ( oldAtom != ioAtom ) // ioAtom is not already installed in this cell?
  {
    if ( oldAtom )
    {
      mCell_Atom = 0;
      if ( oldAtom->CutCellUse(ev) == 0 )
      {
      // this was zapping atoms still in use - comment out until davidmc
      // can figure out a better fix.
//        if ( ioPool )
//        {
//          if ( oldAtom->IsBook() )
//            ((morkBookAtom*) oldAtom)->CutBookAtomFromSpace(ev);
            
//          ioPool->ZapAtom(ev, oldAtom);
//        }
//        else
//          ev->NilPointerError();
      }
    }
    if ( ioAtom )
      ioAtom->AddCellUse(ev);
      
    mCell_Atom = ioAtom;
  }
}

Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 92 of file morkCell.cpp.

Here is the call graph for this function:

Definition at line 92 of file morkCell.h.

  { this->SetColumnAndChange(inCol, morkChange_kNil); }

Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 89 of file morkCell.h.

  { this->SetColumnAndChange(inCol, morkChange_kAdd); }

Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 99 of file morkCell.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

void morkCell::SetColumnAndChange ( mork_column  inCol,
mork_change  inChange 
) [inline]

Definition at line 95 of file morkCell.h.

  { morkDelta_Init(mCell_Delta, inCol, inChange); }

Here is the caller graph for this function:

void morkCell::SetYarn ( morkEnv ev,
const mdbYarn inYarn,
morkStore ioStore 
)

Definition at line 69 of file morkCell.cpp.

{
  morkAtom* atom = ioStore->YarnToAtom(ev, inYarn, PR_TRUE /* create */);
  if ( atom )
    this->SetAtom(ev, atom, ioStore->StorePool()); // refcounts atom
}

Here is the call graph for this function:

Here is the caller graph for this function:


Member Data Documentation

Definition at line 58 of file morkCell.h.

Definition at line 57 of file morkCell.h.


The documentation for this class was generated from the following files: