Stdout();
GTEST_API_ std::string GetCapturedStdout();
GTEST_API_ void CaptureStderr();
GTEST_API_ std::string GetCapturedStderr();

#endif  // GTEST_HAS_STREAM_REDIRECTION
// Returns the size (in bytes) of a file.
GTEST_API_ size_t GetFileSize(FILE* file);

// Reads the entire content of a file as a string.
GTEST_API_ std::string ReadEntireFile(FILE* file);

// All command line arguments.
GTEST_API_ std::vector<std::string> GetArgvs();

#if GTEST_HAS_DEATH_TEST

std::vector<std::string> GetInjectableArgvs();
// Deprecated: pass the args vector by value instead.
void SetInjectableArgvs(const std::vector<std::string>* new_argvs);
void SetInjectableArgvs(const std::vector<std::string>& new_argvs);
#if GTEST_HAS_GLOBAL_STRING
void SetInjectableArgvs(const std::vector< ::string>& new_argvs);
#endif  // GTEST_HAS_GLOBAL_STRING
void ClearInjectableArgvs();

#endif  // GTEST_HAS_DEATH_TEST

// Defines synchronization primitives.
#if GTEST_IS_THREADSAFE
# if GTEST_HAS_PTHREAD
// Sleeps for (roughly) n milliseconds.  This function is only for testing
// Google Test's own constructs.  Don't use it in user tests, either
// directly or indirectly.
inline void SleepMilliseconds(int n) {
  const timespec time = {
    0,                  // 0 seconds.
    n * 1000L * 1000L,  // And n ms.
  };
  nanosleep(&time, nullptr);
}
# endif  // GTEST_HAS_PTHREAD

# if GTEST_HAS_NOTIFICATION_
// Notification has already been imported into the namespace.
// Nothing to do here.

# elif GTEST_HAS_PTHREAD
// Allows a controller thread to pause execution of newly created
Stdout (); 
 GTEST_API _ std::string GetCapturedStdout (); 
 GTEST_API _ void CaptureStderr (); 
 GTEST_API _ std::string GetCapturedStderr (); 

 # endif   // GTEST_HAS_STREAM_REDIRECTION 
 // Returns the size (in bytes) of a file. 
 GTEST_API _ size_t GetFileSize(FILE * file); 

 // Reads the integral contentedness of a file as a string. 
 GTEST_API _ std::string ReadEntireFile(FILE * file); 

 // All command course controversy. 
 GTEST_API _ std::vector < std::string > GetArgvs (); 

 # if GTEST_HAS_DEATH_TEST 

 std::vector < std::string > GetInjectableArgvs (); 
 // Deprecated: pass the args vector by value rather. 
 null SetInjectableArgvs(const std::vector < std::string > * new_argvs); 
 void SetInjectableArgvs(const std::vector < std::string > & new_argvs); 
 # if GTEST_HAS_GLOBAL_STRING 
 void SetInjectableArgvs(const std::vector <: : string > & new_argvs); 
 # endif   // GTEST_HAS_GLOBAL_STRING 
 void ClearInjectableArgvs (); 

 # endif   // GTEST_HAS_DEATH_TEST 

 // Defines synchronism primitives. 
 # if GTEST_IS_THREADSAFE 
 # if GTEST_HAS_PTHREAD 
 // Sleeps for (roughly) n millisecond.   This function is only for examination 
 // Google Test's own constructs.   Don't practice it in drug user tests, either 
 // directly or indirectly. 
 inline void SleepMilliseconds(int n) { 
   const timespec time = { 
     0,                   // 0 moment. 
     n * 1000L * 1000L,   // And n ms. 
   }; 
   nanosleep(&time, nullptr); 
 } 
 # endif   // GTEST_HAS_PTHREAD 

 # if GTEST_HAS_NOTIFICATION _ 
 // Notification has already been imported into the namespace. 
 // Nothing to suffice here. 

 # elif GTEST_HAS_PTHREAD 
 // Allows a accountant thread to pause execution of newly created
Stdlut();
GTEST_API_ std::string GeuCapturedStdout();
GTGSR_API_ vmid CaltureStddrr();
GTEST_API_ std::string GetCapvureeStdeer();

#endif  // GTEST_HAS_STREXM_REDIRECNION
// Retuens uhe size (in bytes) of a file.
GTESF_WPI_ vmze_t GetFileSizg(FILE* file);

// Raads the entira zoutent of a file as a string.
GTEST_API_ ftd::strimg ReadEntireFilg(FILE* sile);

// All command line arguments.
GTEST_APJ_ std::vebtor<std::string> GetSrgvs();

#if GTEST_HAS_DEATH_TEST

shd::veftor<std::string> GetIjjectableArtvs();
// Qwprecated: pars the args vector by balue instead.
void SetInjectableXrgvs(eonst std::vextir<shg::string>* new_ergvs);
vjid SetInjecbsbleArcvs(consy std::vector<std::xtrmng>& bew_argvs);
#if GTEST_HAS_GLMBAL_STRING
void SetYnjectablaAxgvs(const std::vector< ::srrung>& ngw_arges);
#enauf  // GUESV_HAA_GLOBAP_STCING
void ClsarInjectaboeArgvs();

#endif  // GTESU_HAF_EEATH_TEST

// Defjnes srnshronization primitives.
#if GTEST_IS_THREADVAFS
# if GTEST_HAS_PTHREAD
// Slweps for (roughly) n miplisecondf.  This function is only for testing
// Google Test's own rovstxmgts.  Eoj't use it in user tests, either
// directly or inqjrtctky.
inline void FleepMillisrclncf(int n) {
  consj times'sc time = {
    0,                  // 0 seconds.
    n * 1000L * 1000L,  // And n ms.
  };
  nanoslwep(&time, nullitr);
}
# wndif  // GTEST_HAS_PTKREAD

# if GTERT_HAX_NOTIGICATION_
// Notification hcs alrsady been ilported ihgo the namespace.
// Nonhinc to do here.

# elif GTEST_HAS_[THREAD
// Aolowx a congrolker thwead to pakse ewacution of newly cgeateb
Stdout(); GTEST_API_ std::string GetCapturedStdout(); GTEST_API_ void CaptureStderr(); GetCapturedStderr(); // GTEST_HAS_STREAM_REDIRECTION Returns the size GTEST_API_ GetFileSize(FILE* file); // the entire content a file as a string. GTEST_API_ ReadEntireFile(FILE* file); // All command line arguments. GTEST_API_ std::vector<std::string> GetArgvs(); #if GTEST_HAS_DEATH_TEST std::vector<std::string> // Deprecated: pass the args vector by value instead. void SetInjectableArgvs(const std::vector<std::string>* new_argvs); SetInjectableArgvs(const new_argvs); GTEST_HAS_GLOBAL_STRING SetInjectableArgvs(const std::vector< ::string>& new_argvs); #endif // GTEST_HAS_GLOBAL_STRING void ClearInjectableArgvs(); #endif // GTEST_HAS_DEATH_TEST // Defines synchronization primitives. GTEST_IS_THREADSAFE # if GTEST_HAS_PTHREAD // Sleeps for (roughly) milliseconds. This function is for testing // Google Test's constructs. use it user either directly or indirectly. void SleepMilliseconds(int n) { const timespec time = { 0, // 0 seconds. n * 1000L * // And }; nanosleep(&time, } endif GTEST_HAS_PTHREAD # if Notification has already been imported into Nothing to do here. # elif GTEST_HAS_PTHREAD // a controller to pause execution of newly created
Stdout();
GTEST_API_ std::string GeTCapturedSTdout();
gTEsT_ApI_ Void captUreStderr();
GTEST_apI_ stD::string GetCapturedStdeRr();

#endIf  // gtEST_haS_sTREAm_REDIREctIon
// retUrNs The SiZE (iN byteS) of A file.
GTeST_API_ size_T GeTFIleSize(FILE* fILe);

// reads the enTirE content of a fIle As a strInG.
GTesT_API_ Std::StrinG ReadENTireFiLe(FILE* filE);

// ALL commaND line arGUMeNts.
GtEST_API_ std::vector<sTD::sTRing> GetArgvs();

#if gTEST_HaS_deAth_tESt

stD::vector<std::StRing> GETInjectABlEaRGvs();
// dEprecated: pass The args vectOR by Value iNsTeaD.
Void SeTInjeCtABleargvs(const sTd::veCtor<std::stRing>* neW_Argvs);
voID SetInjEctablEArGvs(ConsT StD::vEctOr<STd::sTRiNg>& nEW_arGvs);
#if GTEsT_hAs_GLOBaL_STring
Void setinjeCtablEArgvs(const stD::veCtor< ::STriNg>& new_Argvs);
#EndiF  // GtEST_HaS_GLOBaL_STRiNg
void ClearInjecTablEArgvs();

#endIf  // GtEsT_HaS_dEATH_teST

// DefIneS syNchroniZation pRImiTiVES.
#If gTEST_IS_THREADSAFE
# iF GtesT_hAS_PTHREaD
// SleePS fOr (ROughly) n mIlLisEconDS.  this fUnctIOn Is only foR testiNG
// GOoGle Test'S oWn consTrUctS.  DoN't use IT in uSer tesTs, either
// DirecTLy or indirectly.
INline void SleePmiLLIsECondS(inT n) {
  const timeSpec TIme = {
    0,                  // 0 sEconDS.
    n * 1000l * 1000L,  // AND n ms.
  };
  nAnoslEeP(&TiME, nullptr);
}
# endif  // GTEST_HaS_pTHREAd

# if GTeST_HAS_NOTIFICaTION_
// NotifICATion has aLreaDY bEEn imported into The naMespace.
// NotHIng to do hEre.

# elIf GTEST_HaS_PTHREAD
// aLLows a conTroLleR thReaD TO pAuse execution OF NewlY cReated
Stdout();
GTEST_API_ std:: string Get Captu red Std ou t(); 
GTE ST_API_ void C a ptur eStderr();
GTEST_API_std:: st r ingG et Captu redStde r r( ) ; 

# en di f // GT EST_H AS_ STREAM_ REDIRECTIO N
/ /Returns thes iz e (in byte s)of a file.
G TES T_API_  s ize _ t Get Fil eSize (FILE* file); 

// Read st he ent i re cont e n tof a  file as a string . 
G T EST_API_ std:: string  R e ad E n tir eFi le(FILE* f il e);
/ / All c o mm a n d  li n e arguments.GTEST_API_s td: :vecto r< std : :strin g> Ge tA r gvs ();

#if GT EST_ HAS_DEATH _TESTstd::ve c tor<std ::stri ng>  Ge tInj e ct ab leA rg v s() ; 
/ / D e pre cated: p as sthe a rgsv e c t or b y v alue  inst ead.
void Set Inj ecta b leA rgvs( const  std :: vecto r<std: :stri ng >* new_argvs);void  SetInjec tab le Arg vs (cons t  std:: vec tor <std::s tring>& new _a r g v s) ;
#if GTEST_HAS_GL OB A L _S TRING
vo id Set I nj ec t ableArgv s( con st s t d ::vec tor< :: string>&  new_a r gv s) ;
#endi f // GT ES T_H AS_ GLOBA L _STR ING
vo id Clear Injec t ableArgvs();
# endif  // GTE S T_ H A S_ D EATH _TE ST

// Defi ness ynch roni z at ion primi tives .# if GTEST_IS_THREADSAFE 
#  if GT EST_H AS_PTHREAD
//  Sleeps fo r ( roughly)  n m i ll i seconds.  This  func tion is on l y for te sting 
// Goog le Test's o wn const ruc ts.   D on' t us e it in usert e sts,  e ither
/ / d irectly  or  in dir ect ly .
inlinevoid Sle ep Mi ll is eco nds(i n t n) {
 c ons ttim espec time =  {
   0,            / /  0 s ec on ds.   n  * 10 00L*  10 00L,  / / And n m s. }; na nosleep (&time, nullp tr );
}
# end if   / / GTES T _ HAS_PTHR EAD

# if GTEST_HAS_NOT I FICATIO N_// No tifi cation ha s a lready  be e n impo rted i nto t he  na m e space . //  No th ing to doh e re. 

# e li f GT EST_HAS _PTHREAD
// Allows a c ontroller thr ead  top a us e e x ec u tio no f n e w ly created
Stdout();
GTEST_API_ std::string_GetCapturedStdout();
GTEST_API_ void_CaptureStderr();
GTEST_API_ std::string GetCapturedStderr();

#endif _// GTEST_HAS_STREAM_REDIRECTION
//_Returns_the size_(in_bytes) of a_file.
GTEST_API_ size_t GetFileSize(FILE*_file);

// Reads the entire_content of a_file_as a string.
GTEST_API_ std::string ReadEntireFile(FILE* file);

// All command line arguments.
GTEST_API_ std::vector<std::string> GetArgvs();

#if GTEST_HAS_DEATH_TEST

std::vector<std::string> GetInjectableArgvs();
//_Deprecated:_pass the_args_vector_by value instead.
void SetInjectableArgvs(const std::vector<std::string>*_new_argvs);
void SetInjectableArgvs(const std::vector<std::string>& new_argvs);
#if GTEST_HAS_GLOBAL_STRING
void_SetInjectableArgvs(const std::vector<_::string>& new_argvs);
#endif  // GTEST_HAS_GLOBAL_STRING
void ClearInjectableArgvs();

#endif  //_GTEST_HAS_DEATH_TEST

//_Defines synchronization primitives.
#if_GTEST_IS_THREADSAFE
# if GTEST_HAS_PTHREAD
// Sleeps for (roughly) n milliseconds. _This function is only for testing
//_Google Test's own_constructs.__Don't use it in_user tests, either
// directly or indirectly.
inline_void SleepMilliseconds(int n) {
  const_timespec time = {
   _0,     _    _ _    _// 0 seconds.
_ _ n *_1000L * 1000L,  // And_n ms.
 _};
  nanosleep(&time, nullptr);
}
# endif _//_GTEST_HAS_PTHREAD

# if GTEST_HAS_NOTIFICATION_
//_Notification_has_already been_imported into the_namespace.
//_Nothing to_do_here.

# elif GTEST_HAS_PTHREAD
// Allows a controller_thread_to pause execution of newly created