| 1856 | } |
| 1857 | |
| 1858 | static void* registerCreateCommandArgs(PyObject *kargs){ |
| 1859 | const char* trigger = NULL; |
| 1860 | const char* keyPrefix = NULL; |
| 1861 | const char* hook = NULL; |
| 1862 | int inOrder = 0; |
| 1863 | PyObject* pyTrigger = GearsPyDict_GetItemString(kargs, "trigger"); |
| 1864 | if(pyTrigger){ |
| 1865 | if(!PyUnicode_Check(pyTrigger)){ |
| 1866 | PyErr_SetString(GearsError, "trigger argument is not string"); |
| 1867 | return NULL; |
| 1868 | } |
| 1869 | trigger = PyUnicode_AsUTF8AndSize(pyTrigger, NULL); |
| 1870 | } |
| 1871 | |
| 1872 | PyObject* pyInOrder = GearsPyDict_GetItemString(kargs, "inorder"); |
| 1873 | if(pyInOrder){ |
| 1874 | if(!PyBool_Check(pyInOrder)){ |
| 1875 | PyErr_SetString(GearsError, "inorder argument is be boolean"); |
| 1876 | return NULL; |
| 1877 | } |
| 1878 | inOrder = Py_True == pyInOrder ? 1 : 0; |
| 1879 | } |
| 1880 | |
| 1881 | PyObject* PykeyPrefix = GearsPyDict_GetItemString(kargs, "keyprefix"); |
| 1882 | if(PykeyPrefix){ |
| 1883 | if(!PyUnicode_Check(PykeyPrefix)){ |
| 1884 | PyErr_SetString(GearsError, "keyprefix argument is not string"); |
| 1885 | return NULL; |
| 1886 | } |
| 1887 | keyPrefix = PyUnicode_AsUTF8AndSize(PykeyPrefix, NULL); |
| 1888 | } |
| 1889 | |
| 1890 | PyObject* PyHook = GearsPyDict_GetItemString(kargs, "hook"); |
| 1891 | if(PyHook){ |
| 1892 | if(!PyUnicode_Check(PyHook)){ |
| 1893 | PyErr_SetString(GearsError, "hook argument is not string"); |
| 1894 | return NULL; |
| 1895 | } |
| 1896 | hook = PyUnicode_AsUTF8AndSize(PyHook, NULL); |
| 1897 | } |
| 1898 | |
| 1899 | if(trigger){ |
| 1900 | if(keyPrefix || hook){ |
| 1901 | PyErr_SetString(GearsError, "trigger argument can not be given with keyprefix or hook"); |
| 1902 | return NULL; |
| 1903 | } |
| 1904 | return RedisGears_CommandReaderTriggerArgsCreate(trigger, inOrder); |
| 1905 | }else{ |
| 1906 | if(!hook){ |
| 1907 | PyErr_SetString(GearsError, "no trigger or hook argument was given"); |
| 1908 | return NULL; |
| 1909 | } |
| 1910 | return RedisGears_CommandReaderTriggerArgsCreateHook(hook, keyPrefix, inOrder); |
| 1911 | } |
| 1912 | |
| 1913 | } |
| 1914 | |
| 1915 | static void* registerCreateArgs(FlatExecutionPlan* fep, PyObject *kargs, ExecutionMode mode){ |
no test coverage detected