1*cdf0e10cSrcweir#!/usr/bin/perl 2*cdf0e10cSrcweir######################################################################### 3*cdf0e10cSrcweir 4*cdf0e10cSrcweir #************************************************************************* 5*cdf0e10cSrcweir # 6*cdf0e10cSrcweir# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 7*cdf0e10cSrcweir# 8*cdf0e10cSrcweir# Copyright 2000, 2010 Oracle and/or its affiliates. 9*cdf0e10cSrcweir# 10*cdf0e10cSrcweir# OpenOffice.org - a multi-platform office productivity suite 11*cdf0e10cSrcweir# 12*cdf0e10cSrcweir# This file is part of OpenOffice.org. 13*cdf0e10cSrcweir# 14*cdf0e10cSrcweir# OpenOffice.org is free software: you can redistribute it and/or modify 15*cdf0e10cSrcweir# it under the terms of the GNU Lesser General Public License version 3 16*cdf0e10cSrcweir# only, as published by the Free Software Foundation. 17*cdf0e10cSrcweir# 18*cdf0e10cSrcweir# OpenOffice.org is distributed in the hope that it will be useful, 19*cdf0e10cSrcweir# but WITHOUT ANY WARRANTY; without even the implied warranty of 20*cdf0e10cSrcweir# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 21*cdf0e10cSrcweir# GNU Lesser General Public License version 3 for more details 22*cdf0e10cSrcweir# (a copy is included in the LICENSE file that accompanied this code). 23*cdf0e10cSrcweir# 24*cdf0e10cSrcweir# You should have received a copy of the GNU Lesser General Public License 25*cdf0e10cSrcweir# version 3 along with OpenOffice.org. If not, see 26*cdf0e10cSrcweir# <http://www.openoffice.org/license.html> 27*cdf0e10cSrcweir# for a copy of the LGPLv3 License. 28*cdf0e10cSrcweir# 29*cdf0e10cSrcweir #************************************************************************* 30*cdf0e10cSrcweir 31*cdf0e10cSrcweir#################################################################### 32*cdf0e10cSrcweir# File Name: template.pl 33*cdf0e10cSrcweir# Version : 1.0 34*cdf0e10cSrcweir# Project : XMerge 35*cdf0e10cSrcweir# Author : Brian Cameron 36*cdf0e10cSrcweir# Date : 5th Sept. 2001 37*cdf0e10cSrcweir# 38*cdf0e10cSrcweir# 39*cdf0e10cSrcweir# Takes x and y from the command line and taps the screen there. 40*cdf0e10cSrcweir# Assumes pose is already running. 41*cdf0e10cSrcweir# 42*cdf0e10cSrcweir########################################################################## 43*cdf0e10cSrcweir 44*cdf0e10cSrcweiruse POSIX "sys_wait_h"; # Need this for waitpid with WNOHANG 45*cdf0e10cSrcweiruse EmRPC; # EmRPC::OpenConnection, CloseConnection 46*cdf0e10cSrcweiruse EmFunctions; 47*cdf0e10cSrcweiruse EmUtils; 48*cdf0e10cSrcweir 49*cdf0e10cSrcweirif ($#ARGV != 0) 50*cdf0e10cSrcweir{ 51*cdf0e10cSrcweir print "\nUsage: $0 timeout\n\n"; 52*cdf0e10cSrcweir exit -1; 53*cdf0e10cSrcweir} 54*cdf0e10cSrcweir 55*cdf0e10cSrcweir$timeout = $ARGV[0]; 56*cdf0e10cSrcweir 57*cdf0e10cSrcweirif (!defined($up_pid = fork())) 58*cdf0e10cSrcweir{ 59*cdf0e10cSrcweir print "ERROR, problem forking.\n" 60*cdf0e10cSrcweir} 61*cdf0e10cSrcweirelsif ($up_pid) 62*cdf0e10cSrcweir{ 63*cdf0e10cSrcweir print "\nChecking to see if pose is started properly.\n"; 64*cdf0e10cSrcweir 65*cdf0e10cSrcweir # Parent process 66*cdf0e10cSrcweir # 67*cdf0e10cSrcweir sleep($timeout); 68*cdf0e10cSrcweir 69*cdf0e10cSrcweir waitpid($up_pid, WNOHANG); 70*cdf0e10cSrcweir 71*cdf0e10cSrcweir if (kill(0, $up_pid)) 72*cdf0e10cSrcweir { 73*cdf0e10cSrcweir print "Pose did not start successfully...\n"; 74*cdf0e10cSrcweir kill(9, $up_pid); 75*cdf0e10cSrcweir exit(-1); 76*cdf0e10cSrcweir } 77*cdf0e10cSrcweir else 78*cdf0e10cSrcweir { 79*cdf0e10cSrcweir # The child process exited okay, so we know it will not 80*cdf0e10cSrcweir # hang...but the open_connection will just die if pose 81*cdf0e10cSrcweir # isn't started...so try it in the parent. 82*cdf0e10cSrcweir # 83*cdf0e10cSrcweir open_connection(); 84*cdf0e10cSrcweir close_connection(); 85*cdf0e10cSrcweir 86*cdf0e10cSrcweir print "Verified pose started successfully...\n"; 87*cdf0e10cSrcweir exit(0); 88*cdf0e10cSrcweir } 89*cdf0e10cSrcweir} 90*cdf0e10cSrcweirelse 91*cdf0e10cSrcweir{ 92*cdf0e10cSrcweir # Child process - Try to open/close the connection. This 93*cdf0e10cSrcweir # can hang if pose did not start properly... 94*cdf0e10cSrcweir # 95*cdf0e10cSrcweir open_connection(); 96*cdf0e10cSrcweir close_connection(); 97*cdf0e10cSrcweir} 98*cdf0e10cSrcweir 99*cdf0e10cSrcweirsub open_connection 100*cdf0e10cSrcweir{ 101*cdf0e10cSrcweir print "opening connection\n"; 102*cdf0e10cSrcweir EmRPC::OpenConnection(6415, "localhost"); 103*cdf0e10cSrcweir} 104*cdf0e10cSrcweir 105*cdf0e10cSrcweirsub close_connection 106*cdf0e10cSrcweir{ 107*cdf0e10cSrcweir print "closing connection\n"; 108*cdf0e10cSrcweir EmRPC::CloseConnection(); 109*cdf0e10cSrcweir} 110*cdf0e10cSrcweir 111