Line data Source code
1 : /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
2 : * vim:expandtab:shiftwidth=2:tabstop=2:cin:
3 : * This Source Code Form is subject to the terms of the Mozilla Public
4 : * License, v. 2.0. If a copy of the MPL was not distributed with this
5 : * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
6 :
7 : #ifndef __nsLocalHandlerAppImpl_h__
8 : #define __nsLocalHandlerAppImpl_h__
9 :
10 : #include "nsString.h"
11 : #include "nsIMIMEInfo.h"
12 : #include "nsIFile.h"
13 : #include "nsTArray.h"
14 :
15 : class nsLocalHandlerApp : public nsILocalHandlerApp
16 : {
17 : public:
18 : NS_DECL_ISUPPORTS
19 : NS_DECL_NSIHANDLERAPP
20 : NS_DECL_NSILOCALHANDLERAPP
21 :
22 0 : nsLocalHandlerApp() { }
23 :
24 : nsLocalHandlerApp(const char16_t *aName, nsIFile *aExecutable)
25 : : mName(aName), mExecutable(aExecutable) { }
26 :
27 0 : nsLocalHandlerApp(const nsAString & aName, nsIFile *aExecutable)
28 0 : : mName(aName), mExecutable(aExecutable) { }
29 :
30 : protected:
31 0 : virtual ~nsLocalHandlerApp() { }
32 :
33 : nsString mName;
34 : nsString mDetailedDescription;
35 : nsTArray<nsString> mParameters;
36 : nsCOMPtr<nsIFile> mExecutable;
37 :
38 : /**
39 : * Launches this application with a single argument (typically either
40 : * a file path or a URI spec). This is meant as a helper method for
41 : * implementations of (e.g.) LaunchWithURI.
42 : *
43 : * @param aApp The application to launch (may not be null)
44 : * @param aArg The argument to pass on the command line
45 : */
46 : nsresult LaunchWithIProcess(const nsCString &aArg);
47 : };
48 :
49 : // any platforms that need a platform-specific class instead of just
50 : // using nsLocalHandlerApp need to add an include and a typedef here.
51 : #ifdef XP_MACOSX
52 : # ifndef NSLOCALHANDLERAPPMAC_H_
53 : # include "mac/nsLocalHandlerAppMac.h"
54 : typedef nsLocalHandlerAppMac PlatformLocalHandlerApp_t;
55 : # endif
56 : #else
57 : typedef nsLocalHandlerApp PlatformLocalHandlerApp_t;
58 : #endif
59 :
60 : #endif // __nsLocalHandlerAppImpl_h__
|