// Copyright (c) 2016 The WebM project authors. All Rights Reserved. // // Use of this source code is governed by a BSD-style license // that can be found in the LICENSE file in the root of the source // tree. An additional intellectual property rights grant can be found // in the file PATENTS. All contributing project authors may // be found in the AUTHORS file in the root of the source tree. #ifndef SRC_SKIP_CALLBACK_H_ #define SRC_SKIP_CALLBACK_H_ #include "webm/callback.h" #include "webm/dom_types.h" #include "webm/reader.h" #include "webm/status.h" namespace webm { // An implementation of Callback that skips all elements. Every method that // yields an action will yield Action::kSkip, and Reader::Skip will be called // if the callback ever needs to process data from the byte stream. class SkipCallback : public Callback { public: Status OnElementBegin(const ElementMetadata& /* metadata */, Action* action) override { *action = Action::kSkip; return Status(Status::kOkCompleted); } Status OnSegmentBegin(const ElementMetadata& /* metadata */, Action* action) override { *action = Action::kSkip; return Status(Status::kOkCompleted); } Status OnClusterBegin(const ElementMetadata& /* metadata */, const Cluster& /* cluster */, Action* action) override { *action = Action::kSkip; return Status(Status::kOkCompleted); } Status OnSimpleBlockBegin(const ElementMetadata& /* metadata */, const SimpleBlock& /* simple_block */, Action* action) override { *action = Action::kSkip; return Status(Status::kOkCompleted); } Status OnBlockGroupBegin(const ElementMetadata& /* metadata */, Action* action) override { *action = Action::kSkip; return Status(Status::kOkCompleted); } Status OnBlockBegin(const ElementMetadata& /* metadata */, const Block& /* block */, Action* action) override { *action = Action::kSkip; return Status(Status::kOkCompleted); } }; } // namespace webm #endif // SRC_SKIP_CALLBACK_H_