コード例 #1
0
ファイル: fd_handler.cpp プロジェクト: Dutch-Man/EventLoop
void IOEvent::DeleteErrorEvent() {
  if (el_ && (events_ & IOEvent::ERROR))
  {
    SetEvents(events_ & (~IOEvent::ERROR));
    el_->UpdateEvent(this);
  }
}
コード例 #2
0
ファイル: fd_handler.cpp プロジェクト: Dutch-Man/EventLoop
void IOEvent::AddErrorEvent() {
  if (el_ && !(events_ & IOEvent::ERROR))
  {
    SetEvents(events_ | IOEvent::ERROR);
    el_->UpdateEvent(this);
  }
}
コード例 #3
0
ファイル: fd_handler.cpp プロジェクト: Dutch-Man/EventLoop
void IOEvent::DeleteWriteEvent() {
  if (el_ && (events_ & IOEvent::WRITE))
  {
    SetEvents(events_ & (~IOEvent::WRITE));
    el_->UpdateEvent(this);
  }
}
コード例 #4
0
ファイル: fd_handler.cpp プロジェクト: Dutch-Man/EventLoop
void IOEvent::AddWriteEvent() {
  if (el_ && !(events_ & IOEvent::WRITE))
  {
    SetEvents(events_ | IOEvent::WRITE);
    el_->UpdateEvent(this);
  }
}
コード例 #5
0
ファイル: fd_handler.cpp プロジェクト: Dutch-Man/EventLoop
void IOEvent::DeleteReadEvent() {
  if (el_ && (events_ & IOEvent::READ))
  {
    SetEvents(events_ & (~IOEvent::READ));
    el_->UpdateEvent(this);
  }
}
コード例 #6
0
ファイル: fd_handler.cpp プロジェクト: Dutch-Man/EventLoop
void IOEvent::AddReadEvent() {
  if (el_ && !(events_ & IOEvent::READ))
  {
    SetEvents(events_ | IOEvent::READ);
    el_->UpdateEvent(this);
  }
}
コード例 #7
0
ファイル: Object.cpp プロジェクト: ACefalu/tzod
void GC_Object::Kill()
{
//	assert(g_level->_garbage.insert(this).second);

	PulseNotify(NOTIFY_OBJECT_KILL);

	SetEvents(0);

	delete this;
}
コード例 #8
0
ファイル: powerhandler.cpp プロジェクト: yacbo/Co-Simulation
int PowerHandler::Execute(int bus_num, DGInfor *dg_infor, BusInfor *bus_infor)
{
    int err = 0;
    Application* app = _instance->GetApplication();

    if(!app){
        //std::cout << "Execute, error: _instance->GetApplication()" << std::endl;
        return -1;
    }

    _cur_time = _sim_period * _sim_count++;
    if(_cur_time >= _sim_time){  //exit simulation
        return -2;
    }

    double simutime = _cur_time;
    err = SetEvents(app, dg_infor, simutime);
    if(err > 0){
        //std::cout << "Execute, error: SetEvents" << std::endl;
        return -3;
    }

    err = CalculateTransient(app, simutime);         //to perform a transient calculation
    if (err > 0){                                                       //Error: Transient calculation failed
        //std::cout << "Execute, error: CalculateTransient" << std::endl;
        return -4;
    }

    const char *filename = "calc_data.txt";
    err = ExportCalculateResult(app, filename);              //Export the calculation result.
    if (err > 0){                                                                //Error: Result Export failed
        //std::cout << "Execute, error: ExportCalculateResult" << std::endl;
        return -5;
    }

    SStrVec mat;
    if(!ReadSimRet(filename, mat)){
        //std::cout << "Execute, error: ReadSimRet" << std::endl;
        return -6;
    }

    int current = mat.size();
    for (int i = 0; i < bus_num; i++){
        bus_infor[i].busno = i + 1;
        bus_infor[i].Volt = (double)atof(mat[current - 1][2 * i + 1].c_str());
        bus_infor[i].V_ang = (double)atof(mat[current - 1][2 * i + 2].c_str());
        bus_infor[i].sim_time = _cur_time;
    }

    //std::cout << "Execute, success: Execute" << std::endl;

    return 0;
}
コード例 #9
0
ファイル: Object.cpp プロジェクト: ACefalu/tzod
void GC_Object::Serialize(SaveFile &f)
{
	assert(0 == _notifyProtectCount);

	f.Serialize(_flags);


	//
	// name
	//

	if( CheckFlags(GC_FLAG_OBJECT_NAMED) )
	{
		if( f.loading() )
		{
			string_t name;
			f.Serialize(name);

			assert( 0 == g_level->_objectToStringMaps[FastLog2(GC_FLAG_OBJECT_NAMED)].count(this) );
			assert( 0 == g_level->_nameToObjectMap.count(name) );
			g_level->_objectToStringMaps[FastLog2(GC_FLAG_OBJECT_NAMED)][this] = name;
			g_level->_nameToObjectMap[name] = this;
		}
		else
		{
			string_t name = GetName();
			f.Serialize(name);
		}
	}


	//
	// events
	//

	if( f.loading() )
	{
		DWORD tmp = _flags & GC_FLAG_OBJECT_EVENTS_TS_FIXED;
		SetFlags(GC_FLAG_OBJECT_EVENTS_TS_FIXED, false);
		SetEvents(tmp);
	}


	//
	// notifications
	//

	size_t count = 0;
	if( const Notify *n = _firstNotify )
		do { count += !n->IsRemoved(); } while( n = n->next );
	f.Serialize(count);
	if( f.loading() )
	{
		assert(NULL == _firstNotify);
		for( size_t i = 0; i < count; i++ )
		{
			_firstNotify = new Notify(_firstNotify);
			_firstNotify->Serialize(f);
		}
	}
	else
	{
		for( Notify *n = _firstNotify; n; n = n->next )
		{
			if( !n->IsRemoved() )
				n->Serialize(f);
		}
	}
}
コード例 #10
0
ファイル: fd_handler.cpp プロジェクト: Dutch-Man/EventLoop
void IOEvent::ClearAllEvents() {
  if (el_) {
    SetEvents(0);
    el_->UpdateEvent(this);
  }
}