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 for the extension provided.

    Synopsis

    For session session , GW2GetFileTypeID places in the object pointed to by outputBuffer , a pointer to a Glasswall file type ID associated with the file type fileType. The length of the description, in bytes, is placed in the size_t object pointed to by bufferLength.

    #include "glasswall.core2.api.h"
    
    int GW2GetFileTypeID(
        Session session,
        const char *fileType,
        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 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