GW2GetFileType
    • PDF

    GW2GetFileType

    • PDF

    Article summary

    File type IDs are mapped to file types supported by the Glasswall Engine. This API provides the formal name of the file type given a file type ID number.

    Synopsis

    For session session , GW2GetFileType places in the object pointed to by outputBuffer, a pointer to a description of the formal name of the file fileID. The length of the description, in bytes, is placed in the size_t object pointed to by bufferLength.

    #include "glasswall.core2.api.h"
    
    int GW2GetFileType(
        Session session,
        size_t fileId,
        size_t *bufferLength,
        char **outputBuffer);

    Returns

    Returns an integer GW2_RetStatus enum value. Negative numbers indicate a failure. If successful, the output buffer is populated with the formal name of the file type.

    Example

    #include "glasswall.core2.api.h"
    
    char *outbuf = NULL;
    size_t buflen = 0;
    
    if (GW2OpenSession() < 0)
        /* error opening session */
    else
    {
        int status = GW2GetFileType(session, fileID, &buflen, &outbuf);
    
        /* outbuf points to a buffer containing the XML file.
         * Either process the data pointed to, or copy the data and process it
         * after GW2CloseSession is called
         */
    
        if (GW2CloseSession() < 0)
            /* error closing session */
    }

    Synopsis

    public int GW2GetFileType(
        int session,
        uint fileID,
        ref UIntPtr bufferLength,
        out IntPtr outputBuffer)

    Returns

    Returns an integer GW2_RetStatus enum value. Negative numbers indicate a failure. If successful, the output buffer is populated with the formal name of the file type.

    Example

    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
    }

    Synopsis

    import com.glasswall.core2javabridge.*;
    
    public String GW2GetFileTypeString(int session, int fileId) throws GlasswallException

    Note:

    This functionality previously required two separate function calls to retrieve the file type data. This has now been streamlined to return the settings as a String. The two original functions have been deprecated.

    Returns

    The GW2GetFileTypeString function returns a String representation of a filetype ID.

    A GlasswallException exception will be thrown if session is invalid, or if the file type could not be retrieved.

    Synopsis - Deprecated Functions

    import com.glasswall.core2javabridge.*;
    
    (Deprecated)
    public int GW2GetFileType(int session, int fileId) throws GlasswallException
    public byte[] GetFileTypeBuffer(int session) throws GlasswallException

    Description - Deprecated Functions

    The GW2GetFileType function outputs a representation of fileId for the session specified by session, to the internal FileType Buffer. Retrieve this data through use of the GetFileTypeBuffer function.

    Returns - Deprecated Functions

    The GW2GetFileType function returns a GW2_RetStatus enumeration converted to int. The value will be negative if an error occurred. 0 indicates success.

    Please refer to API Overview for Return Types and their details.

    The GetFileTypeBuffer function returns a UTF-8 encoded byte[] containing a representation of a filetype ID. This will be null if GW2GetFileType has not been called.

    A GlasswallException exception will be thrown if session is invalid, or if the file type could not be retrieved.

    Synopsis

    Retrieve information about a file type based on its identifier.

    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.
        """

    Returns

    Returns an integer or string depending on the input file_type. This value is either an integer of a recognised file type, a detailed string description of a recognised file type or if the input file_type; was not recognised, 0 or an empty string.

    Synopsis

    This function places a pointer to a description of a specified fileID in a specified location.

    /**
    *
    * @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)

    Returns

    Returns an integer GW2_RetStatus enum value. Negative numbers indicate a failure. If successful, the output buffer is populated with the formal name of the file type.

    Example

    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);
    
    ...

    Was this article helpful?