PrintReflectedVariable.h

// PrintReflectedVariable.h
//
// Author David Barrett-Lennard
// (C)opyright Cedanet Pty Ltd 2007

@import "cxObject.h"
@import "PrintReflectedType.h"

namespace ceda
{

// Callback for printing a pref/cref member
class prefbase;
@api extern void (*g_PrintPref)(xostream& os, const prefbase* p);

///////////////////////////////////////////////////////////////////////////////////////////////////
// Printing of variables

@api void PrintReflectedVariable(xostream& os, ReflectionByteCode rbc, const void* data, bool allowMultiLine = true, const PrintTypeSettings& pts = PrintTypeSettings());

// Print the current value of a xvector<T> variable at address 'data'.
// rbc describes the element type T.
@api void PrintReflectedVector(xostream& os, ReflectionByteCode rbc, const void* data, bool allowMultiLine = true, const PrintTypeSettings& pts = PrintTypeSettings());

// Print the current value of an array variable with 'size' elements located at address 'data'.
// 'rbc' describes the element type T.
@api void PrintReflectedArray(xostream& os, ReflectionByteCode rbc, ssize_t size, const void* data, bool allowMultiLine = true, const PrintTypeSettings& pts = PrintTypeSettings());

@api void PrintReflectedMap(xostream& os, ReflectionByteCode rbc, const void* data, bool allowMultiLine = true, const PrintTypeSettings& pts = PrintTypeSettings());
@api void PrintReflectedSet(xostream& os, ReflectionByteCode rbc, const void* data, bool allowMultiLine = true, const PrintTypeSettings& pts = PrintTypeSettings());

@api void PrintReflectedClassVariable(xostream& os, const ReflectedClass& rc, const void* data, bool allowMultiLine = true, const PrintTypeSettings& pts = PrintTypeSettings());

@api void PrintReflectedVariantVariable(
    xostream& os, const ReflectedVariant& rv, const void* data, 
    bool allowMultiLine = true, const PrintTypeSettings& pts = PrintTypeSettings());

@api void PrintInstance(xostream& os, ptr<const IObject> x, const PrintTypeSettings& pts = PrintTypeSettings());

} // namespace ceda