Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
Codificatore - cdf.h

cdf.h

Caricato da: AldoBaldo
Scarica il programma completo

  1. #ifndef CDF_H
  2. #define CDF_H
  3.  
  4. #include <stdlib.h>
  5. #include <stdio.h>
  6. #include <string.h>
  7.  
  8.  
  9. const char kCDFEstensioneFileCodificato[] = "cdf";
  10. const char kCDFEstensioneFileInChiaro[]   = "txt";
  11. enum { kCDFNoDati, kCDFInChiaro, kCDFCodificati };
  12.  
  13.  
  14. class CDF {
  15.  
  16.     public:
  17.         CDF();
  18.         CDF(const CDF& daCopiare);
  19.         virtual ~CDF();
  20.  
  21.         CDF& operator=(const CDF& daAssegnare);
  22.  
  23.         void imposta_chiave( // throw( const char* );
  24.             const char *sChiave, unsigned long l = 0xFFFFFFFF );
  25.         const char *ricava_chiave( void );
  26.         unsigned long lunghezza_chiave( void ) { return lChiave; }
  27.         bool chiave_presente( void ) { return chiave != NULL; }
  28.         bool chiave_valida( void ) { return nCarMancanti==0 && chiave!=NULL; }
  29.  
  30.         void imposta_dati( // throw( const char* )
  31.             int tipoDati, const char *sDati, unsigned long l = 0xFFFFFFFF );
  32.         const char *ricava_dati( void );
  33.         unsigned long lunghezza_dati( void ) { return lDati; }
  34.         bool dati_presenti( void ) { return dati != NULL; }
  35.         bool dati_validi( void ) { return dati != NULL; }
  36.  
  37.         void elabora( void ); // throw( const char* )
  38.  
  39.         void salva_dati( const char *percorso_file ); // throw( const char* )
  40.  
  41.         int tipologia_dati( void ) { return tDati; }
  42.  
  43.         unsigned char carattere_mancante( unsigned int indice )
  44.             { return indice<nCarMancanti ? carMancanti[indice] : '\0'; }
  45.         unsigned int totale_caratteri_mancanti( void ) { return nCarMancanti; }
  46.  
  47.     protected:
  48.  
  49.     private:
  50.         char *chiave;               // la stringa della chiave
  51.         unsigned long lChiave;      // la quantita di caratteri nella chiave
  52.  
  53.         char *dati;                 // la stringa dei dati
  54.         unsigned long lDati;        // la quantita di caratteri nei dati
  55.  
  56.         int tDati;                  // kNoDati, kDaCodificare, kDaDecodificare
  57.  
  58.         unsigned char carMancanti[256]; // lista dei car. mancanti nella chiave
  59.         unsigned int nCarMancanti;      // la quantita dei caratteri mancanti
  60.  
  61.         void InizializzaNullo( void );
  62.         bool Copia( const CDF *originale );
  63.         void InizializzaCaratteriMancanti( void );
  64.         void ImpostaTipoDati( int tipoDati );
  65.         bool VerificaChiave( void );
  66.         void Codifica( void ); // throw( const char* )
  67.         void Decodifica( void ); // throw( const char* )
  68.         bool RinnovaDati( char *nuoviDati, unsigned long l );
  69. };
  70.  
  71. #endif // CDF_H