PTLib Version 2.12.9

- Main Page
- Related Pages
- Namespaces
- Classes
- Files

- File List
- File Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
pils.h
Go to the documentation of this file.
1 /*
2 * pils.h
3 *
4 * Microsoft Internet Location Server Protocol interface class.
5 *
6 * Portable Windows Library
7 *
8 * Copyright (c) 1993-2003 Equivalence Pty. Ltd.
9 *
10 * The contents of this file are subject to the Mozilla Public License
11 * Version 1.0 (the "License"); you may not use this file except in
12 * compliance with the License. You may obtain a copy of the License at
13 * http://www.mozilla.org/MPL/
14 *
15 * Software distributed under the License is distributed on an "AS IS"
16 * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
17 * the License for the specific language governing rights and limitations
18 * under the License.
19 *
20 * The Original Code is Portable Windows Library.
21 *
22 * The Initial Developer of the Original Code is Equivalence Pty. Ltd.
23 *
24 * Contributor(s): ______________________________________.
25 *
26 * $Revision: 21788 $
27 * $Author: rjongbloed $
28 * $Date: 2008-12-12 16:42:13 +1100 (Fri, 12 Dec 2008) $
29 */
30
31 #ifndef PTLIB_PILS_H
32 #define PTLIB_PILS_H
33
34 #ifdef P_USE_PRAGMA
35 #pragma interface
36 #endif
37
38 #if P_LDAP
39
40 #include <ptlib/sockets.h>
41 #include <ptclib/pldap.h>
42
43
46 class PILSSession : public PLDAPSession
47 {
48 PCLASSINFO(PILSSession, PLDAPSession)
49 public:
52 PILSSession();
53
63 class MSIPAddress : public PIPSocket::Address
64 {
65 public:
66 MSIPAddress(DWORD a = 0) : Address(a) { }
67 MSIPAddress(const PIPSocket::Address & a) : Address(a) { }
68 MSIPAddress(const PString & dotNotation) : Address(dotNotation) { }
69 MSIPAddress(PINDEX len, const BYTE * bytes) : Address(len, bytes) { }
70
71 MSIPAddress & operator=(DWORD a) { Address::operator=(a); return *this; }
72 MSIPAddress & operator=(const PIPSocket::Address & a) { Address::operator=(a); return *this; }
73 MSIPAddress & operator=(const PString & dotNotation) { Address::operator=(dotNotation); return *this; }
74
75 friend istream & operator>>(istream & s, MSIPAddress & a);
76 friend ostream & operator<<(ostream & s, MSIPAddress & a);
77 };
78
79 PLDAP_STRUCT_BEGIN(RTPerson)
80 PLDAP_ATTR_SIMP(RTPerson, PString, cn); // Must be non-empty
81 PLDAP_ATTR_SIMP(RTPerson, PString, c);
82 PLDAP_ATTR_SIMP(RTPerson, PString, o);
83 PLDAP_ATTR_SIMP(RTPerson, PString, surname);
84 PLDAP_ATTR_SIMP(RTPerson, PString, givenName);
85 PLDAP_ATTR_SIMP(RTPerson, PString, rfc822Mailbox); // Must be non-empty
86 PLDAP_ATTR_SIMP(RTPerson, PString, location);
87 PLDAP_ATTR_SIMP(RTPerson, PString, comment);
88 PLDAP_ATTR_SIMP(RTPerson, MSIPAddress, sipAddress);
89 PLDAP_ATTR_SIMP(RTPerson, PWORDArray, sport);
90 PLDAP_ATTR_INIT(RTPerson, unsigned, sflags, 0);
91 PLDAP_ATTR_INIT(RTPerson, unsigned, ssecurity, 0);
92 PLDAP_ATTR_INIT(RTPerson, unsigned, smodop, 0);
93 PLDAP_ATTR_INIT(RTPerson, unsigned, sttl, 3600);
94 PLDAP_ATTR_SIMP(RTPerson, PStringList, sprotid);
95 PLDAP_ATTR_SIMP(RTPerson, PStringList, sprotmimetype);
96 PLDAP_ATTR_INIT(RTPerson, PString, sappid, PProcess::Current().GetName()); // Must be non-empty
97 PLDAP_ATTR_INIT(RTPerson, PString, sappguid, "none"); // Must be non-empty
98 PLDAP_ATTR_SIMP(RTPerson, PStringList, smimetype);
99 PLDAP_ATTR_INIT(RTPerson, PBoolean, ilsa32833566, 0); // 1=audio capable
100 PLDAP_ATTR_INIT(RTPerson, PBoolean, ilsa32964638, 0); // 1=video capable
101 PLDAP_ATTR_INIT(RTPerson, PBoolean, ilsa26214430, 0); // 1=in a call
102 PLDAP_ATTR_INIT(RTPerson, unsigned, ilsa26279966, 0); // unknown
103 PLDAP_ATTR_INIT(RTPerson, unsigned, ilsa39321630, 0); // 1 personal; 2 business user; 4 adults-only
104 PLDAP_ATTR_INIT(RTPerson, time_t, timestamp, PTime().GetTimeInSeconds());
105
106 public:
107 PString GetDN() const;
108
109 PLDAP_STRUCT_END();
110
111 PBoolean AddPerson(
112 const RTPerson & person
113 );
114
115 PBoolean ModifyPerson(
116 const RTPerson & person
117 );
118
119 PBoolean DeletePerson(
120 const RTPerson & person
121 );
122
123 PBoolean SearchPerson(
124 const PString & canonicalName,
125 RTPerson & person
126 );
127
128 PList<RTPerson> SearchPeople(
129 const PString & filter
130 );
131 };
132
133 #endif // P_LDAP
134
135 #endif // PTLIB_PILS_H
136
137
138 // End of file ////////////////////////////////////////////////////////////////