// --------------------------------------------------------------------------- // // ------------ void bMacMapType::set_lock(bool b){ if((b)&&(!is_lock())){ _state|=_kBaseLock_; } else if((!b)&&(is_lock())){ _state^=_kBaseLock_; } (void)_bse.h_write(1,kHDR_state_,&_state); }
// --------------------------------------------------------------------------- // // ----------- void bMacMapType::set_name(const char *tname){ if(is_lock()){ return; } strcpy(_name,tname); (void)_bse.h_write(1,kHDR_name_,_name); }
// --------------------------------------------------------------------------- // // ----------- bool bMacMapType::kill_object(bGenericGeoElement *f){ _bTrace_("bMacMapType::kill_object",false); if((is_lock())||(f->is_lock())){ _tm_("object lock"); return(false); } f->kill(); if(f->killed()){ _nbalive--; _nbkilled++; } return(true); }
// --------------------------------------------------------------------------- // // ----------- int bMacMapType::append(){ if(is_lock()){ return(-1); } int k=_bse.count_records(); if(k<0){ return(-1); } int id=0; if(_bse.write(k+1,kOBJ_ID_,&id)!=0){ return(-1); } return(k+1); }
// --------------------------------------------------------------------------- // // ----------- bool bMacMapType::clone_object(bGenericGeoElement *fin, bGenericGeoElement **fout){ _bTrace_("bMacMapType::clone_object",false); (*fout)=NULL; if(is_lock()){ return(false); } int status; bMacMapGeoElement* obj=new bMacMapGeoElement((bMacMapGeoElement*)fin,&status); if(status<0){ _te_("status = "+status); _nbalive++;// DŽcrŽmentŽ dans kill object kill_object(obj); delete obj; (*fout)=NULL; return(false); } _nbalive++; (*fout)=obj; return(true); }
// --------------------------------------------------------------------------- // // ----------- void bMacMapType::save(){ _bTrace_("bMacMapType::save",true); if(is_lock()){ return; } (void)_bse.h_write(1,kHDR_state_,&_state); // le genre ne change pas if(_iter){ _iter->bounds(&_bounds); } (void)_bse.h_write(1,kHDR_bounds_,&_bounds); (void)_bse.h_write(1,kHDR_name_,_name); // la prŽcision ne change pas // l'unitŽ ne change pas // la prŽcision ne change pas // le libellŽ court ne change pas // le libellŽ long ne change pas (void)_bse.h_write(1,kHDR_alive_,&_nbalive); (void)_bse.h_write(1,kHDR_killed_,&_nbkilled); }
// --------------------------------------------------------------------------- // // ----------- void bMacMapType::pack(){ if(is_lock()){ return; } // _bse.pack(); }
void clear(){ xc32_assert(is_lock(), not_open_exception()); Register.clear(); }
bool is_enable()const{ xc32_assert(is_lock(), not_open_exception()); return Register.enable(); }
void disable(){ xc32_assert(is_lock(), not_open_exception()); Register.enable(false); }
void enable(){ xc32_assert(is_lock(), not_open_exception()); Register.enable(true); }
void unlock(){ if(!is_lock())return; disable(); clear(); Register.unlock(); }
bool lock(){ if(is_lock())return false; if(Register.lock())return true; return false; }