Example #1
0
File: gpwin.c Project: elboza/EIDOS
main()
{
 strcpy(status.nomefile,"base.idl");
 inizializza();
 setmenuP(0," Files ",1,hh);
 setmenuP(0," Compile ",1,menuto2);
 setmenuP(0," Quit! ",1,esci);
 setmenuS(0,1," Ciao ",1,hh);
 setmenuS(0,1," Addio ",1,gg);
 gwindow(60,60,300,200," Main Win ",12,1,14,3);
 num=status.active_window;
 perc_init();
 for(x=0;x<=37;x++)
 {
  percent(x,37);
 }
 perc_end();
 mouse(1);
 while(kd!=27)
 {
  while((kd=ikey())==0) {}
  controlla(kd);
  x=contr_drives();
  if(x!=-1) {setdisk(x);dato=x;}
 }
 mouse(2);
 nogwin();
 finisci();
 return(0);
}
Example #2
0
PRInt32 nsInstallPatch::Complete()
{  
    PRBool flagEquals;

    if ((mInstall == nsnull) || (mVersionInfo == nsnull) || (mPatchedFile == nsnull) || (mTargetFile == nsnull)) 
    {
        return nsInstall::INVALID_ARGUMENTS;
    }
    
    PRInt32 err = nsInstall::SUCCESS;

    nsCOMPtr<nsIFile> fileName = nsnull;
    //nsVoidKey ikey( HashFilePath( nsFilePath(*mTargetFile) )  );//nsIFileXXX: nsFilePath?
    nsVoidKey ikey( HashFilePath( mTargetFile ));
    
    mInstall->GetPatch(&ikey, getter_AddRefs(fileName));
    
    if (fileName == nsnull)
    {
        err = nsInstall::UNEXPECTED_ERROR;
    }
    else
    {
      fileName->Equals(mPatchedFile, &flagEquals);
      if (flagEquals) 
      {
        // the patch has not been superceded--do final replacement
        err = ReplaceFileNowOrSchedule( mPatchedFile, mTargetFile, 0);
        if ( 0 == err || nsInstall::REBOOT_NEEDED == err ) 
        {
            nsString tempVersionString;
            mVersionInfo->ToString(tempVersionString);
            
            nsCAutoString tempPath;
            mTargetFile->GetNativePath(tempPath);

            // DO NOT propogate version registry errors, it will abort 
            // FinalizeInstall() leaving things hosed. These piddly errors
            // aren't worth that.
            VR_Install( NS_CONST_CAST(char *, NS_ConvertUCS2toUTF8(*mRegistryName).get()),
                        NS_CONST_CAST(char *, tempPath.get()),
                        NS_CONST_CAST(char *, NS_ConvertUCS2toUTF8(tempVersionString).get()),
                        PR_FALSE );
        }
        else
        {
            err = nsInstall::UNEXPECTED_ERROR;
        }
      }
Example #3
0
std::map<string, char*> Util::loadKV (FILE* file)
{
  std::map<string, char*> ret;
  if (file == NULL) {
    return ret;
  }
  rewind(file);
  char line[FILENAME_MAX + 1];
  int lineno = 0;
  char* p;
  char* key;
  char* val;
  while (!feof(file)) {
    if ( NULL == fgets(line, sizeof(line), file)) {
      break;
    }
    ++lineno;
    int left = strcspn(line, "#\r\n");
    if (left == 0) {
      continue;
    } else {
      line[left] = 0;
      p = line;
    }
    int pos = -1;
    pos = Util::index(p, '=', -1);
    if (pos == -1) {
      continue;
    } else {
      line[pos] = '\0';
      key = p; 
      val = p + pos + 1;
    }
    Util::trim(key);
    Util::trim(val);
    Util::tolower(key);
    Util::tolower(val);
    string ikey(key);
    char* ival = new char[FILENAME_MAX + 1];
    strcpy(ival, val);
    ret.insert(std::pair<string, char*>(ikey, ival));
  }
  return ret;
}
Example #4
0
 inline void stop_time(metrics_entry me, std::string key, int iternum, bool show=false) {
     me.timer_stop();
     mlock.lock();
     
     double t = me.lasttime;
     if (entries.count(key) == 0) {
         entries[key] = metrics_entry(TIME);
     } 
     entries[key].add(t); // not thread safe
     if (show) 
         std::cout << key << ": " << me.lasttime << " secs." << std::endl;
     
     char s[256];
     sprintf(s, "%s.%d", key.c_str(), iternum);
     std::string ikey(s);
     if (entries.count(ikey) == 0) {
         entries[ikey] = metrics_entry(TIME);
     }
     entries[ikey].add(t);
     
     mlock.unlock();
     
 }
Example #5
0
PRInt32 nsInstallPatch::Prepare()
{
    PRInt32 err;
    PRBool deleteOldSrc, flagExists, flagIsFile;
    
    if (mTargetFile == nsnull)
        return  nsInstall::INVALID_ARGUMENTS;

    mTargetFile->Exists(&flagExists);
    if (flagExists)
    {
        mTargetFile->IsFile(&flagIsFile);
        if (flagIsFile)
        {
            err = nsInstall::SUCCESS;
        }
        else
        {
            err = nsInstall::IS_DIRECTORY;
        }
    }
    else
    {
        err = nsInstall::DOES_NOT_EXIST;
    }

    if (err != nsInstall::SUCCESS)
    {   
        return err;
    }

    err =  mInstall->ExtractFileFromJar(*mJarLocation, mTargetFile, getter_AddRefs(mPatchFile));
   
    
    nsCOMPtr<nsIFile> fileName = nsnull;
    //nsVoidKey ikey( HashFilePath( nsFilePath(*mTargetFile) ) );//nsIFileXXX: nsFilePath?
    nsVoidKey ikey( HashFilePath( mTargetFile ));

    mInstall->GetPatch(&ikey, getter_AddRefs(fileName));

    if (fileName != nsnull) 
    {
        deleteOldSrc = PR_TRUE;
    } 
    else 
    {
        fileName     = mTargetFile;
        deleteOldSrc = PR_FALSE;
    }

    err = NativePatch(  fileName,           // the file to patch
                        mPatchFile,         // the patch that was extracted from the jarfile
                        getter_AddRefs(mPatchedFile));     // the new patched file
    
    // clean up extracted diff data file
    mPatchFile->Exists(&flagExists);
    if ( (mPatchFile != nsnull) && (flagExists) )
    {
        mPatchFile->Remove(PR_FALSE);
    }


    if (err != nsInstall::SUCCESS)
    {   
        // clean up tmp patched file since patching failed
      mPatchFile->Exists(&flagExists);
 		  if ((mPatchedFile != nsnull) && (flagExists))
      {
			    mPatchedFile->Remove(PR_FALSE);
      }
		return err;
    }

    PR_ASSERT(mPatchedFile != nsnull);
    mInstall->AddPatch(&ikey, mPatchedFile );

    if ( deleteOldSrc ) 
    {
    DeleteFileNowOrSchedule(fileName );
    }
  
    return err;
}
Example #6
0
void IOCPPool::svc_worker()
{

	struct epoll_event evts[20];
	if(!hIOCPhandler.ok()) return;

	while (!test_canceled())
	{
		int nfds=epoll_wait(hIOCPhandler,evts,1,1000);

		if(nfds<0)
		{
			logger.LogError("ERROR:%s",strerror(errno));
			continue;
		}
		else if(nfds==0)
		{
			continue;
		}

		for(int i=0; i<nfds; i++)
		{
			int nevt=evts[i].events;
			Session* pkey=(Session*)evts[i].data.ptr;

			if(!pkey)
			{
				logger.LogError("ERROR: NO Hander");
				continue;
			}

			Session& ikey(*pkey);

			if((nevt&(EPOLLERR|EPOLLHUP))!=0)
			{
				ikey.Disconnect();
				continue;
			}

			if(ikey.IsError())
			{
				continue;
			}

			ikey.tpLast=accounter.tTimeStamp;
			if(nevt&EPOLLIN)
			{
				HandleRecv(ikey);
			}
			else if(nevt&EPOLLOUT)
			{
				HandleSend(ikey);
			}

			if(ikey.IsError())
			{
				continue;
			}
			else
			{
				ikey.m_nEpCtl.exchange(0);
			}

		}
	}
}
Example #7
0
inline void IOCPPool::ccc_handle_iocp(Session* pkey,MyOverLapped* pdat)
{

	Session& ikey(*pkey);
	MyOverLapped& idat(*pdat);

	switch(idat.type)
	{
	case MyOverLapped::ACTION_UDP_SEND:
	{
		TempPtrT<MyOverLappedEx> q(static_cast<MyOverLappedEx*>(&idat));
		if(idat.size<=0)
		{
			ikey.Disconnect();
		}
		else if(!ikey.IsError())
		{
			accounter.nSendBytes.fetch_add(idat.size);
			accounter.nSendCount++;
			ikey.OnSendCompleted(q);
			static_cast<SessionUDP&>(ikey).DoAsyncSend();
		}
		--ikey.m_nPendingSend;
	}
	break;
	case MyOverLapped::ACTION_TCP_SEND:
	{
		TempPtrT<MyOverLappedEx> q(static_cast<MyOverLappedEx*>(&idat));
		if(idat.size<=0)
		{
			ikey.Disconnect();
		}
		else if(!ikey.IsError())
		{
			accounter.nSendBytes.fetch_add(idat.size);
			accounter.nSendCount++;
			ikey.OnSendCompleted(q);
			static_cast<SessionTCP&>(ikey).DoAsyncSend();
		}

		--ikey.m_nPendingSend;
	}
	break;
	case MyOverLapped::ACTION_UDP_RECV:
	{
		ikey.tpLast=accounter.tTimeStamp;
		TempPtrT<MyOverLappedEx> q(static_cast<MyOverLappedEx*>(&idat));
		if(idat.size<=0)
		{
			ikey.Disconnect();
		}
		else if(!ikey.IsError())
		{
			accounter.nRecvBytes.fetch_add(idat.size);
			accounter.nRecvCount++;
			ikey.OnRecvCompleted(q);
			static_cast<SessionUDP&>(ikey).DoAsyncRecv();
		}
		--ikey.m_nPendingRecv;
	}
	break;
	case MyOverLapped::ACTION_TCP_RECV:
	{
		ikey.tpLast=accounter.tTimeStamp;
		TempPtrT<MyOverLappedEx> q(static_cast<MyOverLappedEx*>(&idat));
		if(idat.size<=0)
		{
			ikey.Disconnect();
		}
		else if(!ikey.IsError())
		{
			accounter.nRecvBytes.fetch_add(idat.size);
			accounter.nRecvCount++;
			ikey.OnRecvCompleted(q);
			static_cast<SessionTCP&>(ikey).DoAsyncRecv();
		}
		--ikey.m_nPendingRecv;
	}
	break;
	case MyOverLapped::ACTION_ACCEPT:
	case MyOverLapped::ACTION_WAIT_RECV:
	{
		ikey.tpLast=accounter.tTimeStamp;
		if(idat.size<0)
		{
			ikey.Disconnect();
		}
		else if(!ikey.IsError())
		{
			accounter.nRecvCount++;
			ikey.OnRecvReady();
			static_cast<SessionTCP&>(ikey).DoAsyncRecv();
		}
		--ikey.m_nPendingRecv;
	}
	break;
	case MyOverLapped::ACTION_WAIT_SEND:
	{
		if(idat.size<0)
		{
			ikey.Disconnect();
		}
		else if(!ikey.IsError())
		{
			accounter.nSendCount++;
			ikey.OnSendReady();
			static_cast<SessionTCP&>(ikey).DoAsyncSend();
		}
		--ikey.m_nPendingSend;
	}
	break;
	default:
		System::LogTrace("Invalid pdat_type %d",idat.type);
		ikey.Disconnect();
		break;
	}
}