summaryrefslogtreecommitdiff
path: root/ext/satellite/enum.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/satellite/enum.c')
-rw-r--r--ext/satellite/enum.c174
1 files changed, 0 insertions, 174 deletions
diff --git a/ext/satellite/enum.c b/ext/satellite/enum.c
deleted file mode 100644
index 3d33fd7455..0000000000
--- a/ext/satellite/enum.c
+++ /dev/null
@@ -1,174 +0,0 @@
-/*
- +----------------------------------------------------------------------+
- | PHP version 4.0 |
- +----------------------------------------------------------------------+
- | Copyright (c) 1997-2001 The PHP Group |
- +----------------------------------------------------------------------+
- | This source file is subject to version 2.02 of the PHP license, |
- | that is bundled with this package in the file LICENSE, and is |
- | available at through the world-wide-web at |
- | http://www.php.net/license/2_02.txt. |
- | If you did not receive a copy of the PHP license and are unable to |
- | obtain it through the world-wide-web, please send a note to |
- | license@php.net so we can mail you a copy immediately. |
- +----------------------------------------------------------------------+
- | Author: David Eriksson <david@2good.com> |
- +----------------------------------------------------------------------+
- */
-
-/*
- * $Id$
- * vim: syntax=c tabstop=2 shiftwidth=2
- */
-
-/* -----------------------------------------------------------------------
- *
- * OrbitEnum class
- *
- * -----------------------------------------------------------------------
- */
-#include "enum.h"
-#include "typemanager.h"
-#include "common.h"
-#include "hashtable.h"
-
-struct _OrbitEnum
-{
- EnumType * mpEnumType;
- HashTable mMembers;
-};
-
-IMPLEMENT_CLASS(OrbitEnum, CONSTRUCTOR|DESTRUCTOR|GET_PROPERTY)
-
-
-static zend_bool OrbitEnum_InitializeMembers(OrbitEnum * pEnum)
-{
- int enum_value = 0;
- EnumMemberType * p_member = NULL;
-
- p_member = EnumType_GetFirstMember(pEnum->mpEnumType);
-
- zend_hash_init(
- &pEnum->mMembers, /* hash table */
- 0, /* size */
- NULL, /* hash function */
- ZVAL_DESTRUCTOR, /* destructor */
- 0); /* persistent */
-
- if (!EnumMemberType_IsValid(p_member))
- return TRUE; /* no members */
-
- do
- {
- zval * p_value = NULL;
- char * p_name = EnumMemberType_GetName(p_member);
-
- ALLOC_ZVAL(p_value);
- ZVAL_LONG(p_value, enum_value);
-
- zend_hash_add(
- &pEnum->mMembers,
- p_name,
- strlen(p_name)+1,
- p_value,
- sizeof(zval),
- NULL
- );
-
- /* set value for next member */
- enum_value++;
-
- } while (EnumMemberType_GetNext(p_member));
-
- return TRUE;
-}
-
-zend_bool OrbitEnum_Constructor(OrbitEnum ** ppEnum, int parameterCount,
- const zval ** ppParameters)
-{
- OrbitEnum * p_enum = orbit_new(OrbitEnum);
-
- /* check parameter count */
- if (parameterCount != 1)
- {
- zend_wrong_param_count(TSRMLS_C);
- goto error;
- }
-
- /* validate parameter types */
- if (Z_TYPE_P(ppParameters[0]) != IS_STRING)
- goto error;
-
- /* find type information */
- p_enum->mpEnumType = TypeManager_FindEnum(Z_STRVAL_P(ppParameters[0]));
- if (p_enum->mpEnumType == NULL)
- {
- zend_error(E_WARNING, "(Satellite) unknown enum '%s'", Z_STRVAL_P(ppParameters[0]));
- goto error;
- }
-
- /* initialize members */
- if (!OrbitEnum_InitializeMembers(p_enum))
- goto error;
-
- *ppEnum = p_enum;
- return TRUE;
-
-error:
-/* printf("OrbitEnum_Constructor failed\n");*/
- OrbitEnum_Destructor(p_enum);
- *ppEnum = NULL;
- return FALSE;
-}
-
-zend_bool OrbitEnum_Destructor(OrbitEnum * pEnum)
-{
-/* printf("OrbitEnum_Destructor\n");*/
-
- if (pEnum != NULL)
- {
- orbit_delete(pEnum->mpEnumType);
- }
-
- zend_hash_destroy(&pEnum->mMembers);
- orbit_delete(pEnum);
-
- return TRUE;
-}
-
-/* not used */
-zend_bool OrbitEnum_CallFunction(OrbitEnum * pEnum,
- const char * pFunctionName, int parameterCount, const zval ** ppParameters, zval * pResult)
-{
- return FALSE;
-}
-
-/* not used */
-zend_bool OrbitEnum_PutProperty(OrbitEnum * pEnum,
- const char * pPropertyName, const zval * pValue)
-{
- return FALSE;
-}
-
-zend_bool OrbitEnum_GetProperty(OrbitEnum * pEnum,
- const char * pPropertyName, zval * pReturnValue)
-{
- zval * p_value = orbit_find_by_key(&pEnum->mMembers, pPropertyName);
-
- if (p_value == NULL)
- {
- zend_error(E_WARNING, "(Satellite) unknown member '%s' in enum '%s'",
- pPropertyName, EnumType_GetRepositoryId(pEnum->mpEnumType));
-
- ZVAL_NULL(pReturnValue);
- return FALSE;
- }
- else
- {
- memcpy(pReturnValue, p_value, sizeof(zval)); /* raw data copy */
- zval_copy_ctor(pReturnValue); /* smart data copy */
- INIT_PZVAL(pReturnValue); /* set reference count */
- return TRUE;
- }
-}
-