diff options
Diffstat (limited to 'testtools/source/bridgetest/idl')
-rw-r--r-- | testtools/source/bridgetest/idl/com/sun/star/test/performance/XPerformanceTest.idl | 130 |
1 files changed, 130 insertions, 0 deletions
diff --git a/testtools/source/bridgetest/idl/com/sun/star/test/performance/XPerformanceTest.idl b/testtools/source/bridgetest/idl/com/sun/star/test/performance/XPerformanceTest.idl new file mode 100644 index 000000000000..a5ea7040edb3 --- /dev/null +++ b/testtools/source/bridgetest/idl/com/sun/star/test/performance/XPerformanceTest.idl @@ -0,0 +1,130 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * 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 . + */ +#ifndef __com_sun_star_test_performance_XPerformanceTest_idl__ +#define __com_sun_star_test_performance_XPerformanceTest_idl__ + +#include <com/sun/star/uno/XInterface.idl> + +module com +{ +module sun +{ +module star +{ +module test +{ +module performance +{ + +/** struct of simple types to be carried +*/ +published struct SimpleTypes +{ + boolean Bool; + char Char; + byte Byte; + short Short; + unsigned short UShort; + long Long; + unsigned long ULong; + hyper Hyper; + unsigned hyper UHyper; + float Float; + double Double; +}; +/** struct ComplexTypes adding Sequence, String, Interface, Any to SimpleTypes +*/ +published struct ComplexTypes : SimpleTypes +{ + sequence< long > Sequence; + string String; + com::sun::star::uno::XInterface Interface; + any Any; +}; + +/** A performance test object has to be implemented in a special way, that: + <ul> + <li>queryInterface() execution times remain (nearly) static</li> + <li>functions kept simple, thus there is (nearly) no execution time of the function itself</li> + <li>no dynamic data is ever returned except of createObject(), so return 0, empty strings etc.</li> + </ul> + The interface is divided into three sections: + <ul> + <li>measuring asynchron/ synchron calls</li> + <li>complex data calls with/out return value; in/out parameters</li> + <li>single data types like long, float, string etc.</li> + <li>method calls versa attribute calls</li> + <li>raising RuntimeException</li> + </ul> +*/ +published interface XPerformanceTest : com::sun::star::uno::XInterface +{ + [oneway] void async(); + void sync(); + + ComplexTypes complex_in( [in] ComplexTypes aVal ); + ComplexTypes complex_inout( [inout] ComplexTypes aVal ); + + [oneway] void complex_oneway( [in] ComplexTypes aVal ); + void complex_noreturn( [in] ComplexTypes aVal ); + + XPerformanceTest createObject(); + + [attribute] long Long_attr; + [attribute] hyper Hyper_attr; + [attribute] float Float_attr; + [attribute] double Double_attr; + [attribute] string String_attr; + [attribute] com::sun::star::uno::XInterface Interface_attr; + [attribute] any Any_attr; + [attribute] sequence< com::sun::star::uno::XInterface > Sequence_attr; + [attribute] ComplexTypes Struct_attr; + + long getLong(); + void setLong( [in] long n ); + hyper getHyper(); + void setHyper( [in] hyper n ); + float getFloat(); + void setFloat( [in] float f ); + double getDouble(); + void setDouble( [in] double f ); + string getString(); + void setString( [in] string s ); + com::sun::star::uno::XInterface getInterface(); + void setInterface( [in] com::sun::star::uno::XInterface x ); + any getAny(); + void setAny( [in] any a ); + sequence< com::sun::star::uno::XInterface > getSequence(); + void setSequence( [in] sequence< com::sun::star::uno::XInterface > seq ); + ComplexTypes getStruct(); + void setStruct( [in] ComplexTypes c ); + + void raiseRuntimeException(); +}; + + +}; +}; +}; +}; +}; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |