1*103e46e4SHarish Mahendrakar // Copyright (c) 2016 The WebM project authors. All Rights Reserved. 2*103e46e4SHarish Mahendrakar // 3*103e46e4SHarish Mahendrakar // Use of this source code is governed by a BSD-style license 4*103e46e4SHarish Mahendrakar // that can be found in the LICENSE file in the root of the source 5*103e46e4SHarish Mahendrakar // tree. An additional intellectual property rights grant can be found 6*103e46e4SHarish Mahendrakar // in the file PATENTS. All contributing project authors may 7*103e46e4SHarish Mahendrakar // be found in the AUTHORS file in the root of the source tree. 8*103e46e4SHarish Mahendrakar #ifndef SRC_SKIP_CALLBACK_H_ 9*103e46e4SHarish Mahendrakar #define SRC_SKIP_CALLBACK_H_ 10*103e46e4SHarish Mahendrakar 11*103e46e4SHarish Mahendrakar #include "webm/callback.h" 12*103e46e4SHarish Mahendrakar #include "webm/dom_types.h" 13*103e46e4SHarish Mahendrakar #include "webm/reader.h" 14*103e46e4SHarish Mahendrakar #include "webm/status.h" 15*103e46e4SHarish Mahendrakar 16*103e46e4SHarish Mahendrakar namespace webm { 17*103e46e4SHarish Mahendrakar 18*103e46e4SHarish Mahendrakar // An implementation of Callback that skips all elements. Every method that 19*103e46e4SHarish Mahendrakar // yields an action will yield Action::kSkip, and Reader::Skip will be called 20*103e46e4SHarish Mahendrakar // if the callback ever needs to process data from the byte stream. 21*103e46e4SHarish Mahendrakar class SkipCallback : public Callback { 22*103e46e4SHarish Mahendrakar public: OnElementBegin(const ElementMetadata &,Action * action)23*103e46e4SHarish Mahendrakar Status OnElementBegin(const ElementMetadata& /* metadata */, 24*103e46e4SHarish Mahendrakar Action* action) override { 25*103e46e4SHarish Mahendrakar *action = Action::kSkip; 26*103e46e4SHarish Mahendrakar return Status(Status::kOkCompleted); 27*103e46e4SHarish Mahendrakar } 28*103e46e4SHarish Mahendrakar OnSegmentBegin(const ElementMetadata &,Action * action)29*103e46e4SHarish Mahendrakar Status OnSegmentBegin(const ElementMetadata& /* metadata */, 30*103e46e4SHarish Mahendrakar Action* action) override { 31*103e46e4SHarish Mahendrakar *action = Action::kSkip; 32*103e46e4SHarish Mahendrakar return Status(Status::kOkCompleted); 33*103e46e4SHarish Mahendrakar } 34*103e46e4SHarish Mahendrakar OnClusterBegin(const ElementMetadata &,const Cluster &,Action * action)35*103e46e4SHarish Mahendrakar Status OnClusterBegin(const ElementMetadata& /* metadata */, 36*103e46e4SHarish Mahendrakar const Cluster& /* cluster */, Action* action) override { 37*103e46e4SHarish Mahendrakar *action = Action::kSkip; 38*103e46e4SHarish Mahendrakar return Status(Status::kOkCompleted); 39*103e46e4SHarish Mahendrakar } 40*103e46e4SHarish Mahendrakar OnSimpleBlockBegin(const ElementMetadata &,const SimpleBlock &,Action * action)41*103e46e4SHarish Mahendrakar Status OnSimpleBlockBegin(const ElementMetadata& /* metadata */, 42*103e46e4SHarish Mahendrakar const SimpleBlock& /* simple_block */, 43*103e46e4SHarish Mahendrakar Action* action) override { 44*103e46e4SHarish Mahendrakar *action = Action::kSkip; 45*103e46e4SHarish Mahendrakar return Status(Status::kOkCompleted); 46*103e46e4SHarish Mahendrakar } 47*103e46e4SHarish Mahendrakar OnBlockGroupBegin(const ElementMetadata &,Action * action)48*103e46e4SHarish Mahendrakar Status OnBlockGroupBegin(const ElementMetadata& /* metadata */, 49*103e46e4SHarish Mahendrakar Action* action) override { 50*103e46e4SHarish Mahendrakar *action = Action::kSkip; 51*103e46e4SHarish Mahendrakar return Status(Status::kOkCompleted); 52*103e46e4SHarish Mahendrakar } 53*103e46e4SHarish Mahendrakar OnBlockBegin(const ElementMetadata &,const Block &,Action * action)54*103e46e4SHarish Mahendrakar Status OnBlockBegin(const ElementMetadata& /* metadata */, 55*103e46e4SHarish Mahendrakar const Block& /* block */, Action* action) override { 56*103e46e4SHarish Mahendrakar *action = Action::kSkip; 57*103e46e4SHarish Mahendrakar return Status(Status::kOkCompleted); 58*103e46e4SHarish Mahendrakar } 59*103e46e4SHarish Mahendrakar }; 60*103e46e4SHarish Mahendrakar 61*103e46e4SHarish Mahendrakar } // namespace webm 62*103e46e4SHarish Mahendrakar 63*103e46e4SHarish Mahendrakar #endif // SRC_SKIP_CALLBACK_H_ 64