Klasa/BinManager

Z Rainsted
Skocz do: nawigacji, wyszukiwania

Obiekt klasy BinManager odpowiada za wczytanie, zapis i obsługę pliku RSF umieszczonego w pamięci (w tym dodawanie nowych rekordów). Ze względu na sposób jego podłączenia do klasy obiektu scenerii, nie jest możliwe jednoczesne korzystanie z dwóch plików RSF. Aby obsłużyć więcej niż jeden RSF w pamięci, każdy z nich musi mieć własny obiekt zarządzający i konieczna jest zmiana wskaźnika na aktualny (zmienna BinItem::manager).

Przy wczytaniu pliku RSF z dysku tworzona jest jedna tablica, która posiada rezerwę na ewentualnie dodane rekordy (rzędu 512 rekordów). Przekroczenie tej rezerwy (np. przy imporcie danych z UMP) powoduje tworzenie kolejnych tablic po 512 rekordów (64kB) każda. Maksymalnie mogą być utworzone 63 dodatkowe tablice (32256 rekordów o łącznej wielkości 3.9MB). Po przekroczeniu tej ilości, tworzona jest nowa tablica wskaźników o czterokrotnie większej pojemności (256 pozycji), do której przepisywane są wskaźniki do wszystkich 64 dotychczasowych tablic, a 192 nowe pozycje pozostają wolne (daje to możliwość zwiększenia pliku o kolejne 98304 rekordy, co odpowiada 12MB). Po ich wykorzystaniu utworzona zostanie kolejna tablica, tym razem z 1024 pozycjami (na dalsze 393216 rekordów, czyli 48MB pamięci). Proces czterokrotnego zwiększania możne być powtarzany aż do wyczerpania pamięci komputera. Reorganizację tablic można wykonać poprzez zapisanie zawartości tablic na dysku i ponowne wczytanie (użyta zostanie pierwsza z początkowych 64).


Klasy ogólne BinBinManagerBinRecordBinItemBinLineBinPos
Klasy parametrów BinFileBinArcInfo
Klasy obiektów BinTrackBinPathBinSectionBinTraction
Linie Linia kierunkowaNiweletaPoprzeczkaTrajektoriaŚciana
Punktowe BramkaBudowlaDrzewoObrotnicaMostPrzejazdStudniaUkres

SygnałSłupSłupek kilometrażowy

Trójkąty TrójkątyTeren NMT-100CityGML
Eksport MaSzynaKody eksportu
Operacje Układanie niweletyŁuki koszowe
Inne RSF wersja 15RSF wersja 16WarstwyGrupaKomórkiScenerieRSFSTRU