summaryrefslogtreecommitdiffstats
path: root/branches/1.0/tinySIGCOMP/src/tcomp_udvm.statemanagment.c
diff options
context:
space:
mode:
Diffstat (limited to 'branches/1.0/tinySIGCOMP/src/tcomp_udvm.statemanagment.c')
-rw-r--r--branches/1.0/tinySIGCOMP/src/tcomp_udvm.statemanagment.c132
1 files changed, 0 insertions, 132 deletions
diff --git a/branches/1.0/tinySIGCOMP/src/tcomp_udvm.statemanagment.c b/branches/1.0/tinySIGCOMP/src/tcomp_udvm.statemanagment.c
deleted file mode 100644
index 80a0a45..0000000
--- a/branches/1.0/tinySIGCOMP/src/tcomp_udvm.statemanagment.c
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
-* Copyright (C) 2009-2010 Mamadou Diop.
-*
-* Contact: Mamadou Diop <diopmamadou(at)doubango.org>
-*
-* This file is part of Open Source Doubango Framework.
-*
-* DOUBANGO is free software: you can redistribute it and/or modify
-* it under the terms of the GNU General Public License as published by
-* the Free Software Foundation, either version 3 of the License, or
-* (at your option) any later version.
-*
-* DOUBANGO is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-* GNU General Public License for more details.
-*
-* You should have received a copy of the GNU General Public License
-* along with DOUBANGO.
-*
-*/
-
-/**@file tcomp_udvm.statemanagment.c
- * @brief SigComp UDVM machine (State managment)
- *
- * @author Mamadou Diop <diopmamadou(at)yahoo.fr>
- *
- * @date Created: Sat Nov 8 16:54:58 2009 mdiop
- */
-#include "tcomp_udvm.h"
-
-
-int tcomp_udvm_byteCopy_TempStates(tcomp_udvm_t *udvm)
-{
- int ok = 1;
- uint8_t i;
- uint8_t tocreate_size = tcomp_result_getTempStatesToCreateSize(udvm->lpResult);
- uint8_t tofree_size = tcomp_result_getTempStatesToFreeSize(udvm->lpResult);
-
-
- /*
- * State Create
- */
- for(i = 0; i < tocreate_size; i++)
- {
- /*
- * The UDVM byte copies a string of state_length bytes from the UDVM
- * memory beginning at state_address (obeying the rules of Section 8.4).
- * This is the state_value.
- */
- tcomp_state_t* lpState = udvm->lpResult->statesToCreate[i];
- tcomp_buffer_allocBuff(lpState->value, lpState->length);
- ok &= tcomp_udvm_bytecopy_from(udvm, tcomp_buffer_getBuffer(lpState->value), lpState->address, lpState->length);
- }
-
- /*
- * State Free
- */
- for(i = 0; i<tofree_size; i++)
- {
- tcomp_tempstate_to_free_t *lpDesc = udvm->lpResult->statesToFree[i];
- tcomp_buffer_allocBuff(lpDesc->identifier, lpDesc->partial_identifier_length);
- ok &= tcomp_udvm_bytecopy_from(udvm, tcomp_buffer_getBuffer(lpDesc->identifier), lpDesc->partial_identifier_start, lpDesc->partial_identifier_length);
- }
- return ok;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-///
-/// @brief Creates temporary state.
-///
-/// @param [in,out] udvm If non-null, the udvm.
-/// @param state_length Length of the state.
-/// @param state_address The state address.
-/// @param state_instruction The state instruction.
-/// @param minimum_access_length Length of the minimum access.
-/// @param state_retention_priority The state retention priority.
-/// @param end_msg Message describing the end.
-///
-/// @return 1 if succeed an zero otherwise.
-////////////////////////////////////////////////////////////////////////////////////////////////////
-
-int tcomp_udvm_createTempState(tcomp_udvm_t *udvm, uint16_t state_length, uint16_t state_address, uint16_t state_instruction,
- uint16_t minimum_access_length, uint16_t state_retention_priority, int end_msg)
-{
- /*
- * If the specified minimum_access_length does not lie between 6 and 20 inclusive, or if
- * the state_retention_priority is 65535 then the END-MESSAGE
- * instruction fails to make a state creation request of its own
- * (however decompression failure does not occur and the state creation
- * requests made by the STATE-CREATE instruction are still valid).
- */
- int is_ok = ( (6<=minimum_access_length && minimum_access_length<=20) && state_retention_priority!=65535 );
-
- // if not ok and not END_MESSAGE --> decompression failure MUST occurs
- if(!is_ok)
- {
- if(end_msg) return 1;
-
- if(state_retention_priority == 65535)
- {
- tcomp_udvm_createNackInfo2(udvm, NACK_INVALID_STATE_PRIORITY);
- }
- else
- {
- tcomp_udvm_createNackInfo2(udvm, NACK_INVALID_STATE_ID_LENGTH);
- }
- return 0;
- }
-
- /*
- * decompression failure occurs if the END-MESSAGE instruction makes a state creation request and four
- * instances of the STATE-CREATE instruction have already been encountered.
- */
- if(tcomp_result_getTempStatesToCreateSize(udvm->lpResult) >= MAX_TEMP_SATES)
- {
- tcomp_udvm_createNackInfo2(udvm, NACK_TOO_MANY_STATE_REQUESTS);
- return 0;
- }
-
- /*
- * Is there a state to create?
- */
- if(is_ok)
- {
- // no byte copy ()
- tcomp_state_t *lpState = tcomp_state_create(state_length, state_address, state_instruction, minimum_access_length, state_retention_priority);
- tcomp_result_addTempStateToCreate(udvm->lpResult, lpState);
- }
-
- return 1;
-}
OpenPOWER on IntegriCloud