Files @ 66a0bab210f1
Branch filter:

Location: DistRen/src/common/libremoteio.h - annotation

LordOfWar
created mortition(), compares frames the server has to the frames that are done, and will change the status of any needed frames to \"unassigned\"

went around fixing random warnings, most due to parameters of (**meh) and so I changed the calling functions to (&pointer) which I think was how it supposed to work but I don't know...
/*
  Copyright 2009 Nathan Phillip Brink

  This file is a part of DistRen.

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

  DistRen 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 Affero General Public License for more details.

  You should have received a copy of the GNU Affero General Public License
  along with DistRen.  If not, see <http://www.gnu.org/licenses/>.
*/

#ifndef _DISTREN_LIBREMOTEIO_H
#define _DISTREN_LIBREMOTEIO_H

#include "remoteio.h"
#include <confuse.h>

/**
  private declarations for remoteio, to be included by options.c and remoteio.c
 */

enum remoteio_method
  {
    REMOTEIO_METHOD_SSH = 0,
    /*    REMOTEIO_METHOD_TCP */ /*< someday, maybe */
    /*    REMOETIO_METHOD_XMLRPC */ /*< again, maybe someday */
    REMOTEIO_METHOD_MAX = 1 /*< This is a number used to check the consitency of remoteio_server structs */
  };

struct remoteio_server
{
  struct remoteio_server *next;
  char *name; /*< The friendly named passed to remoteio_open() */
  char *hostname;
  char *username;
  enum remoteio_method method;
  unsigned int types; /*< See ``Server types'' in protocol.h */
};

struct remoteio_opts
{
  char *ssh_command;
  struct remoteio_server *servers;
};

struct remoteio {
  enum remoteio_method method;
  struct remoteio_opts *opts;
  struct execio *execio;
};


/* lookup table */
typedef int remoteio_open_func_t(struct remoteio *rem, struct remoteio_server *server);
typedef int remoteio_read_func_t(struct remoteio *rem, void *buf, size_t len, size_t *bytesread);
typedef int remoteio_write_func_t(struct remoteio *rem, void *buf, size_t len, size_t *bytesread);
typedef int remoteio_close_func_t(struct remoteio *rem);

struct remoteio_method_funcmap
{
  remoteio_open_func_t *open_func;
  remoteio_read_func_t *read_func;
  remoteio_write_func_t *write_func;
  remoteio_close_func_t *close_func;

  char *name; /*< used for error messages */
};

int remoteio_config(cfg_t *cfg, struct remoteio_opts *opts);

#endif