Zum Ende der Metadaten springen
Zum Anfang der Metadaten

@storages = LoxBerry::Storage::get_storage(BOOL readwriteonly, [STRING localdatadir]);

 Die Funktion get_storage sammelt alle vorhandenen Storage-Punkte (USB, Netzwerk, Lokal) und liefert einen Array zurück, der auch direkt in HTML::Template verwendet werden kann. 

LoxBerry Compatibility

Diese Funktion steht erst ab LoxBerry 1.2.1 zur Verfügung. Bitte dies entsprechend als Minimum-Version in der plugin.cfg setzen.


Innerhalb eines Plugins wäre es denkbar, einige (große) Datenmengen oder häufige Schreibzugriffe auf einen externen Datenträger auszulagern oder von dort aus Daten, z. B. MP3-Dateien, einzulesen.

Der zurückgegebene Array kann direkt in HTML::Template benutzt werden. 

Parameter

ParameterFunktion

(optional)

readwriteonly

Ist der zweite Parameter = 1, werden nur Devices ausgegeben, auf die sowohl Lese- als auch Schreibberechtigung besteht. Andernfalls werden alle Devices, also auch diejenigen, die nur read-only sind, ausgegeben.

(optional)

localdatadir

Standardmäßig (ohne Angabe) wird als lokales Datenverzeichnis das $lbpdatadir zurückgeliefert.

Bei Angabe dieses Parameters wird das angegebene Verzeichnis als lokales Datenverzeichnis zurückgeliefert.

 

Variablen

Hash-Variable pro Array-ZeileInhalt
PATHDer vollständige Pfad zu diesem Storage-Punkt. PATH ist immer unique und kann als Schlüssel (Key) verwendet werden.
NAME

Liefert einen einheitlichen, berechneten Namen zurück, der für die Darstellung in der Benutzeroberfläche gedacht ist. Die Darstellung ist je nach Gruppe unterschiedlich.

Der Name enthält auch die Größe des Datenträgers in GB.

GROUP
  • net → Netzwerk-Shares
  • usb → USB-Devices
  • local → Lokaler Speicher auf dem LoxBerry (aktuell nur $plugindatadir)
TYPEDer Typ des Storages - bei usb das Dateisystem, bei net der Protokolltyp (z.B. smb), bei local → local
WRITABLE

Zeigt an, ob der Pfad beschreibbar ist

  • 0/undef → Read-Only
  • 1 → Writable

Für TYPE = 'local' wird nicht explizit geprüft, sondern immer 1 zurückgeliefert

USEDLiefert den am Datenträger verwendeten Speicher in KB
AVAILABLELiefert den am Datenträger verfügbaren Speicher in KB
SIZELiefert die Größe des Datenträgers in KB
SIZE_GBLiefert die Größe des Datenträgers in GB
Nur GROUP=USB:
USBSTORAGE_DEVICEVom System identifizierter Name des USB-Datenträgers
USBSTORAGE_BLOCKDEVICENormalerweise der Mountpoint des Blockdevices, z.B. /dev/sda
Nur GROUP=NET:
NETSHARE_SERVERServername
NETSHARE_SHARENAMEName des Fileshares

  

Verwendung

use LoxBerry::Storage;
use LoxBerry::Web;
my @storage = LoxBerry::Storage::get_storage();

print STDERR "USB Devices:\n";
foreach my $storagepoint (@storage) {
	print STDERR "$storagepoint->{NAME} $storagepoint->{PATH} $storagepoint->{WRITABLE}\n";
}

$htmltemplate->param('STORAGE' => \@storage);

# Access a single element
print STDERR "Single element: " . $storage[0]->{NAME} . "\n"; 


Verwendung mit HTML::Template

<TMPL_LOOP STORAGE>
			<div style="display: flex">
				<div style="min-width: 50px"><TMPL_VAR PATH></div>
				<div style="min-width: 200px"><TMPL_VAR TYPE></div>
				<div style="min-width: 200px"><TMPL_VAR SIZE_GB> GB</div>
			</div>
	</TMPL_LOOP>
  • Keine Stichwörter