summaryrefslogtreecommitdiff
path: root/goodies/inc/chagent.hxx
blob: 3b8c2788856c8ce228e05d5873301f6d461d2f89 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
/*************************************************************************
 *
 *  OpenOffice.org - a multi-platform office productivity suite
 *
 *  $RCSfile: chagent.hxx,v $
 *
 *  $Revision: 1.2 $
 *
 *  last change: $Author: rt $ $Date: 2005-09-09 02:15:09 $
 *
 *  The Contents of this file are made available subject to
 *  the terms of GNU Lesser General Public License Version 2.1.
 *
 *
 *    GNU Lesser General Public License Version 2.1
 *    =============================================
 *    Copyright 2005 by Sun Microsystems, Inc.
 *    901 San Antonio Road, Palo Alto, CA 94303, USA
 *
 *    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.
 *
 *    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.
 *
 *    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
 *
 ************************************************************************/

#ifndef _CHAGENT_HXX
#define _CHAGENT_HXX

#ifndef _LIST_HXX //autogen
#include <tools/list.hxx>
#endif
#ifndef _URLOBJ_HXX
#include <tools/urlobj.hxx>
#endif

#include <tools/agitem.hxx>

class ChannelAgentItem;
class ChannelItem;

DECLARE_LIST(ChannelAgentItemList,ChannelAgentItem*)

enum AgentType
{
    AG_TYP_DONTKNOW =   0,
    AG_TYP_DLL      =   1,
    AG_TYP_BASIC    =   2,
    AG_TYP_JAVA     =   3
};

#define     STR_AG_TYP_DLL      "DLL"
#define     STR_AG_TYP_BASIC    "BASIC"
#define     STR_AG_TYP_JAVA     "JAVA"

class ChannelAgentItem : public AgentItem
{
    AgentType           eAgentType;
    String              aChAgentName;
    INetURLObject       aLocation;
    ULONG               nLastSuccUpdDate;
    long                nLastSuccUpdTime;
    INetURLObject       aSource;
    BOOL                bEnabled;
    DateTime            aLastCheckDate;

    // runtime
    BOOL                bIsActive;
    BOOL                bIsInUpdate;
    BOOL                bRestartAfterUpdate;

    ULONG               nChObjDate;
    long                nChObjTime;
    ChannelItem*        pActChannel;
    AgentApi*           pAgentApi;
    ChannelApi*         pChannelApi;
    INetURLObject       aSourceURL;

    Link                aBTXShutdownCallback;

protected:
    friend class ChannelApi;
    void                DeleteApis();

public:
    ChannelAgentItem();
    ~ChannelAgentItem();

    // Set / Get AgentType
    void                    SetChannelAgentType(AgentType eNew)
                            { eAgentType = eNew; }
    AgentType               GetChannelAgentType() const
                            { return eAgentType; }

    // Set / Get ChAgentName
    void                    SetChAgentName(const String& rNew)
                            { aChAgentName = rNew; }
    virtual const String&   GetChAgentName() const
                            { return aChAgentName; }

    // Set / Get Location
    void                    SetLocation(const INetURLObject& rNew)
                            { aLocation = rNew; }
    virtual const INetURLObject& GetLocation() const
                            { return aLocation; }

    // Set / Get LastSuccUpdDate
    void                    SetLastSuccUpdDate(ULONG nNew)
                            { nLastSuccUpdDate = nNew; }
    ULONG                   GetLastSuccUpdDate() const
                            { return nLastSuccUpdDate; }

    // Set / Get LastSuccUpdTime
    void                    SetLastSuccUpdTime(ULONG nNew)
                            { nLastSuccUpdTime = nNew; }
    ULONG                   GetLastSuccUpdTime() const
                            { return nLastSuccUpdTime; }

    // Set / Get LastCheckDate
    void                    SetLastCheckDate( const DateTime& rNew )
                            { aLastCheckDate = rNew; }
    const DateTime&         GetLastCheckDate()
                            { return aLastCheckDate; }

    // Set / Get Source
    void                    SetSource(const INetURLObject& rNew)
                            { aSource = rNew; }
    const INetURLObject&    GetSource() const
                            { return aSource; }

    // Set / Get Enabled
    virtual void            SetEnabled(BOOL bNew = TRUE)
                            { bEnabled = bNew; }
    virtual BOOL            IsEnabled() const
                            { return bEnabled; }

    // Set / Get IsActive
    virtual void            SetIsActive(BOOL bNew)
                            { bIsActive = bNew; }
    virtual BOOL            IsActive() const
                            { return bIsActive; }

    // runtime ////////////////////////////////////////////////////////////////

    const INetURLObject&    GetAgentSourceURL() const
                            { return aSourceURL; }
    void                    SetAgentSourceURL(const INetURLObject& rNew)
                            { aSourceURL = rNew; }

    // Set / Get ActiveChannel
    void                    SetActiveChannel(ChannelItem* pChItem)
                            { pActChannel = pChItem; }
    ChannelItem*            GetActiveChannel() const
                            { return pActChannel; }

    // Set / Get IsInUpdate
    void                    SetIsInUpdate( BOOL bNew )
                            { bIsInUpdate = bNew; }
    BOOL                    IsInUpdate() const
                            { return bIsInUpdate; }

    // Set / Get RestartAfterUpdate
    void                    SetRestartAfterUpdate( BOOL bNew )
                            { bRestartAfterUpdate = bNew; }
    BOOL                    RestartAfterUpdate() const
                            { return bRestartAfterUpdate; }

    // AgentAPI
    void                    SetApi(AgentApi* pNew )
                            { pAgentApi = pNew; }
    virtual AgentApi*       GetApi() const
                            { return pAgentApi; }

    // ChannelAPI
    void                    SetChApi(ChannelApi* pNew )
                            { pChannelApi = pNew; }
    virtual ChApi*          GetChApi() const
                            { return (ChApi*)pChannelApi; }

    // Set / Get ChObjDate
    void                    SetChObjDate(ULONG nNew)
                            { nChObjDate = nNew; }
    ULONG                   GetChObjDate() const
                            { return nChObjDate; }

    // Set / Get ChObjTime
    void                    SetChObjTime(long nNew)
                            { nChObjTime = nNew; }
    long                    GetChObjTime() const
                            { return nChObjTime; }

    void                    SetBTXShutDownCallBack(const Link& rLnk )
                            { aBTXShutdownCallback = rLnk; }
    const Link&             GetBTXShutDownCallBack()
                            { return aBTXShutdownCallback; }

};

#endif // _CHAGENT_HXX