21 #ifndef _SHI_ENGINE_H_ 22 #define _SHI_ENGINE_H_ 31 #include "ShiLicense.h" 38 #define SHI_ERROR_ENGINE_NOT_PERSONALIZED (SHI_ERROR_BASE_API_ENGINE - 0) 39 #define SHI_ERROR_ENGINE_INVALID_TEMPLATE (SHI_ERROR_BASE_API_ENGINE - 1) 40 #define SHI_ERROR_ENGINE_POST_VACUUM (SHI_ERROR_BASE_API_ENGINE - 2) 41 #define SHI_ERROR_ENGINE_NO_CONFIG_TOKEN (SHI_ERROR_BASE_API_ENGINE - 3) 42 #define SHI_ERROR_ENGINE_ALREADY_PERSONALIZED (SHI_ERROR_BASE_API_ENGINE - 4) 53 #define SHI_ENGINE_PROP_VERSION "Version" 54 #define SHI_ENGINE_PROP_BUILD_DATE "BuildDate" 55 #define SHI_ENGINE_PROP_IS_PERSONALIZED "IsPersonalized" 56 #define SHI_ENGINE_PROP_PERSONALITY "Personality" 57 #define SHI_ENGINE_PROP_HTTP_PROXY_HOST_NAME "HttpProxyHostname" 58 #define SHI_ENGINE_PROP_HTTP_PROXY_PORT "HttpProxyPort" 59 #define SHI_ENGINE_PROP_HTTP_PROXY_ENABLED "HttpProxyEnabled" 60 #define SHI_ENGINE_PROP_HTTPS_PROXY_HOST_NAME "HttpsProxyHostname" 61 #define SHI_ENGINE_PROP_HTTPS_PROXY_PORT "HttpsProxyPort" 62 #define SHI_ENGINE_PROP_HTTP_CONNECTION_TIMEOUT "HttpConnectionTimeout" 63 #define SHI_ENGINE_PROP_HTTP_IO_TIMEOUT "HttpIOTimeout" 64 #define SHI_ENGINE_PROP_PREFERRED_LANGUAGES "PreferredLanguages" 65 #define SHI_ENGINE_PROP_CACHE_POLICY "CachePolicy" 66 #define SHI_ENGINE_PROP_NEMO "Nemo" 79 #define SHI_ENGINE_VACUUM_FLAG_NODES (1) 80 #define SHI_ENGINE_VACUUM_FLAG_LINKS (2) 81 #define SHI_ENGINE_VACUUM_FLAG_SEASHELL (4) 82 #define SHI_ENGINE_VACUUM_FLAG_DONT_SAVE_RECENT_LINK (8) 83 #define SHI_ENGINE_VACUUM_FLAG_WIPE (16) 293 const char* node_type,
294 const char* node_name,
295 const char* service_id,
316 #if defined(__cplusplus) 555 const char* service_id,
576 const char* service_id,
621 const char* service_id,
657 const char* object_id,
671 const char* object_id);
715 const char* uri_template,
758 #if defined(__cplusplus) #define SHI_PUBLIC_API
Definition: ShiTypes.h:52
Event data for all SHI_ENGINE_EVENT_LICENSE_DATA_RECEIVED events.
Definition: ShiEngine.h:161
struct SHI_EngineListenerInstance SHI_EngineListenerInstance
Definition: ShiEngine.h:167
unsigned int SHI_UInt32
32-bit (or more) unsigned integer
Definition: ShiTypes.h:27
SHI_Size size
Size of the license data.
Definition: ShiEngine.h:164
Definition: ShiEngine.h:110
SHI_EngineEventInfoItems * info
Pointer to a list of information items containing details about the event.
Definition: ShiEngine.h:151
SHI_EngineEvent base
Base class.
Definition: ShiEngine.h:162
Recipient of event callbacks.
Definition: ShiEngine.h:173
SHI_PUBLIC_API SHI_Result SHI_Engine_ProcessServiceToken(SHI_Engine *self, const char *token, SHI_Size token_size, const void *cookie)
Requests that this engine process a service token, such as a Broadband Action Token.
struct SHI_RegistrationDataManager SHI_RegistrationDataManager
Interface implemented and passed to SHI_Engine_ProcessServiceTokenEx to modify where the SDK should g...
struct SHI_Engine SHI_Engine
A SHI_Engine object is the initial point of interaction between an application and a DRM Engine...
Definition: ShiEngine.h:331
SHI_PUBLIC_API SHI_Result SHI_Engine_VacuumData(SHI_Engine *self, SHI_Flags vacuum_options)
Removes expired data stored in Sushi's database.
const SHI_EngineEventInfoItem * items
Pointer to the list items.
Definition: ShiEngine.h:128
SHI_PUBLIC_API SHI_Result SHI_Engine_DeleteObject(SHI_Engine *self, const char *object_id)
Removes the given Octopus object from the Sushi database.
const void * cookie
Application-provided cookie that can be used to correlate method calls and related events...
Definition: ShiEngine.h:141
SHI_UInt32 SHI_Size
An unsigned integer used to represent a measurable quantity (e.g., the size of a file).
Definition: ShiTypes.h:95
SHI_PUBLIC_API SHI_Result SHI_Engine_GetTrustedTime(SHI_Engine *self, SHI_DateTime *now)
Returns the current value of the trusted time.
SHI_UInt32 reference_count
Definition: ShiEngine.h:310
SHI_DataValue value
Item data value.
Definition: ShiEngine.h:120
SHI_PUBLIC_API SHI_Boolean SHI_Engine_IsPersonalized(SHI_Engine *self)
Indicates whether or not this engine has been personalized.
struct SHI_Attribute SHI_Attribute
SHI_Attribute objects represent named values that can be arranged in a tree structure.
Definition: ShiAttributes.h:110
SHI_PUBLIC_API SHI_Result SHI_Engine_EnumerateServices(SHI_Engine *self, SHI_List **services)
Gets the list of the services that are currently configured for this engine.
Information about an event received by a SHI_EngineListener.
Definition: ShiEngine.h:135
SHI_DataType type
Type of item data value.
Definition: ShiEngine.h:119
SHI_PUBLIC_API SHI_Result SHI_Engine_TransformURITemplate(SHI_Engine *self, const char *uri_template, SHI_Data **uri)
Transforms a URI template according to the "URI Templates for Marlin" specification.
Definition: ShiEngine.h:105
SHI_PUBLIC_API SHI_Result SHI_Engine_GetNodeIds(SHI_Engine *self, SHI_Data **id_array)
Gets list of all Octopus nodes known to this Sushi instance.
SHI_PUBLIC_API SHI_Result SHI_Engine_Destroy(SHI_Engine *self)
Destroys this engine object.
List of event information items.
Definition: ShiEngine.h:126
SHI_Cardinal item_count
Number of list items.
Definition: ShiEngine.h:127
Definition: ShiEngine.h:103
Definition: ShiEngine.h:107
Union of different possible types of values encapsulated by a SHI_Data object.
Definition: ShiData.h:90
SHI_PUBLIC_API SHI_Result SHI_Engine_UpdatePersonality(SHI_Engine *self, const char *token, SHI_Size token_size, const void *cookie)
Requests that this engine engage in the personality update process to renew its public credentials...
nemo signing cert and chain including trust anchor
Definition: ShiEngine.h:90
SHI_EngineCertChain
certificate chain types
Definition: ShiEngine.h:88
SHI_EngineListener listener
Recipient of event callbacks.
Definition: ShiEngine.h:259
SHI_PUBLIC_API SHI_Result SHI_Engine_ProcessServiceTokenEx(SHI_Engine *self, const char *token, SHI_Size token_size, const void *cookie, SHI_RegistrationDataManager *registration_data_manager)
Use this API instead of SHI_Engine_ProcessServiceToken if you want to overwrite the default behavior ...
SHI_DataType
Possible types of data in the value encapsulated by a SHI_Data object.
Definition: ShiData.h:37
SHI_PUBLIC_API SHI_Result SHI_Engine_EnumerateServiceUsers(SHI_Engine *self, const char *service_id, SHI_List **users)
Gets a list of service users of one or more of this engine's configured services. ...
SHI_PUBLIC_API SHI_Result SHI_Engine_GetObjectDetails(SHI_Engine *self, const char *object_id, SHI_Attribute **details)
Gets the details of this Octopus object.
SHI_PUBLIC_API SHI_Result SHI_Engine_Personalize(SHI_Engine *self, const char *token, SHI_Size token_size, const void *cookie)
Requests that this engine engage in the personalization process.
SHI_PUBLIC_API SHI_Result SHI_Engine_UpdateSecurityData(SHI_Engine *self, const char *service_id, SHI_UInt32 last_update, const void *cookie)
Updates security data for a specified service configured for this engine object.
SHI_EngineListenerInstance * instance
Definition: ShiEngine.h:175
Definition: ShiEngine.h:111
const char * name
Item name.
Definition: ShiEngine.h:118
A single event information item.
Definition: ShiEngine.h:117
SHI_UInt32 SHI_Cardinal
An unsigned integer used to represent a quantity that can be counted (such as a number of elements in...
Definition: ShiTypes.h:112
Definition: ShiEngine.h:73
SHI_PUBLIC_API SHI_Result SHI_Engine_GetCertificateChain(SHI_Engine *self, SHI_EngineCertChain cert_chain, SHI_Data **cert_array)
Get the certificates of the specified certificate chain.
Definition: ShiEngine.h:102
Definition: ShiEngine.h:106
SHI_PUBLIC_API SHI_Result SHI_Engine_CreateLicense(SHI_Engine *self, SHI_License **license)
Creates a new SHI_License object managed by this engine.
SHI_PUBLIC_API SHI_Result SHI_Engine_GetLinkIds(SHI_Engine *self, SHI_Data **id_array)
Gets list of all Octopus links known to this Sushi instance.
SHI_UInt32 SHI_InterfaceId
Definition: ShiInterfaces.h:33
SHI_EngineEventType
Types of events that a SHI_EngineEventListener may receive.
Definition: ShiEngine.h:101
Definition: ShiEngine.h:72
Interface implemented and passed to SHI_Engine_ProcessServiceTokenEx to modify where the SDK should g...
Definition: ShiEngine.h:267
Definition: ShiEngine.h:104
SHI_Boolean
Boolean type used for variables that can be true (SHI_TRUE) or false (SHI_FALSE). ...
Definition: ShiTypes.h:62
Configuration passed as an argument to the SHI_Engine_Create factory function.
Definition: ShiEngine.h:257
SHI_Flags flags
Configuration flags.
Definition: ShiEngine.h:258
A date and time.
Definition: ShiTypes.h:128
SHI_PUBLIC_API SHI_Result SHI_Engine_EnumerateServiceSubscriptions(SHI_Engine *self, const char *service_id, const char *user_id, SHI_List **subscriptions)
Gets a list of subscriptions associated with one or more of the engine's configured services...
Definition: ShiEngine.h:109
Definition: ShiEngine.h:108
const SHI_EngineListenerInterface * iface
Definition: ShiEngine.h:174
const void * data
Pointer to the license data.
Definition: ShiEngine.h:163
struct SHI_List SHI_List
Definition: ShiList.h:80
struct SHI_Data SHI_Data
A SHI_Data object represents a typed data object.
Definition: ShiData.h:116
Definition: ShiEngine.h:92
SHI_UInt32 SHI_Flags
Type used to represent a bit pattern signifying a combination of flags that can be on or off...
Definition: ShiTypes.h:84
int SHI_Result
Signed integer value representing a function or method result (return value).
Definition: ShiTypes.h:74
SHI_PUBLIC_API SHI_Result SHI_Engine_Create(const SHI_EngineConfig *config, SHI_Engine **engine)
Creates a SHI_Engine object.
SHI_EngineCachePolicy
Caching policies.
Definition: ShiEngine.h:71
Interface implemented by an application in order to receive event notifications from a SHI_Engine...
Definition: ShiEngine.h:183
SHI_PUBLIC_API void * SHI_Engine_GetInterface(SHI_Engine *self, SHI_InterfaceId iface_id)
Obtains a pointer to a SHI_Engine object with a different interface.