1  /**************************************************************
2   *
3   * Licensed to the Apache Software Foundation (ASF) under one
4   * or more contributor license agreements.  See the NOTICE file
5   * distributed with this work for additional information
6   * regarding copyright ownership.  The ASF licenses this file
7   * to you under the Apache License, Version 2.0 (the
8   * "License"); you may not use this file except in compliance
9   * with the License.  You may obtain a copy of the License at
10   *
11   *   http://www.apache.org/licenses/LICENSE-2.0
12   *
13   * Unless required by applicable law or agreed to in writing,
14   * software distributed under the License is distributed on an
15   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16   * KIND, either express or implied.  See the License for the
17   * specific language governing permissions and limitations
18   * under the License.
19   *
20   *************************************************************/
21  
22  
23  
24  #ifndef _CONNECTIVITY_MACAB_ADDRESSBOOK_HXX_
25  #define _CONNECTIVITY_MACAB_ADDRESSBOOK_HXX_
26  
27  #include "MacabRecords.hxx"
28  #include "MacabGroup.hxx"
29  
30  #include <vector>
31  
32  #include <premac.h>
33  #include <Carbon/Carbon.h>
34  #include <AddressBook/ABAddressBookC.h>
35  #include <postmac.h>
36  
37  namespace connectivity
38  {
39  	namespace macab
40  	{
41  		class MacabAddressBook
42  		{
43  			protected:
44  				ABAddressBookRef m_aAddressBook;
45  				MacabRecords *m_xMacabRecords;
46  				::std::vector<MacabGroup *> m_xMacabGroups;
47  				sal_Bool m_bRetrievedGroups;
48  			private:
49  				void manageDuplicateGroups(::std::vector<MacabGroup *> _xGroups) const;
50  			public:
51  				MacabAddressBook();
52  				~MacabAddressBook();
53  				static const ::rtl::OUString & getDefaultTableName();
54  
55  				MacabRecords *getMacabRecords();
56  				::std::vector<MacabGroup *> getMacabGroups();
57  
58  				MacabGroup *getMacabGroup(::rtl::OUString _groupName);
59  				MacabRecords *getMacabRecords(const ::rtl::OUString _tableName);
60  
61  				MacabGroup *getMacabGroupMatch(::rtl::OUString _groupName);
62  				MacabRecords *getMacabRecordsMatch(const ::rtl::OUString _tableName);
63  		};
64  
65  	}
66  }
67  
68  #endif // _CONNECTIVITY_MACAB_ADDRESSBOOK_HXX_
69