Leaked source code of windows server 2003
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
//+-------------------------------------------------------------------------
//
// Microsoft Windows
//
// Copyright (C) Microsoft Corporation, 1997 - 1997
//
// File: parmiox.h
//
//--------------------------------------------------------------------------
//////////////////////////////////////////////////////////////////////////////////
//
// PARMIOX.H: Parameter file I/O routines extended for older classes
//
//////////////////////////////////////////////////////////////////////////////////
#ifndef _PARMIOX_H_
#define _PARMIOX_H_
#include "parmio.h"
template<class _T> inline PARMOUTSTREAM& operator << (PARMOUTSTREAM & ofs, const RG<_T> & rgt ) { UINT c = rgt.Celem(); ofs << CH_DELM_OPEN; ofs << c; ofs << CH_PREAMBLE; for ( UINT i = 0; i < c; ) { ofs << rgt[i]; if ( ++i != c ) ofs << ',' ; } ofs << CH_DELM_CLOSE; return ofs; }
template<class _T> inline PARMINSTREAM& operator >> (PARMINSTREAM & ifs, RG<_T> & rgt ) { char ch; ifs >> ch; if (ch != CH_DELM_OPEN) _THROW1(runtime_error("invalid block (1)")); UINT l; ifs >> l; ifs >> ch; if (ch != CH_PREAMBLE) _THROW1(runtime_error("invalid block (2)"));
rgt.BxResize(l); for ( UINT i = 0 ; i < l; ) { _T it; ifs >> it; rgt[i] = it; if ( ++i < l ) { ifs >> ch; if (ch != CH_SEP) break; } } if ( i != l ) _THROW1(runtime_error("invalid block (3)")); ifs >> ch; if (ch != CH_DELM_CLOSE) _THROW1(runtime_error("invalid block (4)")); return ifs; }
#endif // _PARMIOX_H_
|