summaryrefslogtreecommitdiffstats
path: root/kopete/protocols/oscar/liboscar/icquserinfotask.h
blob: 11b93ee4b69adab44a2c2d4b2a8ba8ff170a95df (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
/*
  Kopete Oscar Protocol
  icquserinfotask.h - SNAC 0x15 parsing for user info

  Copyright (c) 2004 Matt Rogers <mattr@kde.org>

  Kopete (c) 2002-2004 by the Kopete developers <kopete-devel@kde.org>

  *************************************************************************
  *                                                                       *
  * This library is free software; you can redistribute it and/or         *
  * modify it under the terms of the GNU Lesser General Public            *
  * License as published by the Free Software Foundation; either          *
  * version 2 of the License, or (at your option) any later version.      *
  *                                                                       *
  *************************************************************************
*/

#ifndef ICQUSERINFOTASK_H
#define ICQUSERINFOTASK_H

#include <tqmap.h>
#include <tqstring.h>

#include "icqtask.h"
#include "icquserinfo.h"

class Transfer;

/**
@author Kopete Developers
*/
class ICQUserInfoRequestTask : public ICQTask
{
TQ_OBJECT
  
public:
	ICQUserInfoRequestTask( Task* parent );
	~ICQUserInfoRequestTask();

	enum { Long = 0, Short };
	
	void setUser( const TQString& user ) { m_userToRequestFor = user; }
	void setType( unsigned int type ) { m_type = type; }
	void setInfoToRequest( unsigned int type );
	
	ICQGeneralUserInfo generalInfoFor( const TQString& contact );
	ICQEmailInfo emailInfoFor( const TQString& contact );
	ICQMoreUserInfo moreInfoFor( const TQString& contact );
	ICQWorkUserInfo workInfoFor( const TQString& contact );
	TQString notesInfoFor( const TQString& contact );
	ICQShortInfo shortInfoFor( const TQString& contact );
	ICQInterestInfo interestInfoFor( const TQString& contact );
	
	virtual bool forMe( const Transfer* transfer ) const;
	virtual bool take( Transfer* transfer );
	virtual void onGo();

signals:
	void receivedInfoFor( const TQString& contact, unsigned int type );
	
private:
	TQMap<int, ICQGeneralUserInfo> m_genInfoMap;
	TQMap<int, ICQEmailInfo> m_emailInfoMap;
	TQMap<int, ICQMoreUserInfo> m_moreInfoMap;
	TQMap<int, ICQWorkUserInfo> m_workInfoMap;
	TQMap<int, ICQShortInfo> m_shortInfoMap;
	TQMap<int, ICQInterestInfo> m_interestInfoMap;
	TQMap<int, TQString> m_notesInfoMap;
	TQMap<int, TQString> m_contactSequenceMap;
	TQMap<TQString, int> m_reverseContactMap;
	unsigned int m_type;
	TQString m_userToRequestFor;

};
#endif