FreeRDP
|
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdarg.h>
#include <winpr/winpr.h>
#include <winpr/wtypes.h>
#include <winpr/assert.h>
#include <winpr/crt.h>
#include <winpr/synch.h>
#include <winpr/stream.h>
Data Structures | |
struct | wObject |
struct | wDictionary |
struct | wListDictionaryItem |
struct | wListDictionary |
struct | wReference |
struct | wReferenceTable |
struct | wCountdownEvent |
struct | wMessage |
struct | wMessagePipe |
struct | wEventArgs |
struct | wEventType |
Macros | |
#define | ListDictionary_KeyObject(_dictionary) (&_dictionary->objectKey) |
#define | ListDictionary_ValueObject(_dictionary) (&_dictionary->objectValue) |
#define | WMQ_QUIT 0xFFFFFFFF |
#define | MAX_EVENT_HANDLERS 32 |
#define | EventArgsInit(_event_args, _sender) |
#define | DEFINE_EVENT_HANDLER(name) typedef void (*p##name##EventHandler)(void* context, const name##EventArgs* e) |
#define | DEFINE_EVENT_RAISE(name) |
#define | DEFINE_EVENT_SUBSCRIBE(name) |
#define | DEFINE_EVENT_UNSUBSCRIBE(name) |
#define | DEFINE_EVENT_BEGIN(name) |
#define | DEFINE_EVENT_END(name) |
#define | DEFINE_EVENT_ENTRY(name) |
Typedefs | |
typedef void *(* | OBJECT_NEW_FN) (const void *val) |
typedef void(* | OBJECT_INIT_FN) (void *obj) |
typedef void(* | OBJECT_UNINIT_FN) (void *obj) |
typedef void(* | OBJECT_FREE_FN) (void *obj) |
typedef BOOL(* | OBJECT_EQUALS_FN) (const void *objA, const void *objB) |
typedef BOOL(* | ArrayList_ForEachFkt) (void *data, size_t index, va_list ap) |
typedef int(* | REFERENCE_FREE) (void *context, void *ptr) |
typedef UINT32(* | HASH_TABLE_HASH_FN) (const void *key) |
typedef BOOL(* | HASH_TABLE_FOREACH_FN) (const void *key, void *value, void *arg) |
typedef void(* | MESSAGE_FREE_FN) (wMessage *message) |
typedef void(* | pEventHandler) (void *context, const wEventArgs *e) |
Functions | |
WINPR_API size_t | Queue_Count (wQueue *queue) |
WINPR_API void | Queue_Lock (wQueue *queue) |
WINPR_API void | Queue_Unlock (wQueue *queue) |
WINPR_API HANDLE | Queue_Event (wQueue *queue) |
WINPR_API wObject * | Queue_Object (wQueue *queue) |
WINPR_API void | Queue_Clear (wQueue *queue) |
WINPR_API BOOL | Queue_Contains (wQueue *queue, const void *obj) |
WINPR_API BOOL | Queue_Enqueue (wQueue *queue, const void *obj) |
Pushes a new element into the queue. If a fnObjectNew is set, the element is copied and the queue takes ownership of the memory, otherwise the ownership stays with the caller. More... | |
WINPR_API void * | Queue_Dequeue (wQueue *queue) |
returns the element at the top of the queue. The element is removed from the queue, ownership of the element is passed on to the caller. More... | |
WINPR_API void * | Queue_Peek (wQueue *queue) |
returns the element at the top of the queue. The element is not removed from the queue, ownership of the element stays with the queue. More... | |
WINPR_API void | Queue_Discard (wQueue *queue) |
Removes the element at the top of the queue. If fnObjectFree is set, the element is freed. This can be used in combination with Queue_Peek to handle an element and discard it with this function afterward. An alternative is Queue_Dequeue with calling the appropriate free function afterward. More... | |
WINPR_API wQueue * | Queue_New (BOOL synchronized, SSIZE_T capacity, SSIZE_T growthFactor) |
WINPR_API void | Queue_Free (wQueue *queue) |
WINPR_API size_t | Stack_Count (wStack *stack) |
WINPR_API BOOL | Stack_IsSynchronized (wStack *stack) |
WINPR_API wObject * | Stack_Object (wStack *stack) |
WINPR_API void | Stack_Clear (wStack *stack) |
WINPR_API BOOL | Stack_Contains (wStack *stack, const void *obj) |
WINPR_API void | Stack_Push (wStack *stack, void *obj) |
WINPR_API void * | Stack_Pop (wStack *stack) |
WINPR_API void * | Stack_Peek (wStack *stack) |
WINPR_API wStack * | Stack_New (BOOL synchronized) |
WINPR_API void | Stack_Free (wStack *stack) |
WINPR_API size_t | ArrayList_Capacity (wArrayList *arrayList) |
WINPR_API size_t | ArrayList_Count (wArrayList *arrayList) |
WINPR_API size_t | ArrayList_Items (wArrayList *arrayList, ULONG_PTR **ppItems) |
WINPR_API BOOL | ArrayList_IsFixedSized (wArrayList *arrayList) |
WINPR_API BOOL | ArrayList_IsReadOnly (wArrayList *arrayList) |
WINPR_API BOOL | ArrayList_IsSynchronized (wArrayList *arrayList) |
WINPR_API void | ArrayList_Lock (wArrayList *arrayList) |
WINPR_API void | ArrayList_Unlock (wArrayList *arrayList) |
WINPR_API void * | ArrayList_GetItem (wArrayList *arrayList, size_t index) |
WINPR_API BOOL | ArrayList_SetItem (wArrayList *arrayList, size_t index, const void *obj) |
WINPR_API wObject * | ArrayList_Object (wArrayList *arrayList) |
WINPR_API BOOL | ArrayList_ForEach (wArrayList *arrayList, ArrayList_ForEachFkt fkt,...) |
WINPR_API BOOL | ArrayList_ForEachAP (wArrayList *arrayList, ArrayList_ForEachFkt fkt, va_list ap) |
WINPR_API void | ArrayList_Clear (wArrayList *arrayList) |
WINPR_API BOOL | ArrayList_Contains (wArrayList *arrayList, const void *obj) |
WINPR_API BOOL | ArrayList_Append (wArrayList *arrayList, const void *obj) |
WINPR_API BOOL | ArrayList_Insert (wArrayList *arrayList, size_t index, const void *obj) |
WINPR_API BOOL | ArrayList_Remove (wArrayList *arrayList, const void *obj) |
WINPR_API BOOL | ArrayList_RemoveAt (wArrayList *arrayList, size_t index) |
WINPR_API SSIZE_T | ArrayList_IndexOf (wArrayList *arrayList, const void *obj, SSIZE_T startIndex, SSIZE_T count) |
WINPR_API SSIZE_T | ArrayList_LastIndexOf (wArrayList *arrayList, const void *obj, SSIZE_T startIndex, SSIZE_T count) |
WINPR_API wArrayList * | ArrayList_New (BOOL synchronized) |
WINPR_API void | ArrayList_Free (wArrayList *arrayList) |
WINPR_API int | ListDictionary_Count (wListDictionary *listDictionary) |
WINPR_API void | ListDictionary_Lock (wListDictionary *listDictionary) |
WINPR_API void | ListDictionary_Unlock (wListDictionary *listDictionary) |
WINPR_API BOOL | ListDictionary_Add (wListDictionary *listDictionary, const void *key, void *value) |
WINPR_API void * | ListDictionary_Remove (wListDictionary *listDictionary, const void *key) |
WINPR_API void * | ListDictionary_Remove_Head (wListDictionary *listDictionary) |
WINPR_API void | ListDictionary_Clear (wListDictionary *listDictionary) |
WINPR_API BOOL | ListDictionary_Contains (wListDictionary *listDictionary, const void *key) |
WINPR_API int | ListDictionary_GetKeys (wListDictionary *listDictionary, ULONG_PTR **ppKeys) |
WINPR_API void * | ListDictionary_GetItemValue (wListDictionary *listDictionary, const void *key) |
WINPR_API BOOL | ListDictionary_SetItemValue (wListDictionary *listDictionary, const void *key, void *value) |
WINPR_API wListDictionary * | ListDictionary_New (BOOL synchronized) |
WINPR_API void | ListDictionary_Free (wListDictionary *listDictionary) |
WINPR_API int | LinkedList_Count (wLinkedList *list) |
WINPR_API void * | LinkedList_First (wLinkedList *list) |
WINPR_API void * | LinkedList_Last (wLinkedList *list) |
WINPR_API BOOL | LinkedList_Contains (wLinkedList *list, const void *value) |
WINPR_API void | LinkedList_Clear (wLinkedList *list) |
WINPR_API BOOL | LinkedList_AddFirst (wLinkedList *list, const void *value) |
WINPR_API BOOL | LinkedList_AddLast (wLinkedList *list, const void *value) |
WINPR_API BOOL | LinkedList_Remove (wLinkedList *list, const void *value) |
WINPR_API void | LinkedList_RemoveFirst (wLinkedList *list) |
WINPR_API void | LinkedList_RemoveLast (wLinkedList *list) |
WINPR_API void | LinkedList_Enumerator_Reset (wLinkedList *list) |
WINPR_API void * | LinkedList_Enumerator_Current (wLinkedList *list) |
WINPR_API BOOL | LinkedList_Enumerator_MoveNext (wLinkedList *list) |
WINPR_API wLinkedList * | LinkedList_New (void) |
WINPR_API void | LinkedList_Free (wLinkedList *list) |
WINPR_API wObject * | LinkedList_Object (wLinkedList *list) |
WINPR_API UINT32 | ReferenceTable_Add (wReferenceTable *referenceTable, void *ptr) |
WINPR_API UINT32 | ReferenceTable_Release (wReferenceTable *referenceTable, void *ptr) |
WINPR_API wReferenceTable * | ReferenceTable_New (BOOL synchronized, void *context, REFERENCE_FREE ReferenceFree) |
WINPR_API void | ReferenceTable_Free (wReferenceTable *referenceTable) |
WINPR_API DWORD | CountdownEvent_CurrentCount (wCountdownEvent *countdown) |
WINPR_API DWORD | CountdownEvent_InitialCount (wCountdownEvent *countdown) |
WINPR_API BOOL | CountdownEvent_IsSet (wCountdownEvent *countdown) |
WINPR_API HANDLE | CountdownEvent_WaitHandle (wCountdownEvent *countdown) |
WINPR_API void | CountdownEvent_AddCount (wCountdownEvent *countdown, DWORD signalCount) |
WINPR_API BOOL | CountdownEvent_Signal (wCountdownEvent *countdown, DWORD signalCount) |
WINPR_API void | CountdownEvent_Reset (wCountdownEvent *countdown, DWORD count) |
WINPR_API wCountdownEvent * | CountdownEvent_New (DWORD initialCount) |
WINPR_API void | CountdownEvent_Free (wCountdownEvent *countdown) |
WINPR_API size_t | HashTable_Count (wHashTable *table) |
WINPR_API BOOL | HashTable_Insert (wHashTable *table, const void *key, const void *value) |
WINPR_API BOOL | HashTable_Remove (wHashTable *table, const void *key) |
WINPR_API void | HashTable_Clear (wHashTable *table) |
WINPR_API BOOL | HashTable_Contains (wHashTable *table, const void *key) |
WINPR_API BOOL | HashTable_ContainsKey (wHashTable *table, const void *key) |
WINPR_API BOOL | HashTable_ContainsValue (wHashTable *table, const void *value) |
WINPR_API void * | HashTable_GetItemValue (wHashTable *table, const void *key) |
WINPR_API BOOL | HashTable_SetItemValue (wHashTable *table, const void *key, const void *value) |
WINPR_API size_t | HashTable_GetKeys (wHashTable *table, ULONG_PTR **ppKeys) |
WINPR_API BOOL | HashTable_Foreach (wHashTable *table, HASH_TABLE_FOREACH_FN fn, VOID *arg) |
WINPR_API UINT32 | HashTable_PointerHash (const void *pointer) |
WINPR_API BOOL | HashTable_PointerCompare (const void *pointer1, const void *pointer2) |
WINPR_API UINT32 | HashTable_StringHash (const void *key) |
WINPR_API BOOL | HashTable_StringCompare (const void *string1, const void *string2) |
WINPR_API void * | HashTable_StringClone (const void *str) |
WINPR_API void | HashTable_StringFree (void *str) |
WINPR_API wHashTable * | HashTable_New (BOOL synchronized) |
WINPR_API void | HashTable_Free (wHashTable *table) |
WINPR_API void | HashTable_Lock (wHashTable *table) |
WINPR_API void | HashTable_Unlock (wHashTable *table) |
WINPR_API wObject * | HashTable_KeyObject (wHashTable *table) |
WINPR_API wObject * | HashTable_ValueObject (wHashTable *table) |
WINPR_API BOOL | HashTable_SetHashFunction (wHashTable *table, HASH_TABLE_HASH_FN fn) |
WINPR_API BOOL | HashTable_SetupForStringData (wHashTable *table, BOOL stringValues) |
WINPR_API SSIZE_T | BufferPool_GetPoolSize (wBufferPool *pool) |
WINPR_API SSIZE_T | BufferPool_GetBufferSize (wBufferPool *pool, const void *buffer) |
WINPR_API void * | BufferPool_Take (wBufferPool *pool, SSIZE_T bufferSize) |
WINPR_API BOOL | BufferPool_Return (wBufferPool *pool, void *buffer) |
WINPR_API void | BufferPool_Clear (wBufferPool *pool) |
WINPR_API wBufferPool * | BufferPool_New (BOOL synchronized, SSIZE_T fixedSize, DWORD alignment) |
WINPR_API void | BufferPool_Free (wBufferPool *pool) |
WINPR_API void * | ObjectPool_Take (wObjectPool *pool) |
WINPR_API void | ObjectPool_Return (wObjectPool *pool, void *obj) |
WINPR_API void | ObjectPool_Clear (wObjectPool *pool) |
WINPR_API wObject * | ObjectPool_Object (wObjectPool *pool) |
WINPR_API wObjectPool * | ObjectPool_New (BOOL synchronized) |
WINPR_API void | ObjectPool_Free (wObjectPool *pool) |
WINPR_API wObject * | MessageQueue_Object (wMessageQueue *queue) |
WINPR_API HANDLE | MessageQueue_Event (wMessageQueue *queue) |
WINPR_API BOOL | MessageQueue_Wait (wMessageQueue *queue) |
WINPR_API size_t | MessageQueue_Size (wMessageQueue *queue) |
WINPR_API BOOL | MessageQueue_Dispatch (wMessageQueue *queue, const wMessage *message) |
WINPR_API BOOL | MessageQueue_Post (wMessageQueue *queue, void *context, UINT32 type, void *wParam, void *lParam) |
WINPR_API BOOL | MessageQueue_PostQuit (wMessageQueue *queue, int nExitCode) |
WINPR_API int | MessageQueue_Get (wMessageQueue *queue, wMessage *message) |
WINPR_API int | MessageQueue_Peek (wMessageQueue *queue, wMessage *message, BOOL remove) |
WINPR_API int | MessageQueue_Clear (wMessageQueue *queue) |
Clears all elements in a message queue. More... | |
WINPR_API wMessageQueue * | MessageQueue_New (const wObject *callback) |
Creates a new message queue. If 'callback' is null, no custom cleanup will be done on message queue deallocation. If the 'callback' argument contains valid uninit or free functions those will be called by 'MessageQueue_Clear'. More... | |
WINPR_API void | MessageQueue_Free (wMessageQueue *queue) |
Frees resources allocated by a message queue. This function will only free resources allocated internally. More... | |
WINPR_API void | MessagePipe_PostQuit (wMessagePipe *pipe, int nExitCode) |
WINPR_API wMessagePipe * | MessagePipe_New (void) |
WINPR_API void | MessagePipe_Free (wMessagePipe *pipe) |
WINPR_API void | PubSub_Lock (wPubSub *pubSub) |
WINPR_API void | PubSub_Unlock (wPubSub *pubSub) |
WINPR_API wEventType * | PubSub_GetEventTypes (wPubSub *pubSub, size_t *count) |
WINPR_API void | PubSub_AddEventTypes (wPubSub *pubSub, wEventType *events, size_t count) |
WINPR_API wEventType * | PubSub_FindEventType (wPubSub *pubSub, const char *EventName) |
WINPR_API int | PubSub_Subscribe (wPubSub *pubSub, const char *EventName, pEventHandler EventHandler) |
WINPR_API int | PubSub_Unsubscribe (wPubSub *pubSub, const char *EventName, pEventHandler EventHandler) |
WINPR_API int | PubSub_OnEvent (wPubSub *pubSub, const char *EventName, void *context, const wEventArgs *e) |
WINPR_API wPubSub * | PubSub_New (BOOL synchronized) |
WINPR_API void | PubSub_Free (wPubSub *pubSub) |
#define DEFINE_EVENT_BEGIN | ( | name | ) |
#define DEFINE_EVENT_END | ( | name | ) |
#define DEFINE_EVENT_ENTRY | ( | name | ) |
#define DEFINE_EVENT_HANDLER | ( | name | ) | typedef void (*p##name##EventHandler)(void* context, const name##EventArgs* e) |
#define DEFINE_EVENT_RAISE | ( | name | ) |
#define DEFINE_EVENT_SUBSCRIBE | ( | name | ) |
#define DEFINE_EVENT_UNSUBSCRIBE | ( | name | ) |
#define EventArgsInit | ( | _event_args, | |
_sender | |||
) |
#define ListDictionary_KeyObject | ( | _dictionary | ) | (&_dictionary->objectKey) |
#define ListDictionary_ValueObject | ( | _dictionary | ) | (&_dictionary->objectValue) |
#define MAX_EVENT_HANDLERS 32 |
#define WMQ_QUIT 0xFFFFFFFF |
typedef BOOL(* ArrayList_ForEachFkt) (void *data, size_t index, va_list ap) |
typedef BOOL(* HASH_TABLE_FOREACH_FN) (const void *key, void *value, void *arg) |
typedef UINT32(* HASH_TABLE_HASH_FN) (const void *key) |
typedef void(* MESSAGE_FREE_FN) (wMessage *message) |
typedef BOOL(* OBJECT_EQUALS_FN) (const void *objA, const void *objB) |
typedef void(* OBJECT_FREE_FN) (void *obj) |
typedef void(* OBJECT_INIT_FN) (void *obj) |
typedef void*(* OBJECT_NEW_FN) (const void *val) |
WinPR: Windows Portable Runtime Collections
Copyright 2012 Marc-Andre Moreau marca ndre .more au@g mail. com
Licensed 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
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
typedef void(* OBJECT_UNINIT_FN) (void *obj) |
typedef void(* pEventHandler) (void *context, const wEventArgs *e) |
typedef int(* REFERENCE_FREE) (void *context, void *ptr) |
WINPR_API BOOL ArrayList_Append | ( | wArrayList * | arrayList, |
const void * | obj | ||
) |
Adds an object to the end of the ArrayList.
WINPR_API size_t ArrayList_Capacity | ( | wArrayList * | arrayList | ) |
C equivalent of the C# ArrayList Class: http://msdn.microsoft.com/en-us/library/system.collections.arraylist.aspx Properties Gets or sets the number of elements that the ArrayList can contain.
WINPR_API void ArrayList_Clear | ( | wArrayList * | arrayList | ) |
Removes all elements from the ArrayList.
WINPR_API BOOL ArrayList_Contains | ( | wArrayList * | arrayList, |
const void * | obj | ||
) |
Determines whether an element is in the ArrayList.
WINPR_API size_t ArrayList_Count | ( | wArrayList * | arrayList | ) |
Gets the number of elements actually contained in the ArrayList.
WINPR_API BOOL ArrayList_ForEach | ( | wArrayList * | arrayList, |
ArrayList_ForEachFkt | fkt, | ||
... | |||
) |
WINPR_API BOOL ArrayList_ForEachAP | ( | wArrayList * | arrayList, |
ArrayList_ForEachFkt | fkt, | ||
va_list | ap | ||
) |
WINPR_API void ArrayList_Free | ( | wArrayList * | arrayList | ) |
WINPR_API void* ArrayList_GetItem | ( | wArrayList * | arrayList, |
size_t | index | ||
) |
Gets the element at the specified index.
WINPR_API SSIZE_T ArrayList_IndexOf | ( | wArrayList * | arrayList, |
const void * | obj, | ||
SSIZE_T | startIndex, | ||
SSIZE_T | count | ||
) |
Searches for the specified Object and returns the zero-based index of the first occurrence within the entire ArrayList.
Searches for the specified Object and returns the zero-based index of the last occurrence within the range of elements in the ArrayList that extends from the first element to the specified index.
Searches for the specified Object and returns the zero-based index of the last occurrence within the range of elements in the ArrayList that contains the specified number of elements and ends at the specified index.
WINPR_API BOOL ArrayList_Insert | ( | wArrayList * | arrayList, |
size_t | index, | ||
const void * | obj | ||
) |
WINPR_API BOOL ArrayList_IsFixedSized | ( | wArrayList * | arrayList | ) |
Gets a value indicating whether the ArrayList has a fixed size.
WINPR_API BOOL ArrayList_IsReadOnly | ( | wArrayList * | arrayList | ) |
Gets a value indicating whether the ArrayList is read-only.
WINPR_API BOOL ArrayList_IsSynchronized | ( | wArrayList * | arrayList | ) |
Gets a value indicating whether access to the ArrayList is synchronized (thread safe).
WINPR_API size_t ArrayList_Items | ( | wArrayList * | arrayList, |
ULONG_PTR ** | ppItems | ||
) |
Gets the internal list of items contained in the ArrayList.
WINPR_API SSIZE_T ArrayList_LastIndexOf | ( | wArrayList * | arrayList, |
const void * | obj, | ||
SSIZE_T | startIndex, | ||
SSIZE_T | count | ||
) |
Searches for the specified Object and returns the zero-based index of the last occurrence within the entire ArrayList.
Searches for the specified Object and returns the zero-based index of the last occurrence within the range of elements in the ArrayList that extends from the first element to the specified index.
Searches for the specified Object and returns the zero-based index of the last occurrence within the range of elements in the ArrayList that contains the specified number of elements and ends at the specified index.
WINPR_API void ArrayList_Lock | ( | wArrayList * | arrayList | ) |
WINPR_API wArrayList* ArrayList_New | ( | BOOL | synchronized | ) |
Construction, Destruction
WINPR_API BOOL ArrayList_Remove | ( | wArrayList * | arrayList, |
const void * | obj | ||
) |
Removes the first occurrence of a specific object from the ArrayList.
WINPR_API BOOL ArrayList_RemoveAt | ( | wArrayList * | arrayList, |
size_t | index | ||
) |
Removes the element at the specified index of the ArrayList.
WINPR_API BOOL ArrayList_SetItem | ( | wArrayList * | arrayList, |
size_t | index, | ||
const void * | obj | ||
) |
Sets the element at the specified index.
WINPR_API void ArrayList_Unlock | ( | wArrayList * | arrayList | ) |
WINPR_API void BufferPool_Clear | ( | wBufferPool * | pool | ) |
Releases the buffers currently cached in the pool.
WINPR_API void BufferPool_Free | ( | wBufferPool * | pool | ) |
WINPR_API SSIZE_T BufferPool_GetBufferSize | ( | wBufferPool * | pool, |
const void * | buffer | ||
) |
Get the size of a pooled buffer
WINPR_API SSIZE_T BufferPool_GetPoolSize | ( | wBufferPool * | pool | ) |
Get the buffer pool size
WINPR_API wBufferPool* BufferPool_New | ( | BOOL | synchronized, |
SSIZE_T | fixedSize, | ||
DWORD | alignment | ||
) |
Construction, Destruction
WINPR_API BOOL BufferPool_Return | ( | wBufferPool * | pool, |
void * | buffer | ||
) |
Returns a buffer to the pool.
WINPR_API void* BufferPool_Take | ( | wBufferPool * | pool, |
SSIZE_T | size | ||
) |
Gets a buffer of at least the specified size from the pool.
WINPR_API void CountdownEvent_AddCount | ( | wCountdownEvent * | countdown, |
DWORD | signalCount | ||
) |
Methods Increments the CountdownEvent's current count by a specified value.
WINPR_API DWORD CountdownEvent_CurrentCount | ( | wCountdownEvent * | countdown | ) |
WinPR: Windows Portable Runtime Countdown Event
Copyright 2012 Marc-Andre Moreau marca ndre .more au@g mail. com
Licensed 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
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. C equivalent of the C# CountdownEvent Class http://msdn.microsoft.com/en-us/library/dd235708/ Properties Gets the number of remaining signals required to set the event.
WINPR_API void CountdownEvent_Free | ( | wCountdownEvent * | countdown | ) |
WINPR_API DWORD CountdownEvent_InitialCount | ( | wCountdownEvent * | countdown | ) |
Gets the numbers of signals initially required to set the event.
WINPR_API BOOL CountdownEvent_IsSet | ( | wCountdownEvent * | countdown | ) |
Determines whether the event is set.
WINPR_API wCountdownEvent* CountdownEvent_New | ( | DWORD | initialCount | ) |
Construction, Destruction
WINPR_API void CountdownEvent_Reset | ( | wCountdownEvent * | countdown, |
DWORD | count | ||
) |
Resets the InitialCount property to a specified value.
WINPR_API BOOL CountdownEvent_Signal | ( | wCountdownEvent * | countdown, |
DWORD | signalCount | ||
) |
Registers multiple signals with the CountdownEvent, decrementing the value of CurrentCount by the specified amount.
WINPR_API HANDLE CountdownEvent_WaitHandle | ( | wCountdownEvent * | countdown | ) |
Gets a WaitHandle that is used to wait for the event to be set.
WINPR_API void HashTable_Clear | ( | wHashTable * | table | ) |
Removes all elements from the HashTable.
WINPR_API BOOL HashTable_Contains | ( | wHashTable * | table, |
const void * | key | ||
) |
Determines whether the HashTable contains a specific key.
WINPR_API BOOL HashTable_ContainsKey | ( | wHashTable * | table, |
const void * | key | ||
) |
Determines whether the HashTable contains a specific key.
WINPR_API BOOL HashTable_ContainsValue | ( | wHashTable * | table, |
const void * | value | ||
) |
Determines whether the HashTable contains a specific value.
WINPR_API size_t HashTable_Count | ( | wHashTable * | table | ) |
C equivalent of the C# Hashtable Class: http://msdn.microsoft.com/en-us/library/system.collections.hashtable.aspx Properties Gets the number of key/value pairs contained in the HashTable.
WINPR_API BOOL HashTable_Foreach | ( | wHashTable * | table, |
HASH_TABLE_FOREACH_FN | fn, | ||
VOID * | arg | ||
) |
WINPR_API void HashTable_Free | ( | wHashTable * | table | ) |
WINPR_API void* HashTable_GetItemValue | ( | wHashTable * | table, |
const void * | key | ||
) |
Get an item value using key
WINPR_API size_t HashTable_GetKeys | ( | wHashTable * | table, |
ULONG_PTR ** | ppKeys | ||
) |
Gets the list of keys as an array
WINPR_API BOOL HashTable_Insert | ( | wHashTable * | table, |
const void * | key, | ||
const void * | value | ||
) |
Methods Adds an element with the specified key and value into the HashTable.
WINPR_API void HashTable_Lock | ( | wHashTable * | table | ) |
WINPR_API wHashTable* HashTable_New | ( | BOOL | synchronized | ) |
Construction, Destruction
WINPR_API BOOL HashTable_PointerCompare | ( | const void * | pointer1, |
const void * | pointer2 | ||
) |
WINPR_API UINT32 HashTable_PointerHash | ( | const void * | pointer | ) |
WINPR_API BOOL HashTable_Remove | ( | wHashTable * | table, |
const void * | key | ||
) |
Removes the element with the specified key from the HashTable.
WINPR_API BOOL HashTable_SetHashFunction | ( | wHashTable * | table, |
HASH_TABLE_HASH_FN | fn | ||
) |
WINPR_API BOOL HashTable_SetItemValue | ( | wHashTable * | table, |
const void * | key, | ||
const void * | value | ||
) |
Set an item value using key
WINPR_API BOOL HashTable_SetupForStringData | ( | wHashTable * | table, |
BOOL | stringValues | ||
) |
WINPR_API void* HashTable_StringClone | ( | const void * | str | ) |
WINPR_API BOOL HashTable_StringCompare | ( | const void * | string1, |
const void * | string2 | ||
) |
WINPR_API void HashTable_StringFree | ( | void * | str | ) |
WINPR_API UINT32 HashTable_StringHash | ( | const void * | key | ) |
WINPR_API void HashTable_Unlock | ( | wHashTable * | table | ) |
WINPR_API BOOL LinkedList_AddFirst | ( | wLinkedList * | list, |
const void * | value | ||
) |
Adds a new node containing the specified value at the start of the LinkedList.
WINPR_API BOOL LinkedList_AddLast | ( | wLinkedList * | list, |
const void * | value | ||
) |
Adds a new node containing the specified value at the end of the LinkedList.
WINPR_API void LinkedList_Clear | ( | wLinkedList * | list | ) |
Removes all entries from the LinkedList.
WINPR_API BOOL LinkedList_Contains | ( | wLinkedList * | list, |
const void * | value | ||
) |
Methods Determines whether the LinkedList contains a specific value.
WINPR_API int LinkedList_Count | ( | wLinkedList * | list | ) |
C equivalent of the C# LinkedList<T> Class: http://msdn.microsoft.com/en-us/library/he2s3bh7.aspx
Internal implementation uses a doubly-linked list Properties Gets the number of nodes actually contained in the LinkedList.
WINPR_API void* LinkedList_Enumerator_Current | ( | wLinkedList * | list | ) |
WINPR_API BOOL LinkedList_Enumerator_MoveNext | ( | wLinkedList * | list | ) |
WINPR_API void LinkedList_Enumerator_Reset | ( | wLinkedList * | list | ) |
Sets the enumerator to its initial position, which is before the first element in the collection.
WINPR_API void* LinkedList_First | ( | wLinkedList * | list | ) |
Gets the first node of the LinkedList.
WINPR_API void LinkedList_Free | ( | wLinkedList * | list | ) |
WINPR_API void* LinkedList_Last | ( | wLinkedList * | list | ) |
Gets the last node of the LinkedList.
WINPR_API wLinkedList* LinkedList_New | ( | void | ) |
Construction, Destruction
WINPR_API BOOL LinkedList_Remove | ( | wLinkedList * | list, |
const void * | value | ||
) |
Removes the first occurrence of the specified value from the LinkedList.
WINPR_API void LinkedList_RemoveFirst | ( | wLinkedList * | list | ) |
Removes the node at the start of the LinkedList.
WINPR_API void LinkedList_RemoveLast | ( | wLinkedList * | list | ) |
Removes the node at the end of the LinkedList.
WINPR_API BOOL ListDictionary_Add | ( | wListDictionary * | listDictionary, |
const void * | key, | ||
void * | value | ||
) |
Adds an entry with the specified key and value into the ListDictionary.
WINPR_API void ListDictionary_Clear | ( | wListDictionary * | listDictionary | ) |
Removes all entries from the ListDictionary.
WINPR_API BOOL ListDictionary_Contains | ( | wListDictionary * | listDictionary, |
const void * | key | ||
) |
Determines whether the ListDictionary contains a specific key.
WINPR_API int ListDictionary_Count | ( | wListDictionary * | listDictionary | ) |
WinPR: Windows Portable Runtime System.Collections.Specialized.ListDictionary
Copyright 2012 Marc-Andre Moreau marca ndre .more au@g mail. com
Licensed 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
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. C equivalent of the C# ListDictionary Class: http://msdn.microsoft.com/en-us/library/system.collections.specialized.listdictionary.aspx
Internal implementation uses a singly-linked list Properties Gets the number of key/value pairs contained in the ListDictionary.
WINPR_API void ListDictionary_Free | ( | wListDictionary * | listDictionary | ) |
WINPR_API void* ListDictionary_GetItemValue | ( | wListDictionary * | listDictionary, |
const void * | key | ||
) |
Get an item value using key
WINPR_API int ListDictionary_GetKeys | ( | wListDictionary * | listDictionary, |
ULONG_PTR ** | ppKeys | ||
) |
Methods Gets the list of keys as an array
WINPR_API void ListDictionary_Lock | ( | wListDictionary * | listDictionary | ) |
Lock access to the ListDictionary
WINPR_API wListDictionary* ListDictionary_New | ( | BOOL | synchronized | ) |
Construction, Destruction
WINPR_API void* ListDictionary_Remove | ( | wListDictionary * | listDictionary, |
const void * | key | ||
) |
Removes the entry with the specified key from the ListDictionary.
WINPR_API void* ListDictionary_Remove_Head | ( | wListDictionary * | listDictionary | ) |
Removes the first (head) entry from the list
WINPR_API BOOL ListDictionary_SetItemValue | ( | wListDictionary * | listDictionary, |
const void * | key, | ||
void * | value | ||
) |
Set an item value using key
WINPR_API void ListDictionary_Unlock | ( | wListDictionary * | listDictionary | ) |
Unlock access to the ListDictionary
WINPR_API void MessagePipe_Free | ( | wMessagePipe * | pipe | ) |
WINPR_API wMessagePipe* MessagePipe_New | ( | void | ) |
Construction, Destruction
WINPR_API void MessagePipe_PostQuit | ( | wMessagePipe * | pipe, |
int | nExitCode | ||
) |
WinPR: Windows Portable Runtime Message Pipe
Copyright 2012 Marc-Andre Moreau marca ndre .more au@g mail. com
Licensed 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
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. Properties Methods
WINPR_API int MessageQueue_Clear | ( | wMessageQueue * | queue | ) |
Clears all elements in a message queue.
queue | The queue to clear. |
WINPR_API BOOL MessageQueue_Dispatch | ( | wMessageQueue * | queue, |
const wMessage * | message | ||
) |
WINPR_API HANDLE MessageQueue_Event | ( | wMessageQueue * | queue | ) |
Gets an event which is set when the queue is non-empty
WINPR_API void MessageQueue_Free | ( | wMessageQueue * | queue | ) |
Frees resources allocated by a message queue. This function will only free resources allocated internally.
queue | A pointer to the queue to be freed. |
WINPR_API int MessageQueue_Get | ( | wMessageQueue * | queue, |
wMessage * | message | ||
) |
Creates a new message queue. If 'callback' is null, no custom cleanup will be done on message queue deallocation. If the 'callback' argument contains valid uninit or free functions those will be called by 'MessageQueue_Clear'.
callback | a pointer to custom initialization / cleanup functions. Can be NULL if not used. |
Construction, Destruction
Message Queue inspired from Windows: http://msdn.microsoft.com/en-us/library/ms632590/ Properties
WINPR_API int MessageQueue_Peek | ( | wMessageQueue * | queue, |
wMessage * | message, | ||
BOOL | remove | ||
) |
WINPR_API BOOL MessageQueue_Post | ( | wMessageQueue * | queue, |
void * | context, | ||
UINT32 | type, | ||
void * | wParam, | ||
void * | lParam | ||
) |
WINPR_API BOOL MessageQueue_PostQuit | ( | wMessageQueue * | queue, |
int | nExitCode | ||
) |
WINPR_API size_t MessageQueue_Size | ( | wMessageQueue * | queue | ) |
Gets the queue size
WINPR_API BOOL MessageQueue_Wait | ( | wMessageQueue * | queue | ) |
Methods
WINPR_API void ObjectPool_Clear | ( | wObjectPool * | pool | ) |
Releases the buffers currently cached in the pool.
WINPR_API void ObjectPool_Free | ( | wObjectPool * | pool | ) |
WINPR_API wObjectPool* ObjectPool_New | ( | BOOL | synchronized | ) |
Construction, Destruction
WINPR_API void ObjectPool_Return | ( | wObjectPool * | pool, |
void * | obj | ||
) |
Returns an object to the pool.
WINPR_API void* ObjectPool_Take | ( | wObjectPool * | pool | ) |
Gets an object from the pool.
WINPR_API void PubSub_AddEventTypes | ( | wPubSub * | pubSub, |
wEventType * | events, | ||
size_t | count | ||
) |
WINPR_API wEventType* PubSub_FindEventType | ( | wPubSub * | pubSub, |
const char * | EventName | ||
) |
WINPR_API void PubSub_Free | ( | wPubSub * | pubSub | ) |
WINPR_API wEventType* PubSub_GetEventTypes | ( | wPubSub * | pubSub, |
size_t * | count | ||
) |
Properties
WINPR_API void PubSub_Lock | ( | wPubSub * | pubSub | ) |
Methods
WINPR_API wPubSub* PubSub_New | ( | BOOL | synchronized | ) |
Construction, Destruction
WINPR_API int PubSub_OnEvent | ( | wPubSub * | pubSub, |
const char * | EventName, | ||
void * | context, | ||
const wEventArgs * | e | ||
) |
WINPR_API int PubSub_Subscribe | ( | wPubSub * | pubSub, |
const char * | EventName, | ||
pEventHandler | EventHandler | ||
) |
WINPR_API void PubSub_Unlock | ( | wPubSub * | pubSub | ) |
WINPR_API int PubSub_Unsubscribe | ( | wPubSub * | pubSub, |
const char * | EventName, | ||
pEventHandler | EventHandler | ||
) |
WINPR_API void Queue_Clear | ( | wQueue * | queue | ) |
Methods Removes all objects from the Queue.
WINPR_API BOOL Queue_Contains | ( | wQueue * | queue, |
const void * | obj | ||
) |
Determines whether an element is in the Queue.
WINPR_API size_t Queue_Count | ( | wQueue * | queue | ) |
C equivalent of the C# Queue Class: http://msdn.microsoft.com/en-us/library/system.collections.queue.aspx Properties Gets the number of elements contained in the Queue.
WINPR_API void* Queue_Dequeue | ( | wQueue * | queue | ) |
returns the element at the top of the queue. The element is removed from the queue, ownership of the element is passed on to the caller.
queue | The queue to check |
Removes and returns the object at the beginning of the Queue.
WINPR_API void Queue_Discard | ( | wQueue * | queue | ) |
Removes the element at the top of the queue. If fnObjectFree is set, the element is freed. This can be used in combination with Queue_Peek to handle an element and discard it with this function afterward. An alternative is Queue_Dequeue with calling the appropriate free function afterward.
queue | The queue to operate on |
WINPR_API BOOL Queue_Enqueue | ( | wQueue * | queue, |
const void * | obj | ||
) |
Pushes a new element into the queue. If a fnObjectNew is set, the element is copied and the queue takes ownership of the memory, otherwise the ownership stays with the caller.
queue | The queue to operate on |
obj | A pointer to the object to queue |
Adds an object to the end of the Queue.
WINPR_API HANDLE Queue_Event | ( | wQueue * | queue | ) |
Gets an event which is set when the queue is non-empty
WINPR_API void Queue_Free | ( | wQueue * | queue | ) |
WINPR_API void Queue_Lock | ( | wQueue * | queue | ) |
Lock access to the ArrayList
WINPR_API wQueue* Queue_New | ( | BOOL | synchronized, |
SSIZE_T | capacity, | ||
SSIZE_T | growthFactor | ||
) |
Construction, Destruction
WINPR_API void* Queue_Peek | ( | wQueue * | queue | ) |
returns the element at the top of the queue. The element is not removed from the queue, ownership of the element stays with the queue.
queue | The queue to check |
Returns the object at the beginning of the Queue without removing it.
WINPR_API void Queue_Unlock | ( | wQueue * | queue | ) |
Unlock access to the ArrayList
WINPR_API UINT32 ReferenceTable_Add | ( | wReferenceTable * | referenceTable, |
void * | ptr | ||
) |
WINPR_API void ReferenceTable_Free | ( | wReferenceTable * | referenceTable | ) |
WINPR_API wReferenceTable* ReferenceTable_New | ( | BOOL | synchronized, |
void * | context, | ||
REFERENCE_FREE | ReferenceFree | ||
) |
WINPR_API UINT32 ReferenceTable_Release | ( | wReferenceTable * | referenceTable, |
void * | ptr | ||
) |
WINPR_API void Stack_Clear | ( | wStack * | stack | ) |
Methods Removes all objects from the Stack.
WINPR_API BOOL Stack_Contains | ( | wStack * | stack, |
const void * | obj | ||
) |
Determines whether an element is in the Stack.
WINPR_API size_t Stack_Count | ( | wStack * | stack | ) |
C equivalent of the C# Stack Class: http://msdn.microsoft.com/en-us/library/system.collections.stack.aspx Properties Gets the number of elements contained in the Stack.
WINPR_API void Stack_Free | ( | wStack * | stack | ) |
WINPR_API BOOL Stack_IsSynchronized | ( | wStack * | stack | ) |
Gets a value indicating whether access to the Stack is synchronized (thread safe).
WINPR_API wStack* Stack_New | ( | BOOL | synchronized | ) |
Construction, Destruction
WINPR_API void* Stack_Peek | ( | wStack * | stack | ) |
Returns the object at the top of the Stack without removing it.
WINPR_API void* Stack_Pop | ( | wStack * | stack | ) |
Removes and returns the object at the top of the Stack.
WINPR_API void Stack_Push | ( | wStack * |