summaryrefslogtreecommitdiffstats
path: root/testtools/source/bridgetest/idl/com/sun
diff options
context:
space:
mode:
Diffstat (limited to 'testtools/source/bridgetest/idl/com/sun')
-rw-r--r--testtools/source/bridgetest/idl/com/sun/star/test/performance/XPerformanceTest.idl130
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 000000000..b92b7b4c3
--- /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
+{
+ void async();
+ void sync();
+
+ ComplexTypes complexIn( [in] ComplexTypes aVal );
+ ComplexTypes complexInout( [inout] ComplexTypes aVal );
+
+ void complexOneway( [in] ComplexTypes aVal );
+ void complexNoreturn( [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: */