Branch Coverage

Shared.xs
Criterion Covered Total %
branch 777 3890 19.9


line true false branch
891 0 2 if (!map) croak("HashMap::Shared::I16: %s", errbuf[0] ? errbuf : "unknown error");
0 0 if (!map) croak("HashMap::Shared::I16: %s", errbuf[0] ? errbuf : "unknown error");
899 0 2 if (!SvROK(self_sv)) return;
901 0 2 if (!h) return;
908 10 0 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
0 10 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
0 10 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
909 10 0 RETVAL = shm_i16_put(h, key, value);
916 6 0 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
0 6 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
0 6 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
918 1 5 if (!shm_i16_get(h, key, &value)) XSRETURN_UNDEF;
926 1 0 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
927 1 0 RETVAL = shm_i16_remove(h, key);
934 2 0 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
0 2 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
0 2 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
935 1 1 RETVAL = shm_i16_exists(h, key);
942 2 0 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
0 2 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
0 2 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
945 0 2 if (!ok) croak("HashMap::Shared::I16: increment failed");
953 1 0 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
956 0 1 if (!ok) croak("HashMap::Shared::I16: decrement failed");
964 1 0 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
967 0 1 if (!ok) croak("HashMap::Shared::I16: incr_by failed");
975 1 0 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
976 0 1 RETVAL = (UV)shm_i16_size(h);
983 0 0 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
984 0 0 RETVAL = (UV)shm_i16_max_entries(h);
991 1 0 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
994 0 1 uint32_t now = h->expires_at ? (uint32_t)time(NULL) : 0;
996 0 1 EXTEND(SP, hdr->size);
997 16 1 for (uint32_t i = 0; i < hdr->table_cap; i++) {
998 5 11 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now))
0 5 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now))
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now))
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now))
999 0 5 mXPUSHi(nodes[i].key);
1005 0 0 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
1008 0 0 uint32_t now = h->expires_at ? (uint32_t)time(NULL) : 0;
1010 0 0 EXTEND(SP, hdr->size);
1011 0 0 for (uint32_t i = 0; i < hdr->table_cap; i++) {
1012 0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now))
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now))
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now))
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now))
1013 0 0 mXPUSHi(nodes[i].value);
1020 0 0 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
1023 0 0 uint32_t now = h->expires_at ? (uint32_t)time(NULL) : 0;
1025 0 0 EXTEND(SP, hdr->size * 2);
1026 0 0 for (uint32_t i = 0; i < hdr->table_cap; i++) {
1027 0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
1028 0 0 mXPUSHi(nodes[i].key);
1029 0 0 mXPUSHi(nodes[i].value);
1037 0 0 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
1039 0 0 if (shm_i16_each(h, &out_key, &out_value)) {
1040 0 0 EXTEND(SP, 2);
1041 0 0 mXPUSHi(out_key);
1042 0 0 mXPUSHi(out_value);
1051 0 0 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
1058 1 0 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
1064 1 0 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
1068 0 1 uint32_t now = h->expires_at ? (uint32_t)time(NULL) : 0;
1070 16 1 for (uint32_t i = 0; i < hdr->table_cap; i++) {
1071 5 11 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
0 5 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
1075 0 5 if (!hv_store(hv, kbuf, klen, val, 0)) SvREFCNT_dec(val);
1086 2 0 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
0 2 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
0 2 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
1089 0 2 if (!rc) XSRETURN_UNDEF;
1097 0 0 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
1098 0 0 REQUIRE_TTL(h);
1099 0 0 RETVAL = shm_i16_put_ttl(h, key, value, (uint32_t)ttl_sec);
1106 0 0 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
1107 0 0 RETVAL = (UV)shm_i16_max_size(h);
1114 0 0 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
1115 0 0 RETVAL = (UV)shm_i16_ttl(h);
1122 0 0 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
1124 0 0 if (!shm_i16_take(h, key, &out_value)) XSRETURN_UNDEF;
1132 0 0 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
1133 0 0 RETVAL = (UV)shm_i16_flush_expired(h);
1141 0 0 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
1144 0 0 EXTEND(SP, 2);
1151 0 0 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
1160 0 0 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
1161 0 0 RETVAL = shm_i16_touch(h, key);
1168 0 0 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
1169 0 0 RETVAL = shm_i16_reserve(h, (uint32_t)target);
1176 0 0 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
1184 0 0 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
1194 0 0 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
1195 0 0 RETVAL = (UV)shm_i16_stat_recoveries(h);
1202 0 0 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
1212 0 0 if (SvROK(self_or_class) && SvOBJECT(SvRV(self_or_class))) {
0 0 if (SvROK(self_or_class) && SvOBJECT(SvRV(self_or_class))) {
1214 0 0 if (!h) croak("Attempted to use a destroyed Data::HashMap::Shared::I16 object");
1217 0 0 if (items < 2) croak("Usage: Data::HashMap::Shared::I16->unlink($path)");
1220 0 0 RETVAL = shm_unlink_path(p);
1227 0 0 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
1229 0 0 if (remaining < 0) XSRETURN_UNDEF;
1237 0 0 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
1238 0 0 RETVAL = (UV)shm_i16_capacity(h);
1245 0 0 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
1246 0 0 RETVAL = (UV)shm_i16_tombstones(h);
1253 0 0 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16", self_sv);
1255 0 0 if (!c) croak("Failed to allocate cursor");
1266 0 0 if (!SvROK(self_sv)) return;
1268 0 0 if (!c) return;
1271 0 0 if (h) shm_i16_flush_deferred(h);
1277 0 0 EXTRACT_CURSOR("Data::HashMap::Shared::I16::Cursor", self_sv);
0 0 EXTRACT_CURSOR("Data::HashMap::Shared::I16::Cursor", self_sv);
0 0 EXTRACT_CURSOR("Data::HashMap::Shared::I16::Cursor", self_sv);
1279 0 0 if (shm_i16_cursor_next(c, &out_key, &out_value)) {
1280 0 0 EXTEND(SP, 2);
1281 0 0 mXPUSHi(out_key);
1282 0 0 mXPUSHi(out_value);
1290 0 0 EXTRACT_CURSOR("Data::HashMap::Shared::I16::Cursor", self_sv);
0 0 EXTRACT_CURSOR("Data::HashMap::Shared::I16::Cursor", self_sv);
0 0 EXTRACT_CURSOR("Data::HashMap::Shared::I16::Cursor", self_sv);
1296 0 0 EXTRACT_CURSOR("Data::HashMap::Shared::I16::Cursor", self_sv);
0 0 EXTRACT_CURSOR("Data::HashMap::Shared::I16::Cursor", self_sv);
0 0 EXTRACT_CURSOR("Data::HashMap::Shared::I16::Cursor", self_sv);
1297 0 0 RETVAL = shm_i16_cursor_seek(c, key);
1309 0 3 if (!map) croak("HashMap::Shared::I32: %s", errbuf[0] ? errbuf : "unknown error");
0 0 if (!map) croak("HashMap::Shared::I32: %s", errbuf[0] ? errbuf : "unknown error");
1317 0 3 if (!SvROK(self_sv)) return;
1319 0 3 if (!h) return;
1326 1014 0 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
0 1014 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
0 1014 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
1327 1014 0 RETVAL = shm_i32_put(h, key, value);
1334 5 0 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
0 5 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
0 5 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
1336 0 5 if (!shm_i32_get(h, key, &value)) XSRETURN_UNDEF;
1344 500 0 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
0 500 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
0 500 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
1345 500 0 RETVAL = shm_i32_remove(h, key);
1352 0 0 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
1353 0 0 RETVAL = shm_i32_exists(h, key);
1360 1 0 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
1363 0 1 if (!ok) croak("HashMap::Shared::I32: increment failed");
1371 0 0 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
1374 0 0 if (!ok) croak("HashMap::Shared::I32: decrement failed");
1382 1 0 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
1385 0 1 if (!ok) croak("HashMap::Shared::I32: incr_by failed");
1393 2 0 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
0 2 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
0 2 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
1394 0 2 RETVAL = (UV)shm_i32_size(h);
1401 0 0 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
1402 0 0 RETVAL = (UV)shm_i32_max_entries(h);
1409 0 0 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
1412 0 0 uint32_t now = h->expires_at ? (uint32_t)time(NULL) : 0;
1414 0 0 EXTEND(SP, hdr->size);
1415 0 0 for (uint32_t i = 0; i < hdr->table_cap; i++) {
1416 0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now))
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now))
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now))
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now))
1417 0 0 mXPUSHi(nodes[i].key);
1424 1 0 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
1427 0 1 uint32_t now = h->expires_at ? (uint32_t)time(NULL) : 0;
1429 0 1 EXTEND(SP, hdr->size);
1430 16 1 for (uint32_t i = 0; i < hdr->table_cap; i++) {
1431 10 6 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now))
0 10 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now))
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now))
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now))
1432 0 10 mXPUSHi(nodes[i].value);
1439 0 0 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
1442 0 0 uint32_t now = h->expires_at ? (uint32_t)time(NULL) : 0;
1444 0 0 EXTEND(SP, hdr->size * 2);
1445 0 0 for (uint32_t i = 0; i < hdr->table_cap; i++) {
1446 0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
1447 0 0 mXPUSHi(nodes[i].key);
1448 0 0 mXPUSHi(nodes[i].value);
1456 0 0 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
1458 0 0 if (shm_i32_each(h, &out_key, &out_value)) {
1459 0 0 EXTEND(SP, 2);
1460 0 0 mXPUSHi(out_key);
1461 0 0 mXPUSHi(out_value);
1470 0 0 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
1477 1 0 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
1483 0 0 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
1487 0 0 uint32_t now = h->expires_at ? (uint32_t)time(NULL) : 0;
1489 0 0 for (uint32_t i = 0; i < hdr->table_cap; i++) {
1490 0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
1494 0 0 if (!hv_store(hv, kbuf, klen, val, 0)) SvREFCNT_dec(val);
1505 2 0 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
0 2 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
0 2 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
1508 0 2 if (!rc) XSRETURN_UNDEF;
1516 0 0 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
1517 0 0 REQUIRE_TTL(h);
1518 0 0 RETVAL = shm_i32_put_ttl(h, key, value, (uint32_t)ttl_sec);
1525 0 0 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
1526 0 0 RETVAL = (UV)shm_i32_max_size(h);
1533 0 0 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
1534 0 0 RETVAL = (UV)shm_i32_ttl(h);
1543 0 0 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
1545 0 0 if (!shm_i32_take(h, key, &out_value)) XSRETURN_UNDEF;
1553 0 0 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
1554 0 0 RETVAL = (UV)shm_i32_flush_expired(h);
1562 0 0 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
1565 0 0 EXTEND(SP, 2);
1572 0 0 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
1581 0 0 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
1582 0 0 RETVAL = shm_i32_touch(h, key);
1589 0 0 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
1590 0 0 RETVAL = shm_i32_reserve(h, (uint32_t)target);
1597 0 0 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
1605 0 0 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
1615 0 0 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
1616 0 0 RETVAL = (UV)shm_i32_stat_recoveries(h);
1623 0 0 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
1633 0 0 if (SvROK(self_or_class) && SvOBJECT(SvRV(self_or_class))) {
0 0 if (SvROK(self_or_class) && SvOBJECT(SvRV(self_or_class))) {
1635 0 0 if (!h) croak("Attempted to use a destroyed Data::HashMap::Shared::I32 object");
1638 0 0 if (items < 2) croak("Usage: Data::HashMap::Shared::I32->unlink($path)");
1641 0 0 RETVAL = shm_unlink_path(p);
1648 0 0 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
1650 0 0 if (remaining < 0) XSRETURN_UNDEF;
1658 0 0 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
1659 0 0 RETVAL = (UV)shm_i32_capacity(h);
1666 0 0 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
1667 0 0 RETVAL = (UV)shm_i32_tombstones(h);
1674 0 0 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32", self_sv);
1676 0 0 if (!c) croak("Failed to allocate cursor");
1687 0 0 if (!SvROK(self_sv)) return;
1689 0 0 if (!c) return;
1692 0 0 if (h) shm_i32_flush_deferred(h);
1698 0 0 EXTRACT_CURSOR("Data::HashMap::Shared::I32::Cursor", self_sv);
0 0 EXTRACT_CURSOR("Data::HashMap::Shared::I32::Cursor", self_sv);
0 0 EXTRACT_CURSOR("Data::HashMap::Shared::I32::Cursor", self_sv);
1700 0 0 if (shm_i32_cursor_next(c, &out_key, &out_value)) {
1701 0 0 EXTEND(SP, 2);
1702 0 0 mXPUSHi(out_key);
1703 0 0 mXPUSHi(out_value);
1711 0 0 EXTRACT_CURSOR("Data::HashMap::Shared::I32::Cursor", self_sv);
0 0 EXTRACT_CURSOR("Data::HashMap::Shared::I32::Cursor", self_sv);
0 0 EXTRACT_CURSOR("Data::HashMap::Shared::I32::Cursor", self_sv);
1717 0 0 EXTRACT_CURSOR("Data::HashMap::Shared::I32::Cursor", self_sv);
0 0 EXTRACT_CURSOR("Data::HashMap::Shared::I32::Cursor", self_sv);
0 0 EXTRACT_CURSOR("Data::HashMap::Shared::I32::Cursor", self_sv);
1718 0 0 RETVAL = shm_i32_cursor_seek(c, key);
1730 1 81 if (!map) croak("HashMap::Shared::II: %s", errbuf[0] ? errbuf : "unknown error");
1 0 if (!map) croak("HashMap::Shared::II: %s", errbuf[0] ? errbuf : "unknown error");
1738 0 81 if (!SvROK(self_sv)) return;
1740 0 81 if (!h) return;
1747 2492 0 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
0 2492 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
0 2492 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
1748 2491 1 RETVAL = shm_ii_put(h, key, value);
1755 184 0 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
0 184 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
0 184 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
1757 84 100 if (!shm_ii_get(h, key, &value)) XSRETURN_UNDEF;
1765 279 0 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
0 279 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
0 279 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
1766 279 0 RETVAL = shm_ii_remove(h, key);
1773 4 0 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
0 4 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
0 4 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
1774 3 1 RETVAL = shm_ii_exists(h, key);
1781 6 0 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
0 6 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
0 6 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
1784 0 6 if (!ok) croak("HashMap::Shared::II: increment failed");
1792 2 0 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
0 2 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
0 2 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
1795 0 2 if (!ok) croak("HashMap::Shared::II: decrement failed");
1803 3 0 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
0 3 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
0 3 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
1806 0 3 if (!ok) croak("HashMap::Shared::II: incr_by failed");
1814 31 0 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
0 31 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
0 31 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
1815 0 31 RETVAL = (UV)shm_ii_size(h);
1822 2 0 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
0 2 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
0 2 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
1823 0 2 RETVAL = (UV)shm_ii_max_entries(h);
1830 2 0 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
0 2 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
0 2 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
1833 1 1 uint32_t now = h->expires_at ? (uint32_t)time(NULL) : 0;
1835 0 2 EXTEND(SP, hdr->size);
1836 32 2 for (uint32_t i = 0; i < hdr->table_cap; i++) {
1837 5 27 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now))
2 3 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now))
2 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now))
1 1 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now))
1838 0 4 mXPUSHi(nodes[i].key);
1845 1 0 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
1848 0 1 uint32_t now = h->expires_at ? (uint32_t)time(NULL) : 0;
1850 0 1 EXTEND(SP, hdr->size);
1851 16 1 for (uint32_t i = 0; i < hdr->table_cap; i++) {
1852 3 13 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now))
0 3 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now))
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now))
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now))
1853 0 3 mXPUSHi(nodes[i].value);
1860 1 0 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
1863 0 1 uint32_t now = h->expires_at ? (uint32_t)time(NULL) : 0;
1865 0 1 EXTEND(SP, hdr->size * 2);
1866 16 1 for (uint32_t i = 0; i < hdr->table_cap; i++) {
1867 3 13 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
0 3 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
1868 0 3 mXPUSHi(nodes[i].key);
1869 0 3 mXPUSHi(nodes[i].value);
1877 325 0 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
0 325 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
0 325 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
1879 319 6 if (shm_ii_each(h, &out_key, &out_value)) {
1880 0 319 EXTEND(SP, 2);
1881 0 319 mXPUSHi(out_key);
1882 0 319 mXPUSHi(out_value);
1891 1 0 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
1898 5 0 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
0 5 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
0 5 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
1904 1 0 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
1908 0 1 uint32_t now = h->expires_at ? (uint32_t)time(NULL) : 0;
1910 16 1 for (uint32_t i = 0; i < hdr->table_cap; i++) {
1911 2 14 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
0 2 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
1915 0 2 if (!hv_store(hv, kbuf, klen, val, 0)) SvREFCNT_dec(val);
1926 5 0 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
0 5 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
0 5 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
1929 0 5 if (!rc) XSRETURN_UNDEF;
1937 13 0 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
0 13 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
0 13 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
1938 1 12 REQUIRE_TTL(h);
1939 12 0 RETVAL = shm_ii_put_ttl(h, key, value, (uint32_t)ttl_sec);
1946 4 0 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
0 4 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
0 4 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
1947 0 4 RETVAL = (UV)shm_ii_max_size(h);
1954 4 0 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
0 4 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
0 4 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
1955 0 4 RETVAL = (UV)shm_ii_ttl(h);
1964 4 0 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
0 4 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
0 4 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
1966 2 2 if (!shm_ii_take(h, key, &out_value)) XSRETURN_UNDEF;
1974 6 0 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
0 6 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
0 6 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
1975 0 6 RETVAL = (UV)shm_ii_flush_expired(h);
1983 19 0 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
0 19 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
0 19 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
1986 0 19 EXTEND(SP, 2);
1993 3 0 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
0 3 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
0 3 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
2002 8 0 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
0 8 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
0 8 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
2003 5 3 RETVAL = shm_ii_touch(h, key);
2010 4 0 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
0 4 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
0 4 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
2011 3 1 RETVAL = shm_ii_reserve(h, (uint32_t)target);
2018 8 0 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
0 8 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
0 8 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
2026 5 0 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
0 5 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
0 5 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
2036 1 0 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
2037 0 1 RETVAL = (UV)shm_ii_stat_recoveries(h);
2044 1 0 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
2054 1 2 if (SvROK(self_or_class) && SvOBJECT(SvRV(self_or_class))) {
1 0 if (SvROK(self_or_class) && SvOBJECT(SvRV(self_or_class))) {
2056 0 1 if (!h) croak("Attempted to use a destroyed Data::HashMap::Shared::II object");
2059 0 2 if (items < 2) croak("Usage: Data::HashMap::Shared::II->unlink($path)");
2062 2 1 RETVAL = shm_unlink_path(p);
2069 13 0 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
0 13 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
0 13 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
2071 2 11 if (remaining < 0) XSRETURN_UNDEF;
2079 10 0 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
0 10 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
0 10 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
2080 0 10 RETVAL = (UV)shm_ii_capacity(h);
2087 4 0 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
0 4 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
0 4 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
2088 0 4 RETVAL = (UV)shm_ii_tombstones(h);
2095 12 0 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
0 12 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
0 12 EXTRACT_MAP("Data::HashMap::Shared::II", self_sv);
2097 0 12 if (!c) croak("Failed to allocate cursor");
2108 0 12 if (!SvROK(self_sv)) return;
2110 0 12 if (!c) return;
2113 12 0 if (h) shm_ii_flush_deferred(h);
2119 88 0 EXTRACT_CURSOR("Data::HashMap::Shared::II::Cursor", self_sv);
0 88 EXTRACT_CURSOR("Data::HashMap::Shared::II::Cursor", self_sv);
0 88 EXTRACT_CURSOR("Data::HashMap::Shared::II::Cursor", self_sv);
2121 80 8 if (shm_ii_cursor_next(c, &out_key, &out_value)) {
2122 0 80 EXTEND(SP, 2);
2123 0 80 mXPUSHi(out_key);
2124 0 80 mXPUSHi(out_value);
2132 1 0 EXTRACT_CURSOR("Data::HashMap::Shared::II::Cursor", self_sv);
0 1 EXTRACT_CURSOR("Data::HashMap::Shared::II::Cursor", self_sv);
0 1 EXTRACT_CURSOR("Data::HashMap::Shared::II::Cursor", self_sv);
2138 4 0 EXTRACT_CURSOR("Data::HashMap::Shared::II::Cursor", self_sv);
0 4 EXTRACT_CURSOR("Data::HashMap::Shared::II::Cursor", self_sv);
0 4 EXTRACT_CURSOR("Data::HashMap::Shared::II::Cursor", self_sv);
2139 2 2 RETVAL = shm_ii_cursor_seek(c, key);
2151 0 2 if (!map) croak("HashMap::Shared::I16S: %s", errbuf[0] ? errbuf : "unknown error");
0 0 if (!map) croak("HashMap::Shared::I16S: %s", errbuf[0] ? errbuf : "unknown error");
2159 0 2 if (!SvROK(self_sv)) return;
2161 0 2 if (!h) return;
2168 4 0 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
0 4 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
0 4 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
2169 0 4 EXTRACT_STR_VAL(value);
2170 4 0 RETVAL = shm_i16s_put(h, key, _vstr, (uint32_t)_vlen, _vutf8);
2177 0 0 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
2178 0 0 EXTRACT_STR_VAL(value);
2179 0 0 REQUIRE_TTL(h);
2180 0 0 RETVAL = shm_i16s_put_ttl(h, key, _vstr, (uint32_t)_vlen, _vutf8, (uint32_t)ttl_sec);
2187 0 0 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
2188 0 0 RETVAL = (UV)shm_i16s_max_size(h);
2195 0 0 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
2196 0 0 RETVAL = (UV)shm_i16s_ttl(h);
2203 5 0 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
0 5 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
0 5 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
2205 1 4 if (!shm_i16s_get(h, key, &val, &val_len, &val_utf8)) XSRETURN_UNDEF;
2207 1 3 if (val_utf8) SvUTF8_on(RETVAL);
2214 1 0 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
2215 1 0 RETVAL = shm_i16s_remove(h, key);
2222 1 0 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
2223 1 0 RETVAL = shm_i16s_exists(h, key);
2230 1 0 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
2231 0 1 RETVAL = (UV)shm_i16s_size(h);
2238 0 0 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
2239 0 0 RETVAL = (UV)shm_i16s_max_entries(h);
2246 0 0 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
2249 0 0 uint32_t now = h->expires_at ? (uint32_t)time(NULL) : 0;
2251 0 0 EXTEND(SP, hdr->size);
2252 0 0 for (uint32_t i = 0; i < hdr->table_cap; i++) {
2253 0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now))
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now))
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now))
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now))
2254 0 0 mXPUSHi(nodes[i].key);
2261 0 0 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
2264 0 0 uint32_t now = h->expires_at ? (uint32_t)time(NULL) : 0;
2266 0 0 EXTEND(SP, hdr->size);
2267 0 0 for (uint32_t i = 0; i < hdr->table_cap; i++) {
2268 0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
2271 0 0 if (SHM_UNPACK_UTF8(nodes[i].val_len)) SvUTF8_on(sv);
2272 0 0 mXPUSHs(sv);
2280 0 0 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
2283 0 0 uint32_t now = h->expires_at ? (uint32_t)time(NULL) : 0;
2285 0 0 EXTEND(SP, hdr->size * 2);
2286 0 0 for (uint32_t i = 0; i < hdr->table_cap; i++) {
2287 0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
2288 0 0 mXPUSHi(nodes[i].key);
2291 0 0 if (SHM_UNPACK_UTF8(nodes[i].val_len)) SvUTF8_on(sv);
2292 0 0 mXPUSHs(sv);
2300 0 0 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
2303 0 0 if (shm_i16s_each(h, &out_key, &out_val, &out_vlen, &out_vutf8)) {
2304 0 0 EXTEND(SP, 2);
2305 0 0 mXPUSHi(out_key);
2307 0 0 if (out_vutf8) SvUTF8_on(sv);
2308 0 0 mXPUSHs(sv);
2317 0 0 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
2324 0 0 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
2330 0 0 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
2334 0 0 uint32_t now = h->expires_at ? (uint32_t)time(NULL) : 0;
2336 0 0 for (uint32_t i = 0; i < hdr->table_cap; i++) {
2337 0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
2341 0 0 if (vutf8) SvUTF8_on(val);
2344 0 0 if (!hv_store(hv, kbuf, klen, val, 0)) SvREFCNT_dec(val);
2355 2 0 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
0 2 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
0 2 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
2357 0 2 EXTRACT_STR_VAL(default_sv);
2359 0 2 if (!rc) XSRETURN_UNDEF;
2361 0 2 if (out_utf8) SvUTF8_on(RETVAL);
2370 0 0 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
2372 0 0 if (remaining < 0) XSRETURN_UNDEF;
2380 0 0 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
2381 0 0 RETVAL = (UV)shm_i16s_capacity(h);
2388 0 0 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
2389 0 0 RETVAL = (UV)shm_i16s_tombstones(h);
2396 1 0 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
2398 0 1 if (!c) croak("Failed to allocate cursor");
2406 0 0 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
2408 0 0 if (!shm_i16s_take(h, key, &out_str, &out_len, &out_utf8)) XSRETURN_UNDEF;
2410 0 0 if (out_utf8) SvUTF8_on(RETVAL);
2417 0 0 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
2418 0 0 RETVAL = (UV)shm_i16s_flush_expired(h);
2426 0 0 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
2429 0 0 EXTEND(SP, 2);
2436 0 0 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
2445 0 0 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
2446 0 0 RETVAL = shm_i16s_touch(h, key);
2453 0 0 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
2454 0 0 RETVAL = shm_i16s_reserve(h, (uint32_t)target);
2461 0 0 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
2469 0 0 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
2479 0 0 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
2480 0 0 RETVAL = (UV)shm_i16s_stat_recoveries(h);
2487 0 0 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I16S", self_sv);
2497 0 0 if (SvROK(self_or_class) && SvOBJECT(SvRV(self_or_class))) {
0 0 if (SvROK(self_or_class) && SvOBJECT(SvRV(self_or_class))) {
2499 0 0 if (!h) croak("Attempted to use a destroyed Data::HashMap::Shared::I16S object");
2502 0 0 if (items < 2) croak("Usage: Data::HashMap::Shared::I16S->unlink($path)");
2505 0 0 RETVAL = shm_unlink_path(p);
2515 0 1 if (!SvROK(self_sv)) return;
2517 0 1 if (!c) return;
2520 1 0 if (h) shm_i16s_flush_deferred(h);
2526 3 0 EXTRACT_CURSOR("Data::HashMap::Shared::I16S::Cursor", self_sv);
0 3 EXTRACT_CURSOR("Data::HashMap::Shared::I16S::Cursor", self_sv);
0 3 EXTRACT_CURSOR("Data::HashMap::Shared::I16S::Cursor", self_sv);
2529 2 1 if (shm_i16s_cursor_next(c, &out_key, &out_val, &out_vlen, &out_vutf8)) {
2530 0 2 EXTEND(SP, 2);
2531 0 2 mXPUSHi(out_key);
2533 1 1 if (out_vutf8) SvUTF8_on(sv);
2534 0 2 mXPUSHs(sv);
2542 0 0 EXTRACT_CURSOR("Data::HashMap::Shared::I16S::Cursor", self_sv);
0 0 EXTRACT_CURSOR("Data::HashMap::Shared::I16S::Cursor", self_sv);
0 0 EXTRACT_CURSOR("Data::HashMap::Shared::I16S::Cursor", self_sv);
2548 0 0 EXTRACT_CURSOR("Data::HashMap::Shared::I16S::Cursor", self_sv);
0 0 EXTRACT_CURSOR("Data::HashMap::Shared::I16S::Cursor", self_sv);
0 0 EXTRACT_CURSOR("Data::HashMap::Shared::I16S::Cursor", self_sv);
2549 0 0 RETVAL = shm_i16s_cursor_seek(c, key);
2561 0 1 if (!map) croak("HashMap::Shared::I32S: %s", errbuf[0] ? errbuf : "unknown error");
0 0 if (!map) croak("HashMap::Shared::I32S: %s", errbuf[0] ? errbuf : "unknown error");
2569 0 1 if (!SvROK(self_sv)) return;
2571 0 1 if (!h) return;
2578 13 0 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
0 13 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
0 13 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
2579 0 13 EXTRACT_STR_VAL(value);
2580 13 0 RETVAL = shm_i32s_put(h, key, _vstr, (uint32_t)_vlen, _vutf8);
2587 0 0 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
2588 0 0 EXTRACT_STR_VAL(value);
2589 0 0 REQUIRE_TTL(h);
2590 0 0 RETVAL = shm_i32s_put_ttl(h, key, _vstr, (uint32_t)_vlen, _vutf8, (uint32_t)ttl_sec);
2597 0 0 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
2598 0 0 RETVAL = (UV)shm_i32s_max_size(h);
2605 0 0 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
2606 0 0 RETVAL = (UV)shm_i32s_ttl(h);
2613 3 0 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
0 3 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
0 3 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
2615 0 3 if (!shm_i32s_get(h, key, &val, &val_len, &val_utf8)) XSRETURN_UNDEF;
2617 0 3 if (val_utf8) SvUTF8_on(RETVAL);
2624 0 0 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
2625 0 0 RETVAL = shm_i32s_remove(h, key);
2632 0 0 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
2633 0 0 RETVAL = shm_i32s_exists(h, key);
2640 0 0 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
2641 0 0 RETVAL = (UV)shm_i32s_size(h);
2648 0 0 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
2649 0 0 RETVAL = (UV)shm_i32s_max_entries(h);
2656 0 0 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
2659 0 0 uint32_t now = h->expires_at ? (uint32_t)time(NULL) : 0;
2661 0 0 EXTEND(SP, hdr->size);
2662 0 0 for (uint32_t i = 0; i < hdr->table_cap; i++) {
2663 0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now))
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now))
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now))
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now))
2664 0 0 mXPUSHi(nodes[i].key);
2671 0 0 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
2674 0 0 uint32_t now = h->expires_at ? (uint32_t)time(NULL) : 0;
2676 0 0 EXTEND(SP, hdr->size);
2677 0 0 for (uint32_t i = 0; i < hdr->table_cap; i++) {
2678 0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
2681 0 0 if (SHM_UNPACK_UTF8(nodes[i].val_len)) SvUTF8_on(sv);
2682 0 0 mXPUSHs(sv);
2690 0 0 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
2693 0 0 uint32_t now = h->expires_at ? (uint32_t)time(NULL) : 0;
2695 0 0 EXTEND(SP, hdr->size * 2);
2696 0 0 for (uint32_t i = 0; i < hdr->table_cap; i++) {
2697 0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
2698 0 0 mXPUSHi(nodes[i].key);
2701 0 0 if (SHM_UNPACK_UTF8(nodes[i].val_len)) SvUTF8_on(sv);
2702 0 0 mXPUSHs(sv);
2710 0 0 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
2713 0 0 if (shm_i32s_each(h, &out_key, &out_val, &out_vlen, &out_vutf8)) {
2714 0 0 EXTEND(SP, 2);
2715 0 0 mXPUSHi(out_key);
2717 0 0 if (out_vutf8) SvUTF8_on(sv);
2718 0 0 mXPUSHs(sv);
2727 0 0 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
2734 0 0 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
2740 1 0 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
2744 0 1 uint32_t now = h->expires_at ? (uint32_t)time(NULL) : 0;
2746 16 1 for (uint32_t i = 0; i < hdr->table_cap; i++) {
2747 12 4 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
0 12 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
2751 0 12 if (vutf8) SvUTF8_on(val);
2754 0 12 if (!hv_store(hv, kbuf, klen, val, 0)) SvREFCNT_dec(val);
2765 0 0 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
2767 0 0 EXTRACT_STR_VAL(default_sv);
2769 0 0 if (!rc) XSRETURN_UNDEF;
2771 0 0 if (out_utf8) SvUTF8_on(RETVAL);
2780 0 0 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
2782 0 0 if (remaining < 0) XSRETURN_UNDEF;
2790 0 0 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
2791 0 0 RETVAL = (UV)shm_i32s_capacity(h);
2798 0 0 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
2799 0 0 RETVAL = (UV)shm_i32s_tombstones(h);
2806 0 0 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
2808 0 0 if (!c) croak("Failed to allocate cursor");
2816 0 0 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
2818 0 0 if (!shm_i32s_take(h, key, &out_str, &out_len, &out_utf8)) XSRETURN_UNDEF;
2820 0 0 if (out_utf8) SvUTF8_on(RETVAL);
2827 0 0 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
2828 0 0 RETVAL = (UV)shm_i32s_flush_expired(h);
2836 0 0 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
2839 0 0 EXTEND(SP, 2);
2846 0 0 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
2855 0 0 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
2856 0 0 RETVAL = shm_i32s_touch(h, key);
2863 0 0 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
2864 0 0 RETVAL = shm_i32s_reserve(h, (uint32_t)target);
2871 0 0 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
2879 0 0 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
2889 0 0 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
2890 0 0 RETVAL = (UV)shm_i32s_stat_recoveries(h);
2897 0 0 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::I32S", self_sv);
2907 0 0 if (SvROK(self_or_class) && SvOBJECT(SvRV(self_or_class))) {
0 0 if (SvROK(self_or_class) && SvOBJECT(SvRV(self_or_class))) {
2909 0 0 if (!h) croak("Attempted to use a destroyed Data::HashMap::Shared::I32S object");
2912 0 0 if (items < 2) croak("Usage: Data::HashMap::Shared::I32S->unlink($path)");
2915 0 0 RETVAL = shm_unlink_path(p);
2925 0 0 if (!SvROK(self_sv)) return;
2927 0 0 if (!c) return;
2930 0 0 if (h) shm_i32s_flush_deferred(h);
2936 0 0 EXTRACT_CURSOR("Data::HashMap::Shared::I32S::Cursor", self_sv);
0 0 EXTRACT_CURSOR("Data::HashMap::Shared::I32S::Cursor", self_sv);
0 0 EXTRACT_CURSOR("Data::HashMap::Shared::I32S::Cursor", self_sv);
2939 0 0 if (shm_i32s_cursor_next(c, &out_key, &out_val, &out_vlen, &out_vutf8)) {
2940 0 0 EXTEND(SP, 2);
2941 0 0 mXPUSHi(out_key);
2943 0 0 if (out_vutf8) SvUTF8_on(sv);
2944 0 0 mXPUSHs(sv);
2952 0 0 EXTRACT_CURSOR("Data::HashMap::Shared::I32S::Cursor", self_sv);
0 0 EXTRACT_CURSOR("Data::HashMap::Shared::I32S::Cursor", self_sv);
0 0 EXTRACT_CURSOR("Data::HashMap::Shared::I32S::Cursor", self_sv);
2958 0 0 EXTRACT_CURSOR("Data::HashMap::Shared::I32S::Cursor", self_sv);
0 0 EXTRACT_CURSOR("Data::HashMap::Shared::I32S::Cursor", self_sv);
0 0 EXTRACT_CURSOR("Data::HashMap::Shared::I32S::Cursor", self_sv);
2959 0 0 RETVAL = shm_i32s_cursor_seek(c, key);
2971 0 2 if (!map) croak("HashMap::Shared::IS: %s", errbuf[0] ? errbuf : "unknown error");
0 0 if (!map) croak("HashMap::Shared::IS: %s", errbuf[0] ? errbuf : "unknown error");
2979 0 2 if (!SvROK(self_sv)) return;
2981 0 2 if (!h) return;
2988 5 0 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
0 5 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
0 5 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
2989 0 5 EXTRACT_STR_VAL(value);
2990 5 0 RETVAL = shm_is_put(h, key, _vstr, (uint32_t)_vlen, _vutf8);
2997 0 0 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
2998 0 0 EXTRACT_STR_VAL(value);
2999 0 0 REQUIRE_TTL(h);
3000 0 0 RETVAL = shm_is_put_ttl(h, key, _vstr, (uint32_t)_vlen, _vutf8, (uint32_t)ttl_sec);
3007 0 0 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
3008 0 0 RETVAL = (UV)shm_is_max_size(h);
3015 0 0 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
3016 0 0 RETVAL = (UV)shm_is_ttl(h);
3023 3 0 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
0 3 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
0 3 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
3025 0 3 if (!shm_is_get(h, key, &val, &val_len, &val_utf8)) XSRETURN_UNDEF;
3027 1 2 if (val_utf8) SvUTF8_on(RETVAL);
3034 0 0 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
3035 0 0 RETVAL = shm_is_remove(h, key);
3042 0 0 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
3043 0 0 RETVAL = shm_is_exists(h, key);
3050 2 0 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
0 2 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
0 2 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
3051 0 2 RETVAL = (UV)shm_is_size(h);
3058 0 0 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
3059 0 0 RETVAL = (UV)shm_is_max_entries(h);
3066 0 0 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
3069 0 0 uint32_t now = h->expires_at ? (uint32_t)time(NULL) : 0;
3071 0 0 EXTEND(SP, hdr->size);
3072 0 0 for (uint32_t i = 0; i < hdr->table_cap; i++) {
3073 0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now))
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now))
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now))
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now))
3074 0 0 mXPUSHi(nodes[i].key);
3081 0 0 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
3084 0 0 uint32_t now = h->expires_at ? (uint32_t)time(NULL) : 0;
3086 0 0 EXTEND(SP, hdr->size);
3087 0 0 for (uint32_t i = 0; i < hdr->table_cap; i++) {
3088 0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
3091 0 0 if (SHM_UNPACK_UTF8(nodes[i].val_len)) SvUTF8_on(sv);
3092 0 0 mXPUSHs(sv);
3100 0 0 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
3103 0 0 uint32_t now = h->expires_at ? (uint32_t)time(NULL) : 0;
3105 0 0 EXTEND(SP, hdr->size * 2);
3106 0 0 for (uint32_t i = 0; i < hdr->table_cap; i++) {
3107 0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
3108 0 0 mXPUSHi(nodes[i].key);
3111 0 0 if (SHM_UNPACK_UTF8(nodes[i].val_len)) SvUTF8_on(sv);
3112 0 0 mXPUSHs(sv);
3120 0 0 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
3123 0 0 if (shm_is_each(h, &out_key, &out_val, &out_vlen, &out_vutf8)) {
3124 0 0 EXTEND(SP, 2);
3125 0 0 mXPUSHi(out_key);
3127 0 0 if (out_vutf8) SvUTF8_on(sv);
3128 0 0 mXPUSHs(sv);
3137 0 0 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
3144 0 0 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
3150 0 0 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
3154 0 0 uint32_t now = h->expires_at ? (uint32_t)time(NULL) : 0;
3156 0 0 for (uint32_t i = 0; i < hdr->table_cap; i++) {
3157 0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
3161 0 0 if (vutf8) SvUTF8_on(val);
3164 0 0 if (!hv_store(hv, kbuf, klen, val, 0)) SvREFCNT_dec(val);
3175 0 0 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
3177 0 0 EXTRACT_STR_VAL(default_sv);
3179 0 0 if (!rc) XSRETURN_UNDEF;
3181 0 0 if (out_utf8) SvUTF8_on(RETVAL);
3190 0 0 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
3192 0 0 if (remaining < 0) XSRETURN_UNDEF;
3200 0 0 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
3201 0 0 RETVAL = (UV)shm_is_capacity(h);
3208 0 0 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
3209 0 0 RETVAL = (UV)shm_is_tombstones(h);
3216 0 0 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
3218 0 0 if (!c) croak("Failed to allocate cursor");
3226 1 0 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
3228 0 1 if (!shm_is_take(h, key, &out_str, &out_len, &out_utf8)) XSRETURN_UNDEF;
3230 0 1 if (out_utf8) SvUTF8_on(RETVAL);
3237 0 0 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
3238 0 0 RETVAL = (UV)shm_is_flush_expired(h);
3246 0 0 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
3249 0 0 EXTEND(SP, 2);
3256 0 0 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
3265 0 0 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
3266 0 0 RETVAL = shm_is_touch(h, key);
3273 0 0 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
3274 0 0 RETVAL = shm_is_reserve(h, (uint32_t)target);
3281 0 0 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
3289 0 0 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
3299 0 0 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
3300 0 0 RETVAL = (UV)shm_is_stat_recoveries(h);
3307 0 0 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::IS", self_sv);
3317 0 0 if (SvROK(self_or_class) && SvOBJECT(SvRV(self_or_class))) {
0 0 if (SvROK(self_or_class) && SvOBJECT(SvRV(self_or_class))) {
3319 0 0 if (!h) croak("Attempted to use a destroyed Data::HashMap::Shared::IS object");
3322 0 0 if (items < 2) croak("Usage: Data::HashMap::Shared::IS->unlink($path)");
3325 0 0 RETVAL = shm_unlink_path(p);
3335 0 0 if (!SvROK(self_sv)) return;
3337 0 0 if (!c) return;
3340 0 0 if (h) shm_is_flush_deferred(h);
3346 0 0 EXTRACT_CURSOR("Data::HashMap::Shared::IS::Cursor", self_sv);
0 0 EXTRACT_CURSOR("Data::HashMap::Shared::IS::Cursor", self_sv);
0 0 EXTRACT_CURSOR("Data::HashMap::Shared::IS::Cursor", self_sv);
3349 0 0 if (shm_is_cursor_next(c, &out_key, &out_val, &out_vlen, &out_vutf8)) {
3350 0 0 EXTEND(SP, 2);
3351 0 0 mXPUSHi(out_key);
3353 0 0 if (out_vutf8) SvUTF8_on(sv);
3354 0 0 mXPUSHs(sv);
3362 0 0 EXTRACT_CURSOR("Data::HashMap::Shared::IS::Cursor", self_sv);
0 0 EXTRACT_CURSOR("Data::HashMap::Shared::IS::Cursor", self_sv);
0 0 EXTRACT_CURSOR("Data::HashMap::Shared::IS::Cursor", self_sv);
3368 0 0 EXTRACT_CURSOR("Data::HashMap::Shared::IS::Cursor", self_sv);
0 0 EXTRACT_CURSOR("Data::HashMap::Shared::IS::Cursor", self_sv);
0 0 EXTRACT_CURSOR("Data::HashMap::Shared::IS::Cursor", self_sv);
3369 0 0 RETVAL = shm_is_cursor_seek(c, key);
3381 0 2 if (!map) croak("HashMap::Shared::SI16: %s", errbuf[0] ? errbuf : "unknown error");
0 0 if (!map) croak("HashMap::Shared::SI16: %s", errbuf[0] ? errbuf : "unknown error");
3389 0 2 if (!SvROK(self_sv)) return;
3391 0 2 if (!h) return;
3398 5 0 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
0 5 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
0 5 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
3399 0 5 EXTRACT_STR_KEY(key_sv);
3400 5 0 RETVAL = shm_si16_put(h, _kstr, (uint32_t)_klen, _kutf8, value);
3407 0 0 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
3408 0 0 EXTRACT_STR_KEY(key_sv);
3409 0 0 REQUIRE_TTL(h);
3410 0 0 RETVAL = shm_si16_put_ttl(h, _kstr, (uint32_t)_klen, _kutf8, value, (uint32_t)ttl_sec);
3417 0 0 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
3418 0 0 RETVAL = (UV)shm_si16_max_size(h);
3425 0 0 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
3426 0 0 RETVAL = (UV)shm_si16_ttl(h);
3433 5 0 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
0 5 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
0 5 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
3434 0 5 EXTRACT_STR_KEY(key_sv);
3436 0 5 if (!shm_si16_get(h, _kstr, (uint32_t)_klen, _kutf8, &value)) XSRETURN_UNDEF;
3444 1 0 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
3445 0 1 EXTRACT_STR_KEY(key_sv);
3446 1 0 RETVAL = shm_si16_remove(h, _kstr, (uint32_t)_klen, _kutf8);
3453 1 0 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
3454 0 1 EXTRACT_STR_KEY(key_sv);
3455 1 0 RETVAL = shm_si16_exists(h, _kstr, (uint32_t)_klen, _kutf8);
3462 2 0 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
0 2 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
0 2 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
3463 0 2 EXTRACT_STR_KEY(key_sv);
3466 0 2 if (!ok) croak("HashMap::Shared::SI16: increment failed");
3474 1 0 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
3475 0 1 EXTRACT_STR_KEY(key_sv);
3478 0 1 if (!ok) croak("HashMap::Shared::SI16: decrement failed");
3486 0 0 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
3487 0 0 EXTRACT_STR_KEY(key_sv);
3490 0 0 if (!ok) croak("HashMap::Shared::SI16: incr_by failed");
3498 0 0 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
3499 0 0 RETVAL = (UV)shm_si16_size(h);
3506 0 0 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
3507 0 0 RETVAL = (UV)shm_si16_max_entries(h);
3514 0 0 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
3517 0 0 uint32_t now = h->expires_at ? (uint32_t)time(NULL) : 0;
3519 0 0 EXTEND(SP, hdr->size);
3520 0 0 for (uint32_t i = 0; i < hdr->table_cap; i++) {
3521 0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
3524 0 0 if (SHM_UNPACK_UTF8(nodes[i].key_len)) SvUTF8_on(sv);
3525 0 0 mXPUSHs(sv);
3533 0 0 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
3536 0 0 uint32_t now = h->expires_at ? (uint32_t)time(NULL) : 0;
3538 0 0 EXTEND(SP, hdr->size);
3539 0 0 for (uint32_t i = 0; i < hdr->table_cap; i++) {
3540 0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now))
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now))
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now))
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now))
3541 0 0 mXPUSHi(nodes[i].value);
3548 0 0 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
3551 0 0 uint32_t now = h->expires_at ? (uint32_t)time(NULL) : 0;
3553 0 0 EXTEND(SP, hdr->size * 2);
3554 0 0 for (uint32_t i = 0; i < hdr->table_cap; i++) {
3555 0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
3558 0 0 if (SHM_UNPACK_UTF8(nodes[i].key_len)) SvUTF8_on(sv);
3559 0 0 mXPUSHs(sv);
3560 0 0 mXPUSHi(nodes[i].value);
3568 0 0 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
3571 0 0 if (shm_si16_each(h, &out_key, &out_klen, &out_kutf8, &out_value)) {
3572 0 0 EXTEND(SP, 2);
3574 0 0 if (out_kutf8) SvUTF8_on(ksv);
3575 0 0 mXPUSHs(ksv);
3576 0 0 mXPUSHi(out_value);
3585 0 0 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
3592 0 0 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
3598 0 0 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
3602 0 0 uint32_t now = h->expires_at ? (uint32_t)time(NULL) : 0;
3604 0 0 for (uint32_t i = 0; i < hdr->table_cap; i++) {
3605 0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
3609 0 0 if (!hv_store(hv, h->arena + nodes[i].key_off,
0 0 if (!hv_store(hv, h->arena + nodes[i].key_off,
3621 2 0 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
0 2 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
0 2 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
3622 0 2 EXTRACT_STR_KEY(key_sv);
3625 0 2 if (!rc) XSRETURN_UNDEF;
3635 0 0 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
3636 0 0 EXTRACT_STR_KEY(key_sv);
3638 0 0 if (!shm_si16_take(h, _kstr, (uint32_t)_klen, _kutf8, &out_value)) XSRETURN_UNDEF;
3646 0 0 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
3647 0 0 RETVAL = (UV)shm_si16_flush_expired(h);
3655 0 0 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
3658 0 0 EXTEND(SP, 2);
3665 0 0 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
3674 0 0 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
3675 0 0 EXTRACT_STR_KEY(key_sv);
3676 0 0 RETVAL = shm_si16_touch(h, _kstr, (uint32_t)_klen, _kutf8);
3683 0 0 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
3684 0 0 RETVAL = shm_si16_reserve(h, (uint32_t)target);
3691 0 0 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
3699 0 0 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
3709 0 0 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
3710 0 0 RETVAL = (UV)shm_si16_stat_recoveries(h);
3717 0 0 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
3727 0 0 if (SvROK(self_or_class) && SvOBJECT(SvRV(self_or_class))) {
0 0 if (SvROK(self_or_class) && SvOBJECT(SvRV(self_or_class))) {
3729 0 0 if (!h) croak("Attempted to use a destroyed Data::HashMap::Shared::SI16 object");
3732 0 0 if (items < 2) croak("Usage: Data::HashMap::Shared::SI16->unlink($path)");
3735 0 0 RETVAL = shm_unlink_path(p);
3742 0 0 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
3743 0 0 EXTRACT_STR_KEY(key_sv);
3745 0 0 if (remaining < 0) XSRETURN_UNDEF;
3753 0 0 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
3754 0 0 RETVAL = (UV)shm_si16_capacity(h);
3761 0 0 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
3762 0 0 RETVAL = (UV)shm_si16_tombstones(h);
3769 0 0 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI16", self_sv);
3771 0 0 if (!c) croak("Failed to allocate cursor");
3782 0 0 if (!SvROK(self_sv)) return;
3784 0 0 if (!c) return;
3787 0 0 if (h) shm_si16_flush_deferred(h);
3793 0 0 EXTRACT_CURSOR("Data::HashMap::Shared::SI16::Cursor", self_sv);
0 0 EXTRACT_CURSOR("Data::HashMap::Shared::SI16::Cursor", self_sv);
0 0 EXTRACT_CURSOR("Data::HashMap::Shared::SI16::Cursor", self_sv);
3796 0 0 if (shm_si16_cursor_next(c, &out_key, &out_klen, &out_kutf8, &out_value)) {
3797 0 0 EXTEND(SP, 2);
3799 0 0 if (out_kutf8) SvUTF8_on(ksv);
3800 0 0 mXPUSHs(ksv);
3801 0 0 mXPUSHi(out_value);
3809 0 0 EXTRACT_CURSOR("Data::HashMap::Shared::SI16::Cursor", self_sv);
0 0 EXTRACT_CURSOR("Data::HashMap::Shared::SI16::Cursor", self_sv);
0 0 EXTRACT_CURSOR("Data::HashMap::Shared::SI16::Cursor", self_sv);
3815 0 0 EXTRACT_CURSOR("Data::HashMap::Shared::SI16::Cursor", self_sv);
0 0 EXTRACT_CURSOR("Data::HashMap::Shared::SI16::Cursor", self_sv);
0 0 EXTRACT_CURSOR("Data::HashMap::Shared::SI16::Cursor", self_sv);
3816 0 0 EXTRACT_STR_KEY(key_sv);
3817 0 0 RETVAL = shm_si16_cursor_seek(c, _kstr, (uint32_t)_klen, _kutf8);
3829 0 1 if (!map) croak("HashMap::Shared::SI32: %s", errbuf[0] ? errbuf : "unknown error");
0 0 if (!map) croak("HashMap::Shared::SI32: %s", errbuf[0] ? errbuf : "unknown error");
3837 0 1 if (!SvROK(self_sv)) return;
3839 0 1 if (!h) return;
3846 13 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
0 13 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
0 13 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
3847 0 13 EXTRACT_STR_KEY(key_sv);
3848 13 0 RETVAL = shm_si32_put(h, _kstr, (uint32_t)_klen, _kutf8, value);
3855 0 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
3856 0 0 EXTRACT_STR_KEY(key_sv);
3857 0 0 REQUIRE_TTL(h);
3858 0 0 RETVAL = shm_si32_put_ttl(h, _kstr, (uint32_t)_klen, _kutf8, value, (uint32_t)ttl_sec);
3865 0 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
3866 0 0 RETVAL = (UV)shm_si32_max_size(h);
3873 0 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
3874 0 0 RETVAL = (UV)shm_si32_ttl(h);
3881 3 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
0 3 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
0 3 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
3882 0 3 EXTRACT_STR_KEY(key_sv);
3884 0 3 if (!shm_si32_get(h, _kstr, (uint32_t)_klen, _kutf8, &value)) XSRETURN_UNDEF;
3892 0 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
3893 0 0 EXTRACT_STR_KEY(key_sv);
3894 0 0 RETVAL = shm_si32_remove(h, _kstr, (uint32_t)_klen, _kutf8);
3901 0 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
3902 0 0 EXTRACT_STR_KEY(key_sv);
3903 0 0 RETVAL = shm_si32_exists(h, _kstr, (uint32_t)_klen, _kutf8);
3910 1 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
3911 0 1 EXTRACT_STR_KEY(key_sv);
3914 0 1 if (!ok) croak("HashMap::Shared::SI32: increment failed");
3922 0 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
3923 0 0 EXTRACT_STR_KEY(key_sv);
3926 0 0 if (!ok) croak("HashMap::Shared::SI32: decrement failed");
3934 1 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
3935 0 1 EXTRACT_STR_KEY(key_sv);
3938 0 1 if (!ok) croak("HashMap::Shared::SI32: incr_by failed");
3946 0 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
3947 0 0 RETVAL = (UV)shm_si32_size(h);
3954 0 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
3955 0 0 RETVAL = (UV)shm_si32_max_entries(h);
3962 1 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
3965 0 1 uint32_t now = h->expires_at ? (uint32_t)time(NULL) : 0;
3967 0 1 EXTEND(SP, hdr->size);
3968 16 1 for (uint32_t i = 0; i < hdr->table_cap; i++) {
3969 13 3 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
0 13 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
3972 0 13 if (SHM_UNPACK_UTF8(nodes[i].key_len)) SvUTF8_on(sv);
3973 0 13 mXPUSHs(sv);
3981 0 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
3984 0 0 uint32_t now = h->expires_at ? (uint32_t)time(NULL) : 0;
3986 0 0 EXTEND(SP, hdr->size);
3987 0 0 for (uint32_t i = 0; i < hdr->table_cap; i++) {
3988 0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now))
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now))
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now))
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now))
3989 0 0 mXPUSHi(nodes[i].value);
3996 0 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
3999 0 0 uint32_t now = h->expires_at ? (uint32_t)time(NULL) : 0;
4001 0 0 EXTEND(SP, hdr->size * 2);
4002 0 0 for (uint32_t i = 0; i < hdr->table_cap; i++) {
4003 0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
4006 0 0 if (SHM_UNPACK_UTF8(nodes[i].key_len)) SvUTF8_on(sv);
4007 0 0 mXPUSHs(sv);
4008 0 0 mXPUSHi(nodes[i].value);
4016 0 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
4019 0 0 if (shm_si32_each(h, &out_key, &out_klen, &out_kutf8, &out_value)) {
4020 0 0 EXTEND(SP, 2);
4022 0 0 if (out_kutf8) SvUTF8_on(ksv);
4023 0 0 mXPUSHs(ksv);
4024 0 0 mXPUSHi(out_value);
4033 0 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
4040 0 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
4046 1 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
4050 0 1 uint32_t now = h->expires_at ? (uint32_t)time(NULL) : 0;
4052 16 1 for (uint32_t i = 0; i < hdr->table_cap; i++) {
4053 13 3 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
0 13 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
4057 0 13 if (!hv_store(hv, h->arena + nodes[i].key_off,
0 13 if (!hv_store(hv, h->arena + nodes[i].key_off,
4069 0 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
4070 0 0 EXTRACT_STR_KEY(key_sv);
4073 0 0 if (!rc) XSRETURN_UNDEF;
4083 0 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
4084 0 0 EXTRACT_STR_KEY(key_sv);
4086 0 0 if (remaining < 0) XSRETURN_UNDEF;
4094 0 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
4095 0 0 RETVAL = (UV)shm_si32_capacity(h);
4102 0 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
4103 0 0 RETVAL = (UV)shm_si32_tombstones(h);
4110 0 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
4112 0 0 if (!c) croak("Failed to allocate cursor");
4120 0 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
4121 0 0 EXTRACT_STR_KEY(key_sv);
4123 0 0 if (!shm_si32_take(h, _kstr, (uint32_t)_klen, _kutf8, &out_value)) XSRETURN_UNDEF;
4131 0 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
4132 0 0 RETVAL = (UV)shm_si32_flush_expired(h);
4140 0 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
4143 0 0 EXTEND(SP, 2);
4150 0 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
4159 0 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
4160 0 0 EXTRACT_STR_KEY(key_sv);
4161 0 0 RETVAL = shm_si32_touch(h, _kstr, (uint32_t)_klen, _kutf8);
4168 0 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
4169 0 0 RETVAL = shm_si32_reserve(h, (uint32_t)target);
4176 0 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
4184 0 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
4194 0 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
4195 0 0 RETVAL = (UV)shm_si32_stat_recoveries(h);
4202 0 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI32", self_sv);
4212 0 0 if (SvROK(self_or_class) && SvOBJECT(SvRV(self_or_class))) {
0 0 if (SvROK(self_or_class) && SvOBJECT(SvRV(self_or_class))) {
4214 0 0 if (!h) croak("Attempted to use a destroyed Data::HashMap::Shared::SI32 object");
4217 0 0 if (items < 2) croak("Usage: Data::HashMap::Shared::SI32->unlink($path)");
4220 0 0 RETVAL = shm_unlink_path(p);
4230 0 0 if (!SvROK(self_sv)) return;
4232 0 0 if (!c) return;
4235 0 0 if (h) shm_si32_flush_deferred(h);
4241 0 0 EXTRACT_CURSOR("Data::HashMap::Shared::SI32::Cursor", self_sv);
0 0 EXTRACT_CURSOR("Data::HashMap::Shared::SI32::Cursor", self_sv);
0 0 EXTRACT_CURSOR("Data::HashMap::Shared::SI32::Cursor", self_sv);
4244 0 0 if (shm_si32_cursor_next(c, &out_key, &out_klen, &out_kutf8, &out_value)) {
4245 0 0 EXTEND(SP, 2);
4247 0 0 if (out_kutf8) SvUTF8_on(ksv);
4248 0 0 mXPUSHs(ksv);
4249 0 0 mXPUSHi(out_value);
4257 0 0 EXTRACT_CURSOR("Data::HashMap::Shared::SI32::Cursor", self_sv);
0 0 EXTRACT_CURSOR("Data::HashMap::Shared::SI32::Cursor", self_sv);
0 0 EXTRACT_CURSOR("Data::HashMap::Shared::SI32::Cursor", self_sv);
4263 0 0 EXTRACT_CURSOR("Data::HashMap::Shared::SI32::Cursor", self_sv);
0 0 EXTRACT_CURSOR("Data::HashMap::Shared::SI32::Cursor", self_sv);
0 0 EXTRACT_CURSOR("Data::HashMap::Shared::SI32::Cursor", self_sv);
4264 0 0 EXTRACT_STR_KEY(key_sv);
4265 0 0 RETVAL = shm_si32_cursor_seek(c, _kstr, (uint32_t)_klen, _kutf8);
4277 0 10 if (!map) croak("HashMap::Shared::SI: %s", errbuf[0] ? errbuf : "unknown error");
0 0 if (!map) croak("HashMap::Shared::SI: %s", errbuf[0] ? errbuf : "unknown error");
4285 0 10 if (!SvROK(self_sv)) return;
4287 0 10 if (!h) return;
4294 16 0 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
0 16 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
0 16 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
4295 0 16 EXTRACT_STR_KEY(key_sv);
4296 16 0 RETVAL = shm_si_put(h, _kstr, (uint32_t)_klen, _kutf8, value);
4303 0 0 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
4304 0 0 EXTRACT_STR_KEY(key_sv);
4305 0 0 REQUIRE_TTL(h);
4306 0 0 RETVAL = shm_si_put_ttl(h, _kstr, (uint32_t)_klen, _kutf8, value, (uint32_t)ttl_sec);
4313 0 0 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
4314 0 0 RETVAL = (UV)shm_si_max_size(h);
4321 0 0 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
4322 0 0 RETVAL = (UV)shm_si_ttl(h);
4329 5 0 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
0 5 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
0 5 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
4330 0 5 EXTRACT_STR_KEY(key_sv);
4332 2 3 if (!shm_si_get(h, _kstr, (uint32_t)_klen, _kutf8, &value)) XSRETURN_UNDEF;
4340 1 0 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
4341 0 1 EXTRACT_STR_KEY(key_sv);
4342 1 0 RETVAL = shm_si_remove(h, _kstr, (uint32_t)_klen, _kutf8);
4349 1 0 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
4350 0 1 EXTRACT_STR_KEY(key_sv);
4351 1 0 RETVAL = shm_si_exists(h, _kstr, (uint32_t)_klen, _kutf8);
4358 2 0 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
0 2 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
0 2 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
4359 0 2 EXTRACT_STR_KEY(key_sv);
4362 0 2 if (!ok) croak("HashMap::Shared::SI: increment failed");
4370 1 0 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
4371 0 1 EXTRACT_STR_KEY(key_sv);
4374 0 1 if (!ok) croak("HashMap::Shared::SI: decrement failed");
4382 1 0 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
4383 0 1 EXTRACT_STR_KEY(key_sv);
4386 0 1 if (!ok) croak("HashMap::Shared::SI: incr_by failed");
4394 2 0 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
0 2 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
0 2 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
4395 0 2 RETVAL = (UV)shm_si_size(h);
4402 0 0 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
4403 0 0 RETVAL = (UV)shm_si_max_entries(h);
4410 1 0 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
4413 0 1 uint32_t now = h->expires_at ? (uint32_t)time(NULL) : 0;
4415 0 1 EXTEND(SP, hdr->size);
4416 16 1 for (uint32_t i = 0; i < hdr->table_cap; i++) {
4417 2 14 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
0 2 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
4420 0 2 if (SHM_UNPACK_UTF8(nodes[i].key_len)) SvUTF8_on(sv);
4421 0 2 mXPUSHs(sv);
4429 1 0 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
4432 0 1 uint32_t now = h->expires_at ? (uint32_t)time(NULL) : 0;
4434 0 1 EXTEND(SP, hdr->size);
4435 16 1 for (uint32_t i = 0; i < hdr->table_cap; i++) {
4436 2 14 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now))
0 2 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now))
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now))
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now))
4437 0 2 mXPUSHi(nodes[i].value);
4444 0 0 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
4447 0 0 uint32_t now = h->expires_at ? (uint32_t)time(NULL) : 0;
4449 0 0 EXTEND(SP, hdr->size * 2);
4450 0 0 for (uint32_t i = 0; i < hdr->table_cap; i++) {
4451 0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
4454 0 0 if (SHM_UNPACK_UTF8(nodes[i].key_len)) SvUTF8_on(sv);
4455 0 0 mXPUSHs(sv);
4456 0 0 mXPUSHi(nodes[i].value);
4464 0 0 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
4467 0 0 if (shm_si_each(h, &out_key, &out_klen, &out_kutf8, &out_value)) {
4468 0 0 EXTEND(SP, 2);
4470 0 0 if (out_kutf8) SvUTF8_on(ksv);
4471 0 0 mXPUSHs(ksv);
4472 0 0 mXPUSHi(out_value);
4481 0 0 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
4488 0 0 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
4494 1 0 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
4498 0 1 uint32_t now = h->expires_at ? (uint32_t)time(NULL) : 0;
4500 16 1 for (uint32_t i = 0; i < hdr->table_cap; i++) {
4501 2 14 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
0 2 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
4505 0 2 if (!hv_store(hv, h->arena + nodes[i].key_off,
0 2 if (!hv_store(hv, h->arena + nodes[i].key_off,
4517 0 0 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
4518 0 0 EXTRACT_STR_KEY(key_sv);
4521 0 0 if (!rc) XSRETURN_UNDEF;
4531 0 0 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
4532 0 0 EXTRACT_STR_KEY(key_sv);
4534 0 0 if (remaining < 0) XSRETURN_UNDEF;
4542 0 0 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
4543 0 0 RETVAL = (UV)shm_si_capacity(h);
4550 0 0 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
4551 0 0 RETVAL = (UV)shm_si_tombstones(h);
4558 1 0 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
4560 0 1 if (!c) croak("Failed to allocate cursor");
4568 1 0 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
4569 0 1 EXTRACT_STR_KEY(key_sv);
4571 0 1 if (!shm_si_take(h, _kstr, (uint32_t)_klen, _kutf8, &out_value)) XSRETURN_UNDEF;
4579 0 0 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
4580 0 0 RETVAL = (UV)shm_si_flush_expired(h);
4588 0 0 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
4591 0 0 EXTEND(SP, 2);
4598 0 0 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
4607 1 0 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
4608 0 1 EXTRACT_STR_KEY(key_sv);
4609 1 0 RETVAL = shm_si_touch(h, _kstr, (uint32_t)_klen, _kutf8);
4616 0 0 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
4617 0 0 RETVAL = shm_si_reserve(h, (uint32_t)target);
4624 0 0 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
4632 0 0 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
4642 0 0 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
4643 0 0 RETVAL = (UV)shm_si_stat_recoveries(h);
4650 1 0 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::SI", self_sv);
4660 0 0 if (SvROK(self_or_class) && SvOBJECT(SvRV(self_or_class))) {
0 0 if (SvROK(self_or_class) && SvOBJECT(SvRV(self_or_class))) {
4662 0 0 if (!h) croak("Attempted to use a destroyed Data::HashMap::Shared::SI object");
4665 0 0 if (items < 2) croak("Usage: Data::HashMap::Shared::SI->unlink($path)");
4668 0 0 RETVAL = shm_unlink_path(p);
4678 0 1 if (!SvROK(self_sv)) return;
4680 0 1 if (!c) return;
4683 1 0 if (h) shm_si_flush_deferred(h);
4689 6 0 EXTRACT_CURSOR("Data::HashMap::Shared::SI::Cursor", self_sv);
0 6 EXTRACT_CURSOR("Data::HashMap::Shared::SI::Cursor", self_sv);
0 6 EXTRACT_CURSOR("Data::HashMap::Shared::SI::Cursor", self_sv);
4692 5 1 if (shm_si_cursor_next(c, &out_key, &out_klen, &out_kutf8, &out_value)) {
4693 0 5 EXTEND(SP, 2);
4695 0 5 if (out_kutf8) SvUTF8_on(ksv);
4696 0 5 mXPUSHs(ksv);
4697 0 5 mXPUSHi(out_value);
4705 0 0 EXTRACT_CURSOR("Data::HashMap::Shared::SI::Cursor", self_sv);
0 0 EXTRACT_CURSOR("Data::HashMap::Shared::SI::Cursor", self_sv);
0 0 EXTRACT_CURSOR("Data::HashMap::Shared::SI::Cursor", self_sv);
4711 0 0 EXTRACT_CURSOR("Data::HashMap::Shared::SI::Cursor", self_sv);
0 0 EXTRACT_CURSOR("Data::HashMap::Shared::SI::Cursor", self_sv);
0 0 EXTRACT_CURSOR("Data::HashMap::Shared::SI::Cursor", self_sv);
4712 0 0 EXTRACT_STR_KEY(key_sv);
4713 0 0 RETVAL = shm_si_cursor_seek(c, _kstr, (uint32_t)_klen, _kutf8);
4725 2 22 if (!map) croak("HashMap::Shared::SS: %s", errbuf[0] ? errbuf : "unknown error");
2 0 if (!map) croak("HashMap::Shared::SS: %s", errbuf[0] ? errbuf : "unknown error");
4733 0 22 if (!SvROK(self_sv)) return;
4735 0 22 if (!h) return;
4742 34 0 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
0 34 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
0 34 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
4743 0 34 EXTRACT_STR_KEY(key_sv);
4744 0 34 EXTRACT_STR_VAL(value);
4745 34 0 RETVAL = shm_ss_put(h, _kstr, (uint32_t)_klen, _kutf8, _vstr, (uint32_t)_vlen, _vutf8);
4752 1 0 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
4753 0 1 EXTRACT_STR_KEY(key_sv);
4754 0 1 EXTRACT_STR_VAL(value);
4755 0 1 REQUIRE_TTL(h);
4756 1 0 RETVAL = shm_ss_put_ttl(h, _kstr, (uint32_t)_klen, _kutf8, _vstr, (uint32_t)_vlen, _vutf8, (uint32_t)ttl_sec);
4763 0 0 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
4764 0 0 RETVAL = (UV)shm_ss_max_size(h);
4771 0 0 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
4772 0 0 RETVAL = (UV)shm_ss_ttl(h);
4779 13 0 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
0 13 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
0 13 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
4780 0 13 EXTRACT_STR_KEY(key_sv);
4782 4 9 if (!shm_ss_get(h, _kstr, (uint32_t)_klen, _kutf8, &val, &val_len, &val_utf8))
4785 1 8 if (val_utf8) SvUTF8_on(RETVAL);
4792 2 0 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
0 2 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
0 2 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
4793 0 2 EXTRACT_STR_KEY(key_sv);
4794 2 0 RETVAL = shm_ss_remove(h, _kstr, (uint32_t)_klen, _kutf8);
4801 1 0 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
4802 0 1 EXTRACT_STR_KEY(key_sv);
4803 1 0 RETVAL = shm_ss_exists(h, _kstr, (uint32_t)_klen, _kutf8);
4810 5 0 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
0 5 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
0 5 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
4811 0 5 RETVAL = (UV)shm_ss_size(h);
4818 0 0 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
4819 0 0 RETVAL = (UV)shm_ss_max_entries(h);
4826 1 0 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
4829 0 1 uint32_t now = h->expires_at ? (uint32_t)time(NULL) : 0;
4831 0 1 EXTEND(SP, hdr->size);
4832 16 1 for (uint32_t i = 0; i < hdr->table_cap; i++) {
4833 3 13 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
0 3 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
4836 0 3 if (SHM_UNPACK_UTF8(nodes[i].key_len)) SvUTF8_on(sv);
4837 0 3 mXPUSHs(sv);
4845 1 0 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
4848 0 1 uint32_t now = h->expires_at ? (uint32_t)time(NULL) : 0;
4850 0 1 EXTEND(SP, hdr->size);
4851 16 1 for (uint32_t i = 0; i < hdr->table_cap; i++) {
4852 3 13 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
0 3 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
4855 0 3 if (SHM_UNPACK_UTF8(nodes[i].val_len)) SvUTF8_on(sv);
4856 0 3 mXPUSHs(sv);
4864 1 0 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
4867 0 1 uint32_t now = h->expires_at ? (uint32_t)time(NULL) : 0;
4869 0 1 EXTEND(SP, hdr->size * 2);
4870 16 1 for (uint32_t i = 0; i < hdr->table_cap; i++) {
4871 3 13 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
0 3 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
4874 0 3 if (SHM_UNPACK_UTF8(nodes[i].key_len)) SvUTF8_on(ksv);
4875 0 3 mXPUSHs(ksv);
4878 0 3 if (SHM_UNPACK_UTF8(nodes[i].val_len)) SvUTF8_on(vsv);
4879 0 3 mXPUSHs(vsv);
4887 3 0 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
0 3 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
0 3 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
4891 2 1 if (shm_ss_each(h, &out_key, &out_klen, &out_kutf8, &out_val, &out_vlen, &out_vutf8)) {
4892 0 2 EXTEND(SP, 2);
4894 0 2 if (out_kutf8) SvUTF8_on(ksv);
4895 0 2 mXPUSHs(ksv);
4897 0 2 if (out_vutf8) SvUTF8_on(vsv);
4898 0 2 mXPUSHs(vsv);
4907 0 0 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
4914 1 0 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
4920 1 0 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
4924 0 1 uint32_t now = h->expires_at ? (uint32_t)time(NULL) : 0;
4926 16 1 for (uint32_t i = 0; i < hdr->table_cap; i++) {
4927 2 14 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
0 2 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
0 0 if (h->states[i] == SHM_LIVE && !SHM_IS_EXPIRED(h, i, now)) {
4933 0 2 if (vutf8) SvUTF8_on(val);
4934 0 2 if (!hv_store(hv, h->arena + nodes[i].key_off,
0 2 if (!hv_store(hv, h->arena + nodes[i].key_off,
4946 4 0 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
0 4 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
0 4 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
4947 0 4 EXTRACT_STR_KEY(key_sv);
4949 0 4 EXTRACT_STR_VAL(default_sv);
4951 0 4 if (!rc) XSRETURN_UNDEF;
4953 0 4 if (out_utf8) SvUTF8_on(RETVAL);
4961 2 0 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
0 2 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
0 2 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
4962 0 2 EXTRACT_STR_KEY(key_sv);
4964 1 1 if (remaining < 0) XSRETURN_UNDEF;
4972 1 0 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
4973 0 1 RETVAL = (UV)shm_ss_capacity(h);
4980 0 0 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
4981 0 0 RETVAL = (UV)shm_ss_tombstones(h);
4988 2 0 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
0 2 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
0 2 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
4990 0 2 if (!c) croak("Failed to allocate cursor");
4998 3 0 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
0 3 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
0 3 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
4999 0 3 EXTRACT_STR_KEY(key_sv);
5001 1 2 if (!shm_ss_take(h, _kstr, (uint32_t)_klen, _kutf8, &out_str, &out_len, &out_utf8)) XSRETURN_UNDEF;
5003 1 1 if (out_utf8) SvUTF8_on(RETVAL);
5010 1 0 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
5011 0 1 RETVAL = (UV)shm_ss_flush_expired(h);
5019 0 0 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
5022 0 0 EXTEND(SP, 2);
5029 1 0 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
5038 2 0 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
0 2 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
0 2 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
5039 0 2 EXTRACT_STR_KEY(key_sv);
5040 1 1 RETVAL = shm_ss_touch(h, _kstr, (uint32_t)_klen, _kutf8);
5047 1 0 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
5048 1 0 RETVAL = shm_ss_reserve(h, (uint32_t)target);
5055 1 0 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
5063 0 0 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
5073 0 0 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
0 0 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
5074 0 0 RETVAL = (UV)shm_ss_stat_recoveries(h);
5081 1 0 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
0 1 EXTRACT_MAP("Data::HashMap::Shared::SS", self_sv);
5091 0 0 if (SvROK(self_or_class) && SvOBJECT(SvRV(self_or_class))) {
0 0 if (SvROK(self_or_class) && SvOBJECT(SvRV(self_or_class))) {
5093 0 0 if (!h) croak("Attempted to use a destroyed Data::HashMap::Shared::SS object");
5096 0 0 if (items < 2) croak("Usage: Data::HashMap::Shared::SS->unlink($path)");
5099 0 0 RETVAL = shm_unlink_path(p);
5109 0 2 if (!SvROK(self_sv)) return;
5111 0 2 if (!c) return;
5114 2 0 if (h) shm_ss_flush_deferred(h);
5120 7 0 EXTRACT_CURSOR("Data::HashMap::Shared::SS::Cursor", self_sv);
0 7 EXTRACT_CURSOR("Data::HashMap::Shared::SS::Cursor", self_sv);
0 7 EXTRACT_CURSOR("Data::HashMap::Shared::SS::Cursor", self_sv);
5124 6 1 if (shm_ss_cursor_next(c, &out_key, &out_klen, &out_kutf8, &out_val, &out_vlen, &out_vutf8)) {
5125 0 6 EXTEND(SP, 2);
5127 0 6 if (out_kutf8) SvUTF8_on(ksv);
5128 0 6 mXPUSHs(ksv);
5130 0 6 if (out_vutf8) SvUTF8_on(vsv);
5131 0 6 mXPUSHs(vsv);
5139 0 0 EXTRACT_CURSOR("Data::HashMap::Shared::SS::Cursor", self_sv);
0 0 EXTRACT_CURSOR("Data::HashMap::Shared::SS::Cursor", self_sv);
0 0 EXTRACT_CURSOR("Data::HashMap::Shared::SS::Cursor", self_sv);
5145 1 0 EXTRACT_CURSOR("Data::HashMap::Shared::SS::Cursor", self_sv);
0 1 EXTRACT_CURSOR("Data::HashMap::Shared::SS::Cursor", self_sv);
0 1 EXTRACT_CURSOR("Data::HashMap::Shared::SS::Cursor", self_sv);
5146 0 1 EXTRACT_STR_KEY(key_sv);
5147 1 0 RETVAL = shm_ss_cursor_seek(c, _kstr, (uint32_t)_klen, _kutf8);