Page principale | Hiérarchie des classes | Liste alphabétique | Liste des classes | Liste des fichiers | Membres de classe | Membres de fichier | Pages associées

Référence du fichier Surcouche.c

Surcouche pour reseau, multitache, console et temp. Plus de détails...

#include "Surcouche.h"
#include <string.h>

Aller au code source de ce fichier.

Fonctions

int ThreadStart (THREAD *pThread, ROUTINE Process, PARAMETRE Param)
 Demare un thread.
void ThreadStop (THREAD *pThread)
 Stop un thread.
void ThreadExit (int ExitCode)
 Sortie d'un thread.
void ThreadWait (THREAD *pThread)
 Attent un thread.
void MutexInit (MUTEX *pMutex)
 Initialise un mutex.
void MutexLock (MUTEX *pMutex)
 Attent un mutex.
void MutexUnLock (MUTEX *pMutex)
 Libere un mutex.
void MutexStop (MUTEX *pMutex)
 Stop un mutex.
int ModuleLoad (MODULE *pModule, char *pName)
 Charge un module.
int ModuleUnload (MODULE *pModule)
 Decharge un module.
int ModuleImport (MODULE Module, ROUTINE *pFonction, char *pName)
 Importe une fonction.
int SocketLoad (void)
 Configure le reseau.
void SocketUnLoad (void)
 Libere le reseau.
void SocketClose (SOCKET Sock)
 Ferme un socket.
void TempWait (unsigned int Delai)
 Attend un certain delai.
void TempPause ()
 Marque une pause.
void ConsoleClear ()
 Efface la console.
void ConsoleSetColor (unsigned int iColor)
 Change la couleur de la console.
int ConsoleCharWrite (CONSOLE *pConsole, unsigned int iPosX, unsigned int iPosY, char *pData, unsigned int iLength)
 Ecrit dans le buffer des carracteres.
int ConsoleCharRead (CONSOLE *pConsole, unsigned int iPosX, unsigned int iPosY, char *pData, unsigned int iLength)
 Lit dans le buffer des carracteres.
int ConsoleZoneWrite (CONSOLE *pConsole, unsigned int iPosX, unsigned int iPosY, unsigned int iLength, unsigned int iHeight, CHARINFO *pData)
 Ecrit dans le buffer une zone.
int ConsoleZoneRead (CONSOLE *pConsole, unsigned int iPosX, unsigned int iPosY, unsigned int iLength, unsigned int iHeight, CHARINFO *pData)
 Lit dans le buffer une zone.
int KeyGet ()
 Retourne une touche.
int KeyGet2 ()
 Retourne une touche sans valider.
int KeyWait ()
 Attend la frappe d'une touche et la retourne.
int KeyPressed ()
 Permet de savoir si une touche a été presser.
int FileDelete (char *pName)
 Supprime un fichier.
int FileRename (char *pName, char *pNewName)
 Renome un fichier ou repertoire.
DIRECTORY DirOpen (char *pDirName, char *pFirstData, int *pIsFile)
 Ouvre un dossier.
int DirClose (DIRECTORY *pDir)
 Ferme un dossier.
int DirGetNext (DIRECTORY *pDir, char *pNextData, int *pIsFile)
 Récupère une donnée d'un dossier.
int DirCreate (char *pName)
 Crée un repertoire.
int DirDelete (char *pName)
 Supprime un repertoire.


Description détaillée

Redéfinie tout un tas de fonctions système pour les rendre portables unix et windows.

Auteur:
aerith (contact@aerith.biz - www.aerith.biz)
Version:
1.0
Date:
02/10/2006

Définition dans le fichier Surcouche.c.


Documentation des fonctions

int ConsoleCharRead CONSOLE pConsole,
unsigned int  iPosX,
unsigned int  iPosY,
char *  pData,
unsigned int  iLength
 

Lit des carracteres a une position donnée dans la console.

Bogue:
rechercher l'équivalent unix
Paramètres:
pConsole pointeur sur le buffer de console
iPosX colone du premier carractere
iPosY ligne du premier carractere
pData carracteres à ecrire
iLength nombre de carracteres à lire, si NULL la taille de pData sera prise
Renvoie:
1 si OK sinon 0
Voir également:
ConsoleCharColor(), ConsoleCharWrite().

Définition à la ligne 272 du fichier Surcouche.c.

00273 {
00274 #ifdef WIN32
00275     COORD   Pos;
00276 
00277     Pos.X = iPosX;
00278     Pos.Y = iPosY;
00279 
00280     if(!iLength)
00281         iLength = strlen(pData);
00282 
00283     return ReadConsoleOutputCharacter(pConsole, pData, iLength, Pos, (LPDWORD)iLength);
00284 #else
00285     return 0;
00286 #endif
00287 }

int ConsoleCharWrite CONSOLE pConsole,
unsigned int  iPosX,
unsigned int  iPosY,
char *  pData,
unsigned int  iLength
 

Ecrit des carracteres a une position donnée dans la console

Bogue:
rechercher l'équivalent unix
Paramètres:
pConsole pointeur sur le buffer de console
iPosX colone du premier carractere
iPosY ligne du premier carractere
pData carracteres à ecrire
iLength nombre de carracteres à ecrire, si NULL la taille de pData sera prise
Renvoie:
1 si OK sinon 0
Voir également:
ConsoleCharColor(), ConsoleCharRead().

Définition à la ligne 255 du fichier Surcouche.c.

00256 {
00257 #ifdef WIN32
00258     COORD   Pos;
00259 
00260     Pos.X = iPosX;
00261     Pos.Y = iPosY;
00262 
00263     if(!iLength)
00264         iLength = strlen(pData);
00265 
00266     return WriteConsoleOutputCharacter(pConsole, pData, iLength, Pos, (LPDWORD)iLength);
00267 #else
00268     return 0;
00269 #endif
00270 }

void ConsoleClear  ) 
 

Vide le buffer stdout et efface la console.

Définition à la ligne 215 du fichier Surcouche.c.

Référencé par GereEntry(), et GereTable().

00216 {
00217 #ifdef WIN32
00218     system("CLS");
00219 #else
00220     printf("\033[2J");
00221 #endif
00222 }

void ConsoleSetColor unsigned int  iColor  ) 
 

Définie la couleur de police et de fond de la console.

Bogue:
rechercher l'équivalent unix
Paramètres:
iColor couleur de la zone (ex : COLOR_B_BLANC|COLOR_F_BLEU)
Voir également:
COLOR_F_NOIR, COLOR_F_BLEU, COLOR_F_VERT, COLOR_F_BGRIS, COLOR_F_MARRON, COLOR_F_POUPRE, COLOR_F_KAKI, COLOR_F_GCLAIR, COLOR_F_GRIS, COLOR_F_BCLAIR, COLOR_F_VCLAIR, COLOR_F_CYAN, COLOR_F_ROUGE, COLOR_F_ROSE, COLOR_F_JAUNE, COLOR_F_BLANC, COLOR_B_NOIR, COLOR_B_BLEU, COLOR_B_VERT, COLOR_B_BGRIS, COLOR_B_MARRON, COLOR_B_POUPRE, COLOR_B_KAKI, COLOR_B_GCLAIR, COLOR_B_GRIS, COLOR_B_BCLAIR, COLOR_B_VCLAIR, COLOR_B_CYAN, COLOR_B_ROUGE, COLOR_B_ROSE, COLOR_B_JAUNE, COLOR_B_BLANC.

Définition à la ligne 224 du fichier Surcouche.c.

00225 {
00226 #ifdef WIN32
00227     char    Buffer[12];
00228 
00229     sprintf(Buffer, "COLOR %X", iColor);
00230     system(Buffer);
00231 #else
00232 
00233 #endif
00234 }

int ConsoleZoneRead CONSOLE pConsole,
unsigned int  iPosX,
unsigned int  iPosY,
unsigned int  iLength,
unsigned int  iHeight,
CHARINFO pData
 

Lit dans une zone à une position donnée dans la console

Bogue:
rechercher l'équivalent unix
Paramètres:
pConsole pointeur sur le buffer de console
iPosX colone du premier carractere
iPosY ligne du premier carractere
iLength largeur de la zone
iHeight hauteur de la zone
pData information sur les carracteres à lire
Renvoie:
1 si OK sinon 0
Voir également:
ConsoleCharColor(), ConsoleCharRead() et ConsoleZoneWrite().

Définition à la ligne 311 du fichier Surcouche.c.

00312 {
00313 #ifdef WIN32
00314     COORD       Pos;
00315     COORD       Size;
00316     SMALL_RECT  Zone;
00317 
00318     Pos.X       = iPosX;
00319     Pos.Y       = iPosY;
00320     Size.X      = iLength - iPosX;
00321     Size.Y      = iHeight - iPosY;
00322     Zone.Left   = Pos.X;
00323     Zone.Top    = Pos.Y;
00324     Zone.Right  = Size.X;
00325     Zone.Bottom = Size.Y;
00326 
00327     return ReadConsoleOutput(pConsole, pData, Size, Pos, &Zone);
00328 #else
00329     return 0;
00330 #endif
00331 }

int ConsoleZoneWrite CONSOLE pConsole,
unsigned int  iPosX,
unsigned int  iPosY,
unsigned int  iLength,
unsigned int  iHeight,
CHARINFO pData
 

Ecrit dans une zone à une position donnée dans la console

Bogue:
rechercher l'équivalent unix
Paramètres:
pConsole pointeur sur le buffer de console
iPosX colone du premier carractere
iPosY ligne du premier carractere
iLength largeur de la zone
iHeight hauteur de la zone
pData information sur les carracteres à ecrire
Renvoie:
1 si OK sinon 0
Voir également:
ConsoleCharColor(), ConsoleCharRead() et ConsoleZoneRead().

Définition à la ligne 289 du fichier Surcouche.c.

00290 {
00291 #ifdef WIN32
00292     COORD       Pos;
00293     COORD       Size;
00294     SMALL_RECT  Zone;
00295 
00296     Pos.X       = iPosX;
00297     Pos.Y       = iPosY;
00298     Size.X      = iLength - iPosX;
00299     Size.Y      = iHeight - iPosY;
00300     Zone.Left   = Pos.X;
00301     Zone.Top    = Pos.Y;
00302     Zone.Right  = Size.X;
00303     Zone.Bottom = Size.Y;
00304 
00305     return WriteConsoleOutput(pConsole, pData, Size, Pos, &Zone);
00306 #else
00307     return 0;
00308 #endif
00309 }

int DirClose DIRECTORY *  pDir  ) 
 

Ferme un dossier explorer.

Paramètres:
pDir pointeur sur dossier
Renvoie:
0 si reussi, sinon 1.
Voir également:
DirOpen(), DirGetNext(), DirCreate() et DirDelete()

Définition à la ligne 446 du fichier Surcouche.c.

00447 {
00448 #ifdef WIN32
00449     if(FindClose(pDir))
00450         return 0;
00451 #else
00452     if(!closedir(*pDir))
00453         return 0;
00454 #endif
00455 
00456     return 1;
00457 }

int DirCreate char *  pName  ) 
 

Crée un repertoire via l'os.

Paramètres:
pName nom du repertoire (relatif ou absolu)
Renvoie:
0 si reussi, sinon 1.
Voir également:
DirOpen(), DirClose(), DirGetNext() et DirDelete()

Définition à la ligne 500 du fichier Surcouche.c.

00501 {
00502 #ifdef WIN32
00503     if(CreateDirectory(pName, NULL))
00504         return 0;
00505 #else
00506     mode_t  modes;
00507 
00508     modes = S_IRWXU | S_IXGRP | S_IXOTH;
00509     if(!mkdir(pName, modes))
00510         return 0;
00511 #endif
00512 
00513     return 1;
00514 }

int DirDelete char *  pName  ) 
 

Supprime un repertoire vide via l'os.

Paramètres:
pName nom du repertoire (relatif ou absolu)
Renvoie:
0 si reussi, sinon 1.
Voir également:
DirOpen(), DirClose(), DirGetNext() et DirCreate()

Définition à la ligne 516 du fichier Surcouche.c.

00517 {
00518 #ifdef WIN32
00519     if(RemoveDirectory(pName))
00520         return 0;
00521 #else
00522     if(!rmdir(pName))
00523         return 0;
00524 #endif
00525 
00526     return 1;
00527 }

int DirGetNext DIRECTORY *  pDir,
char *  pNextData,
int *  pIsFile
 

Récupère la donnée suivante d'un dossier.

Paramètres:
pDir pointeur sur dossier
pNextData nom de la donnée suivante du repertoire
pIsFile seras mi à 1 si pNextData est un fichier, sinon 0
Renvoie:
0 si reussi, sinon 1.
Voir également:
DirOpen(), DirClose(), DirCreate() et DirDelete()

Définition à la ligne 459 du fichier Surcouche.c.

00460 {
00461 #ifdef WIN32
00462     WIN32_FIND_DATA Find;
00463 #else
00464     struct dirent   *Find;
00465     struct stat     Stat;
00466 #endif
00467 
00468     *pNextData = '\0';
00469     *pIsFile = 1;
00470 
00471 #ifdef WIN32
00472     if(FindNextFile(pDir, &Find))
00473     {
00474         if(Find.cFileName)
00475             strcpy(pNextData, Find.cFileName);
00476 
00477         if(Find.dwFileAttributes)
00478             if(Find.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
00479                 *pIsFile = 0;
00480         return 0;
00481     }
00482 #else
00483     if(Find = readdir(*pDir))
00484     {
00485         Find = readdir(*pDir);
00486         if(Find->d_name)
00487             strcpy(pNextData, Find->d_name);
00488 
00489         lstat(pNextData, &Stat);
00490         if(S_ISDIR(Stat.st_mode))
00491             *pIsFile = 0;
00492 
00493         return 0;
00494     }
00495 #endif
00496 
00497     return 1;
00498 }

DIRECTORY DirOpen char *  pDirName,
char *  pFirstData,
int *  pIsFile
 

Ouvre un dossier pour l'explorer et recupère la première donnée.

Paramètres:
pDirName nom du dossier
pFirstData nom de la première donnée du repertoire
pIsFile seras mi à 1 si pFirstData est un fichier, sinon 0
Renvoie:
0 si reussi, sinon 1.
Voir également:
DirClose(), DirGetNext(), DirCreate() et DirDelete()

Définition à la ligne 399 du fichier Surcouche.c.

00400 {
00401     char        *DirName;
00402     DIRECTORY   Dir;
00403 #ifdef WIN32
00404     WIN32_FIND_DATA Find;
00405 #else
00406     struct dirent   *Find;
00407     struct stat     Stat;
00408 #endif
00409 
00410     DirName = (char *)malloc(sizeof(char) * (strlen(pDirName) + 3));
00411     strcpy(DirName, pDirName);
00412     strcat(DirName, "\\");
00413     strcat(DirName, "*");
00414     *pFirstData = '\0';
00415     *pIsFile = 1;
00416 
00417 #ifdef WIN32
00418     if(Dir = FindFirstFile(DirName, &Find))
00419     {
00420         if(Find.cFileName)
00421             strcpy(pFirstData, Find.cFileName);
00422 
00423         if(Find.dwFileAttributes)
00424             if(Find.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
00425                 *pIsFile = 0;
00426     }
00427 #else
00428     Dir = opendir(DirName);
00429     if(Dir)
00430     {
00431         Find = readdir(Dir);
00432         if(Find->d_name)
00433             strcpy(pFirstData, Find->d_name);
00434 
00435         lstat(DirName, &Stat);
00436         if(S_ISDIR(Stat.st_mode))
00437             *pIsFile = 0;
00438     }
00439 #endif
00440 
00441     free(DirName);
00442 
00443     return Dir;
00444 }

int FileDelete char *  pName  ) 
 

Supprime un fichier via l'os.

Bogue:
rechercher l'équivalent unix
Paramètres:
pName nom du fichier (relatif ou absolu)
Renvoie:
0 si reussi, sinon 1.
Voir également:
FileRename()

Définition à la ligne 372 du fichier Surcouche.c.

Référencé par DataBase::SaveBase().

00373 {
00374 #ifdef WIN32
00375     if(DeleteFile(pName))
00376         return 0;
00377 #else
00378     if(!remove(pName))
00379         return 0;
00380 #endif
00381 
00382     return 1;
00383 }

int FileRename char *  pName,
char *  pNewName
 

Renome un fichier ou repertoire via l'os, permet aussi de le déplacé.

Paramètres:
pName nom du fichier ou repertoire (relatif ou absolu)
pNewName nouveau nom du fichier ou repertoire
Renvoie:
0 si reussi, sinon 1.
Voir également:
FileDelete()

Définition à la ligne 385 du fichier Surcouche.c.

00386 {
00387 #ifdef WIN32
00388     if(MoveFile(pName, pNewName))
00389         return 0;
00390 #else
00391     if(!rename(pName, pNewName))
00392         return 0;
00393 #endif
00394 
00395     return 1;
00396 }

int KeyGet  ) 
 

Retourne la plus vielle touche du buffer stdin.

Renvoie:
code ascii de la touche
Voir également:
KeyGet2(), KeyWait() et KeyPressed()

Définition à la ligne 334 du fichier Surcouche.c.

Référencé par GereEntry(), et GereTable().

00335 {
00336     fflush(stdin);
00337 
00338     return getchar();
00339 }

int KeyGet2  ) 
 

Retourne la plus vielle touche du buffer stdin sans devoir presser 'entrée'.

Bogue:
rechercher l'équivalent unix
Renvoie:
code ascii de la touche
Voir également:
KeyGet(), KeyWait() et KeyPressed()

Définition à la ligne 341 du fichier Surcouche.c.

00342 {
00343 #ifdef WIN32
00344     return _getch();
00345 #else
00346     return 0;
00347 #endif
00348 }

int KeyPressed  ) 
 

Permet de savoir si une touche a été presser.

Bogue:
rechercher l'équivalent unix
Renvoie:
0 si non presser sinon > 1
Voir également:
KeyGet(), KeyGet2() et KeyWait()

Définition à la ligne 361 du fichier Surcouche.c.

00362 {
00363 #ifdef WIN32
00364     return _kbhit();
00365 #else
00366     return 0;
00367 #endif
00368 }

int KeyWait  ) 
 

Pause la tache en attente de la frappe d'une touche et retourne son code.

Bogue:
rechercher l'équivalent unix
Renvoie:
0 code ascii de la touche
Voir également:
KeyGet(), KeyGet2() et KeyPressed()

Définition à la ligne 350 du fichier Surcouche.c.

00351 {
00352 #ifdef WIN32
00353     while(!_kbhit());
00354 
00355     return _getch();
00356 #else
00357     return 0;
00358 #endif
00359 }

int ModuleImport MODULE  Module,
ROUTINE pFonction,
char *  pName
 

Importe une fonction depuis un module dynamique.

Paramètres:
Module pointeur sur module.
pFonction adresse mémoir de la fonction importé.
pName nom de la fonction à importer.
Renvoie:
1 si OK sinon 0
Voir également:
ModuleLoad() et ModuleUnLoad()

Définition à la ligne 141 du fichier Surcouche.c.

Référencé par ModuleModule::AddFonction(), ModuleModule::Load(), et ModuleModule::UnLoad().

00142 {
00143     *pFonction = NULL;
00144 
00145 #ifdef WIN32
00146     *pFonction = (ROUTINE)GetProcAddress(Module, pName);
00147 #else
00148     *pFonction = (ROUTINE)dlsym(Module, pName);
00149 #endif
00150 
00151     if(*pFonction)
00152         return 1;
00153 
00154     return 0;
00155 }

int ModuleLoad MODULE pModule,
char *  pName
 

Charge un module dynamique.

Paramètres:
pModule adresse mémoire du module chargé.
pName fichier du module à charger.
Renvoie:
1 si OK sinon 0
Voir également:
ModuleUnLoad() et ModuleImport()

Définition à la ligne 110 du fichier Surcouche.c.

Référencé par ModuleModule::Load().

00111 {
00112     *pModule = NULL;
00113 #ifdef WIN32
00114     *pModule = (MODULE)LoadLibrary(pName);
00115 #else
00116     *pModule = (MODULE)dlopen(pName, RTLD_NOW);
00117 #endif
00118 
00119     if(*pModule)
00120         return 1;
00121 
00122     return 0;
00123 }

int ModuleUnload MODULE pModule  ) 
 

Decharge un module dynamique.

Paramètres:
pModule pointeur sur le module à decharger.
Renvoie:
Voir également:
ModuleLoad() et ModuleImport()

Définition à la ligne 125 du fichier Surcouche.c.

Références MODULE.

Référencé par ModuleModule::UnLoad().

00126 {
00127     int     r = 1;
00128 #ifdef WIN32
00129     if(FreeLibrary((MODULE)*pModule))
00130         r = 0;
00131 #else
00132     if(!dlclose((MODULE)*pModule))
00133         r = 0;
00134 #endif
00135 
00136     *pModule = NULL;
00137 
00138     return r;
00139 }

void MutexInit MUTEX pMutex  ) 
 

Initialise un verou de syncronisation de tache

Paramètres:
pMutex adresse memoire du mutex
Voir également:
MutexLock(), MutexUnLock() et MutexStop()

Définition à la ligne 67 du fichier Surcouche.c.

Références MUTEX.

Référencé par DataBase::DataBase(), DataBaseTable::DataBaseTable(), Ini::Ini(), Module::Module(), MutexLock(), et XML::XML().

00068 {
00069 #ifdef WIN32
00070     *pMutex = (MUTEX)CreateMutex(NULL, FALSE, NULL);
00071 #else
00072     pthread_mutex_init((MUTEX *)pMutex, NULL);
00073 #endif
00074 }

void MutexLock MUTEX pMutex  ) 
 

Pause la tache en cour en attente du déverouillage du mutex et va le verouillé.

Paramètres:
pMutex adresse memoire du mutex
Voir également:
MutexInit(), MutexUnLock() et MutexStop()

Définition à la ligne 76 du fichier Surcouche.c.

Références MUTEX, et MutexInit().

Référencé par XML::Load(), Module::LoadModules(), XML::Print(), RequestServerData(), Ini::Save(), XML::Save(), DataBase::SaveBase(), DataBaseTable::SaveEntrys(), et Module::UnLoadModules().

00077 {
00078     if(!pMutex)
00079         MutexInit(pMutex);
00080 
00081 #ifdef WIN32
00082     WaitForSingleObject((MUTEX)pMutex, INFINITE);
00083 #else
00084     pthread_mutex_lock((MUTEX *)pMutex);
00085 #endif
00086 }

void MutexStop MUTEX pMutex  ) 
 

Déverouille et détrui un mutex.

Paramètres:
pMutex adresse memoire du mutex
Voir également:
MutexInit(), MutexLock() et MutexUnLock()

Définition à la ligne 97 du fichier Surcouche.c.

Références MUTEX.

Référencé par DataBase::~DataBase(), DataBaseTable::~DataBaseTable(), Ini::~Ini(), Module::~Module(), et XML::~XML().

00098 {
00099 #ifdef WIN32
00100     ReleaseMutex((MUTEX)pMutex);
00101     CloseHandle((MUTEX)pMutex);
00102     *pMutex = NULL;
00103 #else
00104     pthread_mutex_destroy((MUTEX *)pMutex);
00105     pMutex = NULL;
00106 #endif
00107 }

void MutexUnLock MUTEX pMutex  ) 
 

Déverouille le mutex préalablement réservé.

Paramètres:
pMutex adresse memoire du mutex
Voir également:
MutexInit(), MutexLock() et ThreadExit()

Définition à la ligne 88 du fichier Surcouche.c.

Références MUTEX.

Référencé par XML::Load(), Module::LoadModules(), XML::Print(), RequestServerData(), Ini::Save(), XML::Save(), DataBase::SaveBase(), DataBaseTable::SaveEntrys(), et Module::UnLoadModules().

00089 {
00090 #ifdef WIN32
00091     ReleaseMutex((MUTEX)pMutex);
00092 #else
00093     pthread_mutex_unlock((MUTEX *)pMutex);
00094 #endif
00095 }

void SocketClose SOCKET  Sock  ) 
 

Relache un socket proprement.

Paramètres:
Sock le socket à fermé
Voir également:
SocketLoad() et SocketUnLoad()

Définition à la ligne 184 du fichier Surcouche.c.

Référencé par NetConnect::Close(), NetServer::KillClientNo(), NetClient::Stop(), et NetServer::Stop().

00185 {
00186 #ifdef WIN32
00187     closesocket(Sock);
00188 #else
00189     close(Sock);
00190 #endif
00191     Sock = 0;
00192 }

int SocketLoad void   ) 
 

Configure l'os pour l'utilisation de socket.

Renvoie:
1 si OK sinon 0
Voir également:
SocketUnLoad() et SocketClose()

Définition à la ligne 159 du fichier Surcouche.c.

Référencé par NetServer::Start(), et NetClient::Start().

00160 {
00161 #ifdef WIN32
00162     WORD        wVersionRequested = MAKEWORD(1, 1);
00163     WSADATA     wsaData;
00164 
00165     if(WSAStartup(wVersionRequested, &wsaData))
00166     {
00167         WSACleanup();
00168         return 1;
00169     }
00170 #else
00171     signal(SIGPIPE, SIG_IGN);
00172 #endif
00173 
00174     return 0;
00175 }

void SocketUnLoad void   ) 
 

Relache la gestion du reseau.

Voir également:
SocketLoad() et SocketClose()

Définition à la ligne 177 du fichier Surcouche.c.

Référencé par NetServer::Stop(), et NetClient::Stop().

00178 {
00179 #ifdef WIN32
00180     WSACleanup();
00181 #endif
00182 }

void TempPause  ) 
 

Pause la tache en attente de la frappe d'une touche.

Bogue:
rechercher l'équivalent unix

Définition à la ligne 205 du fichier Surcouche.c.

00206 {
00207 #ifdef WIN32
00208     system("PAUSE");
00209 #else
00210 
00211 #endif
00212 }

void TempWait unsigned int  Delai  ) 
 

Fait rentrée la tache en cour d'éxécution en attente pendant Delai ms.

Paramètres:
Delai nombre de milliseconde a attendre

Définition à la ligne 196 du fichier Surcouche.c.

Référencé par NetClient::Start().

00197 {
00198 #ifdef WIN32
00199     Sleep(Delai);
00200 #else
00201     usleep(Delai * 1000);
00202 #endif
00203 }

void ThreadExit int  iExitCode  ) 
 

Sortie propre d'une tache et renvoie iExitCode au systeme.

Paramètres:
iExitCode code retourner au systeme
Voir également:
ThreadStart(), ThreadStop() et ThreadWait()

Définition à la ligne 47 du fichier Surcouche.c.

Référencé par ThreadGestionClient(), et NetServer::WaitClient().

00048 {
00049 #ifdef WIN32
00050     ExitThread(ExitCode);
00051 #else
00052     pthread_exit((void *)&ExitCode);
00053 #endif
00054 }

int ThreadStart THREAD pThread,
ROUTINE  Process,
PARAMETRE  Param
 

Demare une tache Process avec un parametre Param.

Paramètres:
pThread adresse memoire du thread
Process nom de la routine à threader
Param parametre a passer à la routine
Renvoie:
1 si OK sinon 0
Voir également:
ThreadStop(), ThreadExit() et ThreadWait()

Définition à la ligne 15 du fichier Surcouche.c.

Références PARAMETRE, ROUTINE, et THREAD.

Référencé par NetServer::Start(), et NetServer::WaitClient().

00016 {
00017 #ifdef WIN32
00018     *pThread = (THREAD)CreateThread(NULL, 0, (ROUTINE)Process, (PARAMETRE)Param, 0, NULL);
00019     if(pThread == INVALID_HANDLE_VALUE)
00020         return 1;
00021 #else
00022     pthread_attr_t Type;
00023 
00024     if(pthread_attr_init(&Type))
00025         return(1);
00026 
00027     pthread_attr_setdetachstate(&Type, PTHREAD_CREATE_JOINABLE);
00028 
00029     if(pthread_create((THREAD *)pThread, &Type, (ROUTINE)Process, (PARAMETRE)Param))
00030         return 1;
00031 #endif
00032 
00033     return 0;
00034 }

void ThreadStop THREAD pThread  ) 
 

Force la fermeture d'une tache.

Paramètres:
pThread adresse memoire du thread
Voir également:
ThreadStart(), ThreadExit() et ThreadWait()

Définition à la ligne 36 du fichier Surcouche.c.

Références THREAD.

00037 {
00038 #ifdef WIN32
00039     TerminateThread((THREAD)pThread, FALSE);
00040     CloseHandle((THREAD)pThread);
00041 #else
00042     pthread_cancel((THREAD)pThread);
00043 #endif
00044     *pThread = 0;
00045 }

void ThreadWait THREAD pThread  ) 
 

Pause la tache en cour en attente de la fin de la tache donnée.

Paramètres:
pThread adresse memoire du thread
Voir également:
ThreadStart(), ThreadStop() et ThreadExit()

Définition à la ligne 56 du fichier Surcouche.c.

Références THREAD.

00057 {
00058 #ifdef WIN32
00059     WaitForSingleObject((THREAD)pThread, INFINITE);
00060     CloseHandle((THREAD)pThread);
00061 #else
00062     pthread_join((THREAD)pThread, NULL);
00063 #endif
00064     *pThread = 0;
00065 }


Généré le Thu Oct 12 01:00:44 2006 pour GestionAsso par  doxygen 1.3.9.1