// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #include "messagebucket.h" #include "statusmessages.h" #include #include #include #include #include #include #include namespace storage { document::Bucket getStorageMessageBucket(const api::StorageMessage& msg) { switch (msg.getType().getId()) { case api::MessageType::GET_ID: return static_cast(msg).getBucket(); case api::MessageType::PUT_ID: return static_cast(msg).getBucket(); case api::MessageType::UPDATE_ID: return static_cast(msg).getBucket(); case api::MessageType::REMOVE_ID: return static_cast(msg).getBucket(); case api::MessageType::STATBUCKET_ID: return static_cast(msg).getBucket(); case api::MessageType::REMOVELOCATION_ID: return static_cast(msg).getBucket(); case api::MessageType::CREATEBUCKET_ID: return static_cast(msg).getBucket(); case api::MessageType::DELETEBUCKET_ID: return static_cast(msg).getBucket(); case api::MessageType::MERGEBUCKET_ID: return static_cast(msg).getBucket(); case api::MessageType::GETBUCKETDIFF_ID: return static_cast(msg).getBucket(); case api::MessageType::GETBUCKETDIFF_REPLY_ID: return static_cast(msg).getBucket(); case api::MessageType::APPLYBUCKETDIFF_ID: return static_cast(msg).getBucket(); case api::MessageType::APPLYBUCKETDIFF_REPLY_ID: return static_cast(msg).getBucket(); case api::MessageType::JOINBUCKETS_ID: return static_cast(msg).getBucket(); case api::MessageType::SPLITBUCKET_ID: return static_cast(msg).getBucket(); case api::MessageType::SETBUCKETSTATE_ID: return static_cast(msg).getBucket(); case api::MessageType::INTERNAL_ID: switch(static_cast(msg).getType()) { case RequestStatusPage::ID: return document::Bucket(); case GetIterCommand::ID: return static_cast(msg).getBucket(); case CreateIteratorCommand::ID: return static_cast(msg).getBucket(); case RecheckBucketInfoCommand::ID: return static_cast(msg).getBucket(); case RunTaskCommand::ID: return static_cast(msg).getBucket(); default: break; } default: break; } throw vespalib::IllegalArgumentException( "Message of type " + msg.toString() + " was not expected. Don't " "know how to calculate bucket this message operates on.", VESPA_STRLOC); } }