/************************************************************** * * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. * *************************************************************/ #ifndef _RTL_TRES_H_ #define _RTL_TRES_H_ #include #include #ifdef __cplusplus extern "C" { #endif /* comandline flags */ #define rtl_tres_Flag_BOOM 0x00000001 #define rtl_tres_Flag_VERBOSE 0x00000002 #define rtl_tres_Flag_SKIP 0x00000004 #define rtl_tres_Flag_LOG 0x00000010 #define rtl_tres_Flag_HIS 0x00000100 #define rtl_tres_Flag_TIME 0x00000200 #define rtl_tres_Flag_MSG 0x00000400 #define rtl_tres_Flag_QUIET 0x00000800 /* state flags */ #define rtl_tres_Flag_SUB 0x01000000 #define rtl_tres_Flag_PASSED 0x10000000 #define rtl_tres_Flag_OK 0x20000000 /* forward declaration and type definition */ struct _rtl_TestResult; typedef struct _rtl_TestResult rtl_TestResult; typedef void* rtl_funcstate; typedef void* rtl_cmpstate; /* type definitions of function pointers which can be overloaded */ typedef sal_Bool (SAL_CALL *rtl_tres_state_ptr)( rtl_TestResult*, sal_Bool, const sal_Char*, const sal_Char*, sal_Bool ); typedef void (SAL_CALL *rtl_tres_end_ptr)( rtl_TestResult*, const sal_Char* ); typedef sal_Bool (SAL_CALL *rtl_tres_ispassed_ptr)( rtl_TestResult* ); typedef sal_Bool (SAL_CALL *rtl_tres_isok_ptr)( rtl_TestResult* ); typedef rtl_funcstate (SAL_CALL *rtl_tres_funcstate_ptr)( rtl_TestResult* ); typedef sal_Bool (SAL_CALL *rtl_tres_isbit_ptr)( rtl_TestResult*, sal_uInt32 ); typedef rtl_funcstate (SAL_CALL *rtl_tres_getnextfuncstate_ptr) ( rtl_funcstate ); typedef rtl_funcstate (SAL_CALL *rtl_tres_getprevfuncstate_ptr) ( rtl_funcstate ); typedef sal_uInt32 (SAL_CALL *rtl_tres_getflags_ptr)( rtl_funcstate ); typedef rtl_String* (SAL_CALL *rtl_tres_getname_ptr)( rtl_funcstate ); typedef sal_uInt32 (SAL_CALL *rtl_tres_getstart_ptr)( rtl_funcstate ); typedef sal_uInt32 (SAL_CALL *rtl_tres_getstop_ptr)( rtl_funcstate ); typedef rtl_cmpstate (SAL_CALL *rtl_tres_getcmpstate_ptr)( rtl_funcstate ); typedef sal_Bool (SAL_CALL *rtl_tres_getstat_ptr)( rtl_cmpstate ); typedef rtl_String* (SAL_CALL *rtl_tres_getmsg_ptr)( rtl_cmpstate ); typedef rtl_cmpstate (SAL_CALL *rtl_tres_getnextcmpstate_ptr)( rtl_cmpstate ); /* type definition of vtable structure for testresult */ typedef struct _rtl_TestResult_vtable { sal_uInt32 vtablesize; rtl_tres_state_ptr state_; rtl_tres_end_ptr end_; rtl_tres_ispassed_ptr ispassed; rtl_tres_isok_ptr isok; rtl_tres_funcstate_ptr funcstate; rtl_tres_isbit_ptr isbit; rtl_tres_getnextfuncstate_ptr nextfuncstate; rtl_tres_getprevfuncstate_ptr prevfuncstate; rtl_tres_getflags_ptr flags; rtl_tres_getname_ptr name; rtl_tres_getstart_ptr start; rtl_tres_getstop_ptr stop; rtl_tres_getcmpstate_ptr cmpstate; rtl_tres_getstat_ptr stat; rtl_tres_getmsg_ptr msg; rtl_tres_getnextcmpstate_ptr nextcmpstate; } rtl_TestResult_vtable; /* type definition of testresult structure */ struct _rtl_TestResult { rtl_TestResult_vtable * pFuncs; void * pExternalData; }; /* exports */ rtl_TestResult* SAL_CALL rtl_tres_create( const sal_Char* meth, sal_uInt32 flags ); void SAL_CALL rtl_tres_destroy( rtl_TestResult* res ); #ifdef __cplusplus } #endif #endif /* _RTL_TRES_H_ */