Files
rippled/src/cpp/ripple/AccountItems.h
2013-03-06 03:52:56 -08:00

51 lines
1.3 KiB
C++

#ifndef __ACCOUNT_ITEMS__
#define __ACCOUNT_ITEMS__
#include "Ledger.h"
#include "SerializedLedger.h"
//
// Fetch ledger entries from an account's owner dir.
//
class AccountItem
{
protected:
SerializedLedgerEntry::pointer mLedgerEntry;
public:
typedef boost::shared_ptr<AccountItem> pointer;
typedef const pointer& ref;
AccountItem(){ }
AccountItem(SerializedLedgerEntry::ref ledger);
virtual ~AccountItem() { ; }
virtual AccountItem::pointer makeItem(const uint160& accountID, SerializedLedgerEntry::ref ledgerEntry)=0;
virtual LedgerEntryType getType()=0;
virtual Json::Value getJson(int)=0;
SerializedLedgerEntry::pointer getSLE() { return mLedgerEntry; }
const SerializedLedgerEntry& peekSLE() const { return *mLedgerEntry; }
SerializedLedgerEntry& peekSLE() { return *mLedgerEntry; }
std::vector<unsigned char> getRaw() const;
};
class AccountItems
{
AccountItem::pointer mOfType;
std::vector<AccountItem::pointer> mItems;
void fillItems(const uint160& accountID, Ledger::ref ledger);
public:
typedef boost::shared_ptr<AccountItems> pointer;
AccountItems(const uint160& accountID, Ledger::ref ledger, AccountItem::pointer ofType);
std::vector<AccountItem::pointer>& getItems() { return(mItems); }
Json::Value getJson(int);
};
#endif
// vim:ts=4