/* TN5250 - An implementation of the 5250 telnet protocol.
* Copyright (C) 1997 Michael Madore
*
* This file is part of TN5250.
*
* TN5250 is free software; you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation; either version 2.1, or (at your option)
* any later version.
*
* TN5250 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 Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this software; see the file COPYING. If not, write to
* the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
* Boston, MA 02111-1307 USA
*
*/
#ifndef PRINTSESSION_H
#define PRINTSESSION_H
#ifdef __cplusplus
extern "C" {
#endif
/****s* lib5250/Tn5250PrintSession
* NAME
* Tn5250PrintSession
* SYNOPSIS
* Tn5250PrintSession *ps = tn5250_print_session_new ();
* tn5250_print_session_set_stream(ps,stream);
* tn5250_print_session_set_output_command(ps,"scs2ascii | lpr");
* tn5250_print_session_main_loop(ps);
* tn5250_print_session_destroy(ps);
* DESCRIPTION
* Manages a 5250e printer session and parses the data records.
*****/
struct _Tn5250PrintSession {
Tn5250Stream /*@null@*/ /*@owned@*/ *stream;
Tn5250Record /*@owned@*/ *rec;
int conn_fd;
FILE /*@null@*/ *printfile;
Tn5250CharMap *map;
char /*@null@*/ *output_cmd;
void *script_slot;
};
typedef struct _Tn5250PrintSession Tn5250PrintSession;
extern Tn5250PrintSession /*@only@*/ /*@null@*/ *tn5250_print_session_new();
extern void tn5250_print_session_destroy(Tn5250PrintSession /*@only@*/ * This);
extern void tn5250_print_session_set_fd(Tn5250PrintSession * This, SOCKET_TYPE fd);
extern int tn5250_print_session_get_response_code(Tn5250PrintSession * This, char /*@out@*/ *code);
extern void tn5250_print_session_set_stream(Tn5250PrintSession * This, Tn5250Stream /*@owned@*/ * s);
extern void tn5250_print_session_set_output_command(Tn5250PrintSession * This, const char *output_cmd);
extern void tn5250_print_session_set_char_map(Tn5250PrintSession * This, const char *map);
extern void tn5250_print_session_main_loop(Tn5250PrintSession * This);
#define tn5250_print_session_stream(This) ((This)->stream)
#ifdef __cplusplus
}
#endif
#endif /* PRINTSESSION_H */
/* vi:set cindent sts=3 sw=3: */
syntax highlighted by Code2HTML, v. 0.9.1