1b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen/* 2b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen * Copyright (C) 2008-2009 SVOX AG, Baslerstr. 30, 8048 Zuerich, Switzerland 3b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen * 4b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen * Licensed under the Apache License, Version 2.0 (the "License"); 5b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen * you may not use this file except in compliance with the License. 6b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen * You may obtain a copy of the License at 7b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen * 8b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen * http://www.apache.org/licenses/LICENSE-2.0 9b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen * 10b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen * Unless required by applicable law or agreed to in writing, software 11b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen * distributed under the License is distributed on an "AS IS" BASIS, 12b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen * See the License for the specific language governing permissions and 14b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen * limitations under the License. 15b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen */ 16b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen/** 17b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen * @file picoknow.c 18b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen * 19b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen * Copyright (C) 2008-2009 SVOX AG, Baslerstr. 30, 8048 Zuerich, Switzerland 20b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen * All rights reserved. 21b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen * 22b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen * History: 23b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen * - 2009-04-20 -- initial version 24b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen * 25b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen */ 26b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen 27b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen#include "picodefs.h" 28b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen#include "picoos.h" 29b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen#include "picodbg.h" 30b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen#include "picoknow.h" 31b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen 32b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen#ifdef __cplusplus 33b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chenextern "C" { 34b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen#endif 35b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen#if 0 36b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen} 37b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen#endif 38b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen 39b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen 40b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen/** class : KnowledgeBase 41b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen * shortcut : kb 42b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen * 43b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen */ 44b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chenextern picoknow_KnowledgeBase picoknow_newKnowledgeBase(picoos_MemoryManager mm) 45b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen{ 46b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen picoknow_KnowledgeBase this; 47b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen PICODBG_TRACE(("start")); 48b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen 49b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen this = picoos_allocate(mm,sizeof(*this)); 50b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen if (NULL != this) { 51b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen PICODBG_TRACE(("allocated KnowledgeBase at address %i with size %i",(picoos_uint32)this,sizeof(*this))); 52b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen /* initialize */ 53b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen this->next = NULL; 54b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen this->id = PICOKNOW_KBID_NULL; 55b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen this->base = NULL; 56b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen this->size = 0; 57b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen this->subObj = NULL; 58b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen this->subDeallocate = NULL; 59b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen } 60b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen return this; 61b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen} 62b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen 63b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chenextern void picoknow_disposeKnowledgeBase(picoos_MemoryManager mm, picoknow_KnowledgeBase * this) 64b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen{ 65b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen picoos_uint8 id; 66b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen if (NULL != (*this)) { 67b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen id = (*this)->id; 68b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen PICODBG_TRACE(("disposing KnowledgeBase id=%i",id)); 69b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen /* terminate */ 70b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen if ((*this)->subObj != NULL) { 71b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen (*this)->subDeallocate((*this),mm); 72b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen } 73b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen picoos_deallocate(mm,(void**)this); 74b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen } 75b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen} 76b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen 77b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen#ifdef __cplusplus 78b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen} 79b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen#endif 80b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen 81b190149a69b110e6719ce0a41877a683f8db7ae7Charles Chen/* End picoknow.c */ 82