Gambaran keseluruhan operasi
Bahagian berikut menerangkan konsep utama untuk operasi Glasswall Embedded Engine yang berjaya.
Sesi
Application Programming Interface (API) adalah berasaskan sesi. Sesi ialah jenis yang mewakili fail dan mekanisme yang digunakan untuk memproses fail tersebut.
- You create a Session object by calling
GW2OpenSessionwhich returns a session handle.- Memandangkan lebih daripada satu sesi mungkin aktif,
Session IDdigunakan untuk mengakses data dan menetapkan pemboleh ubah bagi sesi tertentu.
- Memandangkan lebih daripada satu sesi mungkin aktif,
- Anda menghantar pemegang sesi kepada fungsi API lain untuk mendaftarkan input dan output serta bentuk input dan output tersebut (memori atau fail).
- Kemudian anda memproses fail dengan memanggil fungsi
GW2RunSessiondan menutup sesi dengan memanggilGW2CloseSession.
Apabila dibuka, setiap sesi diberikan siri penimbal memori tersendiri. Penimbal ini kekal boleh diakses selagi sesi masih terbuka. Setelah sesi ditutup, data tidak lagi tersedia dan memori yang diperuntukkan akan dilepaskan.
Sesi mesti sentiasa ditutup. Ini termasuk senario apabila isu pemprosesan berlaku dan aliran operasi yang dijangkakan terganggu. Dalam keadaan ini, pelbagai corak pengekodan defensif boleh diguna pakai yang direka untuk mengurus sumber, contohnya try-with-resources dalam Java, atau context-handlers dalam Python.
Perhatikan bahawa semakin banyak sesi yang dibuka secara serentak, semakin besar keperluan memori keseluruhan. Pemprosesan fail menggunakan berbilang thread tidak disokong. Menjana berbilang proses adalah disyorkan untuk memudahkan pemprosesan selari.
- Protect / Analysis Mode
- Export Mode
- Import Mode
Use Cases: Menjadikan fail selamat dan/atau menjana laporan yang menerangkan kandungan fail

Use Cases: Menormalkan kandungan fail kepada xml untuk membolehkan pemprosesan luaran selanjutnya

Use Cases: Membina semula kandungan xml yang dieksport kembali kepada format fail asal

Maklumat lanjut tentang API Embedded Engine didokumenkan merentas halaman fungsi API yang berkaitan.
Fail policy
Fail policy digunakan untuk menentukan cara Glasswall harus memproses fail yang dibekalkan. Contoh fail policy disediakan dalam pakej keluaran Embedded Engine.
Walaupun fail policy tidak diperlukan untuk Glasswall berjalan, dalam kebanyakan kes satu fail digunakan untuk menyesuaikan pemprosesan agar sepadan dengan keperluan. Jika fail policy hendak digunakan, ia mesti didaftarkan kepada setiap sesi.
Jika tiada fail policy ditentukan, tetapan pengurusan kandungan ditetapkan untuk sanitise fail secara lalai. Tetapan lalai juga akan digunakan untuk pilihan sysConfig.
Lihat Pengurusan Kandungan dan Konfigurasi Sistem untuk maklumat lanjut.
Nilai pulangan daripada Glasswall
Kebanyakan fungsi dalam Glasswall API mengembalikan integer yang menunjukkan kejayaan atau kegagalan. 0 atau 1 akan menunjukkan kejayaan, manakala nombor negatif (seperti -1) akan menunjukkan kegagalan.
Panggilan API tertentu tidak mengikut corak ini; sebagai contoh, fungsi GW2OpenSession akan mengembalikan sama ada ralat -1 atau ID sesi yang baru dicipta (integer positif). Jadual nilai pulangan boleh didapati pada halaman Gambaran Keseluruhan API.
Pengurusan data
Glasswall memproses dan menyimpan data menggunakan fail dan/atau penimbal. Keperluan data untuk proses ini diterangkan dalam bahagian di bawah.
Fail
Panggilan Glasswall API berasaskan fail memerlukan laluan fail sebagai parameter. Nama fail ini mesti dikodkan sebagai rentetan jenis C; tatasusunan aksara yang ditamatkan dengan aksara NULL. Pengekodan UTF-8 hendaklah digunakan.
Memori
Panggilan Glasswall API berasaskan memori memerlukan penggunaan satu atau lebih penimbal memori. Penimbal ini ditakrifkan oleh penuding kepada elemen pertama dan panjang penimbal dalam bait. Pendekatan ini membolehkan fail yang mengandungi aksara NULL diproses dengan betul.
Fungsi Import/Input
Fungsi ini memerlukan penuding kepada datum pertama dalam penimbal dan panjang penimbal dalam bait.
Fungsi Export/Output
Fungsi ini menentukan penimbal yang harus digunakan oleh Glasswall apabila mengembalikan data yang telah diproses. Glasswall memerlukan penuding kepada kedua-dua panjang penimbal dan penuding kepada elemen pertama, seperti yang diterangkan di bawah:
- Penuding-ke-penuding kepada elemen pertama penimbal
- Penuding kepada panjang penimbal (size_t *)
Lapisan abstraksi tambahan ini diperlukan kerana saiz penimbal ini tidak diketahui sebelum sesi dijalankan. Nyahrujuk penuding ini membolehkan akses kepada data yang dikembalikan daripada Glasswall.