mirror of https://github.com/UMSKT/xpmgr.git
317 lines
10 KiB
C
317 lines
10 KiB
C
/*
|
|
* AnchorSyncDeviceService.h
|
|
*
|
|
* Contains definitions for the Anchor Sync Device Service
|
|
*
|
|
* Copyright (c) Microsoft Corporation, All Rights Reserved.
|
|
*
|
|
*/
|
|
|
|
#ifndef _ANCHORSYNCSERVICE_H_
|
|
#define _ANCHORSYNCSERVICE_H_
|
|
|
|
#include <DeviceServices.h>
|
|
#include <SyncDeviceService.h>
|
|
|
|
/*****************************************************************************/
|
|
/* Anchor Sync Service Info */
|
|
/*****************************************************************************/
|
|
|
|
DEFINE_DEVSVCGUID(SERVICE_AnchorSync,
|
|
0x056d8b9e, 0xad7a, 0x44fc, 0x94, 0x6f, 0x1d, 0x63, 0xa2, 0x5c, 0xda, 0x9a);
|
|
|
|
#define NAME_AnchorSyncSvc L"AnchorSync"
|
|
#define TYPE_AnchorSyncSvc DEVSVCTYPE_ABSTRACT
|
|
|
|
/*****************************************************************************/
|
|
/* Anchor Sync Service Properties */
|
|
/*****************************************************************************/
|
|
|
|
DEFINE_DEVSVCGUID(NAMESPACE_AnchorSyncSvc,
|
|
0xe65b8fb7, 0x8fc7, 0x4278, 0xb9, 0xa3, 0xba, 0x14, 0xc2, 0xdb, 0x40, 0xfa);
|
|
|
|
/* PKEY_AnchorSyncSvc_VersionProps
|
|
*
|
|
* Provides information about change units and version properties. The
|
|
* format for the dataset is
|
|
*
|
|
* UINT32 Number of change units
|
|
* UINT128 Namespace GUID for first change unit property key
|
|
* UINT32 Namespace ID for the first change unit property key
|
|
* UINT32 Number of properties associated with this change unit
|
|
* UINT128 Namespace GUID for first property key in change unit
|
|
* UINT32 Namespace ID for first property key in change unit
|
|
* ... Repeat for number of property keys
|
|
* ... Repeat for number of change units
|
|
*
|
|
* NOTE: If all change units use the same property key specify a namespace
|
|
* GUID of GUID_NULL (all 0's) and a namespace ID of 0.
|
|
*
|
|
* Type: AUInt8
|
|
* Form: None
|
|
*/
|
|
|
|
DEFINE_DEVSVCPROPKEY(PKEY_AnchorSyncSvc_VersionProps,
|
|
0xe65b8fb7, 0x8fc7, 0x4278, 0xb9, 0xa3, 0xba, 0x14, 0xc2, 0xdb, 0x40, 0xfa,
|
|
2);
|
|
|
|
#define NAME_AnchorSyncSvc_VersionProps L"AnchorVersionProps"
|
|
|
|
|
|
/* PKEY_AnchorSyncSvc_ReplicaID
|
|
*
|
|
* Contains the GUID representing this replica in the sync community.
|
|
*
|
|
* Type: UInt128
|
|
* Form: None
|
|
*/
|
|
|
|
DEFINE_DEVSVCPROPKEY(PKEY_AnchorSyncSvc_ReplicaID,
|
|
0xe65b8fb7, 0x8fc7, 0x4278, 0xb9, 0xa3, 0xba, 0x14, 0xc2, 0xdb, 0x40, 0xfa,
|
|
3);
|
|
|
|
#define NAME_AnchorSyncSvc_ReplicaID L"AnchorReplicaID"
|
|
|
|
|
|
/* PKEY_AnchorSyncSvc_KnowledgeObjectID
|
|
*
|
|
* Object ID to be used for the knowledge object
|
|
*
|
|
* Type: UInt32
|
|
* Form: Object ID
|
|
*/
|
|
|
|
DEFINE_DEVSVCPROPKEY(PKEY_AnchorSyncSvc_KnowledgeObjectID,
|
|
0xe65b8fb7, 0x8fc7, 0x4278, 0xb9, 0xa3, 0xba, 0x14, 0xc2, 0xdb, 0x40, 0xfa,
|
|
4);
|
|
|
|
#define NAME_AnchorSyncSvc_KnowledgeObjectID L"AnchorKnowledgeObjectID"
|
|
|
|
|
|
/* PKEY_AnchorSyncSvc_LastSyncProxyID
|
|
*
|
|
* Contains a GUID indicating the last sync proxy to perform a sync operation
|
|
*
|
|
* Type: UInt128
|
|
* Form: None
|
|
*/
|
|
|
|
DEFINE_DEVSVCPROPKEY(PKEY_AnchorSyncSvc_LastSyncProxyID,
|
|
0xe65b8fb7, 0x8fc7, 0x4278, 0xb9, 0xa3, 0xba, 0x14, 0xc2, 0xdb, 0x40, 0xfa,
|
|
5);
|
|
|
|
#define NAME_AnchorSyncSvc_LastSyncProxyID L"AnchorLastSyncProxyID"
|
|
|
|
|
|
/* PKEY_AnchorSyncSvc_CurrentAnchor
|
|
*
|
|
* Contains a blob of data representing the current anchor for the device.
|
|
* As the anchor may be transient depending on the current state of the sync
|
|
* the value of PKEY_AnchorSyncSvc_CurrentAnchor may not reflect the current
|
|
* state of the database unless the current session holds a lock (via the
|
|
* BeginSync method) on the service.
|
|
*
|
|
* Type: AUInt8
|
|
* Form: BinaryArray
|
|
*/
|
|
|
|
DEFINE_DEVSVCPROPKEY(PKEY_AnchorSyncSvc_CurrentAnchor,
|
|
0xe65b8fb7, 0x8fc7, 0x4278, 0xb9, 0xa3, 0xba, 0x14, 0xc2, 0xdb, 0x40, 0xfa,
|
|
6);
|
|
|
|
#define NAME_AnchorSyncSvc_CurrentAnchor L"AnchorCurrentAnchor"
|
|
|
|
|
|
/* PKEY_AnchorSyncSvc_ProviderVersion
|
|
*
|
|
* Contains a device defined value giving the version of the provider
|
|
* currently in use on the device. This version must be incremented whenever
|
|
* new properties are added to the device implementation so that they will
|
|
* be recognized and managed as part of synchronization. 0 is reserved.
|
|
*
|
|
* Type: UInt16
|
|
* Form: None
|
|
*/
|
|
|
|
DEFINE_DEVSVCPROPKEY(PKEY_AnchorSyncSvc_ProviderVersion,
|
|
0xe65b8fb7, 0x8fc7, 0x4278, 0xb9, 0xa3, 0xba, 0x14, 0xc2, 0xdb, 0x40, 0xfa,
|
|
7);
|
|
|
|
#define NAME_AnchorSyncSvc_ProviderVersion L"AnchorProviderVersion"
|
|
|
|
|
|
/* PKEY_AnchorSyncSvc_SyncFormat
|
|
*
|
|
* Indicates the format GUID for the object format that is to be used in the
|
|
* sync operation.
|
|
*
|
|
* Type: UInt128
|
|
* Form: None
|
|
*/
|
|
|
|
#define PKEY_AnchorSyncSvc_SyncFormat PKEY_SyncSvc_SyncFormat
|
|
#define NAME_AnchorSyncSvc_SyncFormat NAME_SyncSvc_SyncFormat
|
|
|
|
|
|
/* PKEY_AnchorSyncSvc_LocalOnlyDelete
|
|
*
|
|
* Boolean flag indicating whether deletes of objects on the service host
|
|
* should be treated as "local only" and not propogated to other sync
|
|
* participants. The alternative is "true sync" in which deletes on the
|
|
* service host are propogated to all other sync participants.
|
|
*
|
|
* Type: UInt8
|
|
* Form: None
|
|
*/
|
|
|
|
#define PKEY_AnchorSyncSvc_LocalOnlyDelete PKEY_SyncSvc_LocalOnlyDelete
|
|
#define NAME_AnchorSyncSvc_LocalOnlyDelete NAME_SyncSvc_LocalOnlyDelete
|
|
|
|
|
|
/* PKEY_AnchorSyncSvc_FilterType
|
|
*
|
|
* Boolean flag indicating whether the default filter is being applied to
|
|
* this endpoint. Note that the meaning of the default filter is determined
|
|
* by the content type service.
|
|
*
|
|
* Type: UInt8
|
|
* Form: None
|
|
*/
|
|
|
|
#define PKEY_AnchorSyncSvc_FilterType PKEY_SyncSvc_FilterType
|
|
#define NAME_AnchorSyncSvc_FilterType NAME_SyncSvc_FilterType
|
|
|
|
|
|
/*****************************************************************************/
|
|
/* Anchor Sync Service Object Formats */
|
|
/*****************************************************************************/
|
|
|
|
/* FORMAT_AnchorSyncKnowledge
|
|
*/
|
|
|
|
DEFINE_DEVSVCGUID(FORMAT_AnchorSyncKnowledge,
|
|
0x37c550bc, 0xf231, 0x4727, 0xbb, 0xbc, 0x4c, 0xb3, 0x3a, 0x3f, 0x3e, 0xcd);
|
|
|
|
#define NAME_AnchorSyncKnowledge L"AnchorSyncKnowledge"
|
|
|
|
/* FORMAT_AnchorSyncSvc_AnchorResults
|
|
*
|
|
* GetChangesSinceAnchor results format
|
|
*/
|
|
|
|
DEFINE_DEVSVCGUID(FORMAT_AnchorSyncSvc_AnchorResults,
|
|
0xf35527c1, 0xce4a, 0x487a, 0x9d, 0x29, 0x93, 0x83, 0x35, 0x69, 0x32, 0x1e);
|
|
|
|
#define NAME_AnchorResults L"AnchorResults"
|
|
|
|
/*****************************************************************************/
|
|
/* Anchor Sync Service Object Property Keys */
|
|
/*****************************************************************************/
|
|
|
|
|
|
DEFINE_DEVSVCGUID(NAMESPACE_AnchorResults,
|
|
0x516b5dce, 0x8d45, 0x430f, 0x80, 0x5c, 0x25, 0xe5, 0x10, 0x6d, 0x8b, 0x1f);
|
|
|
|
/* PKEY_AnchorResults_AnchorState
|
|
*
|
|
* Output parameter from GetChangesSinceAnchor method. Contains the state
|
|
* of the current anchor result:
|
|
*
|
|
* Type: UInt32
|
|
* Form: Enum
|
|
*/
|
|
|
|
DEFINE_DEVSVCPROPKEY(PKEY_AnchorResults_AnchorState,
|
|
0x516b5dce, 0x8d45, 0x430f, 0x80, 0x5c, 0x25, 0xe5, 0x10, 0x6d, 0x8b, 0x1f,
|
|
2);
|
|
|
|
#define NAME_AnchorResults_AnchorState L"AnchorState"
|
|
|
|
#define ENUM_AnchorResults_AnchorStateNormal 0x00000000
|
|
#define ENUM_AnchorResults_AnchorStateInvalid 0x00000001
|
|
#define ENUM_AnchorResults_AnchorStateOld 0x00000002
|
|
|
|
|
|
/* PKEY_AnchorResults_Anchor
|
|
*
|
|
* Input parameter for GetChangesSinceAnchor method. Contains the anchor for
|
|
* which data is being requested.
|
|
*
|
|
* Type: AUInt8
|
|
* Form: None
|
|
*/
|
|
|
|
DEFINE_DEVSVCPROPKEY(PKEY_AnchorResults_Anchor,
|
|
0x516b5dce, 0x8d45, 0x430f, 0x80, 0x5c, 0x25, 0xe5, 0x10, 0x6d, 0x8b, 0x1f,
|
|
3);
|
|
|
|
#define NAME_AnchorResults_Anchor L"Anchor"
|
|
|
|
|
|
/* PKEY_AnchorResults_ResultObjectID
|
|
*
|
|
* Output parameter from GetChangesSinceAnchor method. Contains the object
|
|
* ID of the AnchorResults object that has the results of the
|
|
* GetChangesSinceAnchor operation.
|
|
*
|
|
* Type: UInt32
|
|
* Form: Object ID
|
|
*/
|
|
|
|
DEFINE_DEVSVCPROPKEY(PKEY_AnchorResults_ResultObjectID,
|
|
0x516b5dce, 0x8d45, 0x430f, 0x80, 0x5c, 0x25, 0xe5, 0x10, 0x6d, 0x8b, 0x1f,
|
|
4);
|
|
|
|
#define NAME_AnchorResults_ResultObjectID L"ResultObjectID"
|
|
|
|
|
|
/*****************************************************************************/
|
|
/* Anchor Sync Service Methods */
|
|
/*****************************************************************************/
|
|
|
|
/* METHOD_AnchorSyncSvc_GetChangesSinceAnchor
|
|
*/
|
|
|
|
DEFINE_DEVSVCGUID(METHOD_AnchorSyncSvc_GetChangesSinceAnchor,
|
|
0x37c550bc, 0xf231, 0x4727, 0xbb, 0xbc, 0x4c, 0xb3, 0x3a, 0x3f, 0x3e, 0xcd);
|
|
|
|
#define NAME_AnchorSyncSvc_GetChangesSinceAnchor L"GetChangesSinceAnchor"
|
|
|
|
/* Inherited methods
|
|
*/
|
|
|
|
#define METHOD_AnchorSyncSvc_BeginSync METHOD_SyncSvc_BeginSync
|
|
#define NAME_AnchorSyncSvc_BeginSync NAME_SyncSvc_BeginSync
|
|
|
|
#define METHOD_AnchorSyncSvc_EndSync METHOD_SyncSvc_EndSync
|
|
#define NAME_AnchorSyncSvc_EndSync NAME_SyncSvc_EndSync
|
|
|
|
|
|
/*****************************************************************************/
|
|
/* Anchor Sync Service Additional Defines */
|
|
/*****************************************************************************/
|
|
|
|
/* ENUM_AnchorResults_ItemState*
|
|
*
|
|
* This enum is used when encoding the Anchor results stream. It defines the
|
|
* current state of an object. If a device is capable of distinguishing
|
|
* between item update and create operations the *_ItemStateCreated and
|
|
* *_ItemStateUpdated enumerations should be used. If the device cannot
|
|
* distinuish between a create and an up updated the *_ItemStateChanged result
|
|
* should be used.
|
|
*
|
|
* Type: UInt32
|
|
* Form: Enum
|
|
*/
|
|
|
|
#define ENUM_AnchorResults_ItemStateInvalid 0x00000000
|
|
#define ENUM_AnchorResults_ItemStateDeleted 0x00000001
|
|
#define ENUM_AnchorResults_ItemStateCreated 0x00000002
|
|
#define ENUM_AnchorResults_ItemStateUpdated 0x00000003
|
|
#define ENUM_AnchorResults_ItemStateChanged 0x00000004
|
|
|
|
#endif /* _ANCHORSYNCSERVICE_H_ */
|
|
|
|
|
|
|