Last sync 2016.04.01
[deliverable/titan.core.git] / regression_test / XML / XmlWorkflow / PIPEasp_CNL113334 / src / PIPEasp_PT.hh
1 /*******************************************************************************
2 * Copyright (c) 2000-2016 Ericsson Telecom AB
3 * All rights reserved. This program and the accompanying materials
4 * are made available under the terms of the Eclipse Public License v1.0
5 * which accompanies this distribution, and is available at
6 * http://www.eclipse.org/legal/epl-v10.html
7 *
8 * Contributors:
9 * Zoltan Janos Szabo (Ericsson) - initial architecture design and implementation
10 * Roland Gecse (Ericsson) - initial architecture design
11 * Akos Cserveni (Ericsson) - Basic AST in compiler, semantic checking
12 * Gabor Szalai (Ericsson) – RAW and TEXT codecs
13 * Matyas Forstner (Ericsson) - ASN.1 extension of the compiler and BER/CER/DER codecs
14 * Kristof Szabados (Ericsson) - Eclipse Designer, Executor, Titanium UIs
15 * Szabolcs Beres (Ericsson) - Eclipse LogViewer
16 * Ferenc Kovacs (Ericsson) – log interfaces, big number support, subtype checking
17 * Csaba Raduly (Ericsson) – ASN.1 additions, XML encoder/decoder
18 * Adam Delic (Ericsson) – template restrictions, try&catch, support of pre-processor directives in Eclipse
19 * Krisztian Pandi (Ericsson) – import of imports
20 * Peter Dimitrov (Ericsson)- maintenance
21 * Balazs Andor Zalanyi (Ericsson) – code splitting
22 * Gabor Szalai (Ericsson) – RAW encoding/decoding
23 * Jeno Attila Balasko (Ericsson) – tests
24 * Csaba Feher (Ericsson) – epoll support
25 * Tamas Buti (Ericsson)- maintenance
26 * Matyas Ormandi (Ericsson) - maintenance
27 * Botond Baranyi (Ericsson) - JSON encoder
28 * Arpad Lovassy (Ericsson) - Java Executor API
29 * Laszlo Baji (Ericsson) - maintenance
30 * Marton Godar (Ericsson) - xsd2ttcn converter
31 *******************************************************************************/
32 //
33 // File: PIPEasp_PT.hh
34 // Description: Header file of PIPE testport implementation
35 // Rev: <RnXnn>
36 // Prodnr: CNL 113 334
37 // Updated: 2008-06-03
38 // Contact: http://ttcn.ericsson.se
39 //
40
41
42 #ifndef PIPEasp__PT_HH
43 #define PIPEasp__PT_HH
44
45 #include "PIPEasp_PortType.hh"
46
47 namespace PIPEasp__PortType {
48
49 class PIPEasp__PT : public PIPEasp__PT_BASE {
50 public:
51 PIPEasp__PT(const char *par_port_name = NULL);
52 ~PIPEasp__PT();
53
54 void set_parameter(const char *parameter_name,
55 const char *parameter_value);
56
57 void Event_Handler(const fd_set *read_fds,
58 const fd_set *write_fds, const fd_set *error_fds,
59 double time_since_last_call);
60
61 protected:
62 void user_map(const char *system_port);
63 void user_unmap(const char *system_port);
64
65 void user_start();
66 void user_stop();
67
68 void outgoing_send(const PIPEasp__Types::ASP__PExecute& send_par);
69 void outgoing_send(const PIPEasp__Types::ASP__PExecuteBinary& send_par);
70 void outgoing_send(const PIPEasp__Types::ASP__PExecuteBackground& send_par);
71 void outgoing_send(const PIPEasp__Types::ASP__PStdin& send_par);
72 void outgoing_send(const PIPEasp__Types::ASP__PStdinBinary& send_par);
73 void outgoing_send(const PIPEasp__Types::ASP__PKill& send_par);
74 void outgoing_send(const PIPEasp__Types::ASP__PLineMode& send_par);
75 void outgoing_send(const PIPEasp__Types::ASP__PEndOfInput& send_par);
76 private:
77 int execCommand(const char* command);
78 void handle_childDeath();
79 void sendStdout();
80 void sendStderr();
81 void sendExitCode();
82 void sendResult();
83 void sendError(const char* error_msg);
84 void log(const char *fmt, ...);
85
86 private:
87 bool lineMode; // true if lineMode is enabled
88 bool processExecuting; // true if process is executing: disable new processes
89 bool binaryMode; // true if result should be returned in as binary data
90 bool disableSend; // if true sendStdout/err is disabled
91
92 fd_set readfds; // fd set for event handler
93 int processPid; // pid of the process currently executing
94 int processStdin; // fd of stdin of the process
95 int processStdout; // fd of stdout of the process
96 int processStderr; // fd of stderr of the process
97
98 TTCN_Buffer stdout_buffer; // data sent to stdout
99 TTCN_Buffer stderr_buffer; // data sent to stderr
100 int processExitCode; // exit code of the process
101
102 };
103
104 }//namespace
105
106 #endif
This page took 0.033427 seconds and 5 git commands to generate.