Κλάση System::Buffer

Buffer class

Περιέχει μεθόδους που χειρίζονται ακατέργαστους πίνακες byte. Αυτός είναι ένας στατικός τύπος χωρίς υπηρεσίες στιγμιοτύπου. Δεν πρέπει ποτέ να δημιουργείτε στιγμιότυπα του με κανέναν τρόπο.

class Buffer

Μέθοδοι

ΜέθοδοςΠεριγραφή
static BlockCopy(const uint8_t *, int, uint8_t *, int, int)Αντιγράφει έναν καθορισμένο αριθμό byte από το buffer προέλευσης στο buffer προορισμού.
static BlockCopy(const SharedPtr<Array<TSrc>>&, int, const SharedPtr<Array<TDst>>&, int, int)Ερμηνεύει δύο καθορισμένους τύπους πινάκων ως ακατέργαστους πίνακες byte και αντιγράφει δεδομένα από τον έναν στον άλλο.
static BlockCopy(const System::Details::ArrayView<TSrc>&, int, const System::Details::ArrayView<TDst>&, int, int)Ερμηνεύει δύο καθορισμένους τύπους πινάκων ως ακατέργαστους πίνακες byte και αντιγράφει δεδομένα από τον έναν στον άλλο.
static BlockCopy(const SharedPtr<Array<TSrc>>&, int, const System::Details::ArrayView<TDst>&, int, int)Ερμηνεύει δύο καθορισμένους τύπους πινάκων ως ακατέργαστους πίνακες byte και αντιγράφει δεδομένα από τον έναν στον άλλο.
static BlockCopy(const System::Details::ArrayView<TSrc>&, int, const SharedPtr<Array<TDst>>&, int, int)Ερμηνεύει δύο καθορισμένους τύπους πινάκων ως ακατέργαστους πίνακες byte και αντιγράφει δεδομένα από τον έναν στον άλλο.
static BlockCopy(const System::Details::StackArray<TSrc, NS>&, int, const System::Details::StackArray<TDst, ND>&, int, int)Ερμηνεύει δύο καθορισμένους τύπους πινάκων ως ακατέργαστους πίνακες byte και αντιγράφει δεδομένα από τον έναν στον άλλο.
static BlockCopy(const SharedPtr<Array<TSrc>>&, int, const System::Details::StackArray<TDst, ND>&, int, int)Ερμηνεύει δύο καθορισμένους τύπους πινάκων ως ακατέργαστους πίνακες byte και αντιγράφει δεδομένα από τον έναν στον άλλο.
static BlockCopy(const System::Details::StackArray<TSrc, NS>&, int, const SharedPtr<Array<TDst>>&, int, int)Ερμηνεύει δύο καθορισμένους τύπους πινάκων ως ακατέργαστους πίνακες byte και αντιγράφει δεδομένα από τον έναν στον άλλο.
static ByteLength(const SharedPtr<Array<T>>&)Καθορίζει τον αριθμό των byte που καταλαμβάνονται από όλα τα στοιχεία του καθορισμένου πίνακα.
static ByteLength(const System::Details::ArrayView<T>&)Καθορίζει τον αριθμό των byte που καταλαμβάνονται από όλα τα στοιχεία του καθορισμένου πίνακα.
static ByteLength(const System::Details::StackArray<T, N>&)Καθορίζει τον αριθμό των byte που καταλαμβάνονται από όλα τα στοιχεία του καθορισμένου πίνακα.
static GetByte(const SharedPtr<Array<T>>&, int)Ερμηνεύει τον καθορισμένο τύπο πίνακα ως ακατέργαστο πίνακα byte και ανακτά την τιμή byte στην καθορισμένη μετατόπιση byte.
static GetByte(const System::Details::ArrayView<T>&, int)Ερμηνεύει τον καθορισμένο τύπο πίνακα ως ακατέργαστο πίνακα byte και ανακτά την τιμή byte στην καθορισμένη μετατόπιση byte.
static GetByte(const System::Details::StackArray<T, N>&, int)Ερμηνεύει τον καθορισμένο τύπο πίνακα ως ακατέργαστο πίνακα byte και ανακτά την τιμή byte στην καθορισμένη μετατόπιση byte.
static SetByte(const SharedPtr<Array<T>>&, int, uint8_t)Ερμηνεύει τον καθορισμένο τύπο πίνακα ως ακατέργαστο πίνακα byte και ορίζει την καθορισμένη τιμή byte στην καθορισμένη μετατόπιση byte.
static SetByte(const System::Details::ArrayView<T>&, int, uint8_t)Ερμηνεύει τον καθορισμένο τύπο πίνακα ως ακατέργαστο πίνακα byte και ορίζει την καθορισμένη τιμή byte στην καθορισμένη μετατόπιση byte.
static SetByte(const System::Details::StackArray<T, N>&, int, uint8_t)Ερμηνεύει τον καθορισμένο τύπο πίνακα ως ακατέργαστο πίνακα byte και ορίζει την καθορισμένη τιμή byte στην καθορισμένη μετατόπιση byte.

Παρατηρήσεις

#include <system/buffer.h>

using namespace System;

void Print(const SmartPtr<Array<uint8_t>> &source, int size)
{
  for (auto i = 0; i < size; i++)
  {
    std::cout << static_cast<int>(source[i]) << ' ';
  }
  std::cout << std::endl;
}

int main()
{
  // Δημιουργήστε και γεμίστε τον πίνακα.
  const int SIZE = 16;
  auto first = MakeObject<Array<uint8_t>>(SIZE);
  for (auto i = 0; i < SIZE; ++i)
  {
    first[i] = static_cast<uint8_t>(i * 2);
  }

  // Εκτυπώστε τα στοιχεία του πίνακα.
  Print(first, SIZE);

  // Δημιουργήστε έναν πίνακα που περιέχει ένα μέρος του πρώτου.
  auto second = MakeObject<Array<uint8_t>>(SIZE / 2);
  Buffer::BlockCopy(first, SIZE / 2, second, 0, SIZE / 2);

  // Εκτυπώστε τα στοιχεία του δεύτερου πίνακα.
  Print(second, SIZE / 2);

  // Ορίστε την τιμή του στοιχείου στη θέση 0 και εκτυπώστε τα στοιχεία του πίνακα.
  Buffer::SetByte(second, 0, 128);
  Print(second, SIZE / 2);

  return 0;
}
/*
This code example produces the following output:
0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30
16 18 20 22 24 26 28 30
128 18 20 22 24 26 28 30
*/

Δείτε επίσης