2019-03-22T18:11:56.768840842
2019-05-02T12:52:05.469441297
PT5H35M39S
79
LibreOffice/5.1.6.2$Linux_X86_64 LibreOffice_project/10m0$Build-2

# Grobdesign

1.1.0
236855
0
41383
21301
true
false
view2
23040
250963
0
236855
41381
258154
0
1
false
100
false
false
true
true
true
0
true
true
false
false
false
false
false
true
false
false
false
false
false
false
true
true
false
false
true
true
false
false
false
false
true
false
false
false
false
false
false
true
4407068
false
false
true
false
true
true
false
true
0
false
true
high-resolution
false
false
false
false
true
true
true
false
false
true
false
false
false
true
false
192011
false
1
true
false
false
0
false
false
false
AAEAAAAQAQAABAAARkZUTWkDcA0AAyoMAAAAHEdERUYE8wkPAAMptAAAAFZPUy8yUL7s9wAA [encoded data, 303281 characters] AAAAAQAAAAEAAAAAAAAAAQAAAADURmmjAAAAAMBkEbcAAAAA1Fj0sg==
AAEAAAARAQAABAAQR0RFRoPydSYABzQoAAAFEEdQT1OnXngWAAc5OAABIJ5HU1VCNVXTdgAI [encoded data, 812199 characters] AAAAAQAIAAEABgxyAAEAAQATAAEAAAABAAgAAQAGC1AAAQABAUEAAA==
AAEAAAARAQAABAAQR0RFRoPydSYAB4EMAAAFEEdQT1OGQmKLAAeGHAABH0hHU1VCNVXTdgAI [encoded data, 840552 characters]
AAEAAAARAQAABAAQR0RFRvVN2ToAB9xYAAAE9kdQT1Mjah5qAAfhUAABKJBHU1VCzwZh5wAJ [encoded data, 878638 characters] CIcIhAiFAAEABgBJB9QH1QfWB9cH2AABAAAAAQAIAAEABgmAAAEAAQFB
AAEAAAARAQAABAAQR0RFRvVN2ToACBcEAAAE9kdQT1NBz2RdAAgb/AABKFRHU1VCzwZh5wAJ [encoded data, 900588 characters]
AAEAAAARAQAABAAQR0RFRuFh5UEAAotwAAACtEdQT1PKV4glAAKOJAAAGypHU1VCP1wkyQAC [encoded data, 309352 characters]
AAEAAAARAQAABAAQR0RFRuFh5UEAAqA0AAACtEdQT1PdcpZ2AAKi6AAAG2ZHU1VC7cbXcgAC [encoded data, 320108 characters] A8YAAgAEA1cDaAAAA3UDdwASA5kDmQAVA8UDxQAW
T1RUTwAMAIAAAwBAQ0ZGILmRse4AAFtAAAFfMUdERUZO81E/AAG6dAAAAIBHUE9TNEuxaAAB [encoded data, 183833 characters]
T1RUTwAMAIAAAwBAQ0ZGIKQZSBEAAFtMAAFr/EdERUZO81E/AAHHSAAAAIBHUE9TAsnA9QAB [encoded data, 188652 characters]
AAEAAAATAQAABAAwRkZUTVocIkYAAlM8AAAAHEdERUYC0AAkAAJCoAAAAChHUE9TCN31fwAC [encoded data, 222859 characters] zD2izwAAAAC/G2HwAAAAAM7DHYY=
AAEAAAATAQAABAAwRkZUTVocImoAAj6gAAAAHEdERUYCzwAkAAIt+AAAAChHUE9THRsXeAAC [encoded data, 215117 characters] Ag0CDgISApYAAAABAAAAAMw9os8AAAAAvxth8AAAAADOwx2q
AAEAAAATAQAABAAwRkZUTVobFScAAjZoAAAAHEdERUYC1QAkAAImJAAAAChHUE9T0/tBYAAC [encoded data, 212036 characters] AgwCDQIOAhICnAAAAAEAAAAAzD2izwAAAAC/G2HwAAAAAM7CEGc=
AAEAAAATAQAABAAwRkZUTVobFVQAAlQ4AAAAHEdERUYC1AAkAAJDpAAAAChHUE9TrCXAFwAC [encoded data, 223254 characters] EJQ=
AAEAAAATAQAABAAwRkZUTVocIkYAAlM8AAAAHEdERUYC0AAkAAJCoAAAAChHUE9TCN31fwAC [encoded data, 222859 characters] zD2izwAAAAC/G2HwAAAAAM7DHYY=
AAEAAAATAQAABAAwRkZUTVocImoAAj6gAAAAHEdERUYCzwAkAAIt+AAAAChHUE9THRsXeAAC [encoded data, 215117 characters] Ag0CDgISApYAAAABAAAAAMw9os8AAAAAvxth8AAAAADOwx2q
AAEAAAATAQAABAAwRkZUTVobFScAAjZoAAAAHEdERUYC1QAkAAImJAAAAChHUE9T0/tBYAAC [encoded data, 212036 characters] AgwCDQIOAhICnAAAAAEAAAAAzD2izwAAAAC/G2HwAAAAAM7CEGc=
AAEAAAATAQAABAAwRkZUTVobFVQAAlQ4AAAAHEdERUYC1AAkAAJDpAAAAChHUE9TrCXAFwAC [encoded data, 223254 characters] EJQ=
AAEAAAAUAQAABABARkZUTW85nrgAAAFMAAAAHEdERUaUI45CAAABaAAAApRHUE9ToJwm9gAA [encoded data, 1106000 characters] KysrKysrKysrKysrKysrKysd
AAEAAAATAQAABAAwRkZUTW85nrgAAAE8AAAAHEdERUaM/Ic1AAABWAAAAjhHUE9TLry1GgAA [encoded data, 1030002 characters] KysrKysrKysrKysrKysrKysrKysdAA==
AAEAAAARAQAABAAQR0RFRuFh5UEAAotwAAACtEdQT1PKV4glAAKOJAAAGypHU1VCP1wkyQAC [encoded data, 309352 characters]
AAEAAAARAQAABAAQR0RFRuFh5UEAAqA0AAACtEdQT1PdcpZ2AAKi6AAAG2ZHU1VC7cbXcgAC [encoded data, 320108 characters] A8YAAgAEA1cDaAAAA3UDdwASA5kDmQAVA8UDxQAW

TextureSync

# Grobdesign

⸬ Version 1.1.0 Seite 0/9

# Grobdesign

TextureSync

Version

1.1.0

Datum

20.04.2019

Autor

Lukas Fürderer,

Hendrik Schutter (Client Diagramm(e))

Robin Willmann (Server Diagramm(e))

Projektmitglieder

Hendrik Schutter,

Lukas Fürderer,

Robin Willmann,

Jannik Seiler

Inhaltsverzeichnis

Inhaltsverzeichnis

1 Einleitung3

2 Client-Module3

2.1 Model3

2.2 View3

2.3 Controller5

3 Server-Module6

3.1 Model6

3.2 Main6

3.3 Protocol7

3.4 Persistency7

4 Changelog8

Einleitung

Im Grobdesign wird festgelegt, aus welchen Modulen Client und Server jeweils bestehen und welche Aufgaben diese Module haben.

Client-Module

iVBORw0KGgoAAAANSUhEUgAABGMAAAGkCAYAAACVeOivAAAABHNCSVQICAgIfAhkiAAAIABJ [encoded data, 108240 characters] BNyXwP8BdrtEMSjI4R8AAAAASUVORK5CYII=

Model

Im Modul „Model“ ist eine Datenstruktur zum Repräsentieren einer Textur definiert. Dies dient als Austauschformat zwischen dem Netzwerk-Modul und dem View-Modul.

View

Das View-Modul und seine Untermodule steuern die gesamte Anzeige der GUI und deren Verhalten. Es ist weiter unterteilt in die verschiedenen Einzelkomponenten der GUI. Im View-Modul selbst werden nur das Hauptfenster verwaltet und die Anordnung der Komponenten darin bestimmt.

Connection

Das Connection-Modul wird beim Programmstart benötigt und stellt ein Fenster zum Herstellen der Serververbindung bereit.

Search

Das Search-Modul stellt ein Panel bereit, über das der Nutzer die gewünschten Stichworte, Tags und Auflösung einstellen sowie eine Suchanfrage abschicken kann.

Preview

Das Preview-Modul hat die Aufgabe, alle gefundenen Texturen einer Anfrage jeweils mit einer 2D-Vorschau anzuzeigen. Der Nutzer muss einzelne dieser Texturen auswählen können, um im Attributes-Panel Änderungen daran vornehmen zu können.

Attributes

Das Attributes-Modul stellt ein Panel bereit, das eine 3D-Vorschau der Textur zeigt. Außerdem werden der Name und die gesetzten Tags angezeigt und sind änderbar.

Zusätzlich gibt es einen Lösch-Button, über den nach einer Sicherheitsabfrage die gewählte Textur vom Server gelöscht wird. Der dafür notwendige Dialog liegt ebenfalls in dem Attributes-Modul.

Import

Das Import-Modul enthält den Import-Dialog, um neue Texturen vom lokalen Dateisystem auf den Server hochzuladen. In diesem Dialog lässt sich eine Datei auswählen, bei Bedarf der Dateiname ändern und die gewünschten Tags setzen.

Controller

Das Controller-Modul enthält den Einsprungspunkt für das Programm. Es steuert den grundlegenden Ablauf (Verbindungsaufbau, Erstellen der GUI) und stellt die Verbindung zwischen dem View-Modul und dem Network-Modul her.

Network

Im Network-Submodul des Controllers befindet sich eine Routine zum automatischen Finden eines Servers im lokalen Netzwerk. Außerdem ist hier die Client-Seite des Netzwerkprotokolls implementiert.

Server-Module

iVBORw0KGgoAAAANSUhEUgAAAyoAAAJpCAYAAABCcsaxAAAACXBIWXMAAAjwAAAI7gEC9s4A [encoded data, 72240 characters] /wEVR4eeBJK0awAAAABJRU5ErkJggg==

Model

Im Modul „Model“ wird der Datenbestand der Texturensammlung, d.h. die Namen aller Texturen, deren Größe und gesetzte Tags abgebildet. Das Modul speichert auch die Vorschaubilder der Texturen im Arbeitsspeicher, sofern sie bereits generiert sind. Es speichert jedoch nicht die Bilddatei selbst, dafür ist das Persistency-Modul zuständig.

Main

Das Main-Modul enthält den Einsprungspunkt des Server-Prozesses und übernimmt koordinierende Aufgaben. Es verwaltet die Anfragen verbundener Clients und sorgt für ein sauberes Beenden des gesamten Server-Prozesses.

Protocol

Im Protocol-Modul ist die Server-Seite des Netzwerkprotokolls implementiert. Nur die Kommunikation per TCP ist Teil dieses Moduls, für die Abarbeitung eingehender Anfragen ist das Main-Modul zuständig.

Persistency

Das Persistency-Modul hat die Aufgabe, eintreffende Bilddateien auf dem Dateisystem des Servers zu sichern. Darüber hinaus sichert es in regelmäßigen Abständen sowie vor dem Beenden des Serverprozesses eine Abbildung des Datenbestands im Dateisystem. Darin sind jedoch keine Vorschaubilder enthalten, da diese nach einem Neustart neu generiert werden können.

ImageConverter

Das ImageConverter-Modul ist vorgesehen, um für gewünschte Texturdateien Vorschaubilder einer festen Größe (256x256 Pixel) im JPG-Format zu erzeugen.

Search

Hat die Aufgabe Suchen die Persistenten Daten zu durchsuchen. Diese ist Teil von Persistency, weil sie eng an das Daten Format gekoppelt ist.

Search hat auch die Aufgabe die textuelle Suchanfrage zu interpretieren.

Changelog

Version

Änderung

1.0

Grobdesign erstellt

1.0.1

Client Klassendiagramm hinzufügt

1.1.0

Server Packetdiagramm,

Network in Protocol umbennant

ImageConverter ist nun Teil von Persistency

Neu: Search

1.1.1

Nur eine Textur ist zur gleichen Zeit auswählbar.