Tổng quan về hoạt động
Các phần sau mô tả những khái niệm chính để vận hành Glasswall Embedded Engine thành công.
Phiên
Giao diện Lập trình Ứng dụng (API) dựa trên session. Session là một kiểu đại diện cho một tệp và các cơ chế được օգտագործ dụng để xử lý tệp đó.
- You create a Session object by calling
GW2OpenSessionwhich returns a session handle.- Vì có thể có nhiều session đang hoạt động,
Session IDđược dùng để truy cập dữ liệu và thiết lập biến cho một session cụ thể.
- Vì có thể có nhiều session đang hoạt động,
- Bạn փոխանց session handle cho các hàm API khác để đăng ký đầu vào và đầu ra cũng như dạng của đầu vào và đầu ra (bộ nhớ hoặc tệp).
- Sau đó, bạn xử lý tệp bằng cách gọi hàm
GW2RunSessionvà đóng session bằng cách gọiGW2CloseSession.
Khi được mở, mỗi session được gán một chuỗi bộ đệm bộ nhớ riêng. Các bộ đệm này vẫn có thể truy cập được miễn là session còn mở. Khi một session được đóng, dữ liệu sẽ không còn khả dụng và bộ nhớ đã cấp phát sẽ được giải phóng.
Một session luôn phải được đóng. Điều này bao gồm cả các tình huống xảy ra sự cố xử lý và luồng vận hành dự kiến bị gián đoạn. Trong trường hợp này, có thể áp dụng nhiều mẫu mã phòng vệ khác nhau được thiết kế để quản lý tài nguyên, ví dụ try-with-resources trong Java hoặc context-handlers trong Python.
Lưu ý rằng càng có nhiều session được mở đồng thời thì tổng yêu cầu bộ nhớ sẽ càng lớn. Không hỗ trợ xử lý tệp bằng nhiều luồng. Khuyến nghị khởi tạo nhiều tiến trình để hỗ trợ xử lý song song.
- Chế độ Protect / Analysis
- Chế độ Export
- Chế độ Import
Trường hợp sử dụng: Làm cho tệp an toàn và/hoặc tạo báo cáo mô tả nội dung của tệp

Trường hợp sử dụng: Chuẩn hóa nội dung của một tệp sang xml để cho phép xử lý bên ngoài sâu hơn

Trường hợp sử dụng: Tái cấu thành nội dung xml đã xuất trở lại định dạng tệp gốc

Thông tin thêm về các API của Embedded Engine được ghi lại trong các trang hàm API liên quan.
Tệp policy
Tệp policy được dùng để xác định cách Glasswall nên xử lý các tệp được cung cấp. Một tệp policy mẫu được cung cấp trong gói phát hành Embedded Engine.
Mặc dù không bắt buộc phải có tệp policy để Glasswall chạy, nhưng trong hầu hết trường hợp, tệp này được dùng để tùy chỉnh quá trình xử lý cho phù hợp với yêu cầu. Nếu sử dụng tệp policy, tệp đó phải được đăng ký cho từng phiên.
Nếu không chỉ định tệp policy, các cài đặt quản lý nội dung sẽ được đặt để sanitise tệp theo mặc định. Các cài đặt mặc định cũng sẽ được áp dụng cho các tùy chọn sysConfig.
Xem Quản lý nội dung và Cấu hình hệ thống để biết thêm thông tin.
Giá trị trả về từ Glasswall
Hầu hết các hàm trong Glasswall API trả về một số nguyên cho biết thành công hay thất bại. Giá trị 0 hoặc 1 sẽ cho biết thành công, trong khi một số âm (chẳng hạn như -1) sẽ cho biết thất bại.
Một số lệnh gọi API không tuân theo mẫu này; ví dụ, hàm GW2OpenSession sẽ trả về lỗi -1 hoặc ID của phiên mới được tạo (số nguyên dương). Có thể tìm thấy bảng các giá trị trả về trên trang Tổng quan API.
Quản lý dữ liệu
Glasswall xử lý và lưu dữ liệu bằng tệp và/hoặc bộ đệm. Các yêu cầu dữ liệu cho các quy trình này được mô tả trong các phần bên dưới.
Tệp
Các lệnh gọi Glasswall API dựa trên tệp yêu cầu một đường dẫn tệp làm tham số. Tên tệp này phải được mã hóa dưới dạng chuỗi kiểu C; một mảng ký tự được kết thúc bằng ký tự NULL. Nên sử dụng mã hóa UTF-8.
Bộ nhớ
Các lệnh gọi Glasswall API dựa trên bộ nhớ yêu cầu sử dụng một hoặc nhiều bộ đệm bộ nhớ. Các bộ đệm này được xác định bằng một con trỏ tới phần tử đầu tiên và độ dài của bộ đệm tính bằng byte. Cách tiếp cận này cho phép xử lý chính xác các tệp chứa ký tự NULL.
Các hàm Import/Input
Các hàm này yêu cầu một con trỏ tới dữ liệu đầu tiên trong bộ đệm và độ dài của bộ đệm tính bằng byte.
Các hàm Export/Output
Các hàm này chỉ định bộ đệm mà Glasswall sẽ sử dụng khi trả về dữ liệu đã xử lý. Glasswall yêu cầu con trỏ tới cả độ dài bộ đệm và con trỏ tới phần tử đầu tiên, như mô tả bên dưới:
- Con trỏ kép tới phần tử đầu tiên của bộ đệm
- Con trỏ tới độ dài của bộ đệm (size_t *)
Lớp trừu tượng bổ sung này là cần thiết vì kích thước của bộ đệm này không được biết trước khi chạy phiên. Việc giải tham chiếu các con trỏ này cho phép truy cập vào dữ liệu được trả về từ Glasswall.