ceph-dovecot / dovecot-ceph-plugin

Dovecot plugin for storing mails in a Ceph cluster
Other
131 stars 23 forks source link

Make RadosMetadata Independent from librados #263

Open jrse opened 5 years ago

jrse commented 5 years ago
// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
// vim: ts=8 sw=2 smarttab
/*
 * Copyright (c) 2017-2018 Tallence AG and the authors
 *
 * This is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License version 2.1, as published by the Free Software
 * Foundation.  See file COPYING.
 */
#ifndef SRC_LIBRMB_RADOS_METADATA_STORAGE_PRODUCER_H_
#define SRC_LIBRMB_RADOS_METADATA_STORAGE_PRODUCER_H_
#include "rados-dovecot-ceph-cfg.h"

#include "rados-metadata-storage-module.h"

namespace librmb {
/**
 * Rados MetadataStorage
 *
 * abstract class to access the metadata storage.
 *
 */
class RadosMetadataStorage {
 public:
  virtual ~RadosMetadataStorage() {}
  /* create the medata data class based on configuration */
  virtual RadosStorageMetadataModule *create_metadata_storage(librados::IoCtx *io_ctx_, RadosDovecotCephCfg *cfg_) = 0;
  virtual RadosStorageMetadataModule *get_storage() = 0;
};

}  // namespace librmb

#endif /* SRC_LIBRMB_RADOS_METADATA_STORAGE_PRODUCER_H_ */