Jalur Logis Komponen
Jalur logis digunakan untuk mengatur komponen yang dikelola oleh penulis ke dalam grup yang terdefinisi dengan baik.
Jalur logis dianalogikan dalam struktur ke jalur file tradisional, menggunakan garis miring terbelakang "\" untuk memisahkan elemen di jalur. Tidak seperti jalur file, akar jalur logis adalah NULL, bukan "\".
Jalur logika dinyatakan sebagai string yang dihentikan NULL, dan tidak ada batasan lain pada karakter yang dapat dimuat jalur.
Penggunaan paling penting dari jalur logis adalah dalam menentukan set komponen, di mana penyertaan komponen eksplisit dalam operasi pencadangan atau pemulihan dari satu komponen yang dapat dipilih memerlukan penyertaan sejumlah komponen lain (subkomponen). Jalur logis dari komponen penentuan set komponen adalah induk ke jalur logis subkomponennya dan:
- Subkomponen harus berbagi sebagai jalur akar jalur logis dari komponen yang dapat dipilih yang menentukan set komponen.
- Jalur akar NULL valid.
- Nama komponen yang dapat dipilih yang menentukan harus menjadi elemen jalur logis pertama setelah jalur akar untuk setiap subkomponen yang tidak dapat dipilih dari set komponen.
- Set komponen dapat ditumpuk.
- Kombinasi jalur logis dan nama komponen harus unik di semua instans kelas penulis.
Contoh hipotetis penulis MyWriter dengan struktur jalur logis yang ditentukan di bawah ini menggambarkan jalur logis.
Nama Komponen | Jalur logika | Dapat dipilih untuk pencadangan |
---|---|---|
"Executables" | "" | N |
"ConfigFiles" | "Executables" | N |
"LicenseInfo" | "" | Y |
"Keamanan" | "" | Y |
"UserInfo" | "Keamanan" | N |
"Sertifikat" | "Keamanan" | N |
"writerData" | "" | Y |
"Set1" | "writerData" | N |
"Jan" | "writerData\Set1" | N |
"Des" | "writerData\Set1" | N |
"Set2" | "writerData" | N |
"Jan" | "writerData\Set2" | N |
"Des" | "writerData\Set2" | N |
"Kueri" | "writerData\QueryLogs" | N |
"Penggunaan" | "writerData" | Y |
"Jan" | "writerData\Usage" | N |
"Des" | "writerData\Usage" | N |
Perhatikan bahwa komponen "Executables" dan "ConfigFile" memiliki hubungan induk-anak, tetapi keduanya tidak dapat dipilih. Oleh karena itu, mereka tidak membentuk set komponen. Setiap kali penulis MyWriter dicadangkan atau dipulihkan, kedua komponen ini harus secara eksplisit disertakan dalam operasi.
Komponen "LicenseInfo" tidak dapat dipilih dengan leluhur atau keturunan. Ini dapat secara eksplisit disertakan, atau tidak, dalam operasi pencadangan atau pemulihan atas kebijakan pemohon.
Komponen "Keamanan" mendefinisikan set komponen sederhana, tidak berisi set komponen di bawahnya.
Komponen "writerData" mendefinisikan set komponen, yang berisi kumpulan komponen kompleks dengan beberapa hierarki jalur logis yang terdefinisi dengan baik di bawahnya.
Satu subkomponen, "Penggunaan", dapat dipilih dan menentukan set komponen.
Beberapa komponen memiliki nama yang sama dan dibedakan oleh jalur logisnya. Instans komponen "Des" dan "Jan" yang tidak dapat dipilih ada di bawah komponen yang tidak dapat dipilih "Set1" dan "Set2" dan di bawah "Penggunaan" subkomponen yang dapat dipilih.
Jika komponen "writerData" secara eksplisit disertakan dalam cadangan atau pemulihan, maka semua subkomponennya—bahkan yang ada di set komponen berlapis yang ditentukan oleh "Penggunaan"—akan secara implisit disertakansecara implisit yang disertakan dalam operasi.
Jika set komponen yang ditentukan oleh "writerData" tidak secara eksplisit disertakan dalam cadangan atau pemulihan, komponen "Set1", "Set2", dan "QueryLogs" (dan instans subkomponennya "Des" dan "Jan") tidak akan disertakan secara implisit dalam operasi pencadangan atau pemulihan.
Namun, bahkan jika "writerData" tidak disertakan dalam operasi, komponen "Penggunaan" masih dapat dipilih, dan masih dapat secara eksplisit disertakan dalam operasi pencadangan atau pemulihan. Jika ya, maka subkomponennya "Jan" dan "Dec" akan disertakan secara implisit.
Poin lain yang layak diperhatikan:
- Komponen yang dapat dipilih "LicenseInfo" dan "writerData" dan komponen "Executables" yang tidak dapat dipilih semuanya pada tingkat yang sama dalam hierarki jalur logis MyWriter: semua memiliki jalur logis null atau "", jalur logis akar yang sama.
- Komponen "Penggunaan" yang dapat dipilih tidak boleh secara eksplisit disertakan dalam cadangan, jika induk yang dapat dipilih ("writerData") secara eksplisit disertakan dalam operasi pencadangan atau pemulihan.
- Komponen yang menentukan set komponen mungkin ada hanya karena alasan organisasi. Misalnya, baik komponen "writerData" atau "Penggunaan", atau keduanya, mungkin kosong; artinya, tidak ada set file yang ditambahkan ke dalamnya menggunakan metode IVssCreateWriterMetadata::AddFilesToFileGroup, IVssCreateWriterMetadata::AddDatabaseFiles atau IVssCreateWriterMetadata::AddDatabaseLogFiles . Komponen masih menentukan set komponen.