subscriptionEngine.php
5.19 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
<?php
include("../../config/dmsDefaults.php");
if (checkSession()) {
require_once("$default->fileSystemRoot/lib/subscriptions/SubscriptionManager.inc");
require_once("$default->fileSystemRoot/lib/subscriptions/SubscriptionEngine.inc");
$oSubscriptionManager = new SubscriptionManager();
echo "<ul><li><b>create some test subscriptions for subscription firing testing</b></li>";
// add some subscriptions
$iFolderID = 1;
echo "<li>Creating folder subscriptions</li><ul>";
for ($tmpUserID = 1; $tmpUserID<=5; $tmpUserID++) {
if ($oSubscriptionManager->createSubscription($tmpUserID, $iFolderID, SubscriptionConstants::subscriptionType("FolderSubscription"))) {
echo "<li>created folder subscription folderID=$iFolderID for userID=$tmpUserID</li>";
} else {
echo "<li>folder subscription creation failed(" . $_SESSION["errorMessage"] . "): folderID=$iFolderID for userID=$tmpUserID</li>";
}
}
echo "</ul>";
$iDocumentID = 5;
echo "<li>Creating document subscriptions</li><ul>";
for ($tmpUserID = 6; $tmpUserID<=10; $tmpUserID++) {
if ($oSubscriptionManager->createSubscription($tmpUserID, $iDocumentID, SubscriptionConstants::subscriptionType("DocumentSubscription"))) {
echo "<li>created document subscription documentID=$iDocumentID for userID=$tmpUserID</li>";
} else {
echo "<li>document subscription creation failed(" . $_SESSION["errorMessage"] . "): documentID=$iDocumentID for userID=$tmpUserID</li>";
}
}
echo "</ul>";
// test subscription firing
echo "<li><b>Testing subscription firing</b></li><ul>";
require_once("../../phpSniff/phpTimer.class.php");
$timer = new phpTimer();
$iTotalCount = 0;
$timer->start('subscriptionFiring');
$timer->start('AddFolder');
$count = SubscriptionEngine::fireSubscription($iFolderID, SubscriptionConstants::subscriptionAlertType("AddFolder"),
SubscriptionConstants::subscriptionType("FolderSubscription"),
array( "newFolderName" => "Fictitious Folder",
"parentFolderName" => "Medical Research Council"));
$iTotalCount += $count;
$timer->stop('AddFolder');
$time = $timer->get_current('AddFolder');
echo "<li>AddFolder: processed alerts=$count; time=$time; subs/s=" . ($time/$count) . "</li>";
$timer->start('RemoveFolder');
$count = SubscriptionEngine::fireSubscription($iFolderID, SubscriptionConstants::subscriptionAlertType("RemoveFolder"),
SubscriptionConstants::subscriptionType("FolderSubscription"),
array( "removedFolderName" => "Fictitious Folder",
"parentFolderName" => "Medical Research Council"));
$iTotalCount += $count;
$timer->stop('RemoveFolder');
$time = $timer->get_current('RemoveFolder');
echo "<li>RemoveFolder: processed alerts=$count; time=$time; subs/s=" . ($time/$count) . "</li>";
$timer->start('AddDocument');
$count = SubscriptionEngine::fireSubscription($iFolderID, SubscriptionConstants::subscriptionAlertType("AddDocument"),
SubscriptionConstants::subscriptionType("FolderSubscription"),
array( "newDocumentName" => "Fictitious Document",
"folderName" => "Medical Research Council"));
$timer->stop('AddDocument');
$iTotalCount += $count;
$time = $timer->get_current('AddDocument');
echo "<li>AddDocument: processed alerts=$count; time=$time; subs/s=" . ($time/$count) . "</li>";
$timer->start('RemoveDocument');
$count = SubscriptionEngine::fireSubscription($iFolderID, SubscriptionConstants::subscriptionAlertType("RemoveDocument"),
SubscriptionConstants::subscriptionType("FolderSubscription"),
array( "removedDocumentName" => "Fictitious Document",
"folderName" => "Medical Research Council"));
$iTotalCount += $count;
$timer->stop('RemoveDocument');
$time = $timer->get_current('RemoveDocument');
echo "<li>RemoveDocument: processed alerts=$count; time=$time; subs/s=" . ($time/$count) . "</li>";
$timer->start('ModifyDocument');
$count = SubscriptionEngine::fireSubscription($iDocumentID, SubscriptionConstants::subscriptionAlertType("ModifyDocument"),
SubscriptionConstants::subscriptionType("DocumentSubscription"),
array( "modifiedDocumentName" => "dashboardBL.html"));
$iTotalCount += $count;
$timer->stop('ModifyDocument');
$time = $timer->get_current('ModifyDocument');
echo "<li>ModifyDocument: processed alerts=$count; time=$time; subs/s=" . ($time/$count) . "</li>";
$timer->stop('subscriptionFiring');
$time = $timer->get_current('subscriptionFiring');
echo "</ul><li><b>All Subscriptions: processed alerts=$iTotalCount; time=$time; subs/s=" . ($time/$iTotalCount) . "</b></li></ul>";
/*
// cleanup silently
for ($i = 1; $i<=10; $i++) {
if ($i<=5) {
$oSubscriptionManager->removeSubscription($i, $iFolderID, SubscriptionConstants::subscriptionType("FolderSubscription"));
} else {
$oSubscriptionManager->removeSubscription($i, $iDocumentID, SubscriptionConstants::subscriptionType("DocumentSubscription"));
}
}
*/
}
?>