]> git.tdb.fi Git - libs/core.git/blobdiff - source/base.h
Move class members and comments around
[libs/core.git] / source / base.h
index 584c14ec2445379fc5538a15217d326ef9588415..774d03467b57f73b5af04217dcf8e3cae70046d1 100644 (file)
@@ -18,135 +18,101 @@ leaving stale pointers in an EventDispatcher.
 class Base
 {
 public:
-       /**
-       Emitted when there is data available for reading.  If all data is not read,
-       the signal is emitted again immediately.
-       */
+       /** Emitted when there is data available for reading.  If all data is not
+       read, the signal is emitted again immediately. */
        sigc::signal<void> signal_data_available;
 
-       /**
-       Emitted when there is no more data to be read.
-       */
+       /** Emitted when there is no more data to be read. */
        sigc::signal<void> signal_end_of_file;
 
-       /**
-       Emitted when there is a nonlinearity in I/O (such as a file being seeked)
-       and any data buffered by upper layers needs to be flushed.
-       */
+       /** Emitted when there is a nonlinearity in I/O (such as a file being
+       seeked) and any data buffered by upper layers needs to be flushed. */
        sigc::signal<void> signal_flush_required;
 
-       /**
-       Emitted when the I/O object has closed.
-       */
+       /** Emitted when the I/O object has closed. */
        sigc::signal<void> signal_closed;
 
-       /**
-       Emitted when the mask of interesting events changes.  Mainly for use by
-       EventDispatcher.
-       */
+       /** Emitted when the mask of interesting events changes.  Mainly for use by
+       EventDispatcher. */
        sigc::signal<void, PollEvent> signal_events_changed;
 
-       /**
-       Emitted when the object is deleted.  Mainly for use by EventDispatcher.
-       */
+       /** Emitted when the object is deleted.  Mainly for use by
+       EventDispatcher. */
        sigc::signal<void> signal_deleted;
 
-       /**
-       Sets blocking mode.  When blocking is enabled, most operations won't return
-       until they can make progress.  When blocking is disabled, these operations
-       may return immediately with a return code indicating that nothing was done.
+protected:
+       Mode mode;
+       PollEvent events;
+       bool eof_flag;
+
+       Base();
+private:
+       Base(const Base &);
+       Base &operator=(const Base &);
+public:
+       virtual ~Base();
+
+       /** Sets blocking mode.  When blocking is enabled, most operations won't
+       return until they can make progress.  When blocking is disabled, these
+       operations may return immediately with a return code indicating that nothing
+       was done.
 
-       Blocking is enabled by default.
-       */
+       Blocking is enabled by default. */
        virtual void set_block(bool) { }
 
-       /**
-       Returns the current mode flags.
-       */
+       /** Returns the current mode flags. */
        Mode get_mode() const { return mode; }
 
-       /**
-       Writes data from a buffer.  Subject to blocking.
-
-       @param   b  Buffer to write from
-       @param   c  Number of bytes to write
+protected:
+       virtual unsigned do_write(const char *, unsigned) =0;
+       virtual unsigned do_read(char *, unsigned) =0;
 
-       @return  Number of bytes written
-       */
+public:
+       /** Writes data from a buffer.  Subject to blocking.  Returns the number of
+       bytes written, which may be zero for a non-blockin operation. */
        unsigned write(const char *b, unsigned c) { return do_write(b, c); }
 
-       /**
-       Writes a string.  This is identical to calling write(s.data(), s.size()).
-       */
+       /** Writes a string.  This is identical to calling
+       write(s.data(), s.size()). */
        unsigned write(const std::string &s) { return do_write(s.data(), s.size()); }
 
-       /**
-       Writes a single character.  This is identical to calling write(&c, 1).
-       */
+       /** Writes a single character.  This is identical to calling
+       write(&c, 1). */
        virtual unsigned put(char c) { return do_write(&c, 1); }
 
-       /**
-       Reads data into a buffer.  Subject to blocking.
-
-       @param   b  Buffer to read into
-       @param   c  Maximum number of bytes to read
-
-       @return  Number of bytes read
-       */
+       /** Reads data into a buffer.  Subject to blocking.  Returns the number of
+       bytes read, which may be zero for a non-blocking operation. */
        unsigned read(char *b, unsigned c) { return do_read(b, c); }
 
-       /**
-       Reads characters up to the next linefeed or end-of-file.  The linefeed is not
-       included in the line.
-
-       @param   line  String to put the characters into
-
-       @return  Whether anything was read
-       */
+       /** Reads characters up to the next linefeed or end-of-file.  The linefeed
+       is not included in the line.  Returns true if a line was successfully read,
+       false otherwise. */
        virtual bool getline(std::string &);
 
-       /**
-       Reads a single character.
-
-       @return  A character, or -1 if none were available
-       */
+       /** Reads a single character.  Returns -1 if no character was available due
+       to end-of-file or non-blocking operation. */
        virtual int get();
 
-       /**
-       Returns the end-of-file flag.
-       */
+       /** Returns the end-of-file flag. */
        bool eof() const { return eof_flag; }
 
-       /**
-       Returns a mask of the currently interesting events.  Used by EventDispatcher.
-       */
+protected:
+       void set_events(PollEvent);
+
+public:
+       /** Returns a mask of the currently interesting events.  Used by
+       EventDispatcher. */
        PollEvent get_events() const { return events; }
 
-       /**
-       Returns a handle for polling.  Should throw if the object does not have an
-       event handle.
-       */
+       /** Returns a handle for polling.  Should throw if the object does not have
+       an event handle. */
        virtual Handle get_event_handle() =0;
 
-       /**
-       Notifies the object of an event.  Used by EventDispatcher.
-       */
+       /** Notifies the object of an event.  Used by EventDispatcher. */
        void event(PollEvent);
 
-       virtual ~Base();
 protected:
-       Mode mode;
-       PollEvent events;
-       bool eof_flag;
-
-       Base();
-       void             set_events(PollEvent);
-       virtual void     on_event(PollEvent) { }
-       virtual unsigned do_write(const char *, unsigned) =0;
-       virtual unsigned do_read(char *, unsigned) =0;
-private:
-       Base(const Base &);
-       Base &operator=(const Base &);
+       virtual void on_event(PollEvent) { }
 };
 
 } // namespace IO