| /************************************************************** |
| * |
| * 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 __com_sun_star_test_performance_XPerformanceTest_idl__ |
| #define __com_sun_star_test_performance_XPerformanceTest_idl__ |
| |
| #ifndef __com_sun_star_uno_XInterface_idl__ |
| #include <com/sun/star/uno/XInterface.idl> |
| #endif |
| |
| 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 |