libwinpr-utils/collections: stubbed more classes

This commit is contained in:
Marc-André Moreau 2012-12-05 19:36:45 -05:00
parent 5a131688e4
commit b92d2cf30f
5 changed files with 345 additions and 1 deletions

View File

@ -120,4 +120,31 @@ WINPR_API int ArrayList_LastIndexOf(wArrayList* arrayList, void* obj, int startI
WINPR_API wArrayList* ArrayList_New(BOOL synchronized);
WINPR_API void ArrayList_Free(wArrayList* arrayList);
/* System.Collections.DictionaryBase */
struct _wDictionary
{
BOOL synchronized;
HANDLE mutex;
};
typedef struct _wDictionary wDictionary;
/* System.Collections.Specialized.ListDictionary */
struct _wListDictionary
{
BOOL synchronized;
HANDLE mutex;
};
typedef struct _wListDictionary wListDictionary;
/* System.Collections.Generic.KeyValuePair<TKey,TValue> */
struct _wKeyValuePair
{
void* key;
void* value;
};
typedef struct _wKeyValuePair wKeyValuePair;
#endif /* WINPR_COLLECTIONS_H */

View File

@ -21,7 +21,10 @@ set(MODULE_PREFIX "WINPR_UTILS")
set(${MODULE_PREFIX}_COLLECTIONS_SRCS
collections/Queue.c
collections/Stack.c
collections/ArrayList.c)
collections/ArrayList.c
collections/Dictionary.c
collections/ListDictionary.c
collections/KeyValuePair.c)
set(${MODULE_PREFIX}_SRCS
sam.c

View File

@ -0,0 +1,133 @@
/**
* WinPR: Windows Portable Runtime
* System.Collections.DictionaryBase
*
* Copyright 2012 Marc-Andre Moreau <marcandre.moreau@gmail.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.
*/
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include <winpr/collections.h>
/**
* C equivalent of the C# DictionaryBase Class:
* http://msdn.microsoft.com/en-us/library/system.collections.dictionarybase.aspx
*/
/**
* Properties
*/
/**
* Gets the number of key/value pairs contained in the Dictionary.
*/
int Dictionary_Count(wDictionary* dictionary)
{
return 0;
}
/**
* Gets a value indicating whether the Dictionary has a fixed size.
*/
BOOL Dictionary_IsFixedSized(wDictionary* dictionary)
{
return FALSE;
}
/**
* Gets a value indicating whether the Dictionary is read-only.
*/
BOOL Dictionary_IsReadOnly(wDictionary* dictionary)
{
return FALSE;
}
/**
* Gets a value indicating whether the Dictionary is synchronized (thread safe).
*/
BOOL Dictionary_IsSynchronized(wDictionary* dictionary)
{
return dictionary->synchronized;
}
/**
* Methods
*/
/**
* Adds an entry with the specified key and value into the Dictionary.
*/
void Dictionary_Add(wDictionary* dictionary, void* key, void* value)
{
}
/**
* Removes all entries from the Dictionary.
*/
void Dictionary_Clear(wDictionary* dictionary)
{
}
/**
* Determines whether the Dictionary contains a specific key.
*/
BOOL Dictionary_Contains(wDictionary* dictionary, void* key)
{
return FALSE;
}
/**
* Removes the entry with the specified key from the Dictionary.
*/
void Dictionary_Remove(wDictionary* dictionary, void* key)
{
}
/**
* Construction, Destruction
*/
wDictionary* Dictionary_New(BOOL synchronized)
{
wDictionary* dictionary = NULL;
dictionary = (wDictionary*) malloc(sizeof(wDictionary));
if (dictionary)
{
dictionary->synchronized = synchronized;
}
return dictionary;
}
void Dictionary_Free(wDictionary* dictionary)
{
free(dictionary);
}

View File

@ -0,0 +1,48 @@
/**
* WinPR: Windows Portable Runtime
* System.Collections.Generic.KeyValuePair<TKey,TValue>
*
* Copyright 2012 Marc-Andre Moreau <marcandre.moreau@gmail.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.
*/
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include <winpr/crt.h>
#include <winpr/collections.h>
/**
* C equivalent of the C# KeyValuePair<TKey, TValue> Structure:
* http://msdn.microsoft.com/en-us/library/5tbh8a42.aspx
*/
wKeyValuePair* KeyValuePair_New(void* key, void* value)
{
wKeyValuePair* keyValuePair;
keyValuePair = (wKeyValuePair*) malloc(sizeof(wKeyValuePair));
keyValuePair->key = key;
keyValuePair->value = value;
return keyValuePair;
}
void KeyValuePair_Free(wKeyValuePair* keyValuePair)
{
free(keyValuePair);
}

View File

@ -0,0 +1,133 @@
/**
* WinPR: Windows Portable Runtime
* System.Collections.Specialized.ListDictionary
*
* Copyright 2012 Marc-Andre Moreau <marcandre.moreau@gmail.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.
*/
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include <winpr/collections.h>
/**
* C equivalent of the C# ListDictionary Class:
* http://msdn.microsoft.com/en-us/library/system.collections.specialized.listdictionary.aspx
*/
/**
* Properties
*/
/**
* Gets the number of key/value pairs contained in the ListDictionary.
*/
int ListDictionary_Count(wListDictionary* listDictionary)
{
return 0;
}
/**
* Gets a value indicating whether the ListDictionary has a fixed size.
*/
BOOL ListDictionary_IsFixedSized(wListDictionary* listDictionary)
{
return FALSE;
}
/**
* Gets a value indicating whether the ListDictionary is read-only.
*/
BOOL ListDictionary_IsReadOnly(wListDictionary* listDictionary)
{
return FALSE;
}
/**
* Gets a value indicating whether the ListDictionary is synchronized (thread safe).
*/
BOOL ListDictionary_IsSynchronized(wListDictionary* listDictionary)
{
return listDictionary->synchronized;
}
/**
* Methods
*/
/**
* Adds an entry with the specified key and value into the ListDictionary.
*/
void ListDictionary_Add(wListDictionary* listDictionary, void* key, void* value)
{
}
/**
* Removes all entries from the ListDictionary.
*/
void ListDictionary_Clear(wListDictionary* listDictionary)
{
}
/**
* Determines whether the ListDictionary contains a specific key.
*/
BOOL ListDictionary_Contains(wListDictionary* listDictionary, void* key)
{
return FALSE;
}
/**
* Removes the entry with the specified key from the ListDictionary.
*/
void ListDictionary_Remove(wListDictionary* listDictionary, void* key)
{
}
/**
* Construction, Destruction
*/
wListDictionary* ListDictionary_New(BOOL synchronized)
{
wListDictionary* listDictionary = NULL;
listDictionary = (wListDictionary*) malloc(sizeof(wListDictionary));
if (listDictionary)
{
listDictionary->synchronized = synchronized;
}
return listDictionary;
}
void ListDictionary_Free(wListDictionary* listDictionary)
{
free(listDictionary);
}