1
0
Fork 0
arangodb/arangod/Cluster/ClusterCollectionCreationIn...

60 lines
1.8 KiB
C++

////////////////////////////////////////////////////////////////////////////////
/// DISCLAIMER
///
/// Copyright 2019-2019 ArangoDB GmbH, Cologne, Germany
///
/// 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.
///
/// Copyright holder is ArangoDB GmbH, Cologne, Germany
///
/// @author Michael Hackstein
////////////////////////////////////////////////////////////////////////////////
#ifndef ARANGOD_CLUSTER_CLUSTER_COLLECTION_CREATION_INFO_H
#define ARANGOD_CLUSTER_CLUSTER_COLLECTION_CREATION_INFO_H 1
#include "Basics/Common.h"
#include <velocypack/Builder.h>
#include <velocypack/Slice.h>
namespace arangodb {
struct ClusterCollectionCreationInfo {
enum State { INIT, FAILED, DONE };
ClusterCollectionCreationInfo(std::string const cID, uint64_t shards,
uint64_t repFac, uint64_t minRepFac,
bool waitForRep, velocypack::Slice const& slice);
std::string const collectionID;
uint64_t numberOfShards;
uint64_t replicationFactor;
uint64_t minReplicationFactor;
bool waitForReplication;
velocypack::Slice const json;
std::string name;
State state;
public:
velocypack::Slice isBuildingSlice() const;
private:
bool needsBuildingFlag() const;
private:
velocypack::Builder _isBuildingJson;
};
} // namespace arangodb
#endif