2002-10-11 07:41:19 -05:00
|
|
|
/*************************************************************************
|
|
|
|
*
|
2005-09-08 18:23:36 -05:00
|
|
|
* OpenOffice.org - a multi-platform office productivity suite
|
2002-10-11 07:41:19 -05:00
|
|
|
*
|
2005-09-08 18:23:36 -05:00
|
|
|
* $RCSfile: joburl.hxx,v $
|
2002-10-11 07:41:19 -05:00
|
|
|
*
|
2005-09-08 18:23:36 -05:00
|
|
|
* $Revision: 1.3 $
|
2002-10-11 07:41:19 -05:00
|
|
|
*
|
2005-09-08 18:23:36 -05:00
|
|
|
* last change: $Author: rt $ $Date: 2005-09-09 00:23:36 $
|
2002-10-11 07:41:19 -05:00
|
|
|
*
|
2005-09-08 18:23:36 -05:00
|
|
|
* The Contents of this file are made available subject to
|
|
|
|
* the terms of GNU Lesser General Public License Version 2.1.
|
2002-10-11 07:41:19 -05:00
|
|
|
*
|
|
|
|
*
|
2005-09-08 18:23:36 -05:00
|
|
|
* GNU Lesser General Public License Version 2.1
|
|
|
|
* =============================================
|
|
|
|
* Copyright 2005 by Sun Microsystems, Inc.
|
|
|
|
* 901 San Antonio Road, Palo Alto, CA 94303, USA
|
2002-10-11 07:41:19 -05:00
|
|
|
*
|
2005-09-08 18:23:36 -05:00
|
|
|
* This library is free software; you can redistribute it and/or
|
|
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
|
|
* License version 2.1, as published by the Free Software Foundation.
|
2002-10-11 07:41:19 -05:00
|
|
|
*
|
2005-09-08 18:23:36 -05:00
|
|
|
* This library 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.
|
2002-10-11 07:41:19 -05:00
|
|
|
*
|
2005-09-08 18:23:36 -05:00
|
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
|
|
* License along with this library; if not, write to the Free Software
|
|
|
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
|
|
|
* MA 02111-1307 USA
|
2002-10-11 07:41:19 -05:00
|
|
|
*
|
|
|
|
************************************************************************/
|
|
|
|
|
|
|
|
#ifndef __FRAMEWORK_JOBS_JOBURL_HXX_
|
|
|
|
#define __FRAMEWORK_JOBS_JOBURL_HXX_
|
|
|
|
|
|
|
|
//_______________________________________
|
|
|
|
// my own includes
|
|
|
|
|
|
|
|
#ifndef __FRAMEWORK_THREADHELP_THREADHELPBASE_HXX_
|
|
|
|
#include <threadhelp/threadhelpbase.hxx>
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef __FRAMEWORK_MACROS_DEBUG_HXX_
|
|
|
|
#include <macros/debug.hxx>
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef __FRAMEWORK_STDTYPES_H_
|
|
|
|
#include <stdtypes.h>
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef __FRAMEWORK_GENERAL_H_
|
|
|
|
#include <general.h>
|
|
|
|
#endif
|
|
|
|
|
|
|
|
//_______________________________________
|
|
|
|
// interface includes
|
|
|
|
|
|
|
|
//_______________________________________
|
|
|
|
// other includes
|
|
|
|
|
|
|
|
#ifndef _RTL_USTRING_HXX_
|
|
|
|
#include <rtl/ustring.hxx>
|
|
|
|
#endif
|
|
|
|
|
|
|
|
//_______________________________________
|
|
|
|
// namespace
|
|
|
|
|
|
|
|
namespace framework{
|
|
|
|
|
|
|
|
//_______________________________________
|
|
|
|
// const
|
|
|
|
|
|
|
|
#define JOBURL_PROTOCOL_STR "vnd.sun.star.job:"
|
|
|
|
#define JOBURL_PROTOCOL_LEN 17
|
|
|
|
|
|
|
|
#define JOBURL_EVENT_STR "event="
|
|
|
|
#define JOBURL_EVENT_LEN 6
|
|
|
|
|
|
|
|
#define JOBURL_ALIAS_STR "alias="
|
|
|
|
#define JOBURL_ALIAS_LEN 6
|
|
|
|
|
|
|
|
#define JOBURL_SERVICE_STR "service="
|
|
|
|
#define JOBURL_SERVICE_LEN 8
|
|
|
|
|
2003-03-25 11:22:13 -06:00
|
|
|
#define JOBURL_PART_SEPERATOR ';'
|
|
|
|
#define JOBURL_PARTARGS_SEPERATOR ','
|
2002-10-11 07:41:19 -05:00
|
|
|
|
|
|
|
//_______________________________________
|
|
|
|
/**
|
|
|
|
@short can be used to parse, validate and work with job URL's
|
|
|
|
@descr Job URLs are specified by the following syntax:
|
|
|
|
vnd.sun.star.job:{[event=<name>]|[alias=<name>]|[service=<name>]}
|
|
|
|
This class can analyze this structure and seperate it into his different parts.
|
|
|
|
After doing that these parts are accessible by the methods of this class.
|
|
|
|
*/
|
|
|
|
class JobURL : private ThreadHelpBase
|
|
|
|
{
|
|
|
|
//___________________________________
|
|
|
|
// types
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
|
|
|
/**
|
|
|
|
possible states of a job URL
|
|
|
|
Note: These values are used in combination. So they must be
|
|
|
|
values in form 2^n.
|
|
|
|
*/
|
|
|
|
enum ERequest
|
|
|
|
{
|
|
|
|
/// mark a job URL as not valid
|
|
|
|
E_UNKNOWN = 0,
|
|
|
|
/// it's an event
|
|
|
|
E_EVENT = 1,
|
|
|
|
/// it's an alias
|
|
|
|
E_ALIAS = 2,
|
|
|
|
/// it's a service
|
|
|
|
E_SERVICE = 4
|
|
|
|
};
|
|
|
|
|
|
|
|
//___________________________________
|
|
|
|
// types
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
|
|
|
/** knows the state of this URL instance */
|
|
|
|
sal_uInt32 m_eRequest;
|
|
|
|
|
|
|
|
/** holds the event part of a job URL */
|
|
|
|
::rtl::OUString m_sEvent;
|
|
|
|
|
|
|
|
/** holds the alias part of a job URL */
|
|
|
|
::rtl::OUString m_sAlias;
|
|
|
|
|
|
|
|
/** holds the service part of a job URL */
|
|
|
|
::rtl::OUString m_sService;
|
|
|
|
|
2003-03-25 11:22:13 -06:00
|
|
|
/** holds the event arguments */
|
|
|
|
::rtl::OUString m_sEventArgs;
|
|
|
|
|
|
|
|
/** holds the alias arguments */
|
|
|
|
::rtl::OUString m_sAliasArgs;
|
|
|
|
|
|
|
|
/** holds the service arguments */
|
|
|
|
::rtl::OUString m_sServiceArgs;
|
|
|
|
|
2002-10-11 07:41:19 -05:00
|
|
|
//___________________________________
|
2003-03-25 11:22:13 -06:00
|
|
|
// native interface
|
2002-10-11 07:41:19 -05:00
|
|
|
|
|
|
|
public:
|
|
|
|
|
2003-03-25 11:22:13 -06:00
|
|
|
JobURL ( const ::rtl::OUString& sURL );
|
|
|
|
sal_Bool isValid ( ) const;
|
|
|
|
sal_Bool getEvent ( ::rtl::OUString& sEvent ) const;
|
|
|
|
sal_Bool getAlias ( ::rtl::OUString& sAlias ) const;
|
|
|
|
sal_Bool getService ( ::rtl::OUString& sService ) const;
|
|
|
|
sal_Bool getEventArgs ( ::rtl::OUString& sEventArgs ) const;
|
|
|
|
sal_Bool getAliasArgs ( ::rtl::OUString& sAliasArgs ) const;
|
|
|
|
sal_Bool getServiceArgs( ::rtl::OUString& sServiceArgs ) const;
|
|
|
|
|
|
|
|
//___________________________________
|
|
|
|
// private helper
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
|
|
|
static sal_Bool implst_split( const ::rtl::OUString& sPart ,
|
|
|
|
const sal_Char* pPartIdentifier ,
|
|
|
|
sal_Int32 nPartLength ,
|
|
|
|
::rtl::OUString& rPartValue ,
|
|
|
|
::rtl::OUString& rPartArguments );
|
2002-10-11 07:41:19 -05:00
|
|
|
|
|
|
|
//___________________________________
|
|
|
|
// debug methods!
|
|
|
|
|
|
|
|
#ifdef ENABLE_COMPONENT_SELF_CHECK
|
|
|
|
|
|
|
|
public:
|
|
|
|
static void impldbg_checkIt();
|
|
|
|
|
|
|
|
private:
|
2003-03-25 11:22:13 -06:00
|
|
|
static void impldbg_checkURL( const sal_Char* pURL ,
|
|
|
|
sal_uInt32 eExpectedPart ,
|
|
|
|
const sal_Char* pExpectedEvent ,
|
|
|
|
const sal_Char* pExpectedAlias ,
|
|
|
|
const sal_Char* pExpectedService ,
|
|
|
|
const sal_Char* pExpectedEventArgs ,
|
|
|
|
const sal_Char* pExpectedAliasArgs ,
|
|
|
|
const sal_Char* pExpectedServiceArgs );
|
2002-10-11 07:41:19 -05:00
|
|
|
::rtl::OUString impldbg_toString() const;
|
|
|
|
|
|
|
|
#endif // ENABLE_COMPONENT_SELF_CHECK
|
|
|
|
};
|
|
|
|
|
|
|
|
} // namespace framework
|
|
|
|
|
|
|
|
#endif // __FRAMEWORK_JOBS_JOBURL_HXX_
|