• unknown's avatar
    Various post-review fixes · 234ca309
    unknown authored
    server-tools/instance-manager/buffer.cc:
      simplified buffer interface
    server-tools/instance-manager/buffer.h:
      simplified buffer interface
    server-tools/instance-manager/command.cc:
      Command class now uses instance_map directly
    server-tools/instance-manager/command.h:
      Made Command to use instance_map directly (not through the factory,
      which is not needed here in fact)
    server-tools/instance-manager/commands.cc:
      Moved mysql client/server protocol-specific functions to the commands
    server-tools/instance-manager/commands.h:
      Added a comment for Syntax_error command, fixed classes to use instance
      map instead of the factory
    server-tools/instance-manager/factory.cc:
      Fixed factory to give appropriate class to the commands
    server-tools/instance-manager/guardian.cc:
      Fixed guardian to delay start of new instances monitoring.
      Moved guardian initialization to the class from Instance map.
    server-tools/instance-manager/guardian.h:
      interface fixed
    server-tools/instance-manager/instance.cc:
      added some loging
    server-tools/instance-manager/instance_map.cc:
      All non-instance map specific functions moved from the class. Added
      iterator for instance_map
    server-tools/instance-manager/instance_map.h:
      All non-instance map related functions moved from the class. Added
      iterator for instance_map.
    server-tools/instance-manager/listener.cc:
      Added FD_CLOEXEC flag to sockets, as we don't want instances to inherit
      them after exec.
    server-tools/instance-manager/manager.cc:
      use guardian method moved from the instance map
    server-tools/instance-manager/mysql_connection.cc:
      cleanup
    server-tools/instance-manager/protocol.cc:
      fix according to the changes in the Buffer class
    234ca309
buffer.h 1.62 KB
#ifndef INCLUDES_MYSQL_INSTANCE_MANAGER_BUFFER_H
#define INCLUDES_MYSQL_INSTANCE_MANAGER_BUFFER_H
/* Copyright (C) 2004 MySQL AB

   This program is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation; either version 2 of the License, or
   (at your option) any later version.

   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.

   You should have received a copy of the GNU General Public License
   along with this program; if not, write to the Free Software
   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */

#include <my_global.h>

#ifdef __GNUC__
#pragma interface
#endif

/*
  This class is a simple implementation of the buffer of varying size.
  It is used to store MySQL client-server protocol packets. This is why
  the maximum buffer size if 16Mb. (See internals manual section
  7. MySQL Client/Server Protocol)
*/

class Buffer
{
private:
  enum { BUFFER_INITIAL_SIZE= 4096 };
  /* maximum buffer size is 16Mb */
  enum { MAX_BUFFER_SIZE= 16777216 };
  size_t buffer_size;
public:
  Buffer()
  {
    buffer=(char *) malloc(BUFFER_INITIAL_SIZE);
    buffer_size= BUFFER_INITIAL_SIZE;
  }

  ~Buffer()
  {
    free(buffer);
  }

public:
  char *buffer;
  int append(uint position, const char *string, uint len_arg);
  int reserve(uint position, uint len_arg);
};

#endif /* INCLUDES_MYSQL_INSTANCE_MANAGER_BUFFER_H */