windows-nt/Source/XPSP1/NT/net/ias/providers/accounting/formbuf.h
2020-09-26 16:20:57 +08:00

72 lines
1.8 KiB
C++

///////////////////////////////////////////////////////////////////////////////
//
// Copyright (c) 1998, Microsoft Corp. All rights reserved.
//
// FILE
//
// formbuf.h
//
// SYNOPSIS
//
// Declares the class FormattedBuffer.
//
// MODIFICATION HISTORY
//
// 08/04/1998 Original version.
// 12/17/1998 Add append overload for IASATTRIBUTE&.
// 01/25/1999 Date and time are separate fields.
// 03/23/1999 Add support for text qualifiers.
//
///////////////////////////////////////////////////////////////////////////////
#ifndef _FORMBUF_H_
#define _FORMBUF_H_
#if _MSC_VER >= 1000
#pragma once
#endif
#include <iaspolcy.h>
#include <outbuf.h>
///////////////////////////////////////////////////////////////////////////////
//
// CLASS
//
// FormattedBuffer
//
// DESCRIPTION
//
// Extends the OutputBuffer class to provide IAS specific formatting.
//
///////////////////////////////////////////////////////////////////////////////
class FormattedBuffer
: public OutputBuffer
{
public:
using OutputBuffer::append;
FormattedBuffer(CHAR qualifier) throw ()
: textQualifier(qualifier) { }
void append(DWORD value);
void append(DWORDLONG value);
void append(const IASVALUE& value);
void append(const IASATTRIBUTE& attr);
void append(const ATTRIBUTEPOSITION* pos);
void appendClassAttribute(const IAS_OCTET_STRING& value);
void appendFormattedOctets(const BYTE* buf, DWORD buflen);
void appendDate(const SYSTEMTIME& value);
void appendQualifier() { append(textQualifier); }
void appendText(PCSTR sz, DWORD szlen);
void appendTime(const SYSTEMTIME& value);
void beginColumn() { append(','); }
void endRecord() { append((PBYTE)"\r\n", 2); }
private:
const CHAR textQualifier;
};
#endif // _FORMBUF_H_