MCPcopy Create free account
hub / github.com/apache/trafficserver / perform_cache_write_action

Method perform_cache_write_action

src/proxy/http/HttpSM.cc:6488–6554  ·  view source on GitHub ↗

void HttpSM::perform_cache_write_action() Called to do cache write, delete and updates based on s->cache_info.action. Does not setup cache read tunnels

Source from the content-addressed store, hash-verified

6486// read tunnels
6487//
6488void
6489HttpSM::perform_cache_write_action()
6490{
6491 SMDbg(dbg_ctl_http, "%s", HttpDebugNames::get_cache_action_name(t_state.cache_info.action));
6492
6493 switch (t_state.cache_info.action) {
6494 case HttpTransact::CACHE_DO_NO_ACTION:
6495
6496 {
6497 // Nothing to do
6498 cache_sm.end_both();
6499 break;
6500 }
6501
6502 case HttpTransact::CACHE_DO_SERVE: {
6503 cache_sm.abort_write();
6504 break;
6505 }
6506
6507 case HttpTransact::CACHE_DO_DELETE: {
6508 // Write close deletes the old alternate
6509 cache_sm.close_write();
6510 cache_sm.close_read();
6511 t_state.cache_info.write_lock_state = HttpTransact::CACHE_WL_INIT;
6512 break;
6513 }
6514
6515 case HttpTransact::CACHE_DO_SERVE_AND_DELETE: {
6516 // FIX ME: need to set up delete for after cache write has
6517 // completed
6518 break;
6519 }
6520
6521 case HttpTransact::CACHE_DO_SERVE_AND_UPDATE: {
6522 issue_cache_update();
6523 break;
6524 }
6525
6526 case HttpTransact::CACHE_DO_UPDATE: {
6527 cache_sm.close_read();
6528 issue_cache_update();
6529 break;
6530 }
6531
6532 case HttpTransact::CACHE_DO_WRITE:
6533 case HttpTransact::CACHE_DO_REPLACE:
6534 // Fix need to set up delete for after cache write has
6535 // completed
6536 if (transform_info.entry == nullptr || t_state.api_info.cache_untransformed == true) {
6537 cache_sm.close_read();
6538 t_state.cache_info.write_status = HttpTransact::CACHE_WRITE_IN_PROGRESS;
6539 setup_cache_write_transfer(&cache_sm, server_entry->vc, &t_state.cache_info.object_store, client_response_hdr_bytes,
6540 "cache write");
6541 } else {
6542 // We are not caching the untransformed. We might want to
6543 // use the cache writevc to cache the transformed copy
6544 ink_assert(transform_cache_sm.cache_write_vc == nullptr);
6545 transform_cache_sm.cache_write_vc = cache_sm.cache_write_vc;

Callers

nothing calls this directly

Calls 4

end_bothMethod · 0.80
abort_writeMethod · 0.80
close_writeMethod · 0.45
close_readMethod · 0.45

Tested by

no test coverage detected