GW2GetFileTypeID
    • PDF

    GW2GetFileTypeID

    • PDF

    Article summary

    Every file type has an associated ID in the Glasswall Engine. This API provides a Glasswall file type ID in string format for the associated file extension supplied.

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

    Parameters

    session The ID of the session as returned by GW2OpenSession

    fileType A string containing the file extension. Eg '"bmp"'.

    bufferLength An output parameter which is populated with size in bytes of the memory pointed to by 'outputbuffer'.

    outputBuffer A string pointer output parameter whcih is populated with the file type ID assocaited with the supplied extension. The memory used by this pointer does not need to be freed by the user

    Returns

    Returns an integer indicating whether the function was successful. Negative numbers indicate a failure. If successful, the 'outputBuffer' is populated wiht the file type ID.

    Example

    #include "glasswall.core2.api.h"
    
    char *outbuf = NULL;
    size_t buflen = 0;
    
    if (GW2OpenSession() < 0)
        /* error opening session */
    else
    {
        int status = GW2GetFileTypeID(session, fileType, &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 GetFileTypeID(
        int session,
        string fileType,
        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 file type ID.

    Example

    using glasswall_core2;
    
    ...
    
    Glasswall glasswall = new Glasswall(); // Instance of the Glasswall wrapper
    
    int session      = glasswall.OpenSession();
    int returnStatus = glasswall.GetFileTypeID(session, "pdf", ref bufferLength, out buffer);
    
    if (bufferLength >= 0)
    {
        byte[] msgArray = glasswall.CreateArrayFromBuffer(buffer, bufferLength);
        // File type ID for PDF is now stored in a byte array
    }
    
    if (glasswall.CloseSession(session))
    {
        // Error Handling
    }

    Synopsis

    Not supported in Java

    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 fileType in a specified location.

    /**
    *
    * @param {number} session The ID of the session.
    * @param {string} fileType The extension of the file type.
    * @param {number} bufferLength The length of the buffer.
    * @param {string} outputBuffer The location of the output buffer.
    */
    
    GW2GetFileTypeID(
        session,
        fileType,
        bufferLength,
        outputBuffer)

    Returns

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

    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.GW2GetFileTypeID(session_id, "pdf", output_buffer_size, output_file_buffer);
    
    let error_description = buffer_to_string(output_file_buffer, output_buffer_size);
    
    ...

    Was this article helpful?

    What's Next