14a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/* FILE: hashmap.h 24a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * DATE MODIFIED: 31-Aug-07 34a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * DESCRIPTION: Part of the SREC graph compiler project source files. 44a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * 54a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Copyright 2007, 2008 Nuance Communciations, Inc. * 64a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * * 74a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the 'License'); * 84a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * you may not use this file except in compliance with the License. * 94a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * * 104a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * You may obtain a copy of the License at * 114a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 * 124a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * * 134a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * Unless required by applicable law or agreed to in writing, software * 144a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * distributed under the License is distributed on an 'AS IS' BASIS, * 154a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * 164a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * See the License for the specific language governing permissions and * 174a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * limitations under the License. * 184a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project * * 194a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *---------------------------------------------------------------------------*/ 204a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 214a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#ifndef __hashmap_h__ 224a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#define __hashmap_h__ 234a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 244a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include <iostream> 254a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include <map> 264a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include <vector> 274a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 284a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 294a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projecttemplate <typename T1, typename T2> 304a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectclass HashMap 314a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project{ 324a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectpublic: 334a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project //typedef T1 MapValue; 344a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project HashMap(); 354a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project void setName(std::string s); 364a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project bool insert( T1 const & index, T2 const & value); 374a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project bool remove( T1 const & index); 384a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project bool isEmpty(); 394a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project bool clear(); 404a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project bool getFirst( T1 *index, T2 *value ); 414a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project bool getNext( T1 *index, T2 *value ); 424a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project bool getValue( T1 const & index, T2 *value); //returns value 434a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project bool getIndex( T2 const & value, T1 *index ); //returns index 444a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project void print(); 454a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project void writeFile( std::string fileName ); 464a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 474a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project typename std::map<T1,T2>::iterator begin(); 484a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project typename std::map<T1,T2>::iterator end(); 494a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 504a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project int size(); 514a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 524a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Projectprivate: 534a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project std::string m_Name; 544a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project std::map<T1, T2> m_Map; 554a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project typename std::map<T1,T2>::iterator m_pPos; 564a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 574a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project unsigned int m_NextAutoIndex; 584a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project}; 594a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 604a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project 614a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#endif // __hashmap_h__ 62