1 /*
2  * Copyright 2006-2008 The FLWOR Foundation.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 #ifndef ZORBA_SHARED_TYPES_INCL_H
17 #define ZORBA_SHARED_TYPES_INCL_H
18 
19 #include <memory>
20 
21 #include <zorba/config.h>
22 #include <zorba/smart_ptr.h>
23 
24 namespace zorba {
25 
26   class Zorba;
27   class XQuery;
28   class StaticContext;
29   class DynamicContext;
30   class XmlDataManager;
31   class DocumentManager;
32   class CollectionManager;
33   class StaticCollectionManager;
34   class ItemFactory;
35   class Iterator;
36   class StatelessExternalFunction;
37   class ExternalFunctionParameter;
38   class ExternalModule;
39   class TypeIdentifier;
40   class ItemSequence;
41   class Collection;
42   class Function;
43   class Annotation;
44   class SerializationCallback;
45   class File;
46   class DirectoryIterator;
47   class Serializer;
48 
49   class DiagnosticHandler;
50   class QueryLocation;
51   typedef SmartPtr<QueryLocation> QueryLocation_t;
52 
53 #ifndef ZORBA_NO_FULL_TEXT
54   class StemmerProvider;
55   class TokenizerProvider;
56 #endif /* ZORBA_NO_FULL_TEXT */
57 
58   // smart pointers
59   typedef zorba::SmartPtr<XQuery>                  XQuery_t;
60   typedef zorba::SmartPtr<StaticContext>           StaticContext_t;
61   typedef zorba::SmartPtr<Iterator>                Iterator_t;
62   typedef zorba::SmartPtr<TypeIdentifier>          TypeIdentifier_t;
63   typedef zorba::SmartPtr<Collection>              Collection_t;
64   typedef zorba::SmartPtr<Function>                Function_t;
65   typedef zorba::SmartPtr<Annotation>              Annotation_t;
66   typedef zorba::SmartPtr<File>                    File_t;
67   typedef zorba::SmartPtr<DirectoryIterator>       DirectoryIterator_t;
68   typedef zorba::SmartPtr<Serializer>              Serializer_t;
69   typedef zorba::SmartPtr<ItemSequence>            ItemSequence_t;
70 
71   // data handlers
72   class Item;
73   class String;
74 
75   // uri resolvers
76   class URIMapper;
77   class Resource;
78   class URLResolver;
79 
80   namespace audit {
81     class Provider;
82     class Event;
83     class ScopedRecord;
84   }
85 
86 } /* namespace zorba */
87 #endif
88 /* vim:set et sw=2 ts=2: */
89