Skip to content

Get Storage info

Tan Xiu Haw edited this page Sep 20, 2023 · 1 revision

Get Drive info for a given Drive ID

  • Following parameters required:
    • DriveID - drive identifier to get info from
  • Return - drive class
    • drive data
      • Multi-signatures data
      • Multi-signatures address
      • Owner
      • Root hash
      • Size
      • Used size bytes
      • Meta file size bytes
      • Replicator count
      • Array of active data modifications
      • Array of completed data modifications
      • Array of confirmed used sizes
      • Array of replicators
      • Array of offboarding replicators
      • Verification
      • Array of download shards
      • Array of data modification shards
#include <xpxchaincpp/sdk.h>
#include <iostream>
#include <vector>

using namespace xpx_chain_sdk;

int main() 
{
  xpx_chain_sdk::Config config = xpx_chain_sdk::GetConfig();
  config.nodeAddress = "127.0.0.1";
  config.port = "3000";
  
  std::string driveID = "";

  auto client = xpx_chain_sdk::getClient(config);
  auto drive = client->storage()->getDriveById(driveID).data;

  std::cout << drive.multisig << std::endl;
  std::cout << drive.multisigAddress << std::endl;  
  std::cout << drive.owner << std::endl;
  std::cout << drive.rootHash << std::endl;
  std::cout << drive.size << std::endl;
  std::cout << drive.usedSizeBytes << std::endl;
  std::cout << drive.metaFilesSizeBytes << std::endl;
  std::cout << drive.replicatorCount << std::endl;
  std::cout << drive.verification.verificationTrigger << std::endl;
  std::cout << drive.verification.expiration << std::endl;
  std::cout << drive.verification.duration << std::endl;
  
  auto dataModifications = drive.activeDataModifications.dataModification;
  for (auto& dataModification : dataModifications) {
    std::cout << dataModification.id << std::endl;
  }

  auto completedDataModifications = drive.completedDataModifications;
  for (auto& completedDataModification : completedDataModifications) {
    std::cout << completedDataModification.state << std::endl;
  }  

  auto confirmedUsedSizes = drive.confirmedUsedSizes;
  for (auto& confirmedUsedSize : confirmedUsedSizes) {
    std::cout << confirmedUsedSize.replicator << std::endl;
  }

  auto replicators = drive.replicators;
  for (auto& replicator : replicators) {
    std::cout << replicator << std::endl;
  }

  auto offboardingReplicators = drive.offboardingReplicators;
  for (auto& offboardingReplicator : offboardingReplicators) {
    std::cout << offboardingReplicator << std::endl;
  }

  auto downloadShards = drive.downloadShards;
  for (auto& downloadShard : downloadShards) {
    std::cout << downloadShard.downloadChannelId << std::endl;
  }

  auto dataModificationShards = drive.dataModificationShards;
  for (auto& dataModificationShard : dataModificationShards) {
    std::cout << dataModificationShard.replicator << std::endl;
  }
  return 0;
}

Get Drive pagination info for a given options

  • Following parameters optional:
    • Options - drives pagination options
      • Size
      • From size
      • To size
      • Used size
      • From used size
      • To used size
      • Meta files size
      • From meta files size
      • To meta files size
      • Replicator count
      • From replicator count
      • To replicator count
      • Owner
      • Pagination ordering options
  • Return - drives page class
    • multiple drives data
      • Array of drives
    • pagination
      • Total entries
      • Page number
      • Page size
      • Total pages
#include <xpxchaincpp/sdk.h>
#include <iostream>
#include <vector>

using namespace xpx_chain_sdk;

int main() 
{
  xpx_chain_sdk::Config config = xpx_chain_sdk::GetConfig();
  config.nodeAddress = "127.0.0.1";
  config.port = "3000";

  auto client = xpx_chain_sdk::getClient(config);
  auto drives = client->storage()->getDrives();
  
  std::cout << drives.pagination.totalEntries << std::endl;
  std::cout << drives.pagination.pageNumber << std::endl;
  std::cout << drives.pagination.pageSize << std::endl;
  std::cout << drives.pagination.totalPages << std::endl;
  return 0;
}