Langkau ke kandungan utama

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 GW2OpenSession which returns a session handle.
    • Memandangkan lebih daripada satu sesi mungkin aktif, Session ID digunakan untuk mengakses data dan menetapkan pemboleh ubah bagi sesi tertentu.
  • 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 GW2RunSession dan menutup sesi dengan memanggil GW2CloseSession.

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.

Use Cases: Menjadikan fail selamat dan/atau menjana laporan yang menerangkan kandungan fail

Protect / Analysis Mode

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.