PreEmptive Analytics Linux Client
 All Classes Files Functions Variables Typedefs Macros
Macros | Typedefs | Functions
C_PAClient.h File Reference

Header file for the C interface to PreEmptive Analytics methods. More...

Macros

#define EXCEPTION_EVENT_CAUGHT   100
 Indicates that the described exception was caught. More...
 
#define EXCEPTION_EVENT_THROWN   300
 Indicates that the described exception was being thrown. More...
 
#define EXCEPTION_EVENT_UNCAUGHT   200
 Indicates that the described exception was not handled by the application. More...
 
#define LOG_LEVEL_ERROR   300
 Indicates that only Error messages should be logged. More...
 
#define LOG_LEVEL_INFO   100
 Indicates that Error, Warning, and Information messages should be logged. More...
 
#define LOG_LEVEL_WARN   200
 Indicates that Error and Warning messages should be logged. More...
 

Typedefs

typedef int BOOL
 
typedef void * PVOID
 

Functions

void DLL_C_PACLIENT AddCustomHeader (PVOID configuration, const wchar_t *header, const wchar_t *value)
 Add a custom HTTP header to the configuration. More...
 
void DLL_C_PACLIENT AddExtendedKeysDouble (PVOID keys, const wchar_t *key, double value)
 Add a double value to the keys. More...
 
void DLL_C_PACLIENT AddExtendedKeysFloat (PVOID keys, const wchar_t *key, float value)
 Add a floating point value to the keys. More...
 
void DLL_C_PACLIENT AddExtendedKeysInt (PVOID keys, const wchar_t *key, int value)
 Add a integer value to the keys. More...
 
void DLL_C_PACLIENT AddExtendedKeysLong (PVOID keys, const wchar_t *key, long value)
 Add a long integer value to the keys. More...
 
void DLL_C_PACLIENT AddExtendedKeysString (PVOID keys, const wchar_t *key, const wchar_t *value)
 Add a string value to the keys. More...
 
void DLL_C_PACLIENT AddSSLCertificate (PVOID configuration, const wchar_t *certificate)
 Add a SSL certificate to be used for SSL verification. More...
 
void DLL_C_PACLIENT AddSSLCertificateStore (PVOID configuration, const wchar_t *path)
 Adds a path to the list of potential SSL certificate stores for the sending of messages to the secure endpoint. More...
 
int DLL_C_PACLIENT ApplicationStart (PVOID client, PVOID configuration, PVOID binary, PVOID keys)
 Starts the PreEmptive Analytics client. More...
 
void DLL_C_PACLIENT ApplicationStop (PVOID client, PVOID binary, PVOID keys)
 Stops the PreEmptive Analytics client. More...
 
PVOID DLL_C_PACLIENT CreateBinaryInfo (void)
 Create an empty BinaryInfo instance. More...
 
PVOID DLL_C_PACLIENT CreateClient (void)
 Create a new client instance. More...
 
PVOID DLL_C_PACLIENT CreateConfiguration (void)
 Create a new default configuration instance. More...
 
PVOID DLL_C_PACLIENT CreateConfigurationCustomFieldLimiter (PVOID fieldLimiter)
 Create a new default configuration instance. More...
 
PVOID DLL_C_PACLIENT CreateConfigurationCustomFlowController (PVOID flowController)
 Create a new default configuration instance. More...
 
PVOID DLL_C_PACLIENT CreateCustomConfiguration (PVOID flowController, PVOID fieldLimiter)
 Create a new default configuration instance. More...
 
PVOID DLL_C_PACLIENT CreateExceptionInfo ()
 Create a new description for an exception. More...
 
PVOID DLL_C_PACLIENT CreateExtendedKeys (void)
 Create a new set of keys. More...
 
PVOID DLL_C_PACLIENT CreateFieldLimiter (void)
 Create an empty FieldLimiter. More...
 
PVOID DLL_C_PACLIENT CreateFlowController (void)
 Create a default FlowController. More...
 
void DLL_C_PACLIENT DeleteBinaryInfo (PVOID binary)
 Dispose of a BinaryInfo instance. More...
 
void DLL_C_PACLIENT DeleteClient (PVOID client)
 Delete the specified client instance. More...
 
void DLL_C_PACLIENT DeleteConfiguration (PVOID configuration)
 Dispose of a configuration instance. More...
 
void DLL_C_PACLIENT DeleteExceptionInfo (PVOID exception)
 
void DLL_C_PACLIENT DeleteExtendedKeys (PVOID keys)
 Dispose of a set of keys. More...
 
void DLL_C_PACLIENT DeleteFieldLimiter (PVOID fieldLimiter)
 Dispose of a FieldLimiter instance. More...
 
void DLL_C_PACLIENT DeleteFlowController (PVOID flowController)
 Dispose of a FlowController instance. More...
 
void DLL_C_PACLIENT ExpirationWarningEvent (PVOID client, const wchar_t *id, const wchar_t *session, PVOID binary, PVOID keys)
 An expiriation warning message is created and is sent to the server. More...
 
void DLL_C_PACLIENT ExpiredEvent (PVOID client, const wchar_t *id, const wchar_t *session, PVOID binary, PVOID keys)
 An expiriation message is created and is sent to the server. More...
 
void DLL_C_PACLIENT FeatureStart (PVOID client, const wchar_t *name, const wchar_t *session, PVOID binary, PVOID keys)
 A feature start message is created and sent to the server. More...
 
void DLL_C_PACLIENT FeatureStop (PVOID client, const wchar_t *name, const wchar_t *session, PVOID binary, PVOID keys)
 A feature stop message is created and sent to the server. More...
 
void DLL_C_PACLIENT FeatureTick (PVOID client, const wchar_t *name, const wchar_t *session, PVOID binary, PVOID keys)
 A feature tick message is created and sent to the server. More...
 
void DLL_C_PACLIENT FieldLimiterAddLimit (PVOID fieldLimiter, const wchar_t *tag, const wchar_t *attribute, size_t limit)
 Add a limit value to a tag's attribute. More...
 
size_t DLL_C_PACLIENT FieldLimiterGetLimit (PVOID fieldLimiter, const wchar_t *tag, const wchar_t *attribute)
 Get a limit value for a tag's attribute. More...
 
void DLL_C_PACLIENT FieldLimiterRemoveLimit (PVOID fieldLimiter, const wchar_t *tag, const wchar_t *attribute)
 Remove a limit value to a tag's attribute. More...
 
PVOID DLL_C_PACLIENT GetDefaultFieldLimiter (void)
 Create a FieldLimiter with default limits. More...
 
PVOID DLL_C_PACLIENT GetDefaultSession (PVOID client)
 Returns the default session ID. More...
 
PVOID DLL_C_PACLIENT GetMessageGroup (PVOID client)
 Returns the message group ID. More...
 
int DLL_C_PACLIENT IsApplicationStarted (PVOID client)
 Has ApplicationStart() been successfully called? More...
 
PVOID DLL_C_PACLIENT pa_wchar_str (char *str)
 Utility function to convert char* to wchar_t*. More...
 
void DLL_C_PACLIENT PerformanceProbe (PVOID client, const wchar_t *name, const wchar_t *session, PVOID binary, PVOID keys)
 A performance probe message is created using the FullData option setting and is sent to the server. More...
 
void DLL_C_PACLIENT ReportException (PVOID client, PVOID exception, const wchar_t *session, PVOID binary, PVOID keys, BOOL report_appcomponents)
 An exception report is sent to the server. More...
 
void DLL_C_PACLIENT SendMessages (PVOID client)
 Request that queued data should be transmitted to the server immediately. More...
 
void DLL_C_PACLIENT SessionStart (PVOID client, const wchar_t *session, PVOID binary, PVOID keys)
 A session start message is created and sent to server. More...
 
void DLL_C_PACLIENT SessionStop (PVOID client, const wchar_t *session, PVOID binary, PVOID keys)
 A session stop message is created and sent to server. More...
 
void DLL_C_PACLIENT SetApplicationID (PVOID configuration, const wchar_t *id)
 Set the ID for your application. More...
 
void DLL_C_PACLIENT SetApplicationInstanceID (PVOID configuration, const wchar_t *id)
 Sets an identifier for the installed instance of your application. More...
 
void DLL_C_PACLIENT SetApplicationName (PVOID configuration, const wchar_t *name)
 Set the name of your application. More...
 
void DLL_C_PACLIENT SetApplicationType (PVOID configuration, const wchar_t *type)
 Set the type for your application. More...
 
void DLL_C_PACLIENT SetApplicationVersion (PVOID configuration, const wchar_t *version)
 Set the version for your application. More...
 
void DLL_C_PACLIENT SetBinaryInfoClassName (PVOID binary, const wchar_t *className)
 Set the class name of an invoking method. More...
 
void DLL_C_PACLIENT SetBinaryInfoID (PVOID binary, const wchar_t *id)
 Sets the ID, a GUID, used to identify the module. More...
 
void DLL_C_PACLIENT SetBinaryInfoMethodName (PVOID binary, const wchar_t *methodName)
 Set the method name of an invoking method. More...
 
void DLL_C_PACLIENT SetBinaryInfoModifiedDate (PVOID binary, unsigned long long modifiedDate)
 Set the modification time for the module. More...
 
void DLL_C_PACLIENT SetBinaryInfoName (PVOID binary, const wchar_t *name)
 Set the name used to identify the module. More...
 
void DLL_C_PACLIENT SetBinaryInfoVersion (PVOID binary, const wchar_t *version)
 Set the version of the module. More...
 
void DLL_C_PACLIENT SetCompanyID (PVOID configuration, const wchar_t *id)
 Set the ID for the company. More...
 
void DLL_C_PACLIENT SetCompanyName (PVOID configuration, const wchar_t *name)
 Set the name for the company. More...
 
void DLL_C_PACLIENT SetConfigurationFlags (PVOID configuration, unsigned long flags)
 Set the Configuration object's Flags member. More...
 
void DLL_C_PACLIENT SetDefaultIDs (PVOID configuration, const wchar_t *messageGroup, const wchar_t *session)
 Set the message group and default session ID. More...
 
void DLL_C_PACLIENT SetEndpointLocation (PVOID configuration, const wchar_t *location)
 Set the server location where messages will be sent. More...
 
void DLL_C_PACLIENT SetEndpointTimeout (PVOID configuration, long timeout)
 Set the timeout used when sending of messages to the server. More...
 
void DLL_C_PACLIENT SetEndpointUseSSL (PVOID configuration, int useSSL)
 Sets SSL for the sending of messages to the server. More...
 
void DLL_C_PACLIENT SetExceptionInfoEventType (PVOID exception, int eventType)
 Set the event type of the exception being described. More...
 
void DLL_C_PACLIENT SetExceptionInfoMessage (PVOID exception, const wchar_t *message)
 Set the message associated with the exception. More...
 
void DLL_C_PACLIENT SetExceptionInfoType (PVOID exception, const wchar_t *type)
 Set the type or class of the exception being described. More...
 
void DLL_C_PACLIENT SetExceptionInfoUserComment (PVOID exception, const wchar_t *comment)
 Set the user provided comment. More...
 
void DLL_C_PACLIENT SetExceptionInfoUserContact (PVOID exception, const wchar_t *contact)
 Set the user contact information. More...
 
void DLL_C_PACLIENT SetFlowControllerGain (PVOID flowController, int value)
 Set the rate at which the interval should be changed in relation to the rate of messages. More...
 
void DLL_C_PACLIENT SetFlowControllerHighWater (PVOID flowController, int value)
 Set the point at which queued messages should be batched and transmitted. More...
 
void DLL_C_PACLIENT SetFlowControllerMaximumBatchSize (PVOID flowController, int value)
 Set the maximum size a message batch can be, in bytes. If a batch exceeds this value it will be split into multiple batches. If a single message exceeds this size, it will be discarded. More...
 
void DLL_C_PACLIENT SetFlowControllerMaximumInterval (PVOID flowController, int value)
 Sets the maximum amount of time that the transmitter should wait between checking the message queue. More...
 
void DLL_C_PACLIENT SetFlowControllerMaximumSequentialFailureCount (PVOID flowController, int value)
 Set the maximum number of sequential transmission failures before transmissions should be skipped. More...
 
void DLL_C_PACLIENT SetFlowControllerMinimumFailureCount (PVOID flowController, int value)
 Set the number of transmission attempts before a message is considered for deletion. More...
 
void DLL_C_PACLIENT SetFlowControllerMinimumInterval (PVOID flowController, int value)
 Set the minimum amount of time that the transmitter should wait between checking the message queue. More...
 
void DLL_C_PACLIENT SetFlowControllerMinimumTimeToLive (PVOID flowController, int value)
 Set the time in seconds a message has been persisted before a message is considered for deletion. More...
 
void DLL_C_PACLIENT SetFlowControllerQueueSize (PVOID flowController, int value)
 Set the maximum number of messages that can be held in the queue. More...
 
void DLL_C_PACLIENT SetFlowControllerQuietGain (PVOID flowController, int value)
 Set the rate at which the interval should be changed when the queue is empty. More...
 
void DLL_C_PACLIENT SetFlowControllerRetryTimeout (PVOID flowController, int value)
 Set the number of milliseconds to wait before allowing transmissions after a series of sequential failures. More...
 
void DLL_C_PACLIENT SetFullData (PVOID configuration, int fullData)
 Set the retrieval of analytics data that may take a while to gather. More...
 
void DLL_C_PACLIENT SetInitialOptIn (PVOID configuration, int optIn)
 Set the initial opt-in value for analytics gathering. More...
 
void DLL_C_PACLIENT SetInitialSendDisabled (PVOID configuration, int sendDisabled)
 Temporarily prevent the sending of messages to the server. More...
 
void DLL_C_PACLIENT SetLogLevel (PVOID client, int level)
 Controls the level of logging performed by the PAClient. More...
 
void DLL_C_PACLIENT SetOffline (PVOID configuration, int offline)
 Set the state of connection to the server. More...
 
void DLL_C_PACLIENT SetOmitPersonalInfo (PVOID configuration, int omitPersonalInfo)
 Set the hidding of personal information. More...
 
void DLL_C_PACLIENT SetOptIn (PVOID client, int optIn)
 Allow the user of the application to control if analytics data is gathered. More...
 
void DLL_C_PACLIENT SetSendDisabled (PVOID client, int sendDisabled)
 Prevent or allow messages to be sent to the server or stored locally. More...
 
void DLL_C_PACLIENT SetSupportOfflineStorage (PVOID configuration, int supportOfflineStorage)
 Set whether messages that cannot be immediately sent to the server are stored for later transmission. More...
 
void DLL_C_PACLIENT SystemProfile (PVOID client, const wchar_t *session, PVOID binary, PVOID keys)
 A system profile message is created using the FullData and OmitPersonalInfo option settings and sent to the server. More...
 
void DLL_C_PACLIENT TamperEvent (PVOID client, const wchar_t *session, PVOID binary, PVOID keys)
 A tamper notification message is created and is sent to the server. More...
 

Detailed Description

Header file for the C interface to PreEmptive Analytics methods.

The functions in this header file are the C interface to the PreEmptive Analytics methods. These functions are exported from the DLL and can be called by either by C functions or invoked from other high-level languages.

Macro Definition Documentation

#define EXCEPTION_EVENT_CAUGHT   100

Indicates that the described exception was caught.

See Also
SetEventType(int)
SetExcepitonInfoEventType()
ExceptionInfo::EVENT_CAUGHT
#define EXCEPTION_EVENT_THROWN   300

Indicates that the described exception was being thrown.

See Also
SetEventType(int)
SetExcepitonInfoEventType()
ExceptionInfo::EVENT_THROWN
#define EXCEPTION_EVENT_UNCAUGHT   200

Indicates that the described exception was not handled by the application.

See Also
SetEventType(int)
SetExcepitonInfoEventType()
ExceptionInfo::EVENT_UNCAUGHT
#define LOG_LEVEL_ERROR   300

Indicates that only Error messages should be logged.

See Also
SetLogLevel(int)
SetLogLevel()
PAClient::LOG_ERROR
#define LOG_LEVEL_INFO   100

Indicates that Error, Warning, and Information messages should be logged.

See Also
SetLogLevel(int)
SetLogLevel()
PAClient::LOG_INFO
#define LOG_LEVEL_WARN   200

Indicates that Error and Warning messages should be logged.

See Also
SetLogLevel(int)
SetLogLevel()
PAClient::LOG_WARN

Typedef Documentation

typedef int BOOL
typedef void* PVOID

Function Documentation

void DLL_C_PACLIENT AddCustomHeader ( PVOID  configuration,
const wchar_t *  header,
const wchar_t *  value 
)

Add a custom HTTP header to the configuration.

Note: All headers are prepended with "X-RI-Custom-" when transmitted
See Also
KVList
Parameters
configurationa pointer to a Configuration instance.
See Also
Configuration::CustomHeaders
void DLL_C_PACLIENT AddExtendedKeysDouble ( PVOID  keys,
const wchar_t *  key,
double  value 
)

Add a double value to the keys.

If a key with the same name already exists in the set it will be replaced.
Parameters
keythe name for the key. If null or blank then nothing will be added.
valuethe value to associated with key
keysa pointer to an ExtendedKeys instance.
See Also
ExtendedKeys::Add(const wchar_t* key, double value)
void DLL_C_PACLIENT AddExtendedKeysFloat ( PVOID  keys,
const wchar_t *  key,
float  value 
)

Add a floating point value to the keys.

If a key with the same name already exists in the set it will be replaced.
Parameters
keythe name for the key. If null or blank then nothing will be added.
valuethe value to associated with key
keysa pointer to an ExtendedKeys instance.
See Also
ExtendedKeys::Add(const wchar_t* key, float value)
void DLL_C_PACLIENT AddExtendedKeysInt ( PVOID  keys,
const wchar_t *  key,
int  value 
)

Add a integer value to the keys.

If a key with the same name already exists in the set it will be replaced.
Parameters
keythe name for the key. If null or blank then nothing will be added.
valuethe value to associated with key
keysa pointer to an ExtendedKeys instance.
See Also
ExtendedKeys::Add(const wchar_t* key, int value)
void DLL_C_PACLIENT AddExtendedKeysLong ( PVOID  keys,
const wchar_t *  key,
long  value 
)

Add a long integer value to the keys.

If a key with the same name already exists in the set it will be replaced.
Parameters
keythe name for the key. If null or blank then nothing will be added.
valuethe value to associated with key
keysa pointer to an ExtendedKeys instance.
See Also
ExtendedKeys::Add(const wchar_t* key, long value)
void DLL_C_PACLIENT AddExtendedKeysString ( PVOID  keys,
const wchar_t *  key,
const wchar_t *  value 
)

Add a string value to the keys.

If a key with the same name already exists in the set it will be replaced.
Parameters
keythe name for the key. If null or blank then nothing will be added.
valuethe value to associated with key
keysa pointer to an ExtendedKeys instance.
See Also
ExtendedKeys::Add(const wchar_t* key, const wchar_t* value)
void DLL_C_PACLIENT AddSSLCertificate ( PVOID  configuration,
const wchar_t *  certificate 
)

Add a SSL certificate to be used for SSL verification.

Parameters
configurationa pointer to a Configuration Instance
certificatethe SSL certificate in PEM format.
void DLL_C_PACLIENT AddSSLCertificateStore ( PVOID  configuration,
const wchar_t *  path 
)

Adds a path to the list of potential SSL certificate stores for the sending of messages to the secure endpoint.

Windows: Not used, OS level certificate store is always used. Linux: If not found, certain well known defaults will be tried.
Parameters
configurationa pointer to a Configuration Instance
pathpath to the certificate store
int DLL_C_PACLIENT ApplicationStart ( PVOID  client,
PVOID  configuration,
PVOID  binary,
PVOID  keys 
)

Starts the PreEmptive Analytics client.

Before the client system has been started any attempts to send messages of any type are ignored. If the client system is running, i.e. ApplicationStart() has previously been called and ApplicationStop() not yet called, then the start request is ignored.
Parameters
configurationa non-null Configuraiton instance used to define the configuration of the PAClient.
binaryan optional BinaryInfo instance used to send additional information about the caller of the method to the PreEmptive Analytics server.
keysan optional ExtendedKeys instance used to send additional information to the PreEmptive Analytics server.
Returns
true if the request was accepted an the PreEmptive Analytics client is now running
C Version
Non-zero if the request was accepted and the PreEmptive Analytics client is now running
See Also
PAClient::ApplicationStart()
void DLL_C_PACLIENT ApplicationStop ( PVOID  client,
PVOID  binary,
PVOID  keys 
)

Stops the PreEmptive Analytics client.

This method halts the client system and releases all connections and resources used by it. To continue interaction with the client system ApplicationStart() will need to be called again: all other requests to the PAClient will be ignored. If the client system is not currently running then the request is ignored.
Parameters
binaryan optional BinaryInfo instance used to send additional information about the caller of the method to the PreEmptive Analytics server.
keysan optional ExtendedKeys instance used to send additional information to the PreEmptive Analytics server.
See Also
PAClient::ApplicationStop()
PVOID DLL_C_PACLIENT CreateBinaryInfo ( void  )

Create an empty BinaryInfo instance.

Creates a new instance will default values. All strings are blank and numeric values are zero.
Returns
a pointer to a BinaryInfo instance.
See Also
BinaryInfo::BinaryInfo()
PVOID DLL_C_PACLIENT CreateClient ( void  )

Create a new client instance.

PVOID DLL_C_PACLIENT CreateConfiguration ( void  )

Create a new default configuration instance.

Parameters
aFlowController instance that is provided by the user.
aFieldLimiter instance that is provided by the user.
Returns
a pointer to a Configuration instance.
See Also
Configuration::Configuration()
PVOID DLL_C_PACLIENT CreateConfigurationCustomFieldLimiter ( PVOID  fieldLimiter)

Create a new default configuration instance.

Parameters
aFlowController instance that is provided by the user.
aFieldLimiter instance that is provided by the user.
Parameters
fieldLimitera pointer to a FieldLimiter instance.
Returns
a pointer to a Configuration instance.
See Also
Configuration::Configuration()
PVOID DLL_C_PACLIENT CreateConfigurationCustomFlowController ( PVOID  flowController)

Create a new default configuration instance.

Parameters
aFlowController instance that is provided by the user.
aFieldLimiter instance that is provided by the user.
Parameters
flowControllera pointer to a FlowController instance.
Returns
a pointer to a Configuration instance.
See Also
Configuration::Configuration()
PVOID DLL_C_PACLIENT CreateCustomConfiguration ( PVOID  flowController,
PVOID  fieldLimiter 
)

Create a new default configuration instance.

Parameters
aFlowController instance that is provided by the user.
aFieldLimiter instance that is provided by the user.
Parameters
flowControllera pointer to a FlowController instance.
fieldLimitera pointer to a FieldLimiter instance.
Returns
a pointer to a Configuration instance.
See Also
Configuration::Configuration()
PVOID DLL_C_PACLIENT CreateExceptionInfo ( )

Create a new description for an exception.

Creates a new instance will default values. All strings are blank and numeric values are zero. The default event type is EVENT_CAUGHT
Returns
a pointer to an ExceptionInfo instance
See Also
ExceptionInfo::ExceptionInfo()
PVOID DLL_C_PACLIENT CreateExtendedKeys ( void  )

Create a new set of keys.

Returns
an ExtendedKeys instance
See Also
ExtendedKeys::ExtendedKeys()
PVOID DLL_C_PACLIENT CreateFieldLimiter ( void  )

Create an empty FieldLimiter.

After a FieldLimiter has been created you can add limits by tag and attribute name using FieldLimiter::AddLimit()
Returns
an instance of FieldLimiter
See Also
FieldLimiter::FieldLimiter()
PVOID DLL_C_PACLIENT CreateFlowController ( void  )

Create a default FlowController.

The Default Flow Controller implementation uses the following values:
  • QueueSize - 30 messages
  • HighWater - 20 messages
  • MaximumInterval - 30 sec
  • MinimumInterval - 1 msec
  • Gain - 66
  • QuietGain - 33
  • MaximumSequentialFailureCount - 3
  • RetryTimeout - 60 sec
Other properties of the FlowController are overridden by settings in the Configuration object and need not be set before passing the instance to PAClient::ApplicationStart().
Returns
an instance of FlowController
See Also
FlowController::FlowController()
void DLL_C_PACLIENT DeleteBinaryInfo ( PVOID  binary)

Dispose of a BinaryInfo instance.

Deletes the prevously created instance.
Parameters
binarya pointer to a BinaryInfo instance.
See Also
BinaryInfo::~BinaryInfo()
void DLL_C_PACLIENT DeleteClient ( PVOID  client)

Delete the specified client instance.

void DLL_C_PACLIENT DeleteConfiguration ( PVOID  configuration)

Dispose of a configuration instance.

Parameters
configurationa pointer to a Configuration instance.
See Also
Configuration::~Configuration()
void DLL_C_PACLIENT DeleteExceptionInfo ( PVOID  exception)
Deletes the prevously created instance.
Parameters
exceptiona pointer to an ExceptionInfo instance
See Also
ExceptionInfo::~ExceptionInfo()
void DLL_C_PACLIENT DeleteExtendedKeys ( PVOID  keys)

Dispose of a set of keys.

Parameters
keysa pointer to an ExtendedKeys instance.
See Also
ExtendedKeys::~ExtendedKeys()
void DLL_C_PACLIENT DeleteFieldLimiter ( PVOID  fieldLimiter)

Dispose of a FieldLimiter instance.

Parameters
fieldLimitera pointer to a FieldLimiter instance.
See Also
FieldLimiter::~FieldLimiter()
void DLL_C_PACLIENT DeleteFlowController ( PVOID  flowController)

Dispose of a FlowController instance.

Parameters
flowControllera pointer to a FlowController instance.
See Also
FlowController::~FlowController()
void DLL_C_PACLIENT ExpirationWarningEvent ( PVOID  client,
const wchar_t *  id,
const wchar_t *  session,
PVOID  binary,
PVOID  keys 
)

An expiriation warning message is created and is sent to the server.

This method is used to send an message when the application has determined that its license is about to expired. If the client system is not currently running then the request is ignored.
Parameters
ida GUID; a GUID issued by PreEmptive Solutions that identifies the generator of the message. If not provided then an "empty" GUID is used.
sessiona GUID; the ID of the session. If not provided then the default session ID is used.
binaryan optional BinaryInfo instance used to send additional information about the caller of the method to the PreEmptive Analytics server.
keysan optional ExtendedKeys instance used to send additional information to the PreEmptive Analytics server.
See Also
PAClient::ExpirationWarningEvent()
void DLL_C_PACLIENT ExpiredEvent ( PVOID  client,
const wchar_t *  id,
const wchar_t *  session,
PVOID  binary,
PVOID  keys 
)

An expiriation message is created and is sent to the server.

This method is used to send an message when the application has determined that its license has expired. If the client system is not currently running then the request is ignored.
Parameters
ida GUID; a GUID issued by PreEmptive Solutions that identifies the generator of the message. If not provided then an "empty" GUID is used.
sessiona GUID; the ID of the session. If not provided then the default session ID is used.
binaryan optional BinaryInfo instance used to send additional information about the caller of the method to the PreEmptive Analytics server.
keysan optional ExtendedKeys instance used to send additional information to the PreEmptive Analytics server.
See Also
PAClient::ExpiredEvent()
void DLL_C_PACLIENT FeatureStart ( PVOID  client,
const wchar_t *  name,
const wchar_t *  session,
PVOID  binary,
PVOID  keys 
)

A feature start message is created and sent to the server.

A feature start indicates that an application feature has been started. If the client system is not currently running then the request is ignored. If name is not provided then the request is ignored.
Parameters
namea string; the name of the feature.
sessiona GUID; the ID of the session. If not provided then the default session ID is used.
binaryan optional BinaryInfo instance used to send additional information about the caller of the method to the PreEmptive Analytics server.
keysan optional ExtendedKeys instance used to send additional information to the PreEmptive Analytics server.
See Also
FeatureStop()
PAClient::FeatureStart()
void DLL_C_PACLIENT FeatureStop ( PVOID  client,
const wchar_t *  name,
const wchar_t *  session,
PVOID  binary,
PVOID  keys 
)

A feature stop message is created and sent to the server.

A feature stop indicates that a previously started application feature has been started. If the client system is not currently running then the request is ignored. If name is not provided then the request is ignored.
Parameters
namea string; the name of the feature.
sessiona GUID; the ID of the session. If not provided then the default session ID is used.
binaryan optional BinaryInfo instance used to send additional information about the caller of the method to the PreEmptive Analytics server.
keysan optional ExtendedKeys instance used to send additional information to the PreEmptive Analytics server.
See Also
FeatureStart()
PAClient::FeatureStop()
void DLL_C_PACLIENT FeatureTick ( PVOID  client,
const wchar_t *  name,
const wchar_t *  session,
PVOID  binary,
PVOID  keys 
)

A feature tick message is created and sent to the server.

A feature tick indicates that an application feature has been executed. If the client system is not currently running then the request is ignored. If name is not provided then the request is ignored.
Parameters
namea string; the name of the feature.
sessiona GUID; the ID of the session. If not provided then the default session ID is used.
binaryan optional BinaryInfo instance used to send additional information about the caller of the method to the PreEmptive Analytics server.
keysan optional ExtendedKeys instance used to send additional information to the PreEmptive Analytics server.
See Also
PAClient::FeatureTick()
void DLL_C_PACLIENT FieldLimiterAddLimit ( PVOID  fieldLimiter,
const wchar_t *  tag,
const wchar_t *  attribute,
size_t  limit 
)

Add a limit value to a tag's attribute.

If an attribute with the same name and tag already had a limit, its limit is replaced. A limit of 0 is consindered to be no limit.
Parameters
tagName of the tag to which the attribute belongs
attributeName of the attribute
limitMaximum length of the attribute's value transmitted
fieldLimitera pointer to a FieldLimiter instance.
See Also
FieldLimiter::AddLimit()
size_t DLL_C_PACLIENT FieldLimiterGetLimit ( PVOID  fieldLimiter,
const wchar_t *  tag,
const wchar_t *  attribute 
)

Get a limit value for a tag's attribute.

If an attribute with the same name and tag already had a limit, its limit is replaced. A limit of 0 is consindered to be no limit.
Parameters
tagName of the tag to which the attribute belongs
attributeName of the attribute
fieldLimitera pointer to a FieldLimiter instance.
See Also
FieldLimiter::GetLimit()
void DLL_C_PACLIENT FieldLimiterRemoveLimit ( PVOID  fieldLimiter,
const wchar_t *  tag,
const wchar_t *  attribute 
)

Remove a limit value to a tag's attribute.

Parameters
tagName of the tag to which the attribute belongs
attributeName of the attribute
fieldLimitera pointer to a FieldLimiter instance.
See Also
FieldLimiter::RemoveLimit()
PVOID DLL_C_PACLIENT GetDefaultFieldLimiter ( void  )

Create a FieldLimiter with default limits.

The limits used by default are based on requirements used by PreEmptive Analytics for TFS
Returns
An instance of FieldLimiter with PA-TFS required defaults
an instance of FieldLimiter
See Also
FieldLimiter::Defaults()
PVOID DLL_C_PACLIENT GetDefaultSession ( PVOID  client)

Returns the default session ID.

Used to retrieve the default session ID used for interoperability. This value can be passed to another PAClient implementation to instruct it to use this GUID as the default session ID.
Returns
the default session ID (a GUID). If the application is not running then null is returned.
See Also
PAClient::GetDefaultSession()
PVOID DLL_C_PACLIENT GetMessageGroup ( PVOID  client)

Returns the message group ID.

Used to retrieve the message grop ID used for interoperability. This value can be passed to another PAClient implementation to instruct it to use this GUID as the message group ID.
Returns
the message group ID (a GUID). If the application is not running then null is returned.
See Also
PAClient::GetMessageGroup()
int DLL_C_PACLIENT IsApplicationStarted ( PVOID  client)

Has ApplicationStart() been successfully called?

Returns
true if ApplicationStart() has been successfully called. false if ApplicationStart() has not been successfully called or ApplicationStop() has been called.
C Version
Non-zero if ApplicationStart() has been successfully called. Zero if ApplicationStart() has not been successfully called or ApplicationStop() has been called.
See Also
PAClient::IsApplicationStarted()
PVOID DLL_C_PACLIENT pa_wchar_str ( char *  str)

Utility function to convert char* to wchar_t*.

Parameters
pointerto a char array
Returns
pointer to wchar_t array
void DLL_C_PACLIENT PerformanceProbe ( PVOID  client,
const wchar_t *  name,
const wchar_t *  session,
PVOID  binary,
PVOID  keys 
)

A performance probe message is created using the FullData option setting and is sent to the server.

This method gathers performance related information while your application is executing.
Performance data collected includes:
  • CPU Utilization
  • Memory available
  • Memory used by current process
If the client system is not currently running then the request is ignored.
Parameters
namethe name for the location of the probe.
sessiona GUID; the ID of the session. If not provided then the default session ID is used.
binaryan optional BinaryInfo instance used to send additional information about the caller of the method to the PreEmptive Analytics server.
keysan optional ExtendedKeys instance used to send additional information to the PreEmptive Analytics server.
See Also
PAClient::PerformanceProbe()
void DLL_C_PACLIENT ReportException ( PVOID  client,
PVOID  exception,
const wchar_t *  session,
PVOID  binary,
PVOID  keys,
BOOL  report_appcomponents 
)

An exception report is sent to the server.

Parameters
exceptiona description of exception event
sessionA GUID; the ID of the session. If not provided then the default session ID is used.
binaryan optional BinaryInfo instance used to send additional information about the caller of the method to the PreEmptive Analytics server.
keysan optional ExtendedKeys instance used to send additional information to the PreEmptive Analytics server.
report_appcomponentsa boolean on if loaded modules should be reported on.
exceptiona pointer to an ExceptionInfo instance
See Also
PAClient::ReportException()
void DLL_C_PACLIENT SendMessages ( PVOID  client)

Request that queued data should be transmitted to the server immediately.

See Also
PAClient::SendMessages()
void DLL_C_PACLIENT SessionStart ( PVOID  client,
const wchar_t *  session,
PVOID  binary,
PVOID  keys 
)

A session start message is created and sent to server.

A session represents a particular set of interactions such as a user working with a web service. If your application does not have the concept of multiple sessions you do not need to use SessionStart() or SessionStop() and can pass in null for session IDs.
Parameters
sessiona GUID; the ID of the session that is starting.
binaryan optional BinaryInfo instance used to send additional information about the caller of the method to the PreEmptive Analytics server.
keysan optional ExtendedKeys instance used to send additional information to the PreEmptive Analytics server.
See Also
PAClient::SessionStart()
void DLL_C_PACLIENT SessionStop ( PVOID  client,
const wchar_t *  session,
PVOID  binary,
PVOID  keys 
)

A session stop message is created and sent to server.

A session represents a particular set of interactions such as a user working with a web service. If your application does not have the concept of multiple sessions you do not need to use SessionStart() or SessionStop() and can pass in null for session IDs.
Parameters
sessiona GUID; the ID of the session. If not provided then the default session ID is used.
binaryan optional BinaryInfo instance used to send additional information about the caller of the method to the PreEmptive Analytics server.
keysan optional ExtendedKeys instance used to send additional information to the PreEmptive Analytics server.
See Also
PAClient::SessionStop()
void DLL_C_PACLIENT SetApplicationID ( PVOID  configuration,
const wchar_t *  id 
)

Set the ID for your application.

Choose a GUID that will be used to identify your application on the server. This value should remain the same regardless of the version of your application- a separate version identifier can be defined.
Setting this value is required for PAClient::ApplicationStart() to succede.
Parameters
ida GUID that identifies your application.
See Also
SetApplicationVersion()
Parameters
configurationa pointer to a Configuration instance.
See Also
Configuration::SetApplicationID()
void DLL_C_PACLIENT SetApplicationInstanceID ( PVOID  configuration,
const wchar_t *  id 
)

Sets an identifier for the installed instance of your application.

This strings represents a particular install of the application. Typically a serial number or some other unique identifier set as the instance identifier. The instance identifier is a free form string.
Parameters
idan instance identifying string
configurationa pointer to a Configuration instance.
See Also
Configuration::SetApplicationInstanceID()
void DLL_C_PACLIENT SetApplicationName ( PVOID  configuration,
const wchar_t *  name 
)

Set the name of your application.

You can optionally supply the name of your application. If not supplied on the configuration it can be defined on the server.
Parameters
namethe name of the application.
configurationa pointer to a Configuration instance.
See Also
Configuration::SetApplicationName()
void DLL_C_PACLIENT SetApplicationType ( PVOID  configuration,
const wchar_t *  type 
)

Set the type for your application.

You can optionally supply a type to organize or identify your application. Examples: "Plug-in"; "Console". This is a free-form value.
Parameters
typethe type of the application.
configurationa pointer to a Configuration instance.
See Also
Configuration::SetApplicationType()
void DLL_C_PACLIENT SetApplicationVersion ( PVOID  configuration,
const wchar_t *  version 
)

Set the version for your application.

Although optional, setting a version for your application is recommended. The version string is a free form value.
Parameters
versionthe version string for your application.
configurationa pointer to a Configuration instance.
See Also
Configuration::SetApplicationVersion()
void DLL_C_PACLIENT SetBinaryInfoClassName ( PVOID  binary,
const wchar_t *  className 
)

Set the class name of an invoking method.

Object oriented languages can pass in the name of the class invoking the PAClient method. This value is optional.
Parameters
classNamea class name in the source language's format. className is free-form.
See Also
GetClassName()
Parameters
binarya pointer to a BinaryInfo instance.
See Also
BinaryInfo::SetClassName()
void DLL_C_PACLIENT SetBinaryInfoID ( PVOID  binary,
const wchar_t *  id 
)

Sets the ID, a GUID, used to identify the module.

This value is optional.
Parameters
idthe GUID used to identify the module. If not a valid GUID then the value is ignored.
See Also
GetID()
Parameters
binarya pointer to a BinaryInfo instance.
See Also
BinaryInfo::SetID()
void DLL_C_PACLIENT SetBinaryInfoMethodName ( PVOID  binary,
const wchar_t *  methodName 
)

Set the method name of an invoking method.

Object oriented languages can pass in the name of the method invoking the PAClient method. Non-object oriented language can use this to pass in the name of the invoking function. This value is optional.
Parameters
methodNamea method or function name in the source language's format. methodName is free-form.
See Also
GetMethodName()
Parameters
binarya pointer to a BinaryInfo instance.
See Also
BinaryInfo::SetMethodName()
void DLL_C_PACLIENT SetBinaryInfoModifiedDate ( PVOID  binary,
unsigned long long  modifiedDate 
)

Set the modification time for the module.

If the modification time of the module is known it can be sent to the server. The modification time is based on the number of milliseconds since midnight of Jan 1, 1970. This value is optional.
Parameters
modifiedDatenumber of milliseconds since midnight Jan 1, 1970 using the Gregorian calendar and UTC. Zero is used to indicate the date is not known.
See Also
GetModifiedDate()
GetModifiedDateString()
Parameters
binarya pointer to a BinaryInfo instance.
See Also
BinaryInfo::SetModifiedDate()
void DLL_C_PACLIENT SetBinaryInfoName ( PVOID  binary,
const wchar_t *  name 
)

Set the name used to identify the module.

This is a human readable identifier for the module such as "Logging.DLL" or "libprint.so". Do not include a version portion here: use SetVersion(). This value is optional.
Parameters
namea name for the module. name is free-form.
See Also
GetName()
Parameters
binarya pointer to a BinaryInfo instance.
See Also
BinaryInfo::SetName()
void DLL_C_PACLIENT SetBinaryInfoVersion ( PVOID  binary,
const wchar_t *  version 
)

Set the version of the module.

If the module's version is known it can be sent to the server. This is a free-form value, but a dotted version string is recommended. This value is optional.
Parameters
versiona version string. version is free-form.
See Also
GetVersion()
Parameters
binarya pointer to a BinaryInfo instance.
See Also
BinaryInfo::SetVersion()
void DLL_C_PACLIENT SetCompanyID ( PVOID  configuration,
const wchar_t *  id 
)

Set the ID for the company.

The ID for you company is assigned by PreEmptive Solutions. Please consult the information that came with your subscription information for the correct value.
Setting this value is required for PAClient::ApplicationStart() to succede.
Parameters
ida string representation of a GUID.
configurationa pointer to a Configuration instance.
See Also
Configuration::SetCompanyID()
void DLL_C_PACLIENT SetCompanyName ( PVOID  configuration,
const wchar_t *  name 
)

Set the name for the company.

Setting this value is optional.
Parameters
namethe name for the company.
configurationa pointer to a Configuration instance.
See Also
Configuration::SetCompanyName()
void DLL_C_PACLIENT SetConfigurationFlags ( PVOID  configuration,
unsigned long  flags 
)

Set the Configuration object's Flags member.

See Also
ConfigurationFlags.h
Parameters
configurationa pointer to a Configuration instance.
flagsComplete Flags value to set
See Also
Configuration::Flags
void DLL_C_PACLIENT SetDefaultIDs ( PVOID  configuration,
const wchar_t *  messageGroup,
const wchar_t *  session 
)

Set the message group and default session ID.

This is used for inter-op purposes and generally need not be set. If left unset default values will be determined. If values are set then the behavior of ApplicationStart and ApplicationStart requests is modified to allow the application start/stop boundry to be controlled a PAClient implemented in another language.
Parameters
messageGroupthe GUID for the message group or null.
sessionthe GUID for the default session or null.
Returns
true if the values were accepted
Parameters
configurationa pointer to a Configuration instance.
See Also
Configuration::SetDefaultIDs()
void DLL_C_PACLIENT SetEndpointLocation ( PVOID  configuration,
const wchar_t *  location 
)

Set the server location where messages will be sent.

This method is used when a custom endpoint has be defined for your company. If this is the case contact PreEmptive Solutions for details. It can also be used to route messages to a different destination for testing.
When left as blank or null a default value is choosen.
Parameters
locationa partial URL to the endpoint. It includes all portions except the protocol.
configurationa pointer to a Configuration instance.
See Also
Configuration::SetEndpointLocation()
void DLL_C_PACLIENT SetEndpointTimeout ( PVOID  configuration,
long  timeout 
)

Set the timeout used when sending of messages to the server.

This timeout is used to determine if the server has correctly received the messages. If the server does not respond in this time period the messages may be stored for later transmission.
Parameters
timeoutthe number of milliseconds for the timeout. Zero and negative values are ignored.
See Also
SetSupportOfflineStorage()
Parameters
configurationa pointer to a Configuration instance.
See Also
Configuration::SetEndpointTimeout()
void DLL_C_PACLIENT SetEndpointUseSSL ( PVOID  configuration,
int  useSSL 
)

Sets SSL for the sending of messages to the server.

The default is to always send messages using SSL.
Parameters
useSSLtrue indicates the messages will be sent using SSL.
configurationa pointer to a Configuration instance.
See Also
Configuration::SetUseSSL()
void DLL_C_PACLIENT SetExceptionInfoEventType ( PVOID  exception,
int  eventType 
)

Set the event type of the exception being described.

This describes the circumstances of the exceptional event.
Parameters
eventTypethe type of the event
See Also
EVENT_CAUGHT
EVENT_UNCAUGHT
EVENT_THROWN
Parameters
exceptiona pointer to an ExceptionInfo instance
See Also
ExceptionInfo::SetEventType()
EXCEPTION_EVENT_CAUGHT
EXCEPTION_EVENT_UNCAUGHT
EXCEPTION_EVENT_THROWN
void DLL_C_PACLIENT SetExceptionInfoMessage ( PVOID  exception,
const wchar_t *  message 
)

Set the message associated with the exception.

Typically the output of exception::what()
Parameters
messagethe message string associated with the exception.
exceptiona pointer to an ExceptionInfo instance
See Also
ExceptionInfo::SetMessage()
void DLL_C_PACLIENT SetExceptionInfoType ( PVOID  exception,
const wchar_t *  type 
)

Set the type or class of the exception being described.

Parameters
typetypically the name of the exception class
exceptiona pointer to an ExceptionInfo instance
See Also
ExceptionInfo::SetType()
void DLL_C_PACLIENT SetExceptionInfoUserComment ( PVOID  exception,
const wchar_t *  comment 
)

Set the user provided comment.

This may be used to collect information from the user to relate the circumstances surrounding the exception. The size of the comment is limited to 500 characters.
Parameters
commentthe user provide comment
exceptiona pointer to an ExceptionInfo instance
See Also
ExceptionInfo::SetUserComment()
void DLL_C_PACLIENT SetExceptionInfoUserContact ( PVOID  exception,
const wchar_t *  contact 
)

Set the user contact information.

This may be used to collect contact information for follow up to the reported exception. The size of the contact information is limited to 500 characters.
Parameters
contactuser provided contact information such as a customer name, email, phone number, etc.
exceptiona pointer to an ExceptionInfo instance
See Also
ExceptionInfo::SetUserContact()
void DLL_C_PACLIENT SetFlowControllerGain ( PVOID  flowController,
int  value 
)

Set the rate at which the interval should be changed in relation to the rate of messages.

This is an value greater than zero and represents a rate of change in the interval time. It works like a percentage: a value of 50 indicates that half the distance between the current interval and the desired interval should be applied. Values greater than 100 are allowed.
Setting a value greater than 100 allows the transmitter to anticipate bursts of messages. This can reduce the possibility of dropped messages but can cause the transmitter to wake frequently and send smaller batches of messages to the server.
Setting a value less than 100 lets the transmitter conservatively adjust its wait time. This lets the transmitter send full batches of messages to the server but can lead to dropped messages if they are produced in rapid bursts.
Parameters
valueThe rate at which the interval should be changed in relation to the rate of messages.
flowControllera pointer to a FlowController instance.
See Also
FlowController::SetGain()
void DLL_C_PACLIENT SetFlowControllerHighWater ( PVOID  flowController,
int  value 
)

Set the point at which queued messages should be batched and transmitted.

This value is set automatically when the queue size is set but can be set independently.
Parameters
valuethe point at which queued messages should be batched and transmitted. It must always be greater than or equal to one and less than the queue size.
flowControllera pointer to a FlowController instance.
See Also
FlowController::SetHighWater()
void DLL_C_PACLIENT SetFlowControllerMaximumBatchSize ( PVOID  flowController,
int  value 
)

Set the maximum size a message batch can be, in bytes. If a batch exceeds this value it will be split into multiple batches. If a single message exceeds this size, it will be discarded.

Parameters
minimumTimethe maximum size a message batch can be, in bytes.
flowControllera pointer to a FlowController instance.
See Also
FlowController::SetMaximumBatchSize()
void DLL_C_PACLIENT SetFlowControllerMaximumInterval ( PVOID  flowController,
int  value 
)

Sets the maximum amount of time that the transmitter should wait between checking the message queue.

Parameters
valuethe maximum amount of time that the transmitter should wait between checking the message queue in milliseconds
flowControllera pointer to a FlowController instance.
See Also
FlowController::SetMaximumInterval()
void DLL_C_PACLIENT SetFlowControllerMaximumSequentialFailureCount ( PVOID  flowController,
int  value 
)

Set the maximum number of sequential transmission failures before transmissions should be skipped.

If less than or equal to zero then failures do not cause transmissions to be skipped.
Parameters
valuethe number of sequential transmission failures before transmissions should be skipped.
flowControllera pointer to a FlowController instance.
See Also
FlowController::SetMaximumSequentialFailureCount()
void DLL_C_PACLIENT SetFlowControllerMinimumFailureCount ( PVOID  flowController,
int  value 
)

Set the number of transmission attempts before a message is considered for deletion.

Parameters
minimumFailuresthe number of transmission attempts a message is considered for deletion.
flowControllera pointer to a FlowController instance.
See Also
FlowController::SetMinimumFailureCount()
void DLL_C_PACLIENT SetFlowControllerMinimumInterval ( PVOID  flowController,
int  value 
)

Set the minimum amount of time that the transmitter should wait between checking the message queue.

Parameters
valuethe minimum amount of time that the transmitter should wait between checking the message queue in milliseconds.
flowControllera pointer to a FlowController instance.
See Also
FlowController::SetMinimumInterval()
void DLL_C_PACLIENT SetFlowControllerMinimumTimeToLive ( PVOID  flowController,
int  value 
)

Set the time in seconds a message has been persisted before a message is considered for deletion.

Parameters
minimumTimethe time in seconds a message has been persisted before a message is considered for deletion.
flowControllera pointer to a FlowController instance.
See Also
FlowController::SetMinimumTimeToLive()
void DLL_C_PACLIENT SetFlowControllerQueueSize ( PVOID  flowController,
int  value 
)

Set the maximum number of messages that can be held in the queue.

If more messages are placed in the queue then the queue can hold then oldest messages will be discarded rather than transmitted or stored.
Parameters
valuethe maximum number of messages that can be held in the queue. This value must always be greater than two.
flowControllera pointer to a FlowController instance.
See Also
FlowController::SetQueueSize()
void DLL_C_PACLIENT SetFlowControllerQuietGain ( PVOID  flowController,
int  value 
)

Set the rate at which the interval should be changed when the queue is empty.

This is similar to the way the gain works but is used when the previous interval has expired and there are no messages to be sent.
Setting smaller values lets the transmitter slowly reduce its wait time when responding to rapidly changing message frequency. This can reduce the possibility of dropped messages but can cause the transmitter to wake frequently and send smaller batches of messages to the server.
Setting larger values lets the transmitter quickly reduce its wait time after a burst of messages. This lets the transmitter send full batches of messages to the server but can lead to dropped messages if messages are produced in rapid bursts followed by quiet periods.
Parameters
valueThe rate at which the interval should be changed when the queue is empty. This value must be between one and 100.
flowControllera pointer to a FlowController instance.
See Also
FlowController::SetQuietGain()
void DLL_C_PACLIENT SetFlowControllerRetryTimeout ( PVOID  flowController,
int  value 
)

Set the number of milliseconds to wait before allowing transmissions after a series of sequential failures.

If less than or equal to zero then retries are never attempted.
Parameters
valuethe number of milliseconds to wait before allowing transmissions after a series of sequential failures.
flowControllera pointer to a FlowController instance.
See Also
FlowController::SetRetryTimeout()
void DLL_C_PACLIENT SetFullData ( PVOID  configuration,
int  fullData 
)

Set the retrieval of analytics data that may take a while to gather.

The gathering of some analytics data, typically information by PAClient::SystemProfile() and PAClient::PerformanceProbe(), can require some time that may slow an application. When set to false some data may be omitted or simpler forms of the data will be used.
Affected data varies by platform.
The default is to gather full data.
Parameters
fullDatatrue if data will be gathered regardless of the time it takes
configurationa pointer to a Configuration instance.
See Also
Configuration::SetFullData()
void DLL_C_PACLIENT SetInitialOptIn ( PVOID  configuration,
int  optIn 
)

Set the initial opt-in value for analytics gathering.

This value is the inital setting for the user opting-int to analytics gathering. Typically the opt-in state for an application is stored between runs and then passed in via this value.
The opt-in state can be changed at runtime by using PAClient::SetOptIn() The default initial opt-in value is true.
Parameters
optIntrue indicates the user is opting-in to analytics gathering.
configurationa pointer to a Configuration instance.
See Also
Configuration::SetOptIn()
void DLL_C_PACLIENT SetInitialSendDisabled ( PVOID  configuration,
int  sendDisabled 
)

Temporarily prevent the sending of messages to the server.

When send is disabled messaged will be queued in memory and will not be sent to the server or stored locally. Messages may be dropped if the queue reaches it maximum size.
Parameters
sendDisabledtrue to prevent messages to be sent, false to allow messages to be sent or stored.
See Also
PAClient::SetSendDisabled()
Parameters
configurationa pointer to a Configuration instance.
See Also
Configuration::SetSendDisabled()
void DLL_C_PACLIENT SetLogLevel ( PVOID  client,
int  level 
)

Controls the level of logging performed by the PAClient.

The PAClient may generate messages that will log information or exceptional conditions. By default only Error messages are logged. Use this method to control what items are logged.
Parameters
levelone of LOG_INFO, LOG_WARN, LOG_ERROR.
See Also
PAClient::SetLogLevel()
void DLL_C_PACLIENT SetOffline ( PVOID  configuration,
int  offline 
)

Set the state of connection to the server.

Parameters
configurationa pointer to a Configuration instance.
See Also
Configuration::SetOffline()
Parameters
configurationa pointer to a Configuration instance.
See Also
Configuration::SetOffline()
void DLL_C_PACLIENT SetOmitPersonalInfo ( PVOID  configuration,
int  omitPersonalInfo 
)

Set the hidding of personal information.

Some values returned by analytics gathering could be used to identify a particular device or user. Setting this value to true has the analytics gathering logic omit or mask information that could be used to identify the device or user.
Parameters
omitPersonalInfotrue if personal information should be hidden.
configurationa pointer to a Configuration instance.
See Also
Configuration::SetOmitPersonalInfo()
void DLL_C_PACLIENT SetOptIn ( PVOID  client,
int  optIn 
)

Allow the user of the application to control if analytics data is gathered.

This method allows the user to change the "opt-in" state of the applications analytics gathering at runtime. When the user has opted out of analytics gathering then requests to generate new messages are ignored. Messages that have already been gather and are stored in memory or in local storage will still be sent.
Parameters
optIntrue to allow analytics data to be gathered, or false to prevent it from being gathered.
See Also
PAClient::SetOptIn()
void DLL_C_PACLIENT SetSendDisabled ( PVOID  client,
int  sendDisabled 
)

Prevent or allow messages to be sent to the server or stored locally.

When send is disabled messaged will be queued in memory and will not be sent to the server or stored locally. Messages may be dropped if the queue reaches it maximum size.
Parameters
sendDisabledtrue to prevent messages to be sent, false to allow messages to be sent or stored.
See Also
PAClient::SetSendDisabled()
void DLL_C_PACLIENT SetSupportOfflineStorage ( PVOID  configuration,
int  supportOfflineStorage 
)

Set whether messages that cannot be immediately sent to the server are stored for later transmission.

Parameters
configurationa pointer to a Configuration instance.
See Also
Configuration::SetSupportOfflineStorage()
Parameters
configurationa pointer to a Configuration instance.
See Also
Configuration::SetSupportOfflineStorage()
void DLL_C_PACLIENT SystemProfile ( PVOID  client,
const wchar_t *  session,
PVOID  binary,
PVOID  keys 
)

A system profile message is created using the FullData and OmitPersonalInfo option settings and sent to the server.

This method gathers and send information about the system your application is running on.
The following kinds of system data is gathered:
  • Processors - Number of processors, clock speeds, manufacturer, and processor ID
  • Logical Disks - Number of logical disks, volume name, size, free space, file system
  • Memory - Speed, capacity
  • Network Adapters - IP address, MAC address
  • Domain - Domain name and role
  • Display - Name, refresh rate, vertical and horizontal resolution
  • Video - Name, memory size, color depth
  • Terminal Services - Connections allowed
  • Sound - Name, manufacturer
  • Modem - Model, device type
If the client system is not currently running then the request is ignored.
Parameters
sessiona GUID; the ID of the session. If not provided then the default session ID is used.
binaryan optional BinaryInfo instance used to send additional information about the caller of the method to the PreEmptive Analytics server.
keysan optional ExtendedKeys instance used to send additional information to the PreEmptive Analytics server.
See Also
PAClient::SystemProfile()
void DLL_C_PACLIENT TamperEvent ( PVOID  client,
const wchar_t *  session,
PVOID  binary,
PVOID  keys 
)

A tamper notification message is created and is sent to the server.

This method is used to send an temper message when the application has determined that it has been modified. If the client system is not currently running then the request is ignored.
Parameters
sessionA GUID; the ID of the session. If not provided then the default session ID is used.
binaryan optional BinaryInfo instance used to send additional information about the caller of the method to the PreEmptive Analytics server.
keysan optional ExtendedKeys instance used to send additional information to the PreEmptive Analytics server.
See Also
PAClient::TamperEvent()