1*3f982cf4SFabien Sanglard // Copyright 2020 The Chromium Authors. All rights reserved. 2*3f982cf4SFabien Sanglard // Use of this source code is governed by a BSD-style license that can be 3*3f982cf4SFabien Sanglard // found in the LICENSE file. 4*3f982cf4SFabien Sanglard 5*3f982cf4SFabien Sanglard #ifndef CAST_PROTOCOL_CASTV2_VALIDATION_H_ 6*3f982cf4SFabien Sanglard #define CAST_PROTOCOL_CASTV2_VALIDATION_H_ 7*3f982cf4SFabien Sanglard 8*3f982cf4SFabien Sanglard #include <vector> 9*3f982cf4SFabien Sanglard 10*3f982cf4SFabien Sanglard #include "json/value.h" 11*3f982cf4SFabien Sanglard #include "platform/base/error.h" 12*3f982cf4SFabien Sanglard 13*3f982cf4SFabien Sanglard namespace openscreen { 14*3f982cf4SFabien Sanglard namespace cast { 15*3f982cf4SFabien Sanglard 16*3f982cf4SFabien Sanglard // Used to validate a JSON message against a JSON schema. 17*3f982cf4SFabien Sanglard std::vector<Error> Validate(const Json::Value& document, 18*3f982cf4SFabien Sanglard const Json::Value& schema_root); 19*3f982cf4SFabien Sanglard 20*3f982cf4SFabien Sanglard // Used to validate streaming messages, such as OFFER or ANSWER. 21*3f982cf4SFabien Sanglard std::vector<Error> ValidateStreamingMessage(const Json::Value& message); 22*3f982cf4SFabien Sanglard 23*3f982cf4SFabien Sanglard // Used to validate receiver messages, such as LAUNCH or STOP. 24*3f982cf4SFabien Sanglard std::vector<Error> ValidateReceiverMessage(const Json::Value& message); 25*3f982cf4SFabien Sanglard 26*3f982cf4SFabien Sanglard } // namespace cast 27*3f982cf4SFabien Sanglard } // namespace openscreen 28*3f982cf4SFabien Sanglard 29*3f982cf4SFabien Sanglard #endif // CAST_PROTOCOL_CASTV2_VALIDATION_H_ 30