summaryrefslogtreecommitdiff
path: root/cpp/include/Freeze/Index.h
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/include/Freeze/Index.h')
-rw-r--r--cpp/include/Freeze/Index.h64
1 files changed, 64 insertions, 0 deletions
diff --git a/cpp/include/Freeze/Index.h b/cpp/include/Freeze/Index.h
new file mode 100644
index 00000000000..4a8ce94ac65
--- /dev/null
+++ b/cpp/include/Freeze/Index.h
@@ -0,0 +1,64 @@
+// **********************************************************************
+//
+// Copyright (c) 2003
+// ZeroC, Inc.
+// Billerica, MA, USA
+//
+// All Rights Reserved.
+//
+// Ice is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License version 2 as published by
+// the Free Software Foundation.
+//
+// **********************************************************************
+
+#ifndef FREEZE_INDEX_H
+#define FREEZE_INDEX_H
+
+#include <Ice/Ice.h>
+#include <Freeze/DB.h>
+#include <vector>
+
+namespace Freeze
+{
+
+class IndexI;
+class EvictorI;
+
+class FREEZE_API Index : public IceUtil::Shared
+{
+public:
+
+ virtual ~Index();
+
+protected:
+
+ Index(const std::string&);
+
+ virtual bool
+ marshalKey(const Ice::ObjectPtr&, Freeze::Key&) const = 0;
+
+ std::vector<Ice::Identity>
+ untypedFindFirst(const Freeze::Key&, Ice::Int) const;
+
+ std::vector<Ice::Identity>
+ untypedFind(const Freeze::Key&) const;
+
+ Ice::Int
+ untypedCount(const Freeze::Key&) const;
+
+ friend class IndexI;
+
+ Ice::CommunicatorPtr _communicator;
+
+private:
+
+ friend class EvictorI;
+ IndexI* _impl;
+};
+
+typedef IceUtil::Handle<Index> IndexPtr;
+}
+
+#endif
+