view dstep/coreservices/searchkit/SKSearch.d @ 11:07194b026fa4

Added bindings to a couple of frameworks, new license + some other things
author Jacob Carlborg <doob@me.com>
date Sat, 01 Aug 2009 15:03:28 +0200
parents
children
line wrap: on
line source

/**
 * Copyright: Copyright (c) 2009 Jacob Carlborg.
 * Authors: Jacob Carlborg
 * Version: Initial created: Jul 22, 2009 
 * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0)
 */
module dstep.coreservices.searchkit.SKSearch;

//import dstep.AvailabilityMacros;
import dstep.corefoundation.CFArray;
import dstep.corefoundation.CFBase;
import dstep.corefoundation.CFDate;
import dstep.corefoundation.CFDictionary;
import dstep.corefoundation.CFURL;
import dstep.coreservices.searchkit.SKDocument;
import dstep.coreservices.searchkit.SKIndex;

struct __SKSearchGroup;
struct __SKSearchResults;
struct __SKSearch;

alias __SKSearchGroup* SKSearchGroupRef;
alias __SKSearchResults* SKSearchResultsRef;
alias int SKSearchType;
alias __SKSearch* SKSearchRef;
alias uint SKSearchOptions;

extern (C)
{
	alias ubyte function (SKIndexRef, SKDocumentRef, void*) SKSearchResultsFilterCallBack;
}

enum /*SKSearchType*/ 
{
	kSKSearchRanked = 0,
	kSKSearchBooleanRanked = 1,
	kSKSearchRequiredRanked = 2,
	kSKSearchPrefixRanked = 3
}

enum
{
	kSKSearchOptionDefault = 0,
	kSKSearchOptionNoRelevanceScores = 1L << 0,
	kSKSearchOptionSpaceMeansOR = 1L << 1,
	kSKSearchOptionFindSimilar = 1L << 2
}

extern (C)
{
	uint SKSearchGroupGetTypeID ();
	uint SKSearchResultsGetTypeID ();
	SKSearchGroupRef SKSearchGroupCreate (CFArrayRef inArrayOfInIndexes);
	CFArrayRef SKSearchGroupCopyIndexes (SKSearchGroupRef inSearchGroup);
	SKSearchResultsRef SKSearchResultsCreateWithQuery (SKSearchGroupRef inSearchGroup, CFStringRef inQuery, int inSearchType, int inMaxFoundDocuments, void* inContext, SKSearchResultsFilterCallBack inFilterCallBack);
	SKSearchResultsRef SKSearchResultsCreateWithDocuments (SKSearchGroupRef inSearchGroup, CFArrayRef inExampleDocuments, int inMaxFoundDocuments, void* inContext, SKSearchResultsFilterCallBack inFilterCallBack);
	int SKSearchResultsGetCount (SKSearchResultsRef inSearchResults);
	int SKSearchResultsGetInfoInRange (SKSearchResultsRef inSearchResults, CFRange inRange, SKDocumentRef* outDocumentsArray, SKIndexRef* outIndexesArray, float* outScoresArray);
	CFArrayRef SKSearchResultsCopyMatchingTerms (SKSearchResultsRef inSearchResults, int inItem);
	uint SKSearchGetTypeID ();
	SKSearchRef SKSearchCreate (SKIndexRef inIndex, CFStringRef inQuery, uint inSearchOptions);
	void SKSearchCancel (SKSearchRef inSearch);
	ubyte SKSearchFindMatches (SKSearchRef inSearch, int inMaximumCount, SKDocumentID* outDocumentIDsArray, float* outScoresArray, double maximumTime, CFIndex* outFoundCount);
	void SKIndexCopyInfoForDocumentIDs (SKIndexRef inIndex, int inCount, SKDocumentID* inDocumentIDsArray, CFStringRef* outNamesArray, SKDocumentID* outParentIDsArray);
	void SKIndexCopyDocumentRefsForDocumentIDs (SKIndexRef inIndex, int inCount, SKDocumentID* inDocumentIDsArray, SKDocumentRef* outDocumentRefsArray);
	void SKIndexCopyDocumentURLsForDocumentIDs (SKIndexRef inIndex, int inCount, SKDocumentID* inDocumentIDsArray, CFURLRef* outDocumentURLsArray);
}