void BinaryQueue::consume(size_t size) { // Check parameters if (size > m_size) { throw OutOfDataException(m_size, size); } size_t bytesLeft = size; // Consume data and/or remove buckets while (bytesLeft > 0) { // Get consume size size_t count = std::min(bytesLeft, m_buckets.front()->left); m_buckets.front()->ptr = static_cast<const char *>(m_buckets.front()->ptr) + count; m_buckets.front()->left -= count; bytesLeft -= count; m_size -= count; if (m_buckets.front()->left == 0) { deleteBucket(m_buckets.front()); m_buckets.pop_front(); } } }
int BucketItem::process() { switch (m_WorkType) { case DELETE_BUCKET: { deleteBucket(); break; } case START_BUCKET: { startBucket(); break; } default: { ERROR_LOG("Unknown work type %d.", m_WorkType); break; } } return 0; }
int main(int argc, char **argv) { /* * Initialize IPRT and create the test. */ RTTEST hTest; int rc = RTTestInitAndCreate("tstRTS3", &hTest); if (rc) return rc; RTTestBanner(hTest); /* * If no args, display usage. */ if (argc <= 2) { RTTestPrintf(hTest, RTTESTLVL_ALWAYS, "Syntax: %s [Access Key] [Secret Key]\n", argv[0]); return RTTestSkipAndDestroy(hTest, "Missing required arguments\n"); } RTTestSubF(hTest, "Create S3"); RTS3 hS3; rc = RTS3Create(&hS3, argv[1], argv[2], "object.storage.network.com", "tstS3-agent/1.0"); if (RT_FAILURE(rc)) { RTTestIFailed("RTS3Create -> %Rrc", rc); return RTTestSummaryAndDestroy(hTest); } RTTestSub(hTest, "Fetch buckets"); fetchAllBuckets(hS3); RTTestSub(hTest, "Fetch keys"); fetchAllKeys(hS3, "bla"); #ifdef TSTS3_CREATEBUCKET RTTestSub(hTest, "Create bucket"); createBucket(hS3, TSTS3_CREATEBUCKET_BUCKETNAME); fetchAllBuckets(hS3); deleteBucket(hS3, TSTS3_CREATEBUCKET_BUCKETNAME); fetchAllBuckets(hS3); #endif /* TSTS3_CREATEBUCKET */ #ifdef TSTS3_PUTGETKEY RTTestSub(hTest, "Put key"); createBucket(hS3, TSTS3_PUTGETKEY_BUCKETNAME); putKey(hS3, TSTS3_PUTGETKEY_BUCKETNAME, TSTS3_PUTGETKEY_KEYNAME, TSTS3_PUTGETKEY_PUTFILE); fetchAllKeys(hS3, TSTS3_PUTGETKEY_BUCKETNAME); getKey(hS3, TSTS3_PUTGETKEY_BUCKETNAME, TSTS3_PUTGETKEY_KEYNAME, TSTS3_PUTGETKEY_GETFILE); deleteKey(hS3, TSTS3_PUTGETKEY_BUCKETNAME, TSTS3_PUTGETKEY_KEYNAME); fetchAllKeys(hS3, TSTS3_PUTGETKEY_BUCKETNAME); deleteBucket(hS3, TSTS3_PUTGETKEY_BUCKETNAME); #endif /* TSTS3_PUTGETKEY */ RTS3Destroy(hS3); /* * Summary */ return RTTestSummaryAndDestroy(hTest); }
int main(int argc, char** argv) { String base = "=== [AWS API Init"; std::cout << base << "]: Start===\n"; Aws::SDKOptions options; // set the options options.loggingOptions.logLevel = Aws::Utils::Logging::LogLevel::Info; // end of options Aws::InitAPI(options); // setup String signVer = SIGN_VER, host = HOST, portStr = PORT, bucketName = BUCKET; if (argc == 5) { signVer = argv[1]; host = argv[2]; portStr = argv[3]; bucketName = argv[4]; } auto client = init(host, portStr); std::cout << base << "]: End ===\n\n"; // call tests here createBucket(client, bucketName); std::cout << '\n'; // put object putObject(client, bucketName, "test.simple", SMALL_TEST_FILE); putObject(client, bucketName, "test.medium", MED_TEST_FILE); putObject(client, bucketName, "test.large", LARGE_TEST_FILE); // put object with metadata Map metadata; metadata[METADATA_KEY] = METADATA_VAL; putObject(client, bucketName, "test.simple.meta", SMALL_TEST_FILE, metadata); putObject(client, bucketName, "test.medium.meta", MED_TEST_FILE, metadata); putObject(client, bucketName, "test.large.meta", LARGE_TEST_FILE, metadata); // put object in parts putObjectMp(client, bucketName, "test.simple.mp", SMALL_TEST_FILE); putObjectMp(client, bucketName, "test.medium.mp", MED_TEST_FILE); putObjectMp(client, bucketName, "test.large.mp", LARGE_TEST_FILE); // put object in parts with metadata putObjectMp(client, bucketName, "test.simple.meta.mp", SMALL_TEST_FILE, metadata); putObjectMp(client, bucketName, "test.medium.meta.mp", MED_TEST_FILE, metadata); putObjectMp(client, bucketName, "test.large.meta.mp", LARGE_TEST_FILE, metadata); // head is already tested // get object getObject(client, bucketName, "test.simple", SMALL_TEST_FILE); getObject(client, bucketName, "test.medium", MED_TEST_FILE); getObject(client, bucketName, "test.large", LARGE_TEST_FILE); getObject(client, bucketName, "test.simple.mp", SMALL_TEST_FILE); getObject(client, bucketName, "test.medium.mp", MED_TEST_FILE); getObject(client, bucketName, "test.large.mp", LARGE_TEST_FILE); getObject(client, bucketName, "test.simple.meta", SMALL_TEST_FILE, metadata); getObject(client, bucketName, "test.medium.meta", MED_TEST_FILE, metadata); getObject(client, bucketName, "test.large.meta", LARGE_TEST_FILE, metadata); getObject(client, bucketName, "test.simple.meta.mp", SMALL_TEST_FILE, metadata); getObject(client, bucketName, "test.medium.meta.mp", MED_TEST_FILE, metadata); getObject(client, bucketName, "test.large.meta.mp", LARGE_TEST_FILE, metadata); // get fake object getFakeObject(client, bucketName, "test.noexist"); // range get object rangeObject(client, bucketName, "test.simple", SMALL_TEST_FILE, 1, 4); // rangeObject(client, bucketName, "test.simple.mp", SMALL_TEST_FILE, 1, 4); rangeObject(client, bucketName, "test.large", LARGE_TEST_FILE, 1048576, 40485760); // rangeObject(client, bucketName, "test.large.mp", LARGE_TEST_FILE, 1048576, 10485760); // copy object copyObject(client, bucketName, "test.simple", "test.simple.copy"); getObject(client, bucketName, "test.simple.copy", SMALL_TEST_FILE); // list object listObjects(client, bucketName, "", -1); // delete all objects deleteAllObjects(client, bucketName); listObjects(client, bucketName, "", 0); // put dummy objects putObject(client, bucketName, "list/test.small.", SMALL_TEST_FILE, Map(), 35); // multi-page list obj listObjects(client, bucketName, "list/", 35, 10); // multi-delete deleteObjects(client, bucketName, "list/test.small.", 10); listObjects(client, bucketName, "list/", 25); // get-put acl // delete bucket deleteBucket(client, bucketName); // end of tests std::cout << "=== AWS API Shutdown: Start===\n"; Aws::ShutdownAPI(options); std::cout << "=== AWS API Shutdown: End ===\n"; return 0; }
void QAuServer::play(const QString& filename) { QAuBucket* b = newBucket(filename); play(b); deleteBucket(b); }