Changeset 584
- Timestamp:
- 07/08/08 08:04:31 (5 months ago)
- Files:
-
- trunk/rphp/runtime/rphp_hash.h (modified) (4 diffs)
- trunk/rphp/runtime/var-test.cpp (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/rphp/runtime/rphp_hash.h
r583 r584 37 37 38 38 pvar data; 39 bstring str_key; 39 bstring key; 40 bool isNumKey; 40 41 41 _dataContainer(bstring key, pvar d) : data(d), str_key(key) { } 42 _dataContainer(bstring k, pvar d) : data(d), key(k), isNumKey(false) { 43 // TODO: set isNumKey based on isNumeric check on key 44 // we will need this to emulate their numeric keys 45 } 42 46 43 47 }; … … 47 51 _dataContainer, 48 52 indexed_by< 49 hashed_unique< member<_dataContainer, bstring, &_dataContainer:: str_key> >,53 hashed_unique< member<_dataContainer, bstring, &_dataContainer::key> >, 50 54 sequenced<> 51 55 > … … 57 61 class phash { 58 62 private: 59 int size;60 63 stableHash hashData; 61 64 public: 62 phash(int sizevar) : size(sizevar) { 65 66 phash() { 63 67 hashData.insert(_dataContainer("foo", pvar(pint(5)))); 64 68 hashData.insert(_dataContainer("bar", pvar(bstring("some string val")))); … … 66 70 } 67 71 68 phash(const phash& h) { 69 size = h.size; 72 void insert(const bstring &key, pvar data) { 73 74 hashData.insert(_dataContainer(key, data)); 75 70 76 } 71 void dump() { 72 std::cout << "hash has " << hashData.size() << " elements" << std::endl; 77 78 void varDump() { 79 std::cout << "array(" << hashData.size() << ") {" << std::endl; 73 80 seq_index& ot = get<1>(hashData); 74 81 for (seq_index::iterator it = ot.begin(); it!=ot.end(); it++) { 75 std::cout << " key: " << (*it).str_key << " | data:" << (*it).data << std::endl;82 std::cout << " ['" << (*it).key << "'] => " << (*it).data << std::endl; 76 83 } 84 std::cout << "}" << std::endl; 77 85 } 78 int getSize() const { return size; } 86 87 int getSize() const { return hashData.size(); } 88 79 89 ~phash() { std::cout << "destorying php_hash" << std::endl; } 80 90 trunk/rphp/runtime/var-test.cpp
r583 r584 135 135 136 136 // php hash 137 rphp::phash h(5); 137 rphp::phash h; 138 h.insert("var-test", rphp::pint(971)); 139 rphp::pvar hole = rphp::pfloat(1.234); 140 h.insert("var-test2", hole); 138 141 std::cout << h; 139 h. dump();142 h.varDump(); 140 143 u = h; 141 144 std::cout << u << std::endl;
