• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /**
2  * Copyright 2020 Huawei Technologies Co., Ltd
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 #ifndef MINDSPORE_CCSRC_MINDDATA_DATASET_ENGINE_IR_CACHE_PRE_BUILT_DATASET_CACHE_H_
17 #define MINDSPORE_CCSRC_MINDDATA_DATASET_ENGINE_IR_CACHE_PRE_BUILT_DATASET_CACHE_H_
18 
19 #include <memory>
20 #include <string>
21 #include <utility>
22 #include "minddata/dataset/engine/cache/cache_client.h"
23 #include "minddata/dataset/engine/datasetops/cache_op.h"
24 #include "minddata/dataset/engine/ir/cache/dataset_cache_impl.h"
25 #include "minddata/dataset/engine/ir/datasetops/source/samplers/samplers_ir.h"
26 
27 namespace mindspore {
28 namespace dataset {
29 /// DatasetCache is the IR of CacheClient
30 class PreBuiltDatasetCache : public DatasetCacheImpl {
31  public:
32   /// \brief Constructor
33   /// \param cc a pre-built cache client
PreBuiltDatasetCache(std::shared_ptr<CacheClient> cc)34   explicit PreBuiltDatasetCache(std::shared_ptr<CacheClient> cc)
35       : DatasetCacheImpl(cc->session_id(), cc->GetCacheMemSz(), cc->isSpill(), StringToChar(cc->GetHostname()),
36                          cc->GetPort(), cc->GetNumConnections(), cc->GetPrefetchSize()) {
37     cache_client_ = std::move(cc);
38   }
39 
40   ~PreBuiltDatasetCache() override = default;
41 
42   /// Method to initialize the DatasetCache by creating an instance of a CacheClient
43   /// \return Status Error code
44   Status Build() override;
45 };
46 }  // namespace dataset
47 }  // namespace mindspore
48 #endif  // MINDSPORE_CCSRC_MINDDATA_DATASET_ENGINE_IR_CACHE_PRE_BUILT_DATASET_CACHE_H_
49