1/* 2 * Copyright (c) 1999-2008 Mark D. Hill and David A. Wood 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions are 7 * met: redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer; --- 21 unchanged lines hidden (view full) --- 30#define __MEM_RUBY_COMMON_DATABLOCK_HH__ 31 32#include <inttypes.h> 33 34#include <cassert> 35#include <iomanip> 36#include <iostream> 37 |
38class WriteMask; 39 |
40class DataBlock 41{ 42 public: 43 DataBlock() 44 { 45 alloc(); 46 } 47 --- 7 unchanged lines hidden (view full) --- 55 56 DataBlock& operator=(const DataBlock& obj); 57 58 void assign(uint8_t *data); 59 60 void clear(); 61 uint8_t getByte(int whichByte) const; 62 const uint8_t *getData(int offset, int len) const; |
63 uint8_t *getDataMod(int offset); |
64 void setByte(int whichByte, uint8_t data); 65 void setData(const uint8_t *data, int offset, int len); |
66 void copyPartial(const DataBlock &dblk, int offset, int len); 67 void copyPartial(const DataBlock &dblk, const WriteMask &mask); 68 void atomicPartial(const DataBlock & dblk, const WriteMask & mask); |
69 bool equal(const DataBlock& obj) const; 70 void print(std::ostream& out) const; 71 72 private: 73 void alloc(); 74 uint8_t *m_data; 75 bool m_alloc; 76}; --- 45 unchanged lines hidden --- |