USB Host Driver with Socket Modem support. Works with revision 323 of mbed-src but broken with any later version.

Dependencies:   FATFileSystem

Fork of F401RE-USBHost by Norimasa Okamoto

USBHost/mymap.h

Committer:
va009039
Date:
2014-02-03
Revision:
9:7f9f64cf5ded
Child:
10:40c7f6788902

File content as of revision 9:7f9f64cf5ded:

#pragma once

template<class K,class T>
class mymap {
    struct mypair {
        K key;
        T value;
    };
public:
    mymap() {
        m_size = 0;
        m_limit = 4;
        m_buf = new mypair[m_limit];
    }
    void put(K key, T value) {
        int i = find(key);
        if (i == (-1)) {
            if (m_size >= m_limit) {
                int new_limit = m_limit + 4;
                mypair* new_buf = new mypair[new_limit];
                for(int i = 0; i < m_size; i++) {
                    new_buf[i] = m_buf[i];
                }
                delete[] m_buf;
                m_buf = new_buf;
                m_limit = new_limit;
            }
            i = m_size++;
            m_buf[i].key = key;
        }
        m_buf[i].value = value;
    }
    T get(K key) {
        int i = find(key);
        return (i == -1) ? NULL : m_buf[i].value;
    }
    bool empty() { return m_size == 0 ? true : false; }
    int size() { return m_size; }
    void clear() { m_size = 0; }

private:
    int find(K key) {
        for(int i = 0; i < m_size; i++) {
            if (m_buf[i].key == key) {
                return i;
            }
        }
        return -1;
    }
    int m_limit;
    int m_size;
    mypair *m_buf;
};