C# Class Tag.LightTag

Classe rappresentante una versione alleggerita del Tag completo. La rappresentazione dei dati viene effettuata su un array di 128 byte e le stringhe vengono codificate in ASCII. Questa versione alleggerita serve come chiave primaria negli scambi protocollari di Kademlia. Il tag leggero contiene informazioni sul titolo, l'artista e l'album ed è finalizzta al calcolo dell'affinità semantica ad una ricerca.

La struttura del Tag è composta da un header di 3 byte, ognuno dei quali contenente la lunghezza del campo associato, e da un body di 125 byte che memorizza il contenuto; l'ordine in cui i campi vengono rappresentati è [titolo, artista, album] ossia vanno dal più importante (il titolo) al meno importante (l'album) durante la ricerca. Per memorizzare i dati del Tag Completo si usa la funzione Persistence.Tag.LightTag.SetTagData che utilizza opportune regole per il troncamento dei campi inseriti. Per dare precedenza al titolo si assicura il massimo spazio possibile a tale campo; agli altri due campi vengono riservati al massimo 20 + 10 = 30 byte (se risultano più piccoli gli verrà riservato meno spazio). Se il titolo è più lungo dei caratteri disponibile verrà troncato. Il campo artista viene immagazzinato utilizzando tutto lo spazio disponibile tranne i 10 byte riservati all'album. Se non è possibile contenere tutta la stringa nei byte disponibili viene eseguito un troncamento. Infine l'album occuperà ciò che rimane dell'array di byte.

Afficher le fichier Open project: zencoders/sambatyon

Méthodes publiques

Méthode Description
LightTag ( )

Costruttore di default del Tag che alloca il vettore di byte e inizializza ESPLICITAMENTE i dati a 0.

LightTag ( CompleteTag tag )

Costruttore che permette di estrarre un Tag alleggerito da un tag completo.

LightTag ( byte data )

Costruttore del Tag che permette di copiare i dati, contenuti nel byte array passato, nel buffer del tag.

SetTagData ( string title, string artist, string album ) : int[]

Metodo utilizzato per impostare i campi all'interno del Tag. Questo metodo si occupa di troncare i campi troppo lunghi. La descrizione dettaglia è contenuta nella descrizione della classe Persistence.Tag.LightTag

ToString ( ) : string

String representation of the tag

Method Details

LightTag() public méthode

Costruttore di default del Tag che alloca il vettore di byte e inizializza ESPLICITAMENTE i dati a 0.
public LightTag ( )

LightTag() public méthode

Costruttore che permette di estrarre un Tag alleggerito da un tag completo.
public LightTag ( CompleteTag tag )
tag CompleteTag Tag Completo da cui estrarre i dati

LightTag() public méthode

Costruttore del Tag che permette di copiare i dati, contenuti nel byte array passato, nel buffer del tag.
public LightTag ( byte data )
data byte Vettore di byte da cui copiare i dati.

SetTagData() public méthode

Metodo utilizzato per impostare i campi all'interno del Tag. Questo metodo si occupa di troncare i campi troppo lunghi. La descrizione dettaglia è contenuta nella descrizione della classe Persistence.Tag.LightTag
public SetTagData ( string title, string artist, string album ) : int[]
title string Il campo titolo da impostare
artist string Il campo artista da impostare
album string Il campo album da impostare
Résultat int[]

ToString() public méthode

String representation of the tag
public ToString ( ) : string
Résultat string