2014-04-15  Sharath Kamath  <s.kamath@samsung.com>

        Implementation :: async waitForEvents.

        Fixed #135

        Reviewed by Antonio.

        Adding Sync version of waitForEvents.
        Also as per https://www.khronos.org/bugzilla/show_bug.cgi?id=1127,
        once a waitForEvents is called with setOfEvents calling waitForEvents() again,
        with same events again before completion of the callback will throw exception.

        Thus adding a flag to WebCLEvent object for waitForEvents.

        Also adding a check in WebCLCommandQueue interface to check if release is called
        on queue before calling callbacks.

        * Modules/webcl/WebCL.cpp:
        (WebCore::WebCL::WebCL):
        (WebCore::ccEventListFromWebCLEventList):
        (WebCore::WebCL::callbackProxyOnMainThread):
        (WebCore::WebCL::threadStarterWebCL):
        (WebCore::WebCL::waitForEventsImpl):
        (WebCore::WebCL::waitForEvents):
        * Modules/webcl/WebCL.h:
        (WebCore::WebCL::handleCallback):
        * Modules/webcl/WebCL.idl:
2014-05-02  Sharath Kamath  <s.kamath@samsung.com>

        Update kernel parser to provide type information as bool values.

        Issue #516

        Reviewed by NOBODY (OOPS!).

        Currently we store the type name as string which needs to be compared with
        the data type sent by user to validate the value against the kernel values.
        Since setArg is called in loops, string comparison can slow down the program.

        Instead we can store the type as a enum, with all types stored during parsing
        into the enum.

        Also since "*" in the data type is needed to check if the kernel needs a buffer or
        simple data type, retaining it with the typeName. It is discarded later to make WebCLKernelArgInfo in par with specification.

        No new tests.

        * Modules/webcl/WebCLKernelArgInfo.h:
        (WebCore::WebCLKernelArgInfo::create):
        (WebCore::WebCLKernelArgInfo::type):
        (WebCore::WebCLKernelArgInfo::WebCLKernelArgInfo):
        * Modules/webcl/WebCLKernelArgInfoProvider.cpp:
        (WebCore::isASCIILineBreakCharacter):
        (WebCore::isStarCharacter):
        (WebCore::WebCLKernelArgInfoProvider::ensureInfo):
        (WebCore::extractTypeEnum):
        (WebCore::WebCLKernelArgInfoProvider::parseAndAppendDeclaration):
2014-05-02  Sharath Kamath  <s.kamath@samsung.com>

        Validate the argValue type against expected type at index.

        Issue #515

        Reviewed by NOBODY (OOPS!).

        Checking in these overload if the kernel type and the
        value sent to the setArg() are matching.
        Also adding validation in all SetArg() API's to validate the value against
        kernel data.

        All setArg() test cases in conformance test suite.

        * Modules/webcl/WebCLKernel.cpp:
        (WebCore::WebCLKernel::setArg):
        (WebCore::WebCLKernel::isValidVectorLength):
        * Modules/webcl/WebCLKernel.h: