source: trunk/icedtea-web/plugin/icedteanp/IcedTeaRunnable.h@ 360

Last change on this file since 360 was 348, checked in by dmik, 13 years ago

vendor: Add icedtea-web v1.1.2 to current.

File size: 2.8 KB
Line 
1/* IcedTeaRunnable.h
2
3 Copyright (C) 2009, 2010 Red Hat
4
5This file is part of IcedTea.
6
7IcedTea is free software; you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation; either version 2, or (at your option)
10any later version.
11
12IcedTea is distributed in the hope that it will be useful, but
13WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with IcedTea; see the file COPYING. If not, write to the
19Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
2002110-1301 USA.
21
22Linking this library statically or dynamically with other modules is
23making a combined work based on this library. Thus, the terms and
24conditions of the GNU General Public License cover the whole
25combination.
26
27As a special exception, the copyright holders of this library give you
28permission to link this library with independent modules to produce an
29executable, regardless of the license terms of these independent
30modules, and to copy and distribute the resulting executable under
31terms of your choice, provided that you also meet, for each linked
32independent module, the terms and conditions of the license of that
33module. An independent module is a module which is not derived from
34or based on this library. If you modify this library, you may extend
35this exception to your version of the library, but you are not
36obligated to do so. If you do not wish to do so, delete this
37exception statement from your version. */
38
39#ifndef __ICEDTEARUNNABLE_H__
40#define __ICEDTEARUNNABLE_H__
41
42#define MOZILLA 1
43#if MOZILLA
44
45#if MOZILLA_VERSION_COLLAPSED < 1090100
46#include <nsIRunnable.h>
47#include <string>
48#endif
49
50/*
51 * This struct holds the result from the main-thread dispatched method
52 */
53typedef struct result_data
54{
55 // Return identifier (if applicable)
56 int return_identifier;
57
58 // Return string (if applicable)
59 std::string* return_string;
60
61 // Return wide/mb string (if applicable)
62 std::wstring* return_wstring;
63
64 // Error message (if an error occurred)
65 std::string* error_msg;
66
67 // Boolean indicating if an error occurred
68 bool error_occured;
69
70 // If this result is ready
71 bool result_ready;
72
73} ResultData;
74
75class IcedTeaRunnable : public nsIRunnable
76{
77public:
78 NS_DECL_ISUPPORTS
79 NS_DECL_NSIRUNNABLE
80
81 IcedTeaRunnable ();
82
83 ~IcedTeaRunnable ();
84};
85
86class IcedTeaRunnableMethod : public IcedTeaRunnable
87{
88public:
89
90 typedef void* (*Method) (void*, void*);
91
92 IcedTeaRunnableMethod (Method, void* thread_data, void* result);
93 NS_IMETHOD Run ();
94
95 ~IcedTeaRunnableMethod ();
96
97 Method method;
98 void* thread_data;
99 void* result;
100};
101
102#endif /* MOZILLA */
103
104#endif /* __ICEDTEARUNNABLE_H__ */
Note: See TracBrowser for help on using the repository browser.