chromium/third_party/grpc/src/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc

//
// Copyright 2016 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.
//

// This is similar to the sockaddr resolver, except that it supports a
// bunch of query args that are useful for dependency injection in tests.

#include <grpc/support/port_platform.h>

#include "src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h"

#include <memory>
#include <utility>

#include "absl/status/status.h"
#include "absl/status/statusor.h"
#include "absl/strings/string_view.h"

#include <grpc/support/log.h>

#include "src/core/lib/channel/channel_args.h"
#include "src/core/lib/config/core_configuration.h"
#include "src/core/lib/gpr/useful.h"
#include "src/core/lib/gprpp/debug_location.h"
#include "src/core/lib/gprpp/orphanable.h"
#include "src/core/lib/gprpp/work_serializer.h"
#include "src/core/lib/resolver/resolver_factory.h"
#include "src/core/lib/resolver/server_address.h"
#include "src/core/lib/service_config/service_config.h"
#include "src/core/lib/uri/uri_parser.h"

namespace grpc_core {

// This cannot be in an anonymous namespace, because it is a friend of
// FakeResolverResponseGenerator.
class FakeResolver : public Resolver {};

FakeResolver::FakeResolver(ResolverArgs args)
    :{}

void FakeResolver::StartLocked() {}

void FakeResolver::RequestReresolutionLocked() {}

void FakeResolver::ShutdownLocked() {}

void FakeResolver::MaybeSendResultLocked() {}

void FakeResolver::ReturnReresolutionResult() {}

class FakeResolverResponseSetter {};

// Deletes object when done
void FakeResolverResponseSetter::SetReresolutionResponseLocked() {}

// Deletes object when done
void FakeResolverResponseSetter::SetResponseLocked() {}

// Deletes object when done
void FakeResolverResponseSetter::SetFailureLocked() {}

//
// FakeResolverResponseGenerator
//

FakeResolverResponseGenerator::FakeResolverResponseGenerator() {}

FakeResolverResponseGenerator::~FakeResolverResponseGenerator() {}

void FakeResolverResponseGenerator::SetResponse(Resolver::Result result) {}

void FakeResolverResponseGenerator::SetReresolutionResponse(
    Resolver::Result result) {}

void FakeResolverResponseGenerator::UnsetReresolutionResponse() {}

void FakeResolverResponseGenerator::SetFailure() {}

void FakeResolverResponseGenerator::SetFailureOnReresolution() {}

void FakeResolverResponseGenerator::SetFakeResolver(
    RefCountedPtr<FakeResolver> resolver) {}

namespace {

void* ResponseGeneratorChannelArgCopy(void* p) {}

void ResponseGeneratorChannelArgDestroy(void* p) {}

int ResponseGeneratorChannelArgCmp(void* a, void* b) {}

}  // namespace

const grpc_arg_pointer_vtable
    FakeResolverResponseGenerator::kChannelArgPointerVtable =;

grpc_arg FakeResolverResponseGenerator::MakeChannelArg(
    FakeResolverResponseGenerator* generator) {}

RefCountedPtr<FakeResolverResponseGenerator>
FakeResolverResponseGenerator::GetFromArgs(const grpc_channel_args* args) {}

//
// Factory
//

namespace {

class FakeResolverFactory : public ResolverFactory {};

}  // namespace

void RegisterFakeResolver(CoreConfiguration::Builder* builder) {}

}  // namespace grpc_core

void grpc_resolver_fake_shutdown() {}