// ---------------------------------------------------------------------------
// 
// ------------
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();
}
示例#8
0
		void clear(){
			xc32_assert(is_lock(), not_open_exception());
			Register.clear();
		}
示例#9
0
		bool is_enable()const{
			xc32_assert(is_lock(), not_open_exception());
			return Register.enable();
		}
示例#10
0
		void disable(){
			xc32_assert(is_lock(), not_open_exception());
			Register.enable(false);
		}
示例#11
0
		void enable(){
			xc32_assert(is_lock(), not_open_exception());
			Register.enable(true);
		}
示例#12
0
		void unlock(){
			if(!is_lock())return;
			disable();
			clear();
			Register.unlock();
		}
示例#13
0
		bool lock(){
			if(is_lock())return false;
			if(Register.lock())return true;
			return false;
		}