1 /************************************************************************* 2 * 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * Copyright 2000, 2010 Oracle and/or its affiliates. 6 * 7 * OpenOffice.org - a multi-platform office productivity suite 8 * 9 * This file is part of OpenOffice.org. 10 * 11 * OpenOffice.org is free software: you can redistribute it and/or modify 12 * it under the terms of the GNU Lesser General Public License version 3 13 * only, as published by the Free Software Foundation. 14 * 15 * OpenOffice.org is distributed in the hope that it will be useful, 16 * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 * GNU Lesser General Public License version 3 for more details 19 * (a copy is included in the LICENSE file that accompanied this code). 20 * 21 * You should have received a copy of the GNU Lesser General Public License 22 * version 3 along with OpenOffice.org. If not, see 23 * <http://www.openoffice.org/license.html> 24 * for a copy of the LGPLv3 License. 25 * 26 ************************************************************************/ 27 #ifndef _UNO_SEQUENCE2_H_ 28 #define _UNO_SEQUENCE2_H_ 29 30 #include <sal/types.h> 31 #include <uno/data.h> 32 33 #ifdef __cplusplus 34 extern "C" 35 { 36 #endif 37 38 struct _typelib_TypeDescriptionReference; 39 struct _typelib_TypeDescription; 40 typedef sal_Sequence uno_Sequence; 41 42 /** Assigns a sequence. 43 44 @param ppDest destinstaion sequence 45 @param pSource source sequence 46 @param pTypeDescr type description of the sequence and NOT of an element 47 @param release function called each time an interface needs to 48 be released; defaults (0) to uno 49 */ 50 void SAL_CALL uno_sequence_assign( 51 uno_Sequence ** ppDest, 52 uno_Sequence * pSource, 53 struct _typelib_TypeDescription * pTypeDescr, 54 uno_ReleaseFunc release ) 55 SAL_THROW_EXTERN_C(); 56 /** Assigns a sequence. 57 58 @param ppDest destinstaion sequence 59 @param pSource source sequence 60 @param pType type of the sequence and NOT of an element 61 @param release function called each time an interface needs to 62 be released; defaults (0) to uno 63 */ 64 void SAL_CALL uno_type_sequence_assign( 65 uno_Sequence ** ppDest, 66 uno_Sequence * pSource, 67 struct _typelib_TypeDescriptionReference * pType, 68 uno_ReleaseFunc release ) 69 SAL_THROW_EXTERN_C(); 70 71 /** Constructs a new sequence with given elements. 72 73 @param ppSequence out parameter sequence; 74 0 if memory allocation has failed 75 @param pTypeDescr type description of the sequence and NOT of an 76 element 77 @param pElements if 0, then all elements are default constructed 78 @param len number of elements 79 @param acquire function called each time an interface needs to 80 be acquired; defaults (0) to uno 81 @return false, if memoray allocation has failed 82 */ 83 sal_Bool SAL_CALL uno_sequence_construct( 84 uno_Sequence ** ppSequence, 85 struct _typelib_TypeDescription * pTypeDescr, 86 void * pElements, sal_Int32 len, 87 uno_AcquireFunc acquire ) 88 SAL_THROW_EXTERN_C(); 89 /** Constructs a new sequence with given elements. 90 91 @param ppSequence out parameter sequence; 92 0 if memory allocation has failed 93 @param pType type of the sequence and NOT of an element 94 @param pElements if 0, then all elements are default constructed 95 @param len number of elements 96 @param acquire function called each time an interface needs to 97 be acquired; defaults (0) to uno 98 @return false, if memoray allocation has failed 99 */ 100 sal_Bool SAL_CALL uno_type_sequence_construct( 101 uno_Sequence ** ppSequence, 102 struct _typelib_TypeDescriptionReference * pType, 103 void * pElements, sal_Int32 len, 104 uno_AcquireFunc acquire ) 105 SAL_THROW_EXTERN_C(); 106 107 /** Assures that the reference count of the given sequence is one. 108 Otherwise a new copy of the sequence is created with a reference count 109 of one. 110 111 @param ppSequence inout sequence 112 @param pTypeDescr type description of sequence 113 @param acquire function called each time an interface needs to 114 be acquired; defaults (0) to uno 115 @param release function called each time an interface needs to 116 be released; defaults (0) to uno 117 @return false, if memoray allocation has failed 118 */ 119 sal_Bool SAL_CALL uno_sequence_reference2One( 120 uno_Sequence ** ppSequence, 121 struct _typelib_TypeDescription * pTypeDescr, 122 uno_AcquireFunc acquire, 123 uno_ReleaseFunc release ) 124 SAL_THROW_EXTERN_C(); 125 /** Assures that the reference count of the given sequence is one. 126 Otherwise a new copy of the sequence is created with a reference count 127 of one. 128 129 @param ppSequence inout sequence 130 @param pType type of sequence 131 @param acquire function called each time an interface needs to 132 be acquired; defaults (0) to uno 133 @param release function called each time an interface needs to 134 be released; defaults (0) to uno 135 @return false, if memoray allocation has failed 136 */ 137 sal_Bool SAL_CALL uno_type_sequence_reference2One( 138 uno_Sequence ** ppSequence, 139 struct _typelib_TypeDescriptionReference * pType, 140 uno_AcquireFunc acquire, 141 uno_ReleaseFunc release ) 142 SAL_THROW_EXTERN_C(); 143 144 /** Reallocates length of a sequence. This truncates a sequence or enlarges 145 it default constructing appended elements. 146 147 @param ppSequence inout sequence 148 @param pTypeDescr type description of sequence 149 @param nSize new size of sequence 150 @param acquire function called each time an interface needs to 151 be acquired; defaults (0) to uno 152 @param release function called each time an interface needs to 153 be released; defaults (0) to uno 154 @return false, if memoray allocation has failed 155 */ 156 sal_Bool SAL_CALL uno_sequence_realloc( 157 uno_Sequence ** ppSequence, 158 struct _typelib_TypeDescription * pTypeDescr, 159 sal_Int32 nSize, 160 uno_AcquireFunc acquire, 161 uno_ReleaseFunc release ) 162 SAL_THROW_EXTERN_C(); 163 /** Reallocates length of a sequence. This truncates a sequence or enlarges 164 it default constructing appended elements. 165 166 @param ppSequence inout sequence 167 @param pType type of sequence 168 @param nSize new size of sequence 169 @param acquire function called each time an interface needs to 170 be acquired; defaults (0) to uno 171 @param release function called each time an interface needs to 172 be released; defaults (0) to uno 173 @return false, if memoray allocation has failed 174 */ 175 sal_Bool SAL_CALL uno_type_sequence_realloc( 176 uno_Sequence ** ppSequence, 177 struct _typelib_TypeDescriptionReference * pType, 178 sal_Int32 nSize, 179 uno_AcquireFunc acquire, 180 uno_ReleaseFunc release ) 181 SAL_THROW_EXTERN_C(); 182 183 #ifdef __cplusplus 184 } 185 #endif 186 187 #endif 188