Skip to content

fredrik-nti-johanneberg/google_drive_sync

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 

Repository files navigation

Programmering 2 - Google Drive Sync

Instruktioner för prog2-projektet Google Drive Sync (läsår 19/20). I detta dokument återfinns instruktioner och tips för hur du implementerar olika klasser som kommer ingå i applikationen. Informationen kommer uppdateras löpande under projektets gång.

Designmönster Model-View-Controller

Ett designmönster (design pattern) är ett standardrecept som kan användas för att lösa olika programmeringsproblem. Vi kommer att bygga vår applikation enligt designmönstret MVC, vilket innebär att vi delar in programmets funktionalitet/klasser i tre övergripande kategorier:

  • Model - klasser som hanterar all data som applikationen behöver hantera (även konfiguration)
  • View - klass eller klasser som hanterar användargränssnitt, GUI
  • Controller - i regel en klass som fungerar som ett gränssnitt mellan model och view

MVC

Läs på mer om MVC här: https://www.guru99.com/mvc-tutorial.html

Klassdiagram (utkast)

class_diagram

Klassen FileObserver

FileObserver har som uppgift att bevaka en vald mapp (och dess underliggande mappar) efter förändringar i filsystemet. Klassen initieras med argumentet target_directory som är absolut sökväg till bevakad mapp. Ändringar i filer verifieras via filens modified time (File::mtime). @file_inventory är en förteckning över bevakade filer. Den innehåller nyckel-värde-par där nyckeln är absolut sökväg till filen och värdet är filens mtime. Klassen tillhandahåller tre olika listor (datatyp Array) @changed_files, @new_files, @deleted_files som håller ändrade, nya, respektive borttagna filer. Dessa tre listor är tillgängliga via tre olika getter-metoder. Metoden FileObserver#update_file_inventory anropas för att uppdatera @file_inventory och dom tre listorna där ändringar kan spåras.

file_observer_update_file_inventory

Klassen FileObserverPersistence

Persistens betyder varaktighet eller beständighet. Klassen FileObserverPersistence har som uppgift att "komma ihåg" tillståndet för ett FileObserver-objekt när applikationen avslutas (eller kanske kraschar). Det är också via denna klass som vi kan återkalla det senast sparade tillståndet för ett FileObserver-objekt när applikationen startar. Klassen har två klassmetoder (dvs metoder som kan anropas utan att klassen först måste instansieras): FileObserverPersistence::save och FileObserverPersistence::load.

About

Instruktioner för prog2-projektet Google Drive Sync (19/20)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published