зеркало из https://github.com/mozilla/pjs.git
221 строка
7.9 KiB
C
221 строка
7.9 KiB
C
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
|
*
|
|
* ***** BEGIN LICENSE BLOCK *****
|
|
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
|
*
|
|
* The contents of this file are subject to the Mozilla Public License Version
|
|
* 1.1 (the "License"); you may not use this file except in compliance with
|
|
* the License. You may obtain a copy of the License at
|
|
* http://www.mozilla.org/MPL/
|
|
*
|
|
* Software distributed under the License is distributed on an "AS IS" basis,
|
|
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
|
* for the specific language governing rights and limitations under the
|
|
* License.
|
|
*
|
|
* The Original Code is mozilla.org code.
|
|
*
|
|
* The Initial Developer of the Original Code is
|
|
* Netscape Communications Corporation.
|
|
* Portions created by the Initial Developer are Copyright (C) 1998
|
|
* the Initial Developer. All Rights Reserved.
|
|
*
|
|
* Contributor(s):
|
|
*
|
|
* Alternatively, the contents of this file may be used under the terms of
|
|
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
|
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
|
* in which case the provisions of the GPL or the LGPL are applicable instead
|
|
* of those above. If you wish to allow use of your version of this file only
|
|
* under the terms of either the GPL or the LGPL, and not to allow others to
|
|
* use your version of this file under the terms of the MPL, indicate your
|
|
* decision by deleting the provisions above and replace them with the notice
|
|
* and other provisions required by the GPL or the LGPL. If you do not delete
|
|
* the provisions above, a recipient may use your version of this file under
|
|
* the terms of any one of the MPL, the GPL or the LGPL.
|
|
*
|
|
* ***** END LICENSE BLOCK ***** */
|
|
|
|
|
|
#ifndef rdf_h___
|
|
#define rdf_h___
|
|
|
|
|
|
#include "prtypes.h"
|
|
|
|
|
|
typedef int16 RDF_Error;
|
|
typedef uint16 RDF_ValueType;
|
|
|
|
|
|
#define RDF_ILLEGAL_ASSERT ((RDF_Error)0x0001)
|
|
#define RDF_ILLEGAL_KILL ((RDF_Error)0x0002)
|
|
#define RDF_NO_MEMORY ((RDF_Error)0x0003)
|
|
|
|
|
|
#define RDF_RESOURCE_TYPE ((RDF_ValueType)0x0001)
|
|
#define RDF_INT_TYPE ((RDF_ValueType)0x0002)
|
|
#define RDF_STRING_TYPE ((RDF_ValueType)0x0003)
|
|
#define RDF_NATIVE_TYPE ((RDF_ValueType)0x0004)
|
|
|
|
NSPR_BEGIN_EXTERN_C
|
|
|
|
typedef struct RDF_ResourceStruct* RDF_Resource;
|
|
typedef struct RDF_CursorStruct* RDF_Cursor;
|
|
typedef struct RDF_DBStruct* RDF;
|
|
typedef struct RDF_TranslatorStruct *RDFT;
|
|
typedef uint32 RDF_EventType;
|
|
|
|
#define RDF_ASSERT_NOTIFY ((RDF_EventType)0x00000001)
|
|
#define RDF_DELETE_NOTIFY ((RDF_EventType)0x00000002)
|
|
#define RDF_KILL_NOTIFY ((RDF_EventType)0x00000004)
|
|
#define RDF_CREATE_NOTIFY ((RDF_EventType)0x00000008)
|
|
#define RDF_RESOURCE_GC_NOTIFY ((RDF_EventType)0x00000010)
|
|
#define RDF_INSERT_NOTIFY ((RDF_EventType)0x00000020)
|
|
|
|
struct RDF_NotificationStruct;
|
|
|
|
typedef struct RDF_AssertEventStruct {
|
|
RDF_Resource u;
|
|
RDF_Resource s;
|
|
void* v;
|
|
RDF_ValueType type;
|
|
PRBool tv;
|
|
char* dataSource;
|
|
} *RDF_AssertEvent;
|
|
|
|
|
|
typedef struct RDF_UnassertEventStruct {
|
|
RDF_Resource u;
|
|
RDF_Resource s;
|
|
void* v;
|
|
RDF_ValueType type;
|
|
char* dataSource;
|
|
} *RDF_UnassertEvent;
|
|
|
|
typedef struct RDF_KillEventStruct {
|
|
RDF_Resource u;
|
|
} *RDF_KillEvent;
|
|
|
|
|
|
typedef struct RDF_EventStruct {
|
|
RDF_EventType eventType;
|
|
union ev {
|
|
struct RDF_AssertEventStruct assert;
|
|
struct RDF_UnassertEventStruct unassert;
|
|
struct RDF_KillEventStruct kill;
|
|
} event;
|
|
} *RDF_Event;
|
|
|
|
|
|
|
|
|
|
typedef struct _RDF_InitParamsStruct {
|
|
char *profileURL;
|
|
char *bookmarksURL;
|
|
char *globalHistoryURL;
|
|
} RDF_InitParamsStruct;
|
|
|
|
typedef struct _RDF_InitParamsStruct* RDF_InitParams;
|
|
|
|
typedef struct RDF_NotificationStruct* RDF_Notification;
|
|
|
|
typedef void (*RDF_NotificationProc)(RDF_Event theEvent, void* pdata);
|
|
|
|
|
|
/* core rdf apis */
|
|
|
|
PR_PUBLIC_API(RDF) RDF_GetDB(const char** dbs);
|
|
PR_PUBLIC_API(RDF_Error) RDF_ReleaseDB(RDF rdf);
|
|
PR_PUBLIC_API(RDFT) RDF_AddDataSource(RDF rdf, char* dataSource);
|
|
PR_PUBLIC_API(RDF_Error) RDF_ReleaseDataSource(RDF rdf, RDFT dataSource);
|
|
PR_PUBLIC_API(RDF_Resource) RDF_GetResource(RDF db, char* id, PRBool createp);
|
|
PR_PUBLIC_API(RDF_Error) RDF_ReleaseResource(RDF db, RDF_Resource resource);
|
|
PR_PUBLIC_API(RDF_Error) RDF_DeleteAllArcs(RDF rdfDB, RDF_Resource source);
|
|
PR_PUBLIC_API(RDF_Error) RDF_Update(RDF rdfDB, RDF_Resource u);
|
|
|
|
PR_PUBLIC_API(RDF_Notification) RDF_AddNotifiable (RDF rdfDB, RDF_NotificationProc callBack, RDF_Event ev, void* pdata);
|
|
PR_PUBLIC_API(RDF_Error) RDF_DeleteNotifiable (RDF_Notification ns);
|
|
|
|
|
|
PR_PUBLIC_API(PRBool) RDF_Assert(RDF rdfDB, RDF_Resource source, RDF_Resource arcLabel,
|
|
void* target, RDF_ValueType targetType);
|
|
PR_PUBLIC_API(PRBool) RDF_AssertFalse(RDF rdfDB, RDF_Resource source, RDF_Resource arcLabel,
|
|
void* target, RDF_ValueType targetType);
|
|
PR_PUBLIC_API(PRBool) RDF_Unassert(RDF rdfDB, RDF_Resource source, RDF_Resource arcLabel,
|
|
void* target, RDF_ValueType targetType);
|
|
|
|
|
|
PR_PUBLIC_API(PRBool) RDF_CanAssert(RDF rdfDB, RDF_Resource u, RDF_Resource arcLabel, void* v, RDF_ValueType targetType);
|
|
PR_PUBLIC_API(PRBool) RDF_CanAssertFalse(RDF rdfDB, RDF_Resource u, RDF_Resource arcLabel, void* v, RDF_ValueType targetType);
|
|
PR_PUBLIC_API(PRBool) RDF_CanUnassert(RDF rdfDB, RDF_Resource u, RDF_Resource arcLabel, void* v, RDF_ValueType targetType);
|
|
|
|
|
|
PR_PUBLIC_API(PRBool) RDF_HasAssertion (RDF rdfDB, RDF_Resource source, RDF_Resource arcLabel,
|
|
void* target, RDF_ValueType targetType, PRBool tv);
|
|
PR_PUBLIC_API(void*) RDF_GetSlotValue (RDF rdfDB, RDF_Resource u, RDF_Resource s, RDF_ValueType targetType,
|
|
PRBool inversep, PRBool tv);
|
|
PR_PUBLIC_API(RDF_Cursor) RDF_GetTargets (RDF rdfDB, RDF_Resource source, RDF_Resource arcLabel,
|
|
RDF_ValueType targetType, PRBool tv);
|
|
PR_PUBLIC_API(RDF_Cursor) RDF_GetSources (RDF rdfDB, RDF_Resource target, RDF_Resource arcLabel,
|
|
RDF_ValueType sourceType, PRBool tv);
|
|
PR_PUBLIC_API(RDF_Cursor) RDF_ArcLabelsOut (RDF rdfDB, RDF_Resource u);
|
|
PR_PUBLIC_API(RDF_Cursor) RDF_ArcLabelsIn (RDF rdfDB, RDF_Resource u);
|
|
PR_PUBLIC_API(void*) RDF_NextValue(RDF_Cursor c);
|
|
PR_PUBLIC_API(char*) RDF_ValueDataSource(RDF_Cursor c);
|
|
PR_PUBLIC_API(RDF_ValueType) RDF_CursorValueType(RDF_Cursor c);
|
|
PR_PUBLIC_API(RDF_Error) RDF_DisposeCursor (RDF_Cursor c);
|
|
|
|
|
|
|
|
/*** Guha needs to get his act together and figure out how to do this.
|
|
PR_PUBLIC_API(RDF_Error) RDF_Undo(RDF rdf);
|
|
***/
|
|
|
|
/* These two should be removed soon. They are here because Nav Center
|
|
depends on them. */
|
|
|
|
/* PR_PUBLIC_API(RDF_Error) RDF_Init(char *profileDirURL); */
|
|
PR_PUBLIC_API(RDF_Error) RDF_Init(RDF_InitParams params);
|
|
PR_PUBLIC_API(RDF_Error) RDF_Shutdown(void);
|
|
|
|
|
|
/** utilities : move out of here!!! **/
|
|
/* well known resources */
|
|
|
|
|
|
#include "vocab.h"
|
|
|
|
/* the stuff in vocab.h will supercede what's below. I am leaving this here
|
|
only for the very near future */
|
|
|
|
|
|
PR_PUBLIC_API(char*) RDF_GetResourceName(RDF rdfDB, RDF_Resource node);
|
|
|
|
PR_PUBLIC_API(RDF_Resource) RDFUtil_GetFirstInstance (RDF_Resource type, char* defaultURL);
|
|
PR_PUBLIC_API(void) RDFUtil_SetFirstInstance (RDF_Resource type, RDF_Resource item);
|
|
|
|
typedef void (*printProc)(void* data, char* str);
|
|
PR_PUBLIC_API(void) outputMCFTree (RDF db, printProc printer, void* data, RDF_Resource node);
|
|
PR_PUBLIC_API(RDF_Resource) RDFUtil_GetBreadcrumb();
|
|
PR_PUBLIC_API(RDF_Resource) RDFUtil_GetQuickFileFolder();
|
|
PR_PUBLIC_API(void) RDFUtil_SetQuickFileFolder(RDF_Resource container);
|
|
PR_PUBLIC_API(RDF_Resource) RDFUtil_GetPTFolder();
|
|
PR_PUBLIC_API(void) RDFUtil_SetPTFolder(RDF_Resource container);
|
|
PR_PUBLIC_API(RDF_Cursor) RDF_Find (RDF_Resource s, RDF_Resource match, void* v, RDF_ValueType type);
|
|
PR_PUBLIC_API(RDF_Resource) RDFUtil_GetNewBookmarkFolder();
|
|
PR_PUBLIC_API(void) RDFUtil_SetNewBookmarkFolder(RDF_Resource container);
|
|
PR_PUBLIC_API(RDF_Resource) RDFUtil_GetDefaultSelectedView();
|
|
PR_PUBLIC_API(void) RDFUtil_SetDefaultSelectedView(RDF_Resource container);
|
|
|
|
/** end utilities **/
|
|
|
|
/* this stuff is stuck in here for netlib */
|
|
|
|
|
|
|
|
|
|
NSPR_END_EXTERN_C
|
|
|
|
#endif /* rdf_h___ */
|