DBA Data[Home] [Help]

PACKAGE BODY: APPS.XNP_PIPE

Source


1 PACKAGE BODY xnp_pipe AS
2 /* $Header: XNPPIPEB.pls 120.2 2006/02/13 07:53:51 dputhiye ship $ */
3 
4 /* Reads from the specified pipe */
5 
6 procedure read( p_pipe_name in varchar2
7 	,x_msg_text OUT NOCOPY varchar2
8 	,x_error_code OUT NOCOPY number
9 	,x_error_message OUT NOCOPY varchar2,
10 	p_timeout in number default 0 )
11 
12 is
13 	l_msg_status  number ;
14 
15 begin
16 
17 	x_error_code := 0 ;
18 	x_error_message := 'No Errors' ;
19 
20 	l_msg_status := dbms_pipe.receive_message(p_pipe_name, p_timeout) ;
21 
22 	if (l_msg_status = 0) then
23 		dbms_pipe.unpack_message(x_msg_text) ;
24 	elsif (l_msg_status = 1) then
25 		x_error_code := xnp_errors.g_no_msg_in_pipe ;
26 		x_error_message := 'No message in pipe - timedout' ;
27 		--We donot use this message for anything - fnd_message.get is a DB call!!
28 		--fnd_message.set_name('XNP','NO_MSG_IN_PIPE') ;
29 		--fnd_message.set_token('NAME',p_pipe_name) ;
30 		--fnd_message.set_token('TIMEOUT',TO_CHAR(p_timeout)) ;
31 		--x_error_message := fnd_message.get;
32 	else
33 		x_error_code := sqlcode ;
34 		x_error_message := sqlerrm ;
35 	end if ;
36 
37 	exception
38 		when others then
39 			x_error_code := sqlcode ;
40 			x_error_message := sqlerrm ;
41 
42 end read ;
43 
44 
45 /* Writes to the specified pipe */
46 
47 procedure write( p_pipe_name in varchar2
48 	,P_MSG_TEXT IN VARCHAR2
49 	,x_error_code OUT NOCOPY number
50 	,x_error_message OUT NOCOPY varchar2
51 	,p_timeout in number default 0 )
52 IS
53 
54 	l_status number ;
55 
56 begin
57 
58 	x_error_code := 0 ;
59 	x_error_message := 'No Errors' ;
60 
61 	dbms_pipe.purge(p_pipe_name) ;
62 
63 	dbms_pipe.pack_message(p_msg_text) ;
64 
65 	l_status := dbms_pipe.send_message(p_pipe_name, p_timeout) ;
66 
67 	if (l_status <> 0) then
68 		x_error_code := xnp_errors.g_pipe_write_failure ;
69 		x_error_message := 'Failed to write to the specified pipe';
70 	end if ;
71 
72 	exception
73 		when others then
74 			x_error_code := sqlcode ;
75 			x_error_message := sqlerrm ;
76 
77 end write ;
78 
79 end xnp_pipe ;