fsal_posixdb_status_t fsal_posixdb_deleteParent(fsal_posixdb_conn * p_conn,     /* IN */
                                                char *handleid_str,     /* IN */
                                                char *handlets_str,     /* IN */
                                                char *handleidparent_str,       /* IN */
                                                char *handletsparent_str,       /* IN */
                                                char *filename, /* IN */
                                                int nlink)      /* IN */
{
  PGresult *p_res;
  char nlink_str[MAX_NLINKSTR_SIZE];
  const char *paramValues[3];

  /* Sanity check */
  if(!p_conn || !filename || nlink < 1)
    {
      ReturnCodeDB(ERR_FSAL_POSIXDB_FAULT, 0);
    }

  /* delete the Parent entry */
  paramValues[0] = handleidparent_str;
  paramValues[1] = handletsparent_str;
  paramValues[2] = filename;

  /* invalidate name cache */
  fsal_posixdb_InvalidateCache();

  p_res = PQexecPrepared(p_conn, "deleteParent", 3, paramValues, NULL, NULL, 0);
  CheckCommand(p_res);

  /* delete the handle or update it */
  if(nlink == 1)
    {
      /* delete the handle */
      /* If there are other entries in the Parent table with this Handle, they will be deleted (thanks to foreign keys) */
      paramValues[0] = handleid_str;
      paramValues[1] = handlets_str;

      /* invalidate cache */
      fsal_posixdb_InvalidateCache();

      p_res = PQexecPrepared(p_conn, "deleteHandle", 2, paramValues, NULL, NULL, 0);
      CheckCommand(p_res);
    }
  else
    {
      /* update the Handle entry ( Handle.nlink <- (nlink - 1) ) */
      paramValues[0] = handleid_str;
      paramValues[1] = handlets_str;
      snprintf(nlink_str, MAX_NLINKSTR_SIZE, "%i", nlink - 1);
      paramValues[2] = nlink_str;

      /* invalidate cache */
      fsal_posixdb_InvalidateCache();

      p_res = PQexecPrepared(p_conn, "updateHandleNlink", 3, paramValues, NULL, NULL, 0);
      CheckCommand(p_res);
    }

  ReturnCodeDB(ERR_FSAL_POSIXDB_NOERR, 0);
}
示例#2
0
fsal_posixdb_status_t fsal_posixdb_flush(fsal_posixdb_conn * p_conn)
{
  PGresult *p_res;

  p_res = PQexec(p_conn, "DELETE FROM Parent");
  CheckCommand(p_res);
  PQclear(p_res);

  p_res = PQexec(p_conn, "DELETE FROM Handle");
  CheckCommand(p_res);
  PQclear(p_res);

  ReturnCodeDB(ERR_FSAL_POSIXDB_NOERR, 0);
}
示例#3
0
//bool cChat::GuildPost(LPOBJ gObj, char *Msg)
//{ 
//	int aIndex = User.GetPlayerIndex(gObj->Name);
//
//	if(gObj->GuildStatus == 128 || gObj ->GuildStatus == 64 || gObj ->GuildStatus == 32)
//		GDGuildNoticeSave(gObj->GuildName, Msg);
//	else
//		TNotice.SendNotice(aIndex,1,"You aren't guild master or assistant");	
//	return true;
//}
//
//bool cChat::Core(LPOBJ gObj, char *Msg)
//{ 
//	MessageLog(1,  gObj,"IA Julia 1.1.%d.%d, Compiled %s %s",dBuild, dCommit, __DATE__, __TIME__);	
//	return true;
//}
//
bool cChat::SetZenCommand(LPOBJ gObj, char* Msg, int Index)
{
	if(CheckCommand(gObj, Configs.Commands.IsSetZen, GmSystem.cSetZen, 0, 0, 1, Index, "SetZen", "[Name] /setzen <Zen>", Msg))
		return true;

	DWORD Zen = 0;

	sscanf(Msg, "%d", &Zen);

	if(Zen <= 0 || Zen > 2000000000)
	{
		TNotice.MessageLog(1,  gObj, "[SetZen] Zen can't be less than 1 and more than 2000000000!");
		return true;
	}	

	OBJECTSTRUCT *tObj = (OBJECTSTRUCT*)OBJECT_POINTER(Index);

	tObj->Money = Zen;
	GCMoneySend(tObj->m_Index, Zen);
	if (gObj == tObj)
	{
		TNotice.MessageLog(1,tObj, "[SetZen] Your zen was edited!");
	}
	else
	{
		TNotice.MessageLog(1,gObj, "[SetZen] You successfully changed %s zen.", tObj->Name);
		TNotice.MessageLog(1,tObj, "[SetZen] Your zen was edited by %s!", gObj->Name);
	}
	return true;
}			
示例#4
0
bool cChat::PostCommand(LPOBJ gObj, char *Msg)
{
	int aIndex = User.GetPlayerIndex(gObj->Name);

	if(CheckCommand(gObj, Configs.Commands.IsPost, GmSystem.NONE, Configs.Commands.PostPriceZen, Configs.Commands.PostLvl, 1, 0, "Post", "/post <msg>", Msg))
		return true;

	if(AddTab[gObj->m_Index].POST_Delay > 0)
	{
		TNotice.SendNotice(aIndex,1,"[ANTI-FLOOD] Wait %d sec until you can post!", AddTab[gObj->m_Index].POST_Delay);
		return true;
	}

	TakeCommand(gObj, Configs.Commands.PostPriceZen, "Post"); 
	switch(Configs.Commands.PostColor)
	{
	case 0:
	case 1:
		TNotice.MessageAll(2, 1, gObj, "[POST] %s", Msg);	
		break;
	case 2:
		TNotice.MessageAll(2, 0, gObj, "@[POST] %s", Msg);	
		break;
	case 3:
		TNotice.MessageAll(2, 0, gObj, "~[POST] %s", Msg);	
		break;
	} 
	LogAddFuncColor(3,"[POST] %s: %s", gObj->Name,Msg);
	if(!GmSystem.IsAdmin(gObj->Name))
		AddTab[gObj->m_Index].POST_Delay = Configs.Commands.PostDelay;

	return true;
}
示例#5
0
bool cChat::SetPKCommand(LPOBJ gObj, char *Msg, int Index)
{								 			
	if(CheckCommand(gObj, Configs.Commands.IsSetPK, GmSystem.cSetPK, 0, 0, 0, Index, "SetPK", "[Name] /setpk <pklvl>", Msg))
		return true;

	int SetLevel;
	sscanf(Msg,"%d", &SetLevel);		

	if(SetLevel < 0 || SetLevel > 100)
	{
		TNotice.MessageLog(1,  gObj, "[SetPK] PK lvl can't be less than 0 and more than 100!");
		return true;
	}			 

	OBJECTSTRUCT *tObj = (OBJECTSTRUCT*)OBJECT_POINTER(Index);

	tObj->m_PK_Level = SetLevel;
	if(SetLevel >= 3)
		tObj->m_PK_Count = SetLevel - 3;
	GCPkLevelSend(tObj->m_Index,SetLevel);	 

	if (gObj == tObj)
		TNotice.MessageLog(1,tObj, "[SetPK] Your pk was changed to %d.", SetLevel);
	else
	{
		TNotice.MessageLog(1,gObj, "[SetPK] You successfully changed %s pk to %d.", tObj->Name, SetLevel);
		TNotice.MessageLog(1,tObj, "[SetPK] Your pk was changed to %d by %s.", SetLevel, gObj->Name);
	}
	return true;
}
示例#6
0
/*****************************************************************************
 Function   : do_healthcheck
 Description: do update heatch check
 Input      : handle -- xenbus file handle
 Output     : None
 Return     : XEN_SUCC or XEN_ERROR
 *****************************************************************************/
int do_healthcheck(void * handle)
{
    int iSpaceRet = 0;           //disksize
    int iKernelRet = 0;          //UpKernel flag
    int iCommandRet = 0;     //command flag
    char resStr[MAX_PATH] = {0};

    if (NULL == handle)
    {
        return XEN_FAIL;
    }

    /*检查磁盘空间是否剩余*/
    iSpaceRet = CheckDiskspace();

    /*检查内核是否升级*/
    iKernelRet = CheckUpKernel();

    /*检查系统命令是否存在*/
    iCommandRet = CheckCommand();

    (void)snprintf_s(resStr, MAX_PATH, MAX_PATH, "%d:%d:%d", iSpaceRet, iKernelRet, iCommandRet);

    if(xb_write_first_flag == 0)
    {
        /*如果返回成功,写入磁盘利用率信息*/
        write_to_xenstore(handle, HEALTH_CHECK_RESULT_PATH, resStr);
    }
    else
    {
        write_weak_to_xenstore(handle, HEALTH_CHECK_RESULT_PATH, resStr);
    }
    return XEN_SUCC;
}
示例#7
0
/* ===================================================================*/
LDD_TError ADCSendCommand(byte* cmd, uint8 len)
{
    LDD_TError err;
    
    /* Check the command. */
    err = CheckCommand(*cmd, len);
    if(err != ERR_OK)
    {
        PrintErrorMessage(err);
        return err;
    }
    
    /* Prepare the buffer of command transmitted to ADC. */
    err = SPI1Send(cmd, len);
    if(err != ERR_OK)
    {
        PrintErrorMessage(err);         /* If error occurred, print the error message, */
        return err;                     /* then return error type. */
    }
    
    /* Enable the SPI transmission interrupt to transmit. */
    SPI1EnableTxInterrupt();
    
    return err;
}
示例#8
0
int main(int argc, const char **argv)
{
	int i_ret=0;

	if(!CheckCommand(KILLALLCMD))
	{
		/*        errIndex = 7; //shell will be failed*/
		ZCommandResponseError(CLEARDBANDREBOOT,1);
		fprintf(stderr, "Killall command %s does not exist \n", KILLALLCMD);
		/*        goto ExitPoint;*/
		return 0;
	}

	i_ret=ClearDb_Reboot();

	if(i_ret != 0)
		goto ExitPoint;        
	else
		/*        Send_Respond_Msg(errIndex);*/
		ZCommandResponseError(ZCOMMAND,0);
	return 0;

ExitPoint:
	/*        errIndex = 7; //shell will be failed*/
	ZCommandResponseError(CLEARDBANDREBOOT,1);
	fprintf(stderr, "Call reboot failed.\n");
	return 0;    
}
示例#9
0
    void HonFxerApp::Command_ViewHelp(const MyGUI::UString& _commandName, bool& _result)
    {
        if (!CheckCommand())
            return;

        _result = true;
    }
示例#10
0
int main(int argc, const char **argv)
{
	int i_ret=0;

	if(!CheckCommand(KILLALLCMD))
	{
		i_ret=ZERROR;
		fprintf(stderr, "Killall command %s does not exist \n", KILLALLCMD);
		goto ExitPoint;
	}

	i_ret=RestoreFactoryDef();

 ExitPoint:
	if(i_ret != 0){	        
/*            Send_Respond_Msg(-7);*/
			ZCommandResponseError(RESTOREFACTORYDEFAULT,1);
	        return 0;
	    }

			ZCommandResponseError(ZCOMMAND,0);
/*    Send_Respond_Msg(0);*/
		
    return 0;    
}
示例#11
0
    void HonFxerApp::Command_ResLocation(const MyGUI::UString& _commandName, bool& _result)
    {
        if (!CheckCommand())
            return;

        mSetResLocWindow->doModal();

        _result = true;
    }
示例#12
0
文件: chat.c 项目: kwolekr/phyros
void __fastcall ChatHandleTalk(char *user, char *text, int index) {
	char timestamp[16];

	if (!(gstate & GFS_FLOODED)) {
		GetTimeStamp(timestamp);
		printf("%s <%s> %s\n", timestamp, user, text);
		CheckPhrases(user, text);
		CheckCommand(user, text, 1, index);
	}
}
示例#13
0
//bool cChat::AddMobCommand(LPOBJ gObj, char *Msg)
//{
//#ifdef _GS
//	if(CheckCommand(gObj, 1, GmSystem.cSetZen, 0, 0, 0, 0, "AddMob", "/mobadd <mobid> <count> <speed> <distance> <map> <x> <y>", Msg))
//		return true;
//
//	int Mob;
//	int Map = gObj->MapNumber;
//	int Speed = 10;
//	int X1 = (int)gObj->X, X2 = (int)gObj->X;
//	int Y1 = (int)gObj->Y, Y2 = (int)gObj->Y;
//	int Dir = -1;
//	int Count = 1;
//	int Distance = 0;
//
//	sscanf(Msg, "%d %d %d %d %d %d %d", &Mob, &Count, &Speed, &Distance, &Map, &X1, &Y1);
//
//	FILE* AddMobFile;  
//
//	if((AddMobFile = fopen(NNMobAdd,"a+")) == NULL)
//	{						   
//		MessageBox(NULL, "Cant Find MonsterSpawn.ini", "Error", 0);
//	}
//	else
//	{				
//		//ID, Count, Speed, Distance, Map, X, Y
//		//Mob,Map,Speed,x1,y1,x2,y2,dir,count
//		//17	9	30	119	80	150	115	-1	35 // Cyclops
//		if(Count == 1)
//			Dir = gObj->Dir;
//		if(Distance > 0)
//		{
//			X1 -= Distance;
//			Y1 -= Distance;
//			X2 += Distance;
//			Y2 += Distance;
//		}
//
//		fprintf(AddMobFile, "\n%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d", Mob, Map, Speed, X1, Y1, X2, Y2, Dir, Count); 	 
//		fclose(AddMobFile);
//	}		 
//	for(int i = 0; i < Count; i++)
//	{
//		Monster.MonsterAddAndSpawn(Mob, Map, Speed, X1, Y1, X2, Y2, Dir);
//	}
//	TNotice.MessageLog(1, gObj, "[AddMob] %d Mob Successfully spawned (Map: %d, X: %d, Y: %d, MobID: %d)", Count,Map,X1,Y1, Mob);
//#endif
//	return true;
//}
void cChat::DropCommand(LPOBJ gObj, char *Msg, int aIndex)
{
	OBJECTSTRUCT *lpObj = (OBJECTSTRUCT*)OBJECT_POINTER(aIndex);
	if (!OBJMAX_RANGE(aIndex)) return;
	if (!gObjIsConnected(aIndex)) return;

	if (CheckCommand(lpObj, Configs.Commands.IsDrop, GmSystem.cDrop, 0, 0, 0, aIndex, "Drop", "[Name] /drop <ItemType> <ItemIndex> <Level> <Skill> <Luck> <JoLOption> <Excellent> <Ancient> <Count>", Msg))
		return;

	int ItemType = 0;
	int ItemIndex = 0;
	int Level = 0;
	int Skill = 0;
	int Luck = 0;
	int JoLOption = 0;
	int Durability = 0;
	int Excellent = 0;
	int Ancient = 0;
	int Element = 0;
	int Count = 0;

	if (Count < 1 || Count > 10) Count = 1;
	sscanf(Msg, "%d %d %d %d %d %d %d %d %d", &ItemType, &ItemIndex, &Level, &Skill, &Luck, &JoLOption, &Excellent, &Ancient, &Count);
	if ((ItemType < 0 || ItemType > 15) || ItemIndex < 0 || (Level<0 || Level > 15) || (Skill < 0 || Skill > 1) || (Luck < 0 || Luck > 1) || (JoLOption < 0 || JoLOption > 7) || (Durability < 0 || Durability > 255) || (Excellent < 0 || Excellent > 63) || (Ancient < 0 || Ancient > 40))
	{
		TNotice.SendNotice(aIndex, 1, "[Drop] Usage: /drop <ItemType> <ItemIndex> <Level> <Skill> <Luck> <JoLOption> <Excellent> <Ancient> <Count>");
		return;
	}
	else
	{
		int ItemNumber = ITEMGET(ItemType, ItemIndex);

		for (int i = 0; i < Count; i++)
		{
			if (ItemNumber == ITEMGET(13, 4) || ItemNumber == ITEMGET(13, 5)) //Dark Horse and Raven
			{


				PetItemSerialCreateSend(aIndex, lpObj->MapNumber, lpObj->X, lpObj->Y, ItemNumber,
					Level, Durability, Skill, Luck, JoLOption, aIndex, Excellent, 0);
			}
			else
			{
				ItemSerialCreateSend(aIndex, lpObj->MapNumber, lpObj->X, lpObj->Y, ItemNumber,
					Level, Durability, Skill, Luck, JoLOption, aIndex, Excellent, Ancient, 0, 0, 0, Element);
			}
		}
		TNotice.SendNotice(aIndex, 1, "[Drop] %d Item Created %d %d %d %d %d %d %d %d %d %d - Success",
			Count, ItemType, ItemIndex, Level, Durability, Skill, Luck, JoLOption, Excellent, Ancient, Element);
	}

	return;
}
示例#14
0
bool cChat::GgCommand(LPOBJ gObj, char *Msg)
{
	if(CheckCommand(gObj, Configs.Commands.IsGg, GmSystem.cGg, 0, 0, 0, 1, "GG", "/gg <msg>", Msg))
		return true;												

	//Log.CheckProcent(Msg);
	TNotice.MessageAll(0, 0, gObj, "[%s]: %s", gObj->Name, Msg);	 //PROTECT HERE MUST BE GOOOD

	//Log.ConsoleOutPut(0,  "[GG] %s: %s", gObj->Name,Msg);
	LogAddFuncColor(LOG::DARKBLUE,"[GG] %s: %s", gObj->Name,Msg);
	return true;
}			
示例#15
0
bool cChat::VosklCommand(LPOBJ gObj, char *Msg)
{
	if(CheckCommand(gObj, 1, GmSystem.cVoskl, 0, 0, 0, 0, "!", "! <msg>", Msg))
		return true;												

	//Log.CheckProcent(Msg);
	//TNotice.MessageAll(0, 0, gObj, Msg);  //PROTECT HERE MUST BE GOOOD 

	//Log.ConsoleOutPut(0,  "[!] %s: %s", gObj->Name,Msg);
	LogAddFuncColor(LOG::DARKBLUE,"[!] %s: %s", gObj->Name,Msg);
	return true;
}		
示例#16
0
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// 弹出菜单初始化
VOID CMainWnd::OnMenuPopup(WPARAM wParam, LPARAM lParam)
{
	HWND hWnd;
	DWORD dwSize;
	TCHAR tzTemp[512];
	TCHAR tzPath[512];

	switch (GetMenuItemID((HMENU) wParam, 0))
	{
	case IDM_Help_Desktop:
		// 判断快捷方式是否存在
		CheckCommand(IDM_Help_Desktop, CShortcut::Exist(CSIDL_DESKTOP));
		CheckCommand(IDM_Help_StartMenu, CShortcut::Exist(CSIDL_STARTMENU));
		CheckCommand(IDM_Help_ProgramMenu, CShortcut::Exist(CSIDL_PROGRAMS));
		CheckCommand(IDM_Help_QuickLaunch, CShortcut::Exist(CSIDL_APPDATA));
		CheckCommand(IDM_Help_VisualStudio, CVSTool::Exist());
		break;

	case IDM_Play_Play:
		hWnd = CClientWnd::GetActive();
		_ExIf(hWnd, SendMessage(hWnd, WM_INITMENUPOPUP, wParam, lParam));
		break;

	case IDM_View_Toolbar:
		GetModuleFileName(NULL, tzTemp, MAX_PATH);
		wsprintf(tzPath, TEXT("\"%s\" \"%%1\""), tzTemp);
		dwSize = _NumOf(tzTemp);
		SHGetValue(HKEY_CLASSES_ROOT, STR_AppName TEXT("\\shell\\open\\command"), NULL, NULL, tzTemp, &dwSize);
		CheckCommand(IDM_View_AssociateFile, lstrcmpi(tzTemp, tzPath) == 0);			
		break;
	}
}
示例#17
0
void main()
{
	// Faz os acentos aparecerem
	setlocale(LC_ALL, "Portuguese");

	memset(&User, 0x0, sizeof Infos);

	StartThread(MainThread);

	system("cls");

	printf("Ferramenta para visualização de dados de account SOD.\n");
	printf("Só serão exibidos dados referentes ao ultimo Save da account.\n");
	printf("Lembre-se: as contas são salvas de 12 em 12 segundos.\n");
	printf("Para sair digite out.\n");

	while(1)
	{
		char szLogin[16];

		printf("Entre com o id desejado, digite out para sair:");
		scanf("%16s", szLogin);

		if(!stricmp(szLogin, "out"))
			break;
		else if(!LoadNInfo(szLogin) || !LoadOInfo(szLogin))
			printf("Erro ao fazer o load da conta.\n");
		else
		{
			printf("Senha: %s\n", User.AccountInfos.AccountPass);
			printf("Senha Numérica: %s\n", User.NewInfos.Numerica);
			printf("Cash: %d\n", User.NewInfos.Cash);
			printf("Gold do Baú: %d\n", User.AccountInfos.Gold);
			//printf("Personagens: %s %s %s %s\n", User.AccountInfos.Char[0].Name, User.AccountInfos.Char[1].Name, User.AccountInfos.Char[2].Name, User.AccountInfos.Char[3].Name);
		    
			User.PersoSelected = NOT_SELECTED;

			bool saida = false;

			while(!saida)
			{
			    char Command[20];
			    printf("Digite a informação desejada, ou out para sair:\n");

			    scanf("%20s", Command);

			    saida = CheckCommand(Command);
			}
		}
	}
}
示例#18
0
bool cChat::SetDropCommand(LPOBJ gObj, char *Msg, int Index)
{					
	if(CheckCommand(gObj, Configs.Commands.IsDrop, GmSystem.cDrop, 0, 0, 1, Index, "SetDrop", "[Name] /setdrop <ItemIndex> <ItemLvl> <ItemLuck> <ItemOpt> <ItemExc> <ItemAnc>", Msg))
		return true;

	//int ItemType = 0;
	int ItemIndex = 0;
	int Level = 0;
	int Skill = 0;
	int Luck = 0;
	int JoLOption = 0;
	int Durability = 0;
	int Excellent = 0;
	int Ancient = 0;
	int Element = 0;
	int ItemMin = 7;

	//MG Set Season 4.6
	if(ItemIndex == 15 || ItemIndex == 20 || ItemIndex == 23 || ItemIndex == 32 || ItemIndex == 37 || ItemIndex == 47 || ItemIndex == 48)
	ItemMin = 8;

	//sscanf(Msg, "%d %d %d %d %d %d", &ItemIndex, &ItemLevel, &ItemLuck, &ItemOpt, &ItemExc, &ItemAncient);
	sscanf(Msg, "%d %d %d %d %d %d %d %d", &ItemIndex, &Level, &Skill, &Luck, &JoLOption, &Excellent, &Ancient, &ItemMin);
	if (ItemIndex < 0 || (Level<0 || Level > 15) || (Skill < 0 || Skill > 1) || (Luck < 0 || Luck > 1) || (JoLOption < 0 || JoLOption > 7) || (Durability < 0 || Durability > 255) || (Excellent < 0 || Excellent > 63) || (Ancient < 0 || Ancient > 40))
	
		//if(ItemIndex < 0 || (ItemLevel<0 || ItemLevel > 13) || (ItemOpt < 0 || ItemOpt > 7) || (ItemLuck < 0 || ItemLuck > 1) || (ItemExc < 0 || ItemExc > 63) || (ItemAncient < 0 || ItemAncient > 40))
	{
		//TNotice.SendNotice(aIndex, 1, "[SetDrop] Usage: /setdrop <ItemType> <ItemIndex> <Level> <Skill> <Luck> <JoLOption> <Durability> <Excellent> <Ancient> <Count>");
		TNotice.MessageLog(1,  gObj, "[SetDrop] Usage: /setdrop  <ItemIndex> <Level> <Skill> <Luck> <JoLOption> <Excellent> <Ancient>");
		return true;
	}

	OBJECTSTRUCT *gUbj = (OBJECTSTRUCT*)OBJECT_POINTER(Index);

	for(int i = ItemMin; i < 12; i++)
	{
		int Item = i * 512 + ItemIndex;
		int Rand1 = rand() % 3;
		int Rand2 = rand() % 3;
		//ItemSerialCreateSend(gUbj->m_Index, gUbj->MapNumber, (int)gUbj->X + Rand1, (int)gUbj->Y + Rand2, Item, ItemLevel, 0, 0, 
		//	ItemLuck, ItemOpt, gUbj->m_Index, ItemExc, ItemAncient, lDuration, dwEventIndex, SocketOption, MainAttribute);
		
		ItemSerialCreateSend(gUbj->m_Index, gUbj->MapNumber, gUbj->X + Rand1, gUbj->Y + Rand2, Item,
			Level, Durability, Skill, Luck, JoLOption, gUbj->m_Index, Excellent, Ancient, 0, 0, 0, Element);
		//ItemSerialCreateSend(Index, tObj->MapNumber, (int)tObj->X, (int)tObj->Y, Item, ItemLevel, 0, ItemSkill, ItemLuck, ItemOpt, Index, ItemExc, ItemAncient, lDuration, dwEventIndex, SocketOption, MainAttribute);
	}
	return true;
}
示例#19
0
bool cChat::DiskCommand(LPOBJ gObj, int Index)
{
	if(CheckCommand(gObj, 1, GmSystem.cDisconnect, 0, 0, 0, Index, "DC", "[Name] /disconnect", ""))
		return true;

	OBJECTSTRUCT *tObj = (OBJECTSTRUCT*)OBJECT_POINTER(Index);
	TNotice.SendNotice(Index,1,"[Disconnect] %s was disconnected.", tObj->Name);

	if(GmSystem.IsAdmin(gObj->Name) == 1)
		TNotice.SendNotice(Index,1,"[Disconnect] You was disconnected by [Admin] %s", gObj->Name);		
	else if(GmSystem.IsAdmin(gObj->Name) == 2)
		TNotice.SendNotice(Index,1,"[Disconnect] You was disconnected by [GM] %s", gObj->Name);	

	CloseClient(Index);
	return true;
}			
示例#20
0
bool cChat::SummonCommand(LPOBJ gObj, int Index)
{
	if(CheckCommand(gObj, 1, GmSystem.cTrace, 0, 0, 0, Index, "Track", "[Name] /track", ""))
		return true;

	OBJECTSTRUCT *tObj = (OBJECTSTRUCT*)OBJECT_POINTER(Index);

	gObjTeleport(tObj->m_Index, gObj->MapNumber, (int)gObj->X, (int)gObj->Y);	
	TNotice.SendNotice(Index,1,"[Track] You successfully summoned %s",tObj->Name);

	if(GmSystem.IsAdmin(gObj->Name) == 1)
		TNotice.SendNotice(Index,1,"[Track] You was summoned to [Admin] %s", gObj->Name);		
	else if(GmSystem.IsAdmin(gObj->Name) == 2)
		TNotice.SendNotice(Index,1,"[Track] You was summoned to [GM] %s", gObj->Name);	
	return true;
}		
示例#21
0
OMX_ERRORTYPE State::DoSendCommand(
    OMX_COMMANDTYPE Cmd,
    OMX_U32 nParam,
    OMX_PTR pCmdData)
{
	OMX_ERRORTYPE ret = OMX_ErrorNone;
	CMD_MSG sMsg;

	/* reset Cmd pool if pendingCmd is dead */
	if(Cmd == OMX_CommandMax)
	{
		base->pendingCmd.cmd = OMX_CommandMax;
		return OMX_ErrorNone;
	}

	if(base->pendingCmd.cmd != OMX_CommandMax)
		return OMX_ErrorNotReady;

	LOG_DEBUG("Sending Command[cmd:%d, param: %d, data: %d] to Component[%s].\n",
	          Cmd, nParam, pCmdData, base->name);

	ret = CheckCommand(Cmd, nParam, pCmdData);
	if(ret != OMX_ErrorNone)
		return ret;

	base->pendingCmd.cmd = Cmd;
	base->pendingCmd.nParam = nParam;
	base->pendingCmd.pCmdData = pCmdData;
	base->pendingCmd.bProcessed = OMX_FALSE;

	sMsg.Cmd = Cmd;
	sMsg.nParam = nParam;
	sMsg.pCmdData = pCmdData;
	base->pCmdQueue->Add(&sMsg);

	LOG_DEBUG("Sending Command[cmd:%d, param: %d, data: %d] to Component[%s] done.\n",
	          Cmd, nParam, pCmdData, base->name);

	ret = (base->*Process)(COMMAND);


	return ret;
}
示例#22
0
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// 打开文件
VOID CMainWnd::OnFileOpen(PCTSTR ptzFileName)
{
	TCHAR tzFileName[MAX_PATH];
	TCHAR tzOpenError[MAX_PATH * 2];
	static BOOL s_bShowOpen = FALSE;

	if (s_bShowOpen == FALSE)
	{
		s_bShowOpen = TRUE;
		if (CRawPlayer::m_bSync)
		{
			CheckCommand(IDM_Play_Synchronize, CRawPlayer::ToggleSync());
		}

		if (ptzFileName)
		{
			CUtility::TrimQuotMark(tzFileName, ptzFileName);
		}
		else
		{
			tzFileName[0] = 0;
		}

		if (COpenDlg::Open(tzFileName) != ERROR_CANCELLED)
		{
			// 结果处理
			if (COpenDlg::m_pWnd && CClientWnd::Load(COpenDlg::m_pWnd))
			{
				// 添加到新近文件列表
				CRecentFile::Add(tzFileName);
			}
			else
			{
				// 打开文件错误
				wsprintf(tzOpenError, LNG_OpenErr, tzFileName);
				ErrorBox(tzOpenError);
			}
		}

		s_bShowOpen = FALSE;
	}
}
示例#23
0
bool cChat::StatusCommand(LPOBJ gObj, char *Msg, int Index)
{
	if(CheckCommand(gObj, Configs.Commands.IsStatus, GmSystem.cStatus, 0, 0, 0, Index, "Status", "[Name] /status", Msg))
		return true;

	OBJECTSTRUCT *tObj = (OBJECTSTRUCT*)OBJECT_POINTER(Index);

	TNotice.MessageLog(0,gObj,"IP Address: %s",tObj->Ip_addr);
	TNotice.MessageLog(0,gObj,"Account: %s | Character: %s",tObj->AccountID,tObj->Name);
	TNotice.MessageLog(0,gObj,"Level: %d | Zen: %d",tObj->Level,tObj->Money);
	TNotice.MessageLog(0,gObj,"Map: %s (%d)(%d,%d)",User.GetMapName(tObj->MapNumber),tObj->MapNumber,tObj->X,tObj->Y); 

	/*if (AddTab[tObj->m_Index].IsMarried)
		MessageLog(0,  gObj, "Married on %s | Resets: %d", AddTab[tObj->m_Index].MarryName, AddTab[tObj->m_Index].Resets);
	else																								 
		MessageLog(0,  gObj, "Not married | Resets: %d", AddTab[tObj->m_Index].Resets);*/

	TNotice.MessageLog(1,  gObj, "[Status][GM] %s get your status!", gObj->Name);	  
	return true;
}
示例#24
0
bool cChat::SkinCommand(LPOBJ gObj, char *Msg, int Index)
{  
	if(CheckCommand(gObj, Configs.Commands.SkinEnabled, GmSystem.cSkin, 0, 0, 0, Index, "Skin", "[Name] /skin <num>", Msg))
		return true;

	int NumSkin = 0;	

	sscanf(Msg,"%d", &NumSkin);

	OBJECTSTRUCT *tObj = (OBJECTSTRUCT*)OBJECT_POINTER(Index);

	tObj->m_Change = NumSkin;
	gObjViewportListProtocolCreate(tObj);								
	if(tObj == gObj)
		TNotice.MessageLog(1,  tObj, "[Skin] Your Skin was changed.");
	else
	{
		TNotice.MessageLog(1,  gObj, "[Skin] You successfully change %s Skin.", tObj->Name);
		TNotice.MessageLog(1,  tObj, "[Skin] Your Skin was changed by %s.", gObj->Name);
	}
	return true;				
}
int main(void)
{
	char command[10];
	QUEUE *pQueue = malloc(sizeof(QUEUE));

	pQueue->front = NULL;
	pQueue->rear  = NULL;
	pQueue->count = 0;

	while(true)
	{
		printf(">>");
		scanf("%s",command);

		if(!CheckCommand(command))
		{
			puts("[Invalid]");
			continue;
		}
		
		if(!strcmp(command,"q")||!strcmp(command,"quit")) break;

		else if(!strcmp(command,"h")||!strcmp(command,"history"))
		{
			printf("queue count = %d\n",pQueue->count);

			EnqueueCommand(pQueue,command);
		}
		else
		{
			printf("[Valid] %s\n",command);

			EnqueueCommand(pQueue,command);
		}
	}

	return 0;
}
示例#26
0
bool cChat::OnlineCommand(LPOBJ gObj, char *Msg)
{
	char szTemp[256];
	int iGM = 0;
	int iPlayer = 0;

	for(int x = OBJ_MIN; x < OBJ_MAX; x++)
	{
		OBJECTSTRUCT * lpObj = (OBJECTSTRUCT*)OBJECT_POINTER(x);
		if(lpObj->Connected == PLAYER_PLAYING)
		{
			if(lpObj->Authority == 8 || lpObj->Authority == 32)
			{
				iGM++;
			}
			iPlayer++;
		}
	}
	if(CheckCommand(gObj, Configs.Commands.IsOnline, GmSystem.NONE, 0, 0, 0, 0, "Online", "/online", Msg))
		return true;

	TNotice.MessageLog(1,  gObj, "[ONLINE]: %d Player(s), %d GM(s)",iPlayer,iGM);
	return true;
}
示例#27
0
/*
 * main program
 */
int main(int argc, char** argv) {
    //global var
    time_t sec0, sec1;
    unsigned int delayPixel= 120000, delayGyrodataSending = 25000;
    unsigned int idPayload = 303, useKeyboardCmd = 0, buffer_max_num = 64;
    unsigned char keyChar;
    int gpioOK = 0;
	dictionary *iniDict;	//ini dictionery  
	char strPathCfg[255];
	
	GPS_DATA last_posx;
	
	//init last gps pos
	last_posx.gps_status = last_posx.gps_loc.lat = last_posx.gps_loc.lon = 0;
	last_posx.gps_speed = last_posx.gps_altitude = last_posx.gps_time = 0;	
    
    //show titel
#if VERBOSE==1
    printf("%s", APP_TITEL);
#endif

	//init pin switch
	gpioOK = wiringPiSetup();
	
	if(gpioOK != -1)
	{
		pinMode(6, INPUT);
		pullUpDnControl(6, PUD_UP);
	}
	else
		printf("gpio init eror\r\n");
		
	//parsing argumen jika ada
	if(argc>2)
	{
		//default cfg file
		getcwd(strPathCfg, sizeof(strPathCfg));
		strcat(strPathCfg, "/");
		strcat(strPathCfg, CFG_NAME);
	
		int i;
		for(i=1;i<(argc-1);i++)
		{
			//delay pixel
			if(strcmp("-d",argv[i])==0)
				delayPixel = atoi(argv[++i]);
				
			//id payload
			if(strcmp("-i",argv[i])==0)
				idPayload = atoi(argv[++i]);
				
			//pake keyboard ato tidak
			if(strcmp("-k",argv[i])==0)
				useKeyboardCmd = atoi(argv[++i]);
				
			//gyro send
			if(strcmp("-g",argv[i])==0)
				delayGyrodataSending = atoi(argv[++i]);
				
			//buffer size
			if(strcmp("-b",argv[i])==0)
				buffer_max_num = atoi(argv[++i]);
		}
	}
	else //baca dari cfg file
	{				
		//load ini file
		//char strCfg[80];
		
		if(argc==2)
		{
			strcpy(strPathCfg, argv[1]);
		}
		else
		{		
			//get cwd
			if (getcwd(strPathCfg, sizeof(strPathCfg)) != NULL)
			   printf("Current working dir: %s\r\n", strPathCfg);
			else
			{
				strcpy(strPathCfg, argv[1]);			
			}
		}
		
		//check file exists
		strcat(strPathCfg, "/");
		strcat(strPathCfg, CFG_NAME);
		if(!file_exist(strPathCfg))
		{
			printf("Configuration file %s not found!!!\r\n", strPathCfg );
			return(EXIT_FAILURE);
		}
		
		//load from config file
		printf("Loading configuration file from %s\r\n", strPathCfg);
		
		//load ini parser
		iniDict = iniparser_load(strPathCfg);
		
		//read cfg value
		if(iniDict)
		{
			idPayload = iniparser_getint(iniDict,"payload:id",100);
			delayPixel = iniparser_getint(iniDict,"payload:cam_delay",120000);
			delayGyrodataSending = iniparser_getint(iniDict,"payload:g_delay",20000);
			buffer_max_num = iniparser_getint(iniDict,"payload:buffer",64);
		}
	}
	
	//show config setup
	printf("======================================\r\n");
	printf("Configuration :\r\n");
	printf("Delay Pixel = %d uS\r\n", delayPixel);
	printf("ID Payload = %d\r\n", idPayload);
	printf("Use Keyboard = %d\r\n", useKeyboardCmd);
	printf("Gyro Delay = %d uS\r\n", delayGyrodataSending);
	printf("Buffer = %d byte\r\n", buffer_max_num);
	printf("======================================\r\n");    
	
	//init bus i2c
	int i2c_hdl = I2C_Init_Bus(i2c_dev, &statusPeripheral);
	
	//init start adxl345
	ADXL345_Init_Start(i2c_hdl, adxl345_addr, &statusPeripheral);
	
	//init itg3200
	ITG3200_Init_Start(i2c_hdl, itg3200_addr, &statusPeripheral);
	
    //open port
    unsigned char buffRX[COM_BUFF_NUM];
    int buffNumRX;
    
    //make it as null string
    buffRX[COM_BUFF_NUM-1] = 0;

    if (OpenComport(COM_PORT, COM_SPEED)) {
        fprintf(stderr, "Open port %d failed : %s\r\n!!!", COM_PORT, strerror(errno));
        return errno;
    }

#if VERBOSE==1
    printf("communication port opened\r\n");
#endif   

	//tes port com
	//while(1){
		////ambil perintah dari comport
        //buffNumRX = PollComport(COM_PORT, buffRX, (COM_BUFF_NUM - 2));
        //if (buffNumRX > 0) {
			////printf("%d = %s\n", buffNumRX, buffRX);
			//int i;
			//for(i=0;i<buffNumRX;i++)
			//{
				//printf("%X %s", buffRX[i], (i<buffNumRX-1) ? "":"\n");
			//}
			
			//char ss[10];
			//snprintf(ss,6,"%d",(buffRX[1]<<8)+buffRX[2]);
			//printf("id = %s\n", ss);
		//}
	//}

	//open cam
	CvCapture *camHdl = cvCaptureFromCAM(CV_CAP_ANY);
	Cam_Init_Start(camHdl, &statusPeripheral);

    //main loop
    while (1) {
		if(useKeyboardCmd)
		{
			//dummy keyboard input
			printf("press command key\r\n");
			keyChar = getchar();

			//if (keyChar == cmdList[3][0])
				//opsState = STATE_EXIT;

			//if (keyChar == cmdList[2][0])
				//opsState = STATE_GET_CAM_DATA;
				
			//if (keyChar == cmdList[1][0])
				//opsState = STATE_GET_G_DATA;
				
			if (keyChar == cmdList[3])
				opsState = STATE_EXIT;

			if (keyChar == cmdList[2])
				opsState = STATE_GET_CAM_DATA;
				
			if (keyChar == cmdList[1])
				opsState = STATE_GET_G_DATA;
		}

        //ambil perintah dari comport
        buffNumRX = PollComport(COM_PORT, buffRX, (COM_BUFF_NUM - 2));

        //data diterima -> cek printah
        if (buffNumRX > 0) {
            //int i;
            //unsigned char *chrPos;

            ////make it null string
            //if (buffRX[buffNumRX] != 0)
                //buffRX[buffNumRX] = 0;
                
            ////default ops state = idle
            //opsState = STATE_IDLE;

			////add new state
            //for (i = 0; i < CMD_COUNTER; i++) {
                //chrPos = strstr(buffRX,cmdList[i]);

                //if ((chrPos != NULL) && ((chrPos - buffRX + 1) == 1)) { //got a match?
                    ////proses state
                    //opsState = i;

                    //break;
                //}
            //}
            
            opsState = CheckCommand(cmdList, buffNumRX, buffRX);
        }
        
        //cek tobmol
        if(gpioOK != -1)
        {
			//printf("%d\r\n", digitalRead(6));
			//SendByte(COM_PORT, digitalRead(6)+0x30);
			//usleep(1e5);
		if(digitalRead(6) == 0)
		{
			usleep(5e5);
			if(digitalRead(6) == 0)
				opsState = STATE_SHUTDOWN_OS;
		}
	}

        //lakukan proses seuai ops state
        if (opsState == STATE_EXIT) {
#if VERBOSE==1
            printf("exiting...\r\n");
            //fflush(stdout);   
#endif            
            break;
        }
        
        //shutdown os
        if (opsState == STATE_SHUTDOWN_OS)
        {
			printf("shutdown...\r\n");
			break;
		}
		
		//restart os
        if (opsState == STATE_RESTART_OS)
        {
			printf("restart...\r\n");
			break;
		}

		//other state
        switch (opsState) {
            case STATE_IDLE: //idle state
                //SendByte(COM_PORT, 's');
                break;

            case STATE_GET_G_DATA: //ambil data g
                //SendByte(COM_PORT, 'g');
                
                GetAndSendAccGyro(i2c_hdl, adxl345_addr, itg3200_addr, idPayload, delayGyrodataSending, &last_posx, buffer_max_num);
                break;

            case STATE_GET_CAM_DATA://ambil data cam
                //SendByte(COM_PORT, 'c');
#if VERBOSE==1
                printf("grab camera start\r\n");
                sec0 = time(NULL);
#endif                                

                GrabAndSendCameraData(camHdl, i2c_hdl, 5, delayPixel, idPayload, &last_posx, buffer_max_num);                
#if VERBOSE==1
                sec1 = time(NULL);
                printf("grab camera finish in %lds\r\n", (sec1 - sec0));
#endif                
				opsState = STATE_IDLE;
				
				//usleep(5e4);
				//ComportFlush(COM_PORT);
				//usleep(1.5e6);
                break;

            case STATE_GET_STATUS: //ambil status payload
                snprintf((char*)buffRX, 16, "s,%.3d,%d,%d\r", idPayload, 990, statusPeripheral);
                //SendBuf(COM_PORT, buffRX, 10);
                //snprintf((char*)buffRX, 16, "s,%.3d,%d\r", idPayload, 990);
                cprintf(COM_PORT, buffRX);
                opsState = STATE_IDLE; //go back to idle
                
                #if VERBOSE==1
                printf("sendstatus reply = %s\r\n", buffRX);
                #endif
                break;
                
            case STATE_REINIT_PERIPHERAL:	//reinit peripheral
				//init cam
				Cam_Init_Start(camHdl, &statusPeripheral);
				
				//init bus i2c
				i2c_hdl = I2C_Init_Bus(i2c_dev, &statusPeripheral);
				
				//init start adxl345
				ADXL345_Init_Start(i2c_hdl, adxl345_addr, &statusPeripheral);
				
				//init itg3200
				ITG3200_Init_Start(i2c_hdl, itg3200_addr, &statusPeripheral);
				
				opsState = STATE_IDLE; //go back to idle
				break;
				
			case STATE_READ_WRITE_CONFIGURATION: //read/write config file
				printf("Opening configuration file %s\r\n", strPathCfg);
				
				//load ini file
				iniDict = iniparser_load(strPathCfg);
				
				//write if neccessary
				if(buffRX[1]==1)	//write setting
				{
					char stmp[10];
					
					//id
					snprintf(stmp,10,"%d", (buffRX[2]<<8)+buffRX[3]);					
					iniparser_set(iniDict,"payload:id",stmp);
					
					//cam delay in ms
					snprintf(stmp,10,"%d", buffRX[4]*1000);					
					iniparser_set(iniDict,"payload:cam_delay",stmp);
					
					//g delay in ms
					snprintf(stmp,10,"%d", buffRX[5]*1000);					
					iniparser_set(iniDict,"payload:g_delay",stmp);
					
					//buffer max
					snprintf(stmp,10,"%d", buffRX[6]);					
					iniparser_set(iniDict,"payload:buffer",stmp);
					
					Save_INI_File(iniDict, strPathCfg);
				}	
				
				//reload ini file
				iniDict = iniparser_load(strPathCfg);
				
				//read cfg value
				if(iniDict)
				{
					idPayload = iniparser_getint(iniDict,"payload:id",100);
					delayPixel = iniparser_getint(iniDict,"payload:cam_delay",120000);
					delayGyrodataSending = iniparser_getint(iniDict,"payload:g_delay",20000);
					buffer_max_num = iniparser_getint(iniDict,"payload:buffer",64);
				}
				
				//send reply always
				snprintf((char*)buffRX, 25, "f,%d,%d,%d,%d\r", idPayload, delayPixel, delayGyrodataSending,buffer_max_num);
                cprintf(COM_PORT, buffRX);
                opsState = STATE_IDLE; //go back to idle
                
                #if VERBOSE==1
                printf("send config reply = %s\r\n", buffRX);
                #endif				
				break;

            default:
                break;
        }
    }

    //release cam
    cvReleaseCapture(&camHdl);

    //release port
    CloseComport(COM_PORT);
    
    //close bus
	closeBus(i2c_hdl);
	
	//free ini handler
	if(iniDict)
		iniparser_freedict(iniDict);
	
	//cek shutdown atau restart
	switch (opsState) 
	{
		case STATE_SHUTDOWN_OS:
			system("sudo shutdown now");
			break;
			
		case STATE_RESTART_OS:
			system("sudo shutdown -r now");
			break;
			
		default:
			break;
	}

    //return
    return (EXIT_SUCCESS);
}
HRESULT RunCommandLoop(_In_ ISpellChecker* spellChecker)
{
    wprintf(L"Commands:\n");
    wprintf(L"quit - Quit\n");
    wprintf(L"add <word> - Add word\n");
    wprintf(L"ac <word> <word> - Add autocorrect pair\n");
    wprintf(L"ign <word> - Ignore word\n");
    wprintf(L"chkb <text> - Check text (batch - pasted text or file open)\n");
    wprintf(L"chk <text> - Check text (as you type)\n");

    HRESULT hr = S_OK;
    while (SUCCEEDED(hr))
    {
        wprintf(L"> ");
        wchar_t line[MAX_PATH];
        hr = StringCchGets(line, ARRAYSIZE(line));
        
        if (SUCCEEDED(hr))
        {
            wchar_t command[MAX_PATH];
            int count = swscanf_s(line, L"%s", command, static_cast<unsigned int>(ARRAYSIZE(command)));
            hr = (count == 1) ? hr : E_FAIL;
            if (SUCCEEDED(hr))
            {
                _Analysis_assume_nullterminated_(command);
                const size_t lineSize = wcslen(line);
                const size_t cmdSize = wcslen(command);
                if (cmdSize == lineSize)
                {
                    if (wcscmp(L"quit", command) == 0)
                    {
                        break;
                    }
                    else
                    {
                        wprintf(L"Invalid command\n");
                    }
                }
                else
                {
                    PCWSTR buffer = line + wcslen(command);

                    if (wcscmp(L"add", command) == 0)
                    {
                        hr = AddCommand(spellChecker, buffer);
                    }
                    else if (wcscmp(L"ac", command) == 0)
                    {
                        hr = AutoCorrectCommand(spellChecker, buffer);
                    }
                    else if (wcscmp(L"ign", command) == 0)
                    {
                        hr = IgnoreCommand(spellChecker, buffer);
                    }
                    else if (wcscmp(L"chkb", command) == 0)
                    {
                        hr = CheckCommand(spellChecker, buffer);
                    }
                    else if (wcscmp(L"chk", command) == 0)
                    {
                        hr = CheckAsYouTypeCommand(spellChecker, buffer);
                    }
                    else
                    {
                        wprintf(L"Invalid command\n");
                    }
                }
            }
        }
    }

    PrintErrorIfFailed(L"RunCommandLoop", hr);
    return hr;
}
示例#29
0
fsal_posixdb_status_t fsal_posixdb_recursiveDelete(fsal_posixdb_conn * p_conn,
                                                   char *handleid_str, char *handlets_str,
                                                   fsal_nodetype_t ftype)
{
  PGresult *p_res;
  fsal_posixdb_status_t st;
  fsal_nodetype_t ftype_tmp;
  unsigned int i;
  unsigned int i_max;
  const char *paramValues[2];

  /* Sanity check */
  if(!p_conn || !handleid_str || !handlets_str)
    {
      ReturnCodeDB(ERR_FSAL_POSIXDB_FAULT, 0);
    }

  if(ftype == FSAL_TYPE_DIR)
    {
      /* We find all the children of the directory in order to delete them, and then we delete the current handle */
      paramValues[0] = handleid_str;
      paramValues[1] = handlets_str;
      p_res = PQexecPrepared(p_conn, "lookupChildrenFU", 2, paramValues, NULL, NULL, 0);
      CheckResult(p_res);
      i_max = (unsigned int)PQntuples(p_res);
      for(i = 0; i < i_max; i++)
        {
          ftype_tmp = (fsal_nodetype_t) atoi(PQgetvalue(p_res, i, 2));
          if(ftype_tmp == FSAL_TYPE_DIR)
            {
              st = fsal_posixdb_recursiveDelete(p_conn, PQgetvalue(p_res, i, 0),
                                                PQgetvalue(p_res, i, 1), ftype_tmp);
            }
          else
            {
              st = fsal_posixdb_deleteParent(p_conn, PQgetvalue(p_res, i, 0),   /* handleidparent */
                                             PQgetvalue(p_res, i, 1),   /* handletsparent */
                                             handleid_str, handlets_str, PQgetvalue(p_res, i, 3),       /* filename */
                                             atoi(PQgetvalue(p_res, i, 4))      /* nlink */
                  );
            }
          if(FSAL_POSIXDB_IS_ERROR(st))
            {
              PQclear(p_res);
              return st;
            }
        }
      PQclear(p_res);
    }

  /* Delete the Handle */
  /* All Parent entries having this handle will be deleted thanks to foreign keys */
  paramValues[0] = handleid_str;
  paramValues[1] = handlets_str;

  /* invalidate name cache */
  fsal_posixdb_InvalidateCache();

  p_res = PQexecPrepared(p_conn, "deleteHandle", 2, paramValues, NULL, NULL, 0);
  CheckCommand(p_res);

  ReturnCodeDB(ERR_FSAL_POSIXDB_NOERR, 0);
}
示例#30
0
void MainLoop()
{
	DemoData.Type=255;
	MouseString=new char[100];
	memset(MouseString,0,100);
	while (!Done)
	{
		if (PeekMessage(&msg,NULL,0,0,PM_REMOVE))
		{
			TranslateMessage(&msg);
			DispatchMessage(&msg); 
		}
		else if (Keys[VK_ESCAPE]) Done=true;
		else
		{
			PlayBackFunction();
			WriteDebug("Main Loop\n\n");
			CurrentCursor=Arrow;
			glClear(0x4100);
			SwitchTo2D();

			ToolTip=LastClickedToolTip;
			memset(ItemNameString,0,256);
			//glFlush();

			glColor4f(1,1,1,1);
			if (CommandLineCommand) ErrorMessage="";
			if (CommandLineCommand && CommandLineEnter)
			{				
				CommandLineCommand=false;
				CommandLineEnter=false;
				CommandLineReading=false;
				CheckCommand();
				CommandLine="";
			}

			MainGUI.CheckGUI();
			for (int x=0; x<256; x++) Keys[x]=false;
			if (MainGUI.ItemList[3].ButtonPushed && ActualWorld) ActualWorld->CalculateParticles();

			glColor4f(highblue);
			rectangle(-1,35,1025,35);
			glColor4f(1,1,1,1);

			PolyCounter=0;
			VertexCounter=0;
			ObjMemCounter=0;
			CallCounter=0;

			/*if (TextureList)
			{
				for (TEXTURE *t=TextureList; t; t=t->Next)
				{
					ObjMemCounter+=sizeof(TEXTURE);
					ObjMemCounter+=4*t->XRes*t->XRes*8;
				}
			}

			if (Scenes)
			{
				for (SCENE *s=Scenes; s; s=s->Next)
				{
					ObjMemCounter+=s->ObjectCapacity*sizeof(OBJECT);
					for (int x=0; x<s->ObjectNum; x++)
					{
						ObjMemCounter+=s->ObjectList[x].VertexCapacity*sizeof(VERTEX);
						for (int y=0; y<s->ObjectList[x].VertexNum; y++) ObjMemCounter+=s->ObjectList[x].VertexList[y].EdgeCapacity*4;
						ObjMemCounter+=s->ObjectList[x].PolygonCapacity*sizeof(POLYGON);
						ObjMemCounter+=s->ObjectList[x].EdgeCapacity*sizeof(EDGE);
					}
				}
			}

			if (Worlds)
			{
				for (WORLD *w=Worlds;w;w=w->Next)
				{
					ObjMemCounter+=w->ObjectCapacity*sizeof(WORLDOBJECT);
					for (int x=0; x<w->ObjectNum; x++)
					if (w->ObjectList[x].EmitterData)
						{
							ObjMemCounter+=sizeof(EMITTERDATA);
							if (w->ObjectList[x].EmitterData->Particles) ObjMemCounter+=(sizeof(PARTICLE))*w->ObjectList[x].EmitterData->MaxParticles;
							if (w->ObjectList[x].EmitterData->Particles && w->ObjectList[x].EmitterData->Tail) ObjMemCounter+=256*sizeof(VECTOR3)*w->ObjectList[x].EmitterData->MaxParticles;
						}
				}
			}*/

			MainGUI.DrawGUI();

			glErrorCheck();
			
			if (!MainGUI.ItemList[3].ActiveBranch && !MainGUI.ItemList[0].ActiveBranch)
			{
				for (WORLD *a=Worlds;a;a=a->Next)
					for (int x=0; x<a->ObjectNum; x++)
						if (a->ObjectList[x].Primitive==aDDict_SPHEREEMITTER ||
							a->ObjectList[x].Primitive==aDDict_CUBEEMITTER ||
							a->ObjectList[x].Primitive==aDDict_CYLINDEREMITTER)
						a->ObjectList[x].EmitterData->LastFrameChecked=timeGetTime();
			}

			glDisable(GL_DEPTH_TEST);
			if (strcmp(ErrorMessage,"") && !ReadLine) glColor4f(1,1,0.3f,1);
			glRasterPos2i(410,21);
			if (!CommandLineReading && !ReadLine)
			{
				if (!strcmp(ErrorMessage,""))
				glPrint(ToolTip,base);
				else
				glPrint(ErrorMessage,base);
			}
			else
			{
				char *Buffer=new char [strlen(CommandLine)+100];
				sprintf(Buffer,"%s_",CommandLine);
				glPrint(Buffer,base);
				delete Buffer;
			}

			if (strlen(MouseString) /*&& !strcmp(MouseString,"")*/)
			{
				glColor4f(0,0,0,1);
				glRasterPos2i(mx+16,my+12);
				glPrint(MouseString,base);
				glColor4f(1,1,1,1);
				glRasterPos2i(mx+15,my+11);
				glPrint(MouseString,base);
			}
			memset(MouseString,0,100);

			glColor4f(0,0,0,1);
			glRasterPos2i(mx+16,my);
			glPrint(ItemNameString,base);
			glColor4f(1,1,1,1);
			glRasterPos2i(mx+15,my-1);
			glPrint(ItemNameString,base);

			glEnable(GL_DEPTH_TEST);

			glColor4f(1,1,1,1);

			SetCursor(CurrentCursor);
			SwapBuffers(hDC);
			if (WaitLeftButton) { WaitLeftButtonRelease(); WaitLeftButton=false; }
			if (WaitMiddleButton) { WaitMiddleButtonRelease(); WaitMiddleButton=false; }
			if (WaitRightButton) { WaitRightButtonRelease(); WaitRightButton=false; }

			if (CommandLineEnter) { CommandLine=""; CommandLineEnter=false; ReadLine=false;}
			if (LeftButton || RightButton || MiddleButton) SetCapture(hWnd); else ReleaseCapture();
			lastwheel=Wheel;
			Wheel=0;

			Sleep(10);
		}

	}
}