Beispiel #1
0
void COutputHandler::finish()
{
  std::set< COutputInterface *>::iterator it = mInterfaces.begin();
  std::set< COutputInterface *>::iterator end = mInterfaces.end();

  // This hack is necessary as the reverse iterator behaves strangely
  // under Visual C++ 6.0, i.e., removing an object advances the iterator.
  std::vector< COutputInterface * > ToBeRemoved;

  for (; it != end; ++it)
    {
      (*it)->finish();

      // CTimesSeries and CReport are only used once.
      if (dynamic_cast< CReport * >(*it) != NULL ||
          dynamic_cast< CTimeSeries * >(*it) != NULL)
        ToBeRemoved.push_back(*it);
    }

  std::vector< COutputInterface * >::iterator itRemove = ToBeRemoved.begin();
  std::vector< COutputInterface * >::iterator endRemove = ToBeRemoved.end();

  for (; itRemove != endRemove; ++itRemove)
    removeInterface(*itRemove);

  return;
}
MM::VOID MM::PoolNodeBehavior::update(MM::Observable * observable,
                                      MM::VOID * aux,
                                      MM::UINT32 message,
                                      MM::VOID * object)
{
  switch(message)
  {
    //pool node behavior is observing its type definition
    case MM::MSG_NEW_DRAIN:
    case MM::MSG_NEW_POOL:
    case MM::MSG_NEW_SOURCE:
    case MM::MSG_NEW_REF:
    case MM::MSG_NEW_GATE:
      addInterface((MM::Machine *) aux, (MM::Node *) object);
      break;
    //pool node behavior is observing its type definition
    case MM::MSG_DEL_DRAIN:
    case MM::MSG_DEL_POOL:
    case MM::MSG_DEL_SOURCE:
    case MM::MSG_DEL_REF:
    case MM::MSG_DEL_GATE:
      removeInterface((MM::Machine *) aux, (MM::Node *) object);
      break;
    default:
      //message not understood
      break;
  }
}
Beispiel #3
0
void TestScene::error_CB(std::string msg)
{
	cocos2d::Size visibleSize = cocos2d::Director::getInstance()->getVisibleSize();

	//Error UI. created only when we need it.
	ErrorUI* errorui = new ErrorUI();
	addInterface(ErrorUI::id,errorui);
	errorui->setPosition(cocos2d::Vec2(visibleSize.width * 0.5f, visibleSize.height * 0.67f));

	errorui->setRefreshCallback([this, errorui](){
		errorui->deactivate();
		//removing UI from scene
		removeInterface(ErrorUI::id);
		//displaying navi
		m_ui[NavUI::id]->setEnabled(true);
		m_ui[NavUI::id]->setVisible(true);

		NavUI* nav = getInterface<NavUI>(NavUI::id);
		nav->setTitle(NavUI::id);
	});

	errorui->setSkipCallback([this, errorui](){
		errorui->deactivate();
		//removing UI from scene
		removeInterface(ErrorUI::id);
		//displaying navi
		m_ui[NavUI::id]->setEnabled(true);
		m_ui[NavUI::id]->setVisible(true);

		NavUI* nav = getInterface<NavUI>(NavUI::id);
		nav->setTitle(NavUI::id);
	});

	errorui->activate(msg);
	
}
Beispiel #4
0
int main(int argc, char **argv){

    if(argc < 3){
        usage(argv[0]);
        exit(1);
    }

    int c = 0;
    char device[IFNAMSIZ] = { '\0' };
    int vlanTag = 0;
    char vlanString[10] = {'\0' };

    while((c = getopt(argc,argv,"i:v:r:h")) != -1){

        switch(c){

        case 'i':
            strncpy(device,optarg,sizeof(device) - 1);
            break;
        case 'r':
            strncpy(device,optarg,sizeof(device) - 1);
            removeInterface(device);
            exit(1);
        case 'v':
            strncpy(vlanString,optarg,sizeof(vlanString) - 1 );
            vlanTag = atoi(optarg);
            break;
        case 'h':
            usage(argv[0]);
            exit(1);
        default:
            usage(argv[0]);
            exit(1);
        }
    }   
    
    char vlanDevice[IFNAMSIZ] = {'\0' };
    strcpy(vlanDevice,"vlan");
    strcat(vlanDevice,vlanString);
    
    struct ifreq ifr;
    struct vlanreq vreq;
    int sock;
    if((sock = socket(AF_LOCAL, SOCK_DGRAM, 0)) < 0){
        err(1,"Error: opening socket");
        return -1;
    }
    bzero((char *)&vreq,sizeof(vreq));
    strncpy(ifr.ifr_name,vlanDevice,sizeof(ifr.ifr_name)); 
    vreq.vlr_tag = vlanTag;
    strncpy(vreq.vlr_parent,device,sizeof(vreq.vlr_parent));
    ifr.ifr_data = (caddr_t)&vreq;
        
    int ret = ioctl(sock,SIOCIFCREATE,(caddr_t)&ifr);
    if(ret < 0){
        err(1,"SIOCIFCREATE");
        return -1;
    }
    
    ret = ioctl(sock,SIOCSETVLAN,(caddr_t)&ifr);
    if(ret < 0){
        err(1,"SIOCSETVLAN");
        return -1;
    }
    printf("Created vlan interface %s\n", vlanDevice);  
    return 0;
}