gebr-comm-protocol

gebr-comm-protocol

Functions

Types and Values

Description

Functions

gebr_comm_protocol_reset ()

void
gebr_comm_protocol_reset (struct gebr_comm_protocol *protocol);

gebr_comm_message_free ()

void
gebr_comm_message_free (struct gebr_comm_message *message);

gebr_comm_protocol_get_version ()

const gchar *
gebr_comm_protocol_get_version (void);

gebr_comm_protocol_path_enum_to_str ()

const gchar *
gebr_comm_protocol_path_enum_to_str (gint option);

gebr_comm_protocol_path_str_to_enum ()

gint
gebr_comm_protocol_path_str_to_enum (const gchar *option);

Types and Values

struct gebr_comm_message_def

struct gebr_comm_message_def {
	guint		code_hash;
	const gchar * code;
	gboolean returns; // does this message send return (RET) command?
	gint		arg_number;
};

enum GebrCommProtocolStatusPath

Members

GEBR_COMM_PROTOCOL_STATUS_PATH_OK

   

GEBR_COMM_PROTOCOL_STATUS_PATH_EXISTS

   

GEBR_COMM_PROTOCOL_STATUS_PATH_ERROR

   

struct gebr_comm_protocol_defs

struct gebr_comm_protocol_defs {
	GHashTable *hash_table;
	GHashTable *code_hash_table;

	/* messages identifiers hashes */
	struct gebr_comm_message_def ret_def;
	struct gebr_comm_message_def ini_def;
	struct gebr_comm_message_def err_def;
	struct gebr_comm_message_def qut_def;
	struct gebr_comm_message_def lst_def;
	struct gebr_comm_message_def rnq_def;
	struct gebr_comm_message_def flw_def;
	struct gebr_comm_message_def clr_def;
	struct gebr_comm_message_def end_def;
	struct gebr_comm_message_def kil_def;
	struct gebr_comm_message_def out_def;
	struct gebr_comm_message_def sta_def;

	struct gebr_comm_message_def gid_def;   // Gebr id              Maestro -> Daemon

	struct gebr_comm_message_def cfrm_def;
	struct gebr_comm_message_def path_def;
	struct gebr_comm_message_def home_def;
	struct gebr_comm_message_def mpi_def;
	struct gebr_comm_message_def nfsid_def;

	struct gebr_comm_message_def prt_def;   // Maestro port         Maestro -> GeBR

	struct gebr_comm_message_def ac_def;    // Autoconnect option of the daemons
	struct gebr_comm_message_def agrp_def;  // Add group on GeBR
	struct gebr_comm_message_def dgrp_def;  // Delete group on GeBR

	struct gebr_comm_message_def run_def;   // Run request          Maestro -> Daemon
	struct gebr_comm_message_def tsk_def;   // Task definition      Daemon  -> Maestro

	struct gebr_comm_message_def jcl_def;   // Job Close 		Maestro -> GeBR
	struct gebr_comm_message_def job_def;   // Job definition       Maestro -> GeBR
	struct gebr_comm_message_def ssta_def;  // Server status change Maestro -> GeBR
	struct gebr_comm_message_def srm_def;   // Server remove Maestro -> GeBR
	struct gebr_comm_message_def cmd_def;   // Command line         Maestro -> GeBR
	struct gebr_comm_message_def iss_def;   // Issues               Maestro -> GeBR

	struct gebr_comm_message_def qst_def;   // Question request     Maestro -> GeBR
	struct gebr_comm_message_def pss_def;   // Password request     Maestro -> GeBR

	struct gebr_comm_message_def harakiri_def;// Asks daemon to die Maestro -> Daemon
	struct gebr_comm_message_def dsp_def;   // Display info         Gebr    -> Maestro & Maestro -> Daemon
	struct gebr_comm_message_def sftp_def;
};

struct gebr_comm_message

struct gebr_comm_message {
	guint hash;
	guint ret_hash;
	gsize argument_size;
	GString *argument;
};

struct gebr_comm_protocol

struct gebr_comm_protocol {
	/* the data being received is forming message(s) */
	GString *data;
	struct gebr_comm_message *message;
	/* received messages to be parsed */
	GList *messages;
	/* logged in with INI and RET? */
	gboolean logged;
	/* if we are logged, we received a host name from the peer */
	GString *hostname;
};