普通文本  |  73行  |  2.27 KB

//
// Copyright (C) 2012 The Android Open Source Project
//
// 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 "shill/service_under_test.h"

#include <string>

#include "shill/mock_adaptors.h"
#include "shill/property_accessor.h"

using std::string;

namespace shill {

// static
const char ServiceUnderTest::kKeyValueStoreProperty[] = "key_value_store";
const char ServiceUnderTest::kRpcId[] = "/mock_device_rpc";
const char ServiceUnderTest::kStringsProperty[] = "strings";
const char ServiceUnderTest::kStorageId[] = "service";

ServiceUnderTest::ServiceUnderTest(ControlInterface* control_interface,
                                   EventDispatcher* dispatcher,
                                   Metrics* metrics,
                                   Manager* manager)
    : Service(control_interface, dispatcher, metrics, manager,
              Technology::kUnknown) {
  mutable_store()->RegisterStrings(kStringsProperty, &strings_);
  mutable_store()->RegisterDerivedKeyValueStore(
      kKeyValueStoreProperty,
      KeyValueStoreAccessor(
          new CustomAccessor<ServiceUnderTest, KeyValueStore>(
              this, &ServiceUnderTest::GetKeyValueStore,
              &ServiceUnderTest::SetKeyValueStore)));
}

ServiceUnderTest::~ServiceUnderTest() {}

string ServiceUnderTest::GetRpcIdentifier() const {
  return ServiceMockAdaptor::kRpcId;
}

string ServiceUnderTest::GetDeviceRpcId(Error* /*error*/) const {
  return kRpcId;
}

string ServiceUnderTest::GetStorageIdentifier() const { return kStorageId; }

bool ServiceUnderTest::SetKeyValueStore(
    const KeyValueStore& value, Error* error) {
  key_value_store_.Clear();
  key_value_store_.CopyFrom(value);
  return true;
}

KeyValueStore ServiceUnderTest::GetKeyValueStore(Error* error) {
  return key_value_store_;
}

}  // namespace shill