sf-c-util/devdoc/fabric_string_result_requir...

2.6 KiB

fabric_string_result requirements

Overview

fabric_string_result is a module that encapsulates a string result so that it can be wrapped in the COM interface IFabricStringResult.

Design

fabric_string_result copies the string and whenever queried it returns a pointer to the copy.

Exposed API

    typedef struct FABRIC_STRING_RESULT_TAG* FABRIC_STRING_RESULT_HANDLE;

    MOCKABLE_FUNCTION(, FABRIC_STRING_RESULT_HANDLE, fabric_string_result_create, const wchar_t*, string_result);
    MOCKABLE_FUNCTION(, void, fabric_string_result_destroy, FABRIC_STRING_RESULT_HANDLE, fabric_string_result);
    MOCKABLE_FUNCTION(, LPCWSTR, fabric_string_result_get_String, FABRIC_STRING_RESULT_HANDLE, fabric_string_result);

fabric_string_result_create

MOCKABLE_FUNCTION(, FABRIC_STRING_RESULT_HANDLE, fabric_string_result_create, const wchar_t*, string_result);

fabric_string_result_create creates a new fabric string result handle.

SRS_FABRIC_STRING_RESULT_01_008: [ If string_result is NULL, fabric_string_result_create shall fail and return NULL. ]

SRS_FABRIC_STRING_RESULT_01_001: [ fabric_string_result_create shall allocate a new fabric string result instance and on success return a non-NULL pointer to it. ]

SRS_FABRIC_STRING_RESULT_01_002: [ fabric_string_result_create shall copy the string_result string so it can be returned by get_String. ]

SRS_FABRIC_STRING_RESULT_01_003: [ If any error occurs, fabric_string_result_create shall fail and return NULL. ]

fabric_string_result_destroy

MOCKABLE_FUNCTION(, void, fabric_string_result_destroy, FABRIC_STRING_RESULT_HANDLE, fabric_string_result);

fabric_string_result_destroy frees all resources associated with a fabric string result handle.

SRS_FABRIC_STRING_RESULT_01_004: [ If fabric_string_result is NULL, fabric_string_result_destroy shall return. ]

SRS_FABRIC_STRING_RESULT_01_005: [ Otherwise, fabric_string_result_destroy shall free the memory associated with the fabric string result instance. ]

fabric_string_result_get_String

MOCKABLE_FUNCTION(, LPCWSTR, fabric_string_result_get_String, FABRIC_STRING_RESULT_HANDLE, fabric_string_result);

fabric_string_result_get_String get the result string held by `fabric_string_result'.

SRS_FABRIC_STRING_RESULT_01_006: [ If fabric_string_result is NULL, fabric_string_result_get_String shall fail and return NULL. ]

SRS_FABRIC_STRING_RESULT_01_007: [ Otherwise, fabric_string_result_get_String shall return a pointer to the string copied in fabric_string_result_create. ]