GW2GetFileType
ID jenis file dipetakan ke jenis file yang didukung oleh Glasswall Engine. API ini menyediakan nama formal dari jenis file dalam format string berdasarkan nomor ID jenis file.
- C++
- C#
- Java
- Python
- JavaScript
#include "glasswall.core2.api.h"
int GW2GetFileType(
Session session,
size_t fileId,
size_t *bufferLength,
char **outputBuffer);
Parameter
session ID sesi seperti yang dikembalikan oleh GW2OpenSession
fileId Bilangan bulat yang merepresentasikan ID tipe file
bufferLength Parameter output yang diisi dengan ukuran dalam byte dari memori yang ditunjuk oleh outputBuffer.
outputBuffer Parameter output pointer string yang diisi dengan nama formal dari tipe file yang terkait dengan ID file yang diberikan, mis. "BMP Image". Memori yang digunakan oleh pointer ini tidak perlu dibebaskan oleh pengguna.
Hasil pengembalian
Mengembalikan bilangan bulat yang menunjukkan apakah pemanggilan fungsi berhasil. Angka negatif menunjukkan kegagalan. Lihat tabel Return Types untuk penjelasan kode pengembalian. Jika berhasil, outputBuffer diisi dengan nama formal yang terkait dengan tipe file.
Contoh
#include "glasswall.core2.api.h"
#include "filetype.h" // ft_t enum which includes ft_bmp
char *outbuf = NULL;
size_t buflen = 0;
if (GW2OpenSession() < 0)
/* Error opening session */
else
{
int status = GW2GetFileType(session, ft_bmp, &buflen, &outbuf);
/* In this example outbuf will point to the string "BMP Image". */
if (GW2CloseSession() < 0)
/* Error closing session */
}
Sinopsis
public int GW2GetFileType(
int session,
uint fileID,
ref UIntPtr bufferLength,
out IntPtr outputBuffer)
Hasil pengembalian
Mengembalikan nilai enum bilangan bulat GW2_RetStatus. Angka negatif menunjukkan kegagalan. Jika berhasil, buffer output diisi dengan nama formal dari tipe file.
Contoh
using glasswall_core2;
...
Glasswall glasswall = new Glasswall(); // Instance of the Glasswall wrapper
int session = glasswall.OpenSession();
int returnStatus = glasswall.GW2GetFileType(session, 22, ref bufferLength, out buffer);
if (bufferLength >= 0)
{
byte[] msgArray = glasswall.CreateArrayFromBuffer(buffer, bufferLength);
// Formal name for file type ID 22 now stored in a byte array
}
if (glasswall.CloseSession(session))
{
// Error Handling
}
Sinopsis
import com.glasswall.core2javabridge.*;
public String GW2GetFileTypeString(int session, int fileId) throws GlasswallException
Catatan
Fungsionalitas ini sebelumnya memerlukan dua pemanggilan fungsi terpisah untuk mengambil data tipe file. Kini hal ini telah disederhanakan untuk mengembalikan pengaturan sebagai String. Dua fungsi asli tersebut telah ditandai deprecated.
Hasil pengembalian
Fungsi GW2GetFileTypeString mengembalikan representasi String dari ID filetype.
Exception GlasswallException akan dilempar jika session tidak valid, atau jika tipe file tidak dapat diambil.
Sinopsis - Fungsi yang Tidak Digunakan Lagi
import com.glasswall.core2javabridge.*;
(Deprecated)
public int GW2GetFileType(int session, int fileId) throws GlasswallException
public byte[] GetFileTypeBuffer(int session) throws GlasswallException
Deskripsi - Fungsi Deprecated
Fungsi GW2GetFileType mengeluarkan representasi dari fileId untuk sesi yang ditentukan oleh session, ke FileType Buffer internal. Ambil data ini melalui penggunaan fungsi GetFileTypeBuffer.
Nilai yang Dikembalikan - Fungsi yang Tidak Digunakan Lagi
Fungsi GW2GetFileType mengembalikan enumerasi GW2_RetStatus yang dikonversi menjadi int. Nilainya akan negatif jika terjadi kesalahan. 0 menunjukkan keberhasilan. Lihat API Overview/Return types untuk detailnya.
Fungsi GetFileTypeBuffer mengembalikan byte[] berkode UTF-8 yang berisi representasi dari ID tipe file. Nilainya akan null jika GW2GetFileType belum dipanggil.
Exception GlasswallException akan dilempar jika session tidak valid, atau jika tipe file tidak dapat diambil.
Sinopsis
Ambil informasi tentang tipe file berdasarkan pengenalnya.
def get_file_type_info(self, file_type: Union[str, int]):
""" Retrieve information about a file type based on its identifier.
Args:
file_type (Union[str, int]): The file type identifier. This can be either a string representing a file
extension (e.g. 'bmp') or an integer corresponding to a file type (e.g. 29).
Returns:
- file_type_info (Union[int, str]): Depending on the input 'file_type':
- If `file_type` is a string (e.g. 'bmp'):
- If the file type is recognised, returns an integer corresponding to that file type.
- If the file type is not recognised, returns 0.
- If `file_type` is an integer (e.g. 29):
- If the integer corresponds to a recognised file type, returns a more detailed string description
of the file type (e.g. 'BMP Image').
- If the integer does not match any recognised file type, returns an empty string.
"""
Hasil pengembalian
Mengembalikan integer atau string bergantung pada input 'file_type'. Nilai ini dapat berupa integer dari tipe file yang dikenali, deskripsi string terperinci dari tipe file yang dikenali, atau jika input 'file_type' tidak dikenali, 0 atau string kosong.
Sinopsis
Fungsi ini menempatkan pointer ke deskripsi dari fileID yang ditentukan di lokasi yang ditentukan.
/**
*
* @param {number} session The ID of the session.
* @param {number} fileID The ID of the file type.
* @param {number} bufferLength The length of the buffer.
* @param {string} outputBuffer The location of the output buffer.
*/
GW2GetFileType(
session,
fileID,
bufferLength,
outputBuffer)
Hasil pengembalian
Mengembalikan nilai enum integer GW2_RetStatus. Angka negatif menunjukkan kegagalan. Jika berhasil, buffer output diisi dengan nama formal jenis file.
Contoh
const ref = require('ref-napi');
...
function buffer_to_string(buffer, buffer_size) {
if (!buffer.isNull() && ref.deref(buffer_size) > 0) {
return Buffer.from(ref.reinterpret(ref.deref(buffer), ref.deref(buffer_size), 0)).toString();
}
else {
return "";
}
}
...
output_file_buffer = ref.alloc(ref.refType(ref.types.CString));
output_buffer_size = ref.alloc(ref.types.size_t, 0);
return_status = gw.GW2GetFileType(session_id, 22, output_buffer_size, output_file_buffer);
let error_description = buffer_to_string(output_file_buffer, output_buffer_size);
...