summaryrefslogtreecommitdiff
path: root/server-tools/instance-manager/buffer.h
diff options
context:
space:
mode:
authorunknown <petr@mysql.com>2005-02-11 14:21:59 +0300
committerunknown <petr@mysql.com>2005-02-11 14:21:59 +0300
commitdce2554f9130920ab18e4e31432df7d6ca165ee0 (patch)
tree5a46c104b5146373b9e754ea5691cfa5ef3d2fcf /server-tools/instance-manager/buffer.h
parent79ba407d64ad4387b7b279f80a7bf95e68414df5 (diff)
downloadmariadb-git-dce2554f9130920ab18e4e31432df7d6ca165ee0.tar.gz
Post-review fixes + some bugs fixed + several minor features
BitKeeper/deleted/.del-client_func.c~3476a8a85cbd3c29: Delete: server-tools/instance-manager/client_func.c server-tools/instance-manager/Makefile.am: clien_func removed server-tools/instance-manager/buffer.cc: several methods added server-tools/instance-manager/buffer.h: Some error-handling fixes. server-tools/instance-manager/commands.cc: check for Buffer errors server-tools/instance-manager/guardian.cc: Guardian rewiriten. Not it works in a finite state machine-way. server-tools/instance-manager/guardian.h: Appropriate (to .cc) changes in the header + some comment added server-tools/instance-manager/instance.cc: added proxy thread to monitor instance. Two kinds of stop() now -- stop() and kill_instance which only sends a signal server-tools/instance-manager/instance.h: appropriate changes server-tools/instance-manager/instance_map.cc: cleanup server-tools/instance-manager/instance_map.h: cleanup server-tools/instance-manager/instance_options.cc: Caching of the pid-file-name is added. some comments added server-tools/instance-manager/instance_options.h: cleanup server-tools/instance-manager/listener.cc: listener my_thread_init added (though it doesn't use any mysys functions). Just in case server-tools/instance-manager/manager.cc: SIGCHLD handler removed. now instance monitoring is implemented through proxy threads. This is to work nicely with LinuxThreads server-tools/instance-manager/options.cc: added option to create a password file entry (this was implemented by Sergei Vojtovich) server-tools/instance-manager/parse.cc: inline function get_word moved to the header server-tools/instance-manager/parse.h: get_word moved here to use form parse_output server-tools/instance-manager/parse_output.cc: get_word() clone removed. now looking through the output linewise server-tools/instance-manager/protocol.cc: Buffer error chech added server-tools/instance-manager/user_map.cc: typo fixed
Diffstat (limited to 'server-tools/instance-manager/buffer.h')
-rw-r--r--server-tools/instance-manager/buffer.h14
1 files changed, 11 insertions, 3 deletions
diff --git a/server-tools/instance-manager/buffer.h b/server-tools/instance-manager/buffer.h
index 66860bd67b5..260a9ef92f8 100644
--- a/server-tools/instance-manager/buffer.h
+++ b/server-tools/instance-manager/buffer.h
@@ -36,11 +36,17 @@ private:
/* maximum buffer size is 16Mb */
enum { MAX_BUFFER_SIZE= 16777216 };
size_t buffer_size;
+ /* Error flag. Triggered if we get an error of some kind */
+ int error;
public:
- Buffer()
+ Buffer(size_t buffer_size_arg= BUFFER_INITIAL_SIZE)
+ :buffer_size(BUFFER_INITIAL_SIZE), error(0)
{
- buffer=(char *) malloc(BUFFER_INITIAL_SIZE);
- buffer_size= BUFFER_INITIAL_SIZE;
+ /*
+ As append() will invokes realloc() anyway, it's ok if malloc returns 0
+ */
+ if (!(buffer= (char*) malloc(buffer_size)))
+ buffer_size= 0;
}
~Buffer()
@@ -50,6 +56,8 @@ public:
public:
char *buffer;
+ int get_size();
+ int is_error();
int append(uint position, const char *string, uint len_arg);
int reserve(uint position, uint len_arg);
};