http://code.google.com/p/boto
- paramiko, SSH2 protocol for python (for sftp storage)
http://www.lag.net/paramiko/
- - Boost (smart_ptr)
Building should be a simple matter of running "make". This will produce
an executable called "cumulus".
+++ /dev/null
-/* Cumulus: Efficient Filesystem Backup to the Cloud
- * Copyright (C) 2013 The Cumulus Developers
- * See the AUTHORS file for a list of contributors.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- */
-
-/* Header file with common definitions needed for cumulus. */
-
-#ifndef CUMULUS_CUMULUS_H__
-#define CUMULUS_CUMULUS_H__
-
-/* All Boost includes are grouped here, so we can more easily switch to other
- * implementations in the future. */
-#include <boost/scoped_ptr.hpp>
-
-using boost::scoped_ptr;
-
-#endif // CUMULUS_CUMULUS_H__
#include <iostream>
#include <list>
#include <map>
+#include <memory>
#include <set>
#include <sstream>
#include <string>
#include <vector>
-#include "cumulus.h"
#include "exclude.h"
#include "hash.h"
#include "localdb.h"
using std::string;
using std::vector;
using std::ostream;
+using std::unique_ptr;
/* Version information. This will be filled in by the Makefile. */
#ifndef CUMULUS_VERSION
/* If the file is new or changed, we must read in the contents a block at a
* time. */
if (!cached) {
- scoped_ptr<Hash> file_hash(Hash::New());
+ unique_ptr<Hash> file_hash(Hash::New());
Subfile subfile(db);
subfile.load_old_blocks(old_blocks);
double block_age = 0.0;
ObjectReference ref;
- scoped_ptr<Hash> block_hash(Hash::New());
+ unique_ptr<Hash> block_hash(Hash::New());
block_hash->update(block_buf, bytes);
string block_csum = block_hash->digest_str();
dbmeta_filename += backup_scheme + "-";
dbmeta_filename += timestamp + ".meta" + filter_extension;
RemoteFile *dbmeta_file = remote->alloc_file(dbmeta_filename, "meta");
- scoped_ptr<FileFilter> dbmeta_filter(FileFilter::New(dbmeta_file->get_fd(),
+ unique_ptr<FileFilter> dbmeta_filter(FileFilter::New(dbmeta_file->get_fd(),
filter_program));
if (dbmeta_filter == NULL) {
fprintf(stderr, "Unable to open descriptor output file: %m\n");
RemoteFile *descriptor_file = remote->alloc_file(desc_filename,
"snapshots");
- scoped_ptr<FileFilter> descriptor_filter(
+ unique_ptr<FileFilter> descriptor_filter(
FileFilter::New(descriptor_file->get_fd(), signature_filter.c_str()));
if (descriptor_filter == NULL) {
fprintf(stderr, "Unable to open descriptor output file: %m\n");
#include <list>
#include <map>
+#include <memory>
#include <set>
#include <string>
#include <iostream>
#include <sstream>
-#include "cumulus.h"
#include "localdb.h"
#include "remote.h"
#include "ref.h"
std::string segment_name;
RemoteFile *file;
- scoped_ptr<FileFilter> filter;
+ std::unique_ptr<FileFilter> filter;
// Write data to the tar file
void tar_write(const char *data, size_t size);