/* * Copyright (c) 2011 The WebRTC project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ // Generic unstable sorting routines. #ifndef WEBRTC_SYSTEM_WRAPPERS_INTERFACE_SORT_H_ #define WEBRTC_SYSTEM_WRAPPERS_INTERFACE_SORT_H_ #include "typedefs.h" #include "common_types.h" namespace webrtc { enum Type { TYPE_Word8, TYPE_UWord8, TYPE_Word16, TYPE_UWord16, TYPE_Word32, TYPE_UWord32, TYPE_Word64, TYPE_UWord64, TYPE_Float32, TYPE_Float64 }; // Sorts intrinsic data types. // // data [in/out] A pointer to an array of intrinsic type. // Upon return it will be sorted in ascending order. // numOfElements The number of elements in the array. // dataType Enum corresponding to the type of the array. // // returns 0 on success, -1 on failure. WebRtc_Word32 Sort(void* data, WebRtc_UWord32 numOfElements, Type dataType); // Sorts arbitrary data types. This requires an array of intrinsically typed // key values which will be used to sort the data array. There must be a // one-to-one correspondence between data elements and key elements, with // corresponding elements sharing the same position in their respective // arrays. // // data [in/out] A pointer to an array of arbitrary type. // Upon return it will be sorted in ascending order. // key [in] A pointer to an array of keys used to sort the // data array. // numOfElements The number of elements in the arrays. // sizeOfElement The size, in bytes, of the data array. // keyType Enum corresponding to the type of the key array. // // returns 0 on success, -1 on failure. // WebRtc_Word32 KeySort(void* data, void* key, WebRtc_UWord32 numOfElements, WebRtc_UWord32 sizeOfElement, Type keyType); } #endif // WEBRTC_SYSTEM_WRAPPERS_INTERFACE_SORT_H_