/* * The Unix Channel * * by Michel Beaudouin-Lafon * * Copyright 1990-1993 * Laboratoire de Recherche en Informatique (LRI) * * Text services * * $Id$ * $CurLog$ */ #ifndef TextService_H_ #define TextService_H_ class UchTextService : public UchTextStream { friend class UchServiceStarter; public: enum status { isUnavailable, // address not found in port server isError, // could not init connection isRunning, // connection established isLost // no connection (auto-starting) }; protected: status StatusFlag; UchServiceStarter* Starter; bool Closed; CcuString User; CcuString Service; CcuString Host; void Closing (bool); void Flush (); status Restart (); void AutoStart (int = -1, int = -1); virtual void LostServer (); virtual void GotServer (); virtual void AbandonRestart (); cmd_res Execute (const UchTextLine&); public: UchTextService (UchBaseMultiplexer&, const char*, const char* = 0); UchTextService (); ~UchTextService (); void Init (UchBaseMultiplexer&, const char*, const char* = 0); status GetStatus () { return StatusFlag; } int GetRetryTime (); int GetMaxRetries (); void Close (); // close after output buffer emptied void CloseNow (); // close now }; // the simplest interface to a server. extern bool TellServer (const char*, const char*, const char*); #endif