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 |
This struct contains function pointer to initialize/free objects. More... | |
struct | wMessage |
struct | wMessagePipe |
struct | wEventArgs |
struct | wEventType |
Macros | |
#define | WMQ_QUIT 0xFFFFFFFF |
#define | WINPR_EVENT_CAST(t, val) (t)(val) |
#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 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 void * | winpr_ObjectStringClone (const void *pvstr) |
WINPR_API void * | winpr_ObjectWStringClone (const void *pvstr) |
WINPR_API void | winpr_ObjectStringFree (void *pvstr) |
WINPR_API size_t | Queue_Count (wQueue *queue) |
Return the number of elements in the queue. More... | |
WINPR_API void | Queue_Lock (wQueue *queue) |
Mutex-Lock a queue. More... | |
WINPR_API void | Queue_Unlock (wQueue *queue) |
Mutex-Unlock a queue. More... | |
WINPR_API HANDLE | Queue_Event (wQueue *queue) |
Get an event handle for the queue, usable by WaitForSingleObject or WaitForMultipleObjects. More... | |
WINPR_API wObject * | Queue_Object (wQueue *queue) |
Mutex-Lock a queue. More... | |
WINPR_API void | Queue_Clear (wQueue *queue) |
Remove all elements from a queue, call wObject cleanup functions fnObjectFree. More... | |
WINPR_API BOOL | Queue_Contains (wQueue *queue, const void *obj) |
Check if the queue contains an object. More... | |
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 void | Queue_Free (wQueue *queue) |
Clean up a queue, free all resources (e.g. calls Queue_Clear) More... | |
WINPR_API wQueue * | Queue_New (BOOL synchronized, SSIZE_T capacity, SSIZE_T growthFactor) |
Creates a new queue. More... | |
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 void | Stack_Free (wStack *stack) |
WINPR_API wStack * | Stack_New (BOOL synchronized) |
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 void | ArrayList_Free (wArrayList *arrayList) |
WINPR_API wArrayList * | ArrayList_New (BOOL synchronized) |
WINPR_API wObject * | ListDictionary_KeyObject (wListDictionary *listDictionary) |
Get the wObject function pointer struct for the key of the dictionary. More... | |
WINPR_API wObject * | ListDictionary_ValueObject (wListDictionary *listDictionary) |
Get the wObject function pointer struct for the value of the dictionary. More... | |
WINPR_API size_t | ListDictionary_Count (wListDictionary *listDictionary) |
Return the number of entries in the dictionary. More... | |
WINPR_API void | ListDictionary_Lock (wListDictionary *listDictionary) |
mutex-lock a dictionary More... | |
WINPR_API void | ListDictionary_Unlock (wListDictionary *listDictionary) |
mutex-unlock a dictionary More... | |
WINPR_API BOOL | ListDictionary_Add (wListDictionary *listDictionary, const void *key, const void *value) |
mutex-lock a dictionary More... | |
WINPR_API void * | ListDictionary_Take (wListDictionary *listDictionary, const void *key) |
Remove an item from the dictionary and return the value. Cleanup is up to the caller. More... | |
WINPR_API void | ListDictionary_Remove (wListDictionary *listDictionary, const void *key) |
Remove an item from the dictionary and call fnObjectFree for key and value. More... | |
WINPR_API void * | ListDictionary_Take_Head (wListDictionary *listDictionary) |
Remove the head item from the dictionary and return the value. Cleanup is up to the caller. More... | |
WINPR_API void | ListDictionary_Remove_Head (wListDictionary *listDictionary) |
Remove the head item from the dictionary and call fnObjectFree for key and value. More... | |
WINPR_API void | ListDictionary_Clear (wListDictionary *listDictionary) |
Remove all items from the dictionary and call fnObjectFree for key and value. More... | |
WINPR_API BOOL | ListDictionary_Contains (wListDictionary *listDictionary, const void *key) |
Check if a dictionary contains key (fnObjectEquals of the key object is called) More... | |
WINPR_API size_t | ListDictionary_GetKeys (wListDictionary *listDictionary, ULONG_PTR **ppKeys) |
return all keys the dictionary contains More... | |
WINPR_API void * | ListDictionary_GetItemValue (wListDictionary *listDictionary, const void *key) |
Get the value in the dictionary for a key. The ownership of the data stays with the dictionary. More... | |
WINPR_API BOOL | ListDictionary_SetItemValue (wListDictionary *listDictionary, const void *key, const void *value) |
Set the value in the dictionary for a key. The entry must already exist, value is copied if fnObjectNew is set. More... | |
WINPR_API void | ListDictionary_Free (wListDictionary *listDictionary) |
Free memory allocated by a dictionary. Calls ListDictionary_Clear. More... | |
WINPR_API wListDictionary * | ListDictionary_New (BOOL synchronized) |
allocate a new dictionary More... | |
WINPR_API size_t | LinkedList_Count (wLinkedList *list) |
Return the current number of elements in the linked list. More... | |
WINPR_API void * | LinkedList_First (wLinkedList *list) |
Return the first element of the list, ownership stays with the list. More... | |
WINPR_API void * | LinkedList_Last (wLinkedList *list) |
Return the last element of the list, ownership stays with the list. More... | |
WINPR_API BOOL | LinkedList_Contains (wLinkedList *list, const void *value) |
Check if the linked list contains a value. More... | |
WINPR_API void | LinkedList_Clear (wLinkedList *list) |
Remove all elements of the linked list. fnObjectUninit and fnObjectFree are called for each entry. More... | |
WINPR_API BOOL | LinkedList_AddFirst (wLinkedList *list, const void *value) |
Add a new element at the start of the linked list. fnObjectNew and fnObjectInit is called for the new entry. More... | |
WINPR_API BOOL | LinkedList_AddLast (wLinkedList *list, const void *value) |
Add a new element at the end of the linked list. fnObjectNew and fnObjectInit is called for the new entry. More... | |
WINPR_API BOOL | LinkedList_Remove (wLinkedList *list, const void *value) |
Remove a element identified by value from the linked list. fnObjectUninit and fnObjectFree is called for the entry. More... | |
WINPR_API void | LinkedList_RemoveFirst (wLinkedList *list) |
Remove the first element from the linked list. fnObjectUninit and fnObjectFree is called for the entry. More... | |
WINPR_API void | LinkedList_RemoveLast (wLinkedList *list) |
Remove the last element from the linked list. fnObjectUninit and fnObjectFree is called for the entry. More... | |
WINPR_API void | LinkedList_Enumerator_Reset (wLinkedList *list) |
Move enumerator to the first element. More... | |
WINPR_API void * | LinkedList_Enumerator_Current (wLinkedList *list) |
Return the value for the current position of the enumerator. More... | |
WINPR_API BOOL | LinkedList_Enumerator_MoveNext (wLinkedList *list) |
Move enumerator to the next element. More... | |
WINPR_API void | LinkedList_Free (wLinkedList *list) |
Free a linked list. More... | |
WINPR_API wLinkedList * | LinkedList_New (void) |
Allocate a linked list. More... | |
WINPR_API wObject * | LinkedList_Object (wLinkedList *list) |
Return the wObject function pointers for list elements. More... | |
WINPR_API size_t | CountdownEvent_CurrentCount (wCountdownEvent *countdown) |
return the current event count of the CountdownEvent More... | |
WINPR_API size_t | CountdownEvent_InitialCount (wCountdownEvent *countdown) |
return the initial event count of the CountdownEvent More... | |
WINPR_API BOOL | CountdownEvent_IsSet (wCountdownEvent *countdown) |
return the current event state of the CountdownEvent More... | |
WINPR_API HANDLE | CountdownEvent_WaitHandle (wCountdownEvent *countdown) |
return the event HANDLE of the CountdownEvent to be used by WaitForSingleObject or WaitForMultipleObjects More... | |
WINPR_API void | CountdownEvent_AddCount (wCountdownEvent *countdown, size_t signalCount) |
add signalCount to the current event count of the CountdownEvent More... | |
WINPR_API BOOL | CountdownEvent_Signal (wCountdownEvent *countdown, size_t signalCount) |
Increase the current event signal state of the CountdownEvent. More... | |
WINPR_API void | CountdownEvent_Reset (wCountdownEvent *countdown, size_t count) |
reset the CountdownEvent More... | |
WINPR_API void | CountdownEvent_Free (wCountdownEvent *countdown) |
Free a CountdownEvent. More... | |
WINPR_API wCountdownEvent * | CountdownEvent_New (size_t initialCount) |
Allocte a CountdownEvent with initialCount. More... | |
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 void | HashTable_Free (wHashTable *table) |
WINPR_API wHashTable * | HashTable_New (BOOL synchronized) |
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 void | BufferPool_Free (wBufferPool *pool) |
WINPR_API wBufferPool * | BufferPool_New (BOOL synchronized, SSIZE_T fixedSize, DWORD alignment) |
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 void | ObjectPool_Free (wObjectPool *pool) |
WINPR_API wObjectPool * | ObjectPool_New (BOOL synchronized) |
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 void | MessageQueue_Free (wMessageQueue *queue) |
Frees resources allocated by a message queue. This function will only free resources allocated internally. 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 | MessagePipe_PostQuit (wMessagePipe *pipe, int nExitCode) |
WINPR_API void | MessagePipe_Free (wMessagePipe *pipe) |
WINPR_API wMessagePipe * | MessagePipe_New (void) |
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,...) |
WINPR_API int | PubSub_Unsubscribe (wPubSub *pubSub, const char *EventName,...) |
WINPR_API int | PubSub_OnEvent (wPubSub *pubSub, const char *EventName, void *context, const wEventArgs *e) |
WINPR_API void | PubSub_Free (wPubSub *pubSub) |
WINPR_API wPubSub * | PubSub_New (BOOL synchronized) |
#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 MAX_EVENT_HANDLERS 32 |
#define WINPR_EVENT_CAST | ( | t, | |
val | |||
) | (t)(val) |
#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) |
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, |
size_t | signalCount | ||
) |
add signalCount to the current event count of the CountdownEvent
countdown | A pointer to a CountdownEvent, must not be NULL |
signalCount | The amount to add to CountdownEvent |
Methods Increments the CountdownEvent's current count by a specified value.
WINPR_API size_t CountdownEvent_CurrentCount | ( | wCountdownEvent * | countdown | ) |
return the current event count of the CountdownEvent
countdown | A pointer to a CountdownEvent, must not be NULL |
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 | ) |
Free a CountdownEvent.
countdown | A pointer to a CountdownEvent, may be NULL |
WINPR_API size_t CountdownEvent_InitialCount | ( | wCountdownEvent * | countdown | ) |
return the initial event count of the CountdownEvent
countdown | A pointer to a CountdownEvent, must not be NULL |
Gets the numbers of signals initially required to set the event.
WINPR_API BOOL CountdownEvent_IsSet | ( | wCountdownEvent * | countdown | ) |
return the current event state of the CountdownEvent
countdown | A pointer to a CountdownEvent, must not be NULL |
Determines whether the event is set.
WINPR_API wCountdownEvent* CountdownEvent_New | ( | size_t | initialCount | ) |
Allocte a CountdownEvent with initialCount.
initialCount | The initial value of the event |
Construction, Destruction
WINPR_API void CountdownEvent_Reset | ( | wCountdownEvent * | countdown, |
size_t | count | ||
) |
reset the CountdownEvent
countdown | A pointer to a CountdownEvent, must not be NULL |
Resets the InitialCount property to a specified value.
WINPR_API BOOL CountdownEvent_Signal | ( | wCountdownEvent * | countdown, |
size_t | signalCount | ||
) |
Increase the current event signal state of the CountdownEvent.
countdown | A pointer to a CountdownEvent, must not be NULL |
signalCount | The amount of signaled events to add |
Registers multiple signals with the CountdownEvent, decrementing the value of CurrentCount by the specified amount.
WINPR_API HANDLE CountdownEvent_WaitHandle | ( | wCountdownEvent * | countdown | ) |
return the event HANDLE of the CountdownEvent to be used by WaitForSingleObject or WaitForMultipleObjects
countdown | A pointer to a CountdownEvent, must not be NULL |
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 | ||
) |
Add a new element at the start of the linked list. fnObjectNew and fnObjectInit is called for the new entry.
list | A pointer to the list, must not be NULL |
value | The value to add |
Adds a new node containing the specified value at the start of the LinkedList.
WINPR_API BOOL LinkedList_AddLast | ( | wLinkedList * | list, |
const void * | value | ||
) |
Add a new element at the end of the linked list. fnObjectNew and fnObjectInit is called for the new entry.
list | A pointer to the list, must not be NULL |
value | The value to add |
Adds a new node containing the specified value at the end of the LinkedList.
WINPR_API void LinkedList_Clear | ( | wLinkedList * | list | ) |
Remove all elements of the linked list. fnObjectUninit and fnObjectFree are called for each entry.
list | A pointer to the list, must not be NULL |
Removes all entries from the LinkedList.
WINPR_API BOOL LinkedList_Contains | ( | wLinkedList * | list, |
const void * | value | ||
) |
Check if the linked list contains a value.
list | A pointer to the list, must not be NULL |
value | A value to check for |
Methods Determines whether the LinkedList contains a specific value.
WINPR_API size_t LinkedList_Count | ( | wLinkedList * | list | ) |
Return the current number of elements in the linked list.
list | A pointer to the list, must not be NULL |
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 | ) |
Return the value for the current position of the enumerator.
list | A pointer to the list, must not be NULL |
WINPR_API BOOL LinkedList_Enumerator_MoveNext | ( | wLinkedList * | list | ) |
Move enumerator to the next element.
list | A pointer to the list, must not be NULL |
WINPR_API void LinkedList_Enumerator_Reset | ( | wLinkedList * | list | ) |
Move enumerator to the first element.
list | A pointer to the list, must not be NULL |
Sets the enumerator to its initial position, which is before the first element in the collection.
WINPR_API void* LinkedList_First | ( | wLinkedList * | list | ) |
Return the first element of the list, ownership stays with the list.
list | A pointer to the list, must not be NULL |
Gets the first node of the LinkedList.
WINPR_API void LinkedList_Free | ( | wLinkedList * | list | ) |
Free a linked list.
list | A pointer to the list, may be NULL |
WINPR_API void* LinkedList_Last | ( | wLinkedList * | list | ) |
Return the last element of the list, ownership stays with the list.
list | A pointer to the list, must not be NULL |
Gets the last node of the LinkedList.
WINPR_API wLinkedList* LinkedList_New | ( | void | ) |
Allocate a linked list.
Construction, Destruction
WINPR_API BOOL LinkedList_Remove | ( | wLinkedList * | list, |
const void * | value | ||
) |
Remove a element identified by value from the linked list. fnObjectUninit and fnObjectFree is called for the entry.
list | A pointer to the list, must not be NULL |
value | The value to remove |
Removes the first occurrence of the specified value from the LinkedList.
WINPR_API void LinkedList_RemoveFirst | ( | wLinkedList * | list | ) |
Remove the first element from the linked list. fnObjectUninit and fnObjectFree is called for the entry.
list | A pointer to the list, must not be NULL |
Removes the node at the start of the LinkedList.
WINPR_API void LinkedList_RemoveLast | ( | wLinkedList * | list | ) |
Remove the last element from the linked list. fnObjectUninit and fnObjectFree is called for the entry.
list | A pointer to the list, must not be NULL |
Removes the node at the end of the LinkedList.
WINPR_API BOOL ListDictionary_Add | ( | wListDictionary * | listDictionary, |
const void * | key, | ||
const void * | value | ||
) |
mutex-lock a dictionary
listDictionary | A dictionary to query, must not be NULL |
key | The key identifying the entry, if set cloned with fnObjectNew |
value | The value to store for the key. May be NULL. if set cloned with fnObjectNew |
Adds an entry with the specified key and value into the ListDictionary.
WINPR_API void ListDictionary_Clear | ( | wListDictionary * | listDictionary | ) |
Remove all items from the dictionary and call fnObjectFree for key and value.
listDictionary | A dictionary to query, must not be NULL |
Removes all entries from the ListDictionary.
WINPR_API BOOL ListDictionary_Contains | ( | wListDictionary * | listDictionary, |
const void * | key | ||
) |
Check if a dictionary contains key (fnObjectEquals of the key object is called)
listDictionary | A dictionary to query, must not be NULL |
key | A key to look for |
Determines whether the ListDictionary contains a specific key.
WINPR_API size_t ListDictionary_Count | ( | wListDictionary * | listDictionary | ) |
Return the number of entries in the dictionary.
listDictionary | A dictionary to query, must not be NULL |
Properties Gets the number of key/value pairs contained in the ListDictionary.
WINPR_API void ListDictionary_Free | ( | wListDictionary * | listDictionary | ) |
Free memory allocated by a dictionary. Calls ListDictionary_Clear.
listDictionary | A dictionary to query, may be NULL |
WINPR_API void* ListDictionary_GetItemValue | ( | wListDictionary * | listDictionary, |
const void * | key | ||
) |
Get the value in the dictionary for a key. The ownership of the data stays with the dictionary.
listDictionary | A dictionary to query, must not be NULL |
key | A key to look for (fnObjectEquals of the key object is called) |
Get an item value using key
WINPR_API size_t ListDictionary_GetKeys | ( | wListDictionary * | listDictionary, |
ULONG_PTR ** | ppKeys | ||
) |
return all keys the dictionary contains
listDictionary | A dictionary to query, must not be NULL |
ppKeys | A pointer to a ULONG_PTR array that will hold the result keys. Call free if no longer required |
Methods Gets the list of keys as an array
Get the wObject function pointer struct for the key of the dictionary.
listDictionary | A dictionary to query, must not be NULL |
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
WINPR_API void ListDictionary_Lock | ( | wListDictionary * | listDictionary | ) |
mutex-lock a dictionary
listDictionary | A dictionary to query, must not be NULL |
Lock access to the ListDictionary
WINPR_API wListDictionary* ListDictionary_New | ( | BOOL | synchronized | ) |
allocate a new dictionary
synchronized | Create the dictionary with automatic mutex lock |
Construction, Destruction
WINPR_API void ListDictionary_Remove | ( | wListDictionary * | listDictionary, |
const void * | key | ||
) |
Remove an item from the dictionary and call fnObjectFree for key and value.
listDictionary | A dictionary to query, must not be NULL |
key | The key identifying the entry |
WINPR_API void ListDictionary_Remove_Head | ( | wListDictionary * | listDictionary | ) |
Remove the head item from the dictionary and call fnObjectFree for key and value.
listDictionary | A dictionary to query, must not be NULL |
WINPR_API BOOL ListDictionary_SetItemValue | ( | wListDictionary * | listDictionary, |
const void * | key, | ||
const void * | value | ||
) |
Set the value in the dictionary for a key. The entry must already exist, value is copied if fnObjectNew is set.
listDictionary | A dictionary to query, must not be NULL |
key | A key to look for (fnObjectEquals of the key object is called) |
value | A pointer to the value to set |
Set an item value using key
WINPR_API void* ListDictionary_Take | ( | wListDictionary * | listDictionary, |
const void * | key | ||
) |
Remove an item from the dictionary and return the value. Cleanup is up to the caller.
listDictionary | A dictionary to query, must not be NULL |
key | The key identifying the entry |
WINPR_API void* ListDictionary_Take_Head | ( | wListDictionary * | listDictionary | ) |
Remove the head item from the dictionary and return the value. Cleanup is up to the caller.
listDictionary | A dictionary to query, must not be NULL |
WINPR_API void ListDictionary_Unlock | ( | wListDictionary * | listDictionary | ) |
mutex-unlock a dictionary
listDictionary | A dictionary to query, must not be NULL |
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, | ||
... | |||
) |
WINPR_API void PubSub_Unlock | ( | wPubSub * | pubSub | ) |
WINPR_API int PubSub_Unsubscribe | ( | wPubSub * | pubSub, |
const char * | EventName, | ||
... | |||
) |
WINPR_API void Queue_Clear | ( | wQueue * | queue | ) |
Remove all elements from a queue, call wObject cleanup functions fnObjectFree.
queue | A pointer to a queue, must not be NULL |
Methods Removes all objects from the Queue.
WINPR_API BOOL Queue_Contains | ( | wQueue * | queue, |
const void * | obj | ||
) |
Check if the queue contains an object.
queue | A pointer to a queue, must not be NULL |
obj | The object to look for. fnObjectEquals is called internally |
Determines whether an element is in the Queue.
WINPR_API size_t Queue_Count | ( | wQueue * | queue | ) |
Return the number of elements in the queue.
queue | A pointer to a queue, must not be NULL |
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 | ) |
Get an event handle for the queue, usable by WaitForSingleObject or WaitForMultipleObjects.
queue | A pointer to a queue, must not be NULL |
Gets an event which is set when the queue is non-empty
WINPR_API void Queue_Free | ( | wQueue * | queue | ) |
Clean up a queue, free all resources (e.g. calls Queue_Clear)
queue | The queue to free, may be NULL |
WINPR_API void Queue_Lock | ( | wQueue * | queue | ) |
Mutex-Lock a queue.
queue | A pointer to a queue, must not be NULL |
Lock access to the ArrayList
WINPR_API wQueue* Queue_New | ( | BOOL | synchronized, |
SSIZE_T | capacity, | ||
SSIZE_T | growthFactor | ||
) |
Creates a new queue.
Construction, Destruction
Mutex-Lock a queue.
queue | A pointer to a queue, must not be NULL |
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 | ) |
Mutex-Unlock a queue.
queue | A pointer to a queue, must not be NULL |
Unlock access to the ArrayList
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 * | stack, |
void * | obj | ||
) |
Inserts an object at the top of the Stack.
WINPR_API void* winpr_ObjectStringClone | ( | const void * | pvstr | ) |
WinPR: Windows Portable Runtime Collections
Copyright 2024 Armin Novak anova Copyright 2024 Thincast Technologies GmbH k@th incas t.co m
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.
WINPR_API void winpr_ObjectStringFree | ( | void * | pvstr | ) |
WINPR_API void* winpr_ObjectWStringClone | ( | const void * | pvstr | ) |