CARS
Functions

/home/nicola/Dropbox/Progetto SOL/CARS_terfram/src/match.c File Reference

File che contiene la gestione delle operazioni su stringhe che contengono il path fra 2 citta' indicato come elenco delle citta' separate dal simbolo '$' Esempio: PISA$LUCCA$PISTOIA. More...

#include "match.h"
#include "dgraph.h"

Functions

char * nextCity (char *path)
int countCity (char *path)
char * nextPath (char *path, int n)
int isEqualCity (char *off, char *req)
int cityMatch (char *req, char *off, int *begin)
int pathLen (char *elem, int begin, int city_found)
char * cityString (char *path, int begin, int city_found, int size)
char * cutPath (char *path, int steps)

Detailed Description

File che contiene la gestione delle operazioni su stringhe che contengono il path fra 2 citta' indicato come elenco delle citta' separate dal simbolo '$' Esempio: PISA$LUCCA$PISTOIA.

Author:
Nicola Corti

Si dichiara che il contenuto di questo file e' in ogni sua parte opera originale dell' autore.


Function Documentation

int cityMatch ( char *  req,
char *  off,
int *  begin 
)

Cerca di trovare un match fra il path req ed off Se riesce a trovarlo, ritorna la lunghezza di tale match, e il numero di citta' nel path offer dal quale inizia il match

Parameters:
[in]reqpath che si cerca di associare
[in]offpath su cui si cerca un associazione
[out]beginnumero della citta' da cui partire

Vengono trovati match anche parziali per il path req. Nel caso viene indicato il match piu' lungo possibile.

References isEqualCity(), and nextCity().

Referenced by findRec().

char* cityString ( char *  path,
int  begin,
int  city_found,
int  size 
)

Restituisce una stringa che contiene il percorso effettuato sul path elem, partendo dalla citta' begin facendo city_found passi.

Parameters:
[in]pathil path su cui calcolare il percorso
[in]beginla citta' da cui iniziare
[in]city_foundi passi da fare su tale path
[in]sizedimensione della stringa da allocare
Attention:
La stringa viene allocata (malloc), deve essere poi deallocata dall'utente finale.
Return values:
Ilpuntatore alla stringa allocata

References nextCity().

Referenced by createAssoc().

int countCity ( char *  path)

Restituisce il numero delle citta' del path

Parameters:
[in]pathla stringa contenente il path
Return values:
ilnumero delle citta'

References nextCity().

Referenced by findRec(), and updateOfferList().

char* cutPath ( char *  path,
int  steps 
)

Taglia la stringa dopo aver effettuato steps passi

Parameters:
[in,out]pathil percorso da taglia
[in]stepsil numero di passi da effettuare
Return values:
Ilpuntatore alla seconda parte della stringa tagliata.
Attention:
la stringa path risultera' modificata (precisamente tagliata e puntera' alla prima parte del path tagliato)

Referenced by updateOfferList().

int isEqualCity ( char *  off,
char *  req 
)

Indica se le citta' all'inizio dei 2 path sono le stesso

Parameters:
[in]reqil primo path
[in]offil secondo path
Return values:
0se le citta' sono differenti
unqualsiasi valore diverso da zero negli altri casi.

References FALSE.

Referenced by cityMatch().

char* nextCity ( char *  path)

Restituisce il puntatore alla prossima citta del path

Parameters:
[in]pathstringa contenten il path
Return values:
NULLse il path e' NULL oppure se non vi sono altre citta'
ilpuntatore alla prossima citta'

Referenced by cityMatch(), cityString(), countCity(), nextPath(), and pathLen().

char* nextPath ( char *  path,
int  n 
)

Restituisce il path ottenuto eseguendo n passi lungo path

Parameters:
[in]pathstringa contente il percorso originario
[in]nnumero dei passi da eseguire
Return values:
puntatorealla stringa ottenuta

References nextCity().

Referenced by findRec(), and updateOfferList().

int pathLen ( char *  elem,
int  begin,
int  city_found 
)

Calcola un upper bound per la dimensione del path generato dal match trovato su elem, partendo dalla citta' begin, e facendo city_found step. Tale valore e' necessario per allocare una stringa sufficientemente lunga

Utilizza la funzione isEqualCity

See also:
isEqualCity

L'upper bound e' calcolato utilizzando LLABEL come valore massimo per la dimensione di un'etichetta

Return values:
ilvalore dell'upper bound

References LLABEL, and nextCity().

Referenced by createAssoc().