diff options
Diffstat (limited to 'src/system_wrappers/interface/sort.h')
-rw-r--r-- | src/system_wrappers/interface/sort.h | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/src/system_wrappers/interface/sort.h b/src/system_wrappers/interface/sort.h new file mode 100644 index 0000000000..fb25ecfc6f --- /dev/null +++ b/src/system_wrappers/interface/sort.h @@ -0,0 +1,64 @@ +/* + * 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_ |