psstream.h
来自「终于找到了bpsk信号的调制」· C头文件 代码 · 共 153 行
H
153 行
//
// File = psstream.h
//
#ifndef _PSSTREAM_H_
#define _PSSTREAM_H_
#include "psmodel.h"
//#include "f_cmplx.h"
//#include "d_cmplx.h"
#include "delay_modes.h"
#include "interp_modes.h"
#include <complex>
using namespace std;
class PracSimStream
{
public:
PracSimStream(void);
~PracSimStream(void);
//-------------------------------------------
// add a new stream to the list of streams
// comprising this composite pseudostream
void SetReportFile( ofstream& new_report );
//------------------------------------------------
// overload insertion operator for each type of
// output that might be issued by a PracSim model
//PracSimStream& operator<< ( char *char_string );
PracSimStream& operator<< ( const char *char_string );
PracSimStream& operator<< ( char character );
PracSimStream& operator<< ( float f_val );
PracSimStream& operator<< ( double d_val );
PracSimStream& operator<< ( int i_val );
PracSimStream& operator<< ( long long_val );
PracSimStream& operator<< ( std::complex<float> fc_val );
PracSimStream& operator<< ( std::complex<double> dc_val );
PracSimStream& operator<< ( void* voidptr_val );
//----------------------------------------------------------------------
// overloads of << for PracSimSpecific enum types
friend PracSimStream& operator<<( PracSimStream&, const DELAY_MODE_T&);
friend PracSimStream& operator<<( PracSimStream&, const INTERP_MODE_T&);
//----------------------------------------------------
// define signature that allows overloaded << to be
// used for inserting manipulators into the pseudostream
PracSimStream& operator<< (PracSimStream& (*_BRS) (PracSimStream&))
{ return((*_BRS)(*this));}
//-----------------------------------------------------
// methods for performing manipulator actions
void InsertEndl(void);
void InsertFlush(void);
void InsertEnds(void);
void InsertHex(void);
void InsertOct(void);
void InsertDec(void);
void SetPrecision( int passed_int );
void SetW( int passed_int );
//void SetBase( int passed_int );
//void SetFill( int passed_int );
void SetIOSFlags( long new_flag );
void ResetIOSFlags( long new_flag );
void FillBlanks( int length );
void FillBlanksRight( int length );
void FillBlanksLeft( int length );
void BadManipulator( void );
//--------------------------------------------
// flag functions
long* flags(void);
long flags(long* flag_buffer);
long setf(long flag_bits);
long setf(long flag_bits, long field);
long unsetf(long unset_bits);
void clear(int state=0);
//-----------------------------------------
// format-related functions
int width(void);
int width(int len);
char fill(void);
char fill(char ch);
int precision(int len);
int precision(void);
private:
int Num_Report_Files;
ofstream* Report_File[5];
};
class pracsim_manip
{
private:
int i;
PracSimStream& (*f)(PracSimStream&, int);
public:
pracsim_manip( PracSimStream& (*ff)(PracSimStream&, int),
int ii) : f(ff), i(ii) {};
friend PracSimStream& operator<<( PracSimStream& rs, pracsim_manip& m);
};
class pracsim_manip_long
{
private:
long l;
PracSimStream& (*fl)(PracSimStream&, long);
public:
pracsim_manip_long(PracSimStream& (*ff)(PracSimStream&, long),
long ll) : fl(ff), l(ll) {}
friend PracSimStream& operator<<(
PracSimStream& rs, pracsim_manip_long& m)
{return m.fl(rs,m.l);}
};
//--------------------------------------------------
// manipulator invokers
PracSimStream& _setprecision_(PracSimStream& results_stream, int passed_int);
PracSimStream& _setw_(PracSimStream& results_stream, int passed_int);
PracSimStream& _setbase_(PracSimStream& results_stream, int passed_int);
PracSimStream& _setfill_(PracSimStream& results_stream, int passed_int);
PracSimStream& _setiosflags_(PracSimStream& results_stream, long new_flag);
PracSimStream& _resetiosflags_(PracSimStream& results_stream, long new_flag);
PracSimStream& _fill_blanks_(PracSimStream& results_stream, int length);
PracSimStream& _fill_blanks_right_(PracSimStream& results_stream, int length);
PracSimStream& _fill_blanks_left_(PracSimStream& results_stream, int length);
PracSimStream& endl(PracSimStream& results_stream);
PracSimStream& flush(PracSimStream& results_stream);
PracSimStream& ends(PracSimStream& results_stream);
PracSimStream& hex(PracSimStream& results_stream);
PracSimStream& oct(PracSimStream& results_stream);
PracSimStream& dec(PracSimStream& results_stream);
;
#endif //_PSSTREAM_H_
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?