/* * * Copyright 2015 gRPC authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * */ #include #include namespace grpc { AuthPropertyIterator::AuthPropertyIterator() : property_(nullptr), ctx_(nullptr), index_(0), name_(nullptr) {} AuthPropertyIterator::AuthPropertyIterator( const grpc_auth_property* property, const grpc_auth_property_iterator* iter) : property_(property), ctx_(iter->ctx), index_(iter->index), name_(iter->name) {} AuthPropertyIterator::~AuthPropertyIterator() {} AuthPropertyIterator& AuthPropertyIterator::operator++() { grpc_auth_property_iterator iter = {ctx_, index_, name_}; property_ = grpc_auth_property_iterator_next(&iter); ctx_ = iter.ctx; index_ = iter.index; name_ = iter.name; return *this; } AuthPropertyIterator AuthPropertyIterator::operator++(int) { AuthPropertyIterator tmp(*this); operator++(); return tmp; } bool AuthPropertyIterator::operator==(const AuthPropertyIterator& rhs) const { if (property_ == nullptr || rhs.property_ == nullptr) { return property_ == rhs.property_; } else { return index_ == rhs.index_; } } bool AuthPropertyIterator::operator!=(const AuthPropertyIterator& rhs) const { return !operator==(rhs); } const AuthProperty AuthPropertyIterator::operator*() { return std::pair( property_->name, grpc::string_ref(property_->value, property_->value_length)); } } // namespace grpc