1 /************************************************************** 2 * 3 * Licensed to the Apache Software Foundation (ASF) under one 4 * or more contributor license agreements. See the NOTICE file 5 * distributed with this work for additional information 6 * regarding copyright ownership. The ASF licenses this file 7 * to you under the Apache License, Version 2.0 (the 8 * "License"); you may not use this file except in compliance 9 * with the License. You may obtain a copy of the License at 10 * 11 * http://www.apache.org/licenses/LICENSE-2.0 12 * 13 * Unless required by applicable law or agreed to in writing, 14 * software distributed under the License is distributed on an 15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16 * KIND, either express or implied. See the License for the 17 * specific language governing permissions and limitations 18 * under the License. 19 * 20 *************************************************************/ 21 22 23 24 #ifndef __FRAMEWORK_JOBS_JOBRESULT_HXX_ 25 #define __FRAMEWORK_JOBS_JOBRESULT_HXX_ 26 27 //_______________________________________ 28 // my own includes 29 30 #include <threadhelp/threadhelpbase.hxx> 31 #include <macros/debug.hxx> 32 #include <stdtypes.h> 33 #include <general.h> 34 35 //_______________________________________ 36 // interface includes 37 #include <com/sun/star/beans/NamedValue.hpp> 38 #include <com/sun/star/frame/DispatchResultEvent.hpp> 39 40 //_______________________________________ 41 // other includes 42 #include <rtl/ustring.hxx> 43 44 //_______________________________________ 45 // namespace 46 47 namespace framework{ 48 49 //_______________________________________ 50 // public const 51 52 //_______________________________________ 53 /** 54 @short represent a result of a finished job execution 55 @descr Such result instance transport all neccessarry 56 data from the code place where the job was finished 57 to the outside code, where e.g. listener must be notified. 58 */ 59 class JobResult : private ThreadHelpBase 60 { 61 //___________________________________ 62 // types 63 64 public: 65 66 /** 67 These enum values are used to build a flag mask of possible set 68 parts of an analyzed pure job execution result. 69 An user of this class can decide, if a member of us can be valid 70 or not. So it can indicate, if a job used the special part inside 71 his returned result protocol. 72 To be usable as flags - it must be values of set {0,1,2,4,8,16 ...}! 73 */ 74 enum EParts 75 { 76 E_NOPART = 0, 77 E_ARGUMENTS = 1, 78 E_DEACTIVATE = 2, 79 E_DISPATCHRESULT = 4 80 }; 81 82 //___________________________________ 83 // member 84 85 private: 86 87 /** hold the original pure result, which was given back by an 88 executed job 89 We analyze it and use it to set all our other members. 90 */ 91 css::uno::Any m_aPureResult; 92 93 /** 94 an user of us must know, which (possible) parts of 95 a "pure result" was really set by an executed job. 96 Means which other members of this class are valid. 97 This mask can be used to find it out. 98 */ 99 sal_uInt32 m_eParts; 100 101 /** 102 a job can have persistent data 103 They are part of the pure result and will be used to 104 write it to the configuration. But that's part of any 105 user of us. We provide this information here only. 106 */ 107 css::uno::Sequence< css::beans::NamedValue > m_lArguments; 108 109 /** 110 an executed job can force his deactivation 111 But we provide this information here only. 112 Doing so is part of any user of us. 113 */ 114 sal_Bool m_bDeactivate; 115 116 /** 117 represent the part "DispatchResult" 118 It's a full filled event type, which was given 119 back by the executed job. Any user of us can send 120 it to his registered result listener directly. 121 */ 122 css::frame::DispatchResultEvent m_aDispatchResult; 123 124 //___________________________________ 125 // native interface 126 127 public: 128 129 JobResult( ); 130 JobResult( const com::sun::star::uno::Any& aResult ); 131 JobResult( const JobResult& rCopy ); 132 virtual ~JobResult( ); 133 134 void operator=( const JobResult& rCopy ); 135 136 sal_Bool existPart ( sal_uInt32 eParts ) const; 137 css::uno::Sequence< css::beans::NamedValue > getArguments ( ) const; 138 css::frame::DispatchResultEvent getDispatchResult( ) const; 139 }; 140 141 } // namespace framework 142 143 #endif // __FRAMEWORK_JOBS_JOBRESULT_HXX_ 144