public void Save(ProgrammazioneGiornaliera elem, BinaryWriter bw) { // Programmazione Giornaliera bw.Write(elem.GetType().ToString()); bw.Write(elem.Nome); // Modello di riferimento Modello modello = Documento.getInstance().ModelloRiferimento; bw.Write(modello.Size.Width); bw.Write(modello.Size.Height); // Sequenze SequenzaPersister persister = new SequenzaPersister(); FasciaOraria fo; Sequenza sq; bw.Write(elem.Count() - elem.nDummy()); for (int i = 0; i < elem.Count(); i++) { sq = elem[i]; if (sq == ProgrammazioneGiornaliera.SEQUENZA_DUMMY) { continue; } persister.Save(sq, bw); fo = elem.GetFasciaOrariaOf(sq); bw.Write(fo.StartQuarter); bw.Write(fo.EndQuarter); } }
static PersisterFactory() { _persisters = new IPersister[Enum.GetNames(typeof(PersisterTypes)).Length]; _persisters[INFO_TESTO] = new InformazioneTestualePersister(); _persisters[INFO_DATA_ORA] = new InformazioneDataOraPersister(); _persisters[IMMAGINE_FISSA] = new ImmagineFissaPersister(); _persisters[ANIMAZIONE] = new AnimazionePersister(); _persisters[SEQUENZA] = new SequenzaPersister(); _persisters[PROGRAMMAZIONE_GIORNALIERA] = new ProgrammazioneGiornalieraPersister(); _persisters[PROGRAMMAZIONE_SETTIMANALE] = new ProgrammazioneSettimanalePersister(); }
public ProgrammazioneGiornaliera Retrieve(BinaryReader br) { // Programmazione Giornaliera string nome = br.ReadString(); ProgrammazioneGiornaliera result = new ProgrammazioneGiornaliera(); result.Nome = nome; // Modello Modello modello = Documento.getInstance().ModelloRiferimento; int width = br.ReadInt32(); int height = br.ReadInt32(); if (width != modello.Size.Width || height != modello.Size.Height) { return(null); } // Sequenze SequenzaPersister persister = new SequenzaPersister(); Sequenza seq; FasciaOraria fo; string type; uint startQuarter, endQuarter; int count = br.ReadInt32(); for (int i = 0; i < count; i++) { type = br.ReadString(); seq = persister.Retrieve(br); startQuarter = br.ReadUInt32(); endQuarter = br.ReadUInt32(); fo = new FasciaOraria(startQuarter, endQuarter); result.InserisciSequenza(seq, fo); } // Out return(result); }