ILIAS  trunk Revision v11.0_alpha-1744-gb0451eebef4
All Data Structures Namespaces Files Functions Variables Enumerations Enumerator Modules Pages
ilECSEventQueueReader Class Reference

Reads ECS events and stores them in the database. More...

+ Collaboration diagram for ilECSEventQueueReader:

Public Member Functions

 __construct (ilECSSetting $settings)
 Constructor. More...
 
 handleImportReset ()
 Reread all imported econtent. More...
 
 handleExportReset ()
 Handle export reset. More...
 
 getServer ()
 get server settings More...
 
 getEvents ()
 get all events More...
 
 deleteAll ()
 Delete all events. More...
 
 deleteAllEContentEvents (array $a_types)
 Delete all econtents. More...
 
 refresh ()
 Fetch events from fifo Using fifo. More...
 
 delete ()
 Delete by server id. More...
 
 shift ()
 get and delete the first event entry More...
 
 add (string $a_type, int $a_id, string $a_op)
 add More...
 
 deleteEvent (int $a_event_id)
 delete More...
 

Static Public Member Functions

static getAllEContentTypes ()
 All available content types. More...
 
static deleteByServerId (int $a_server_id)
 

Data Fields

const TYPE_EXPORTED = 'exported'
 
const TYPE_DIRECTORY_TREES = 'directory_trees'
 
const TYPE_CMS_COURSES = 'courses'
 
const TYPE_CMS_COURSE_MEMBERS = 'course_members'
 
const TYPE_REMOTE_COURSE = 'rcrs'
 
const TYPE_REMOTE_CATEGORY = 'rcat'
 
const TYPE_REMOTE_FILE = 'rfil'
 
const TYPE_REMOTE_GLOSSARY = 'rglo'
 
const TYPE_REMOTE_GROUP = 'rgrp'
 
const TYPE_REMOTE_LEARNING_MODULE = 'rlm'
 
const TYPE_REMOTE_WIKI = 'rwik'
 
const TYPE_REMOTE_TEST = 'rtst'
 
const TYPE_COURSE_URLS = 'course_urls'
 
const TYPE_ENROLMENT_STATUS = 'member_status'
 

Protected Member Functions

 deleteAllExportedEvents ()
 Delete all exported events. More...
 

Static Protected Member Functions

static getEventTypeFromObjectType (string $a_obj_type)
 Convert object type to event type. More...
 
static getAllResourceIds (ilECSSetting $server, array $a_types, bool $a_sender_only=false)
 Get all resource ids by resource type. More...
 

Protected Attributes

array $events = array()
 
array $econtent_ids = array()
 

Private Member Functions

 writeEventToDB (ilECSEvent $ev)
 Write event to db. More...
 
 update (string $a_type, int $a_id, string $a_operation)
 update one entry More...
 
 read ()
 Read. More...
 

Private Attributes

ilLogger $logger
 
ilDBInterface $db
 
ilECSSetting $settings
 

Detailed Description

Reads ECS events and stores them in the database.

Author
Stefan Meyer meyer.nosp@m.@lei.nosp@m.fos.c.nosp@m.om

Definition at line 26 of file class.ilECSEventQueueReader.php.

Constructor & Destructor Documentation

◆ __construct()

ilECSEventQueueReader::__construct ( ilECSSetting  $settings)

Constructor.

public

Definition at line 55 of file class.ilECSEventQueueReader.php.

References $DIC, $settings, ILIAS\Repository\logger(), read(), and ILIAS\Repository\settings().

56  {
57  global $DIC;
58 
59  $this->logger = $DIC->logger()->wsrv();
60  $this->db = $DIC->database();
61 
62  $this->settings = $settings;
63  $this->read();
64  }
global $DIC
Definition: shib_login.php:22
+ Here is the call graph for this function:

Member Function Documentation

◆ add()

ilECSEventQueueReader::add ( string  $a_type,
int  $a_id,
string  $a_op 
)

add

Definition at line 445 of file class.ilECSEventQueueReader.php.

References getServer().

Referenced by handleImportReset().

445  : bool
446  {
447  $next_id = $this->db->nextId('ecs_events');
448  $query = "INSERT INTO ecs_events (event_id,type,id,op,server_id) " .
449  "VALUES (" .
450  $this->db->quote($next_id, 'integer') . ", " .
451  $this->db->quote($a_type, 'text') . ", " .
452  $this->db->quote($a_id, 'integer') . ", " .
453  $this->db->quote($a_op, 'text') . ", " .
454  $this->db->quote($this->getServer()->getServerId(), 'integer') . ' ' .
455  ")";
456  $this->db->manipulate($query);
457 
458  $new_event['event_id'] = $next_id;
459  $new_event['type'] = $a_type;
460  $new_event['id'] = $a_id;
461  $new_event['op'] = $a_op;
462 
463  $this->events[] = $new_event;
464  $this->econtent_ids[$a_id] = $a_id;
465  return true;
466  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ delete()

ilECSEventQueueReader::delete ( )

Delete by server id.

Definition at line 306 of file class.ilECSEventQueueReader.php.

References getServer().

306  : void
307  {
308  $query = 'DELETE FROM ecs_events ' .
309  'WHERE server_id = ' . $this->db->quote($this->getServer()->getServerId(), 'integer');
310  $this->db->manipulate($query);
311  }
+ Here is the call graph for this function:

◆ deleteAll()

ilECSEventQueueReader::deleteAll ( )

Delete all events.

Definition at line 237 of file class.ilECSEventQueueReader.php.

References ILIAS\Repository\settings().

237  : bool
238  {
239  $query = "DELETE FROM ecs_events " .
240  'WHERE server_id = ' . $this->db->quote($this->settings->getServerId(), 'integer');
241  $this->db->manipulate($query);
242  return true;
243  }
+ Here is the call graph for this function:

◆ deleteAllEContentEvents()

ilECSEventQueueReader::deleteAllEContentEvents ( array  $a_types)

Delete all econtents.

Definition at line 248 of file class.ilECSEventQueueReader.php.

References getServer().

Referenced by handleImportReset().

248  : bool
249  {
250  $query = "DELETE FROM ecs_events " .
251  "WHERE " . $this->db->in("type", $a_types, false, "text") . ' ' .
252  'AND server_id = ' . $this->db->quote($this->getServer()->getServerId(), 'integer');
253  $this->db->manipulate($query);
254  return true;
255  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ deleteAllExportedEvents()

ilECSEventQueueReader::deleteAllExportedEvents ( )
protected

Delete all exported events.

Definition at line 260 of file class.ilECSEventQueueReader.php.

References getServer().

Referenced by handleExportReset().

260  : bool
261  {
262  $query = "DELETE FROM ecs_events " .
263  "WHERE type = " . $this->db->quote(self::TYPE_EXPORTED, 'text') . ' ' .
264  'AND server_id = ' . $this->db->quote($this->getServer()->getServerId(), 'integer');
265  $this->db->manipulate($query);
266  return true;
267  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ deleteByServerId()

static ilECSEventQueueReader::deleteByServerId ( int  $a_server_id)
static

Definition at line 517 of file class.ilECSEventQueueReader.php.

References $DIC, and $ilDB.

517  : bool
518  {
519  global $DIC;
520 
521  $ilDB = $DIC['ilDB'];
522 
523  $query = 'DELETE FROM ecs_events' .
524  ' WHERE server_id = ' . $ilDB->quote($a_server_id, 'integer');
525  $ilDB->manipulate($query);
526  return true;
527  }
global $DIC
Definition: shib_login.php:22

◆ deleteEvent()

ilECSEventQueueReader::deleteEvent ( int  $a_event_id)

delete

Definition at line 484 of file class.ilECSEventQueueReader.php.

References getServer().

484  : bool
485  {
486  $query = "DELETE FROM ecs_events " .
487  "WHERE event_id = " . $this->db->quote($a_event_id, 'integer') . " " .
488  'AND server_id = ' . $this->db->quote($this->getServer()->getServerId(), 'integer');
489  $this->db->manipulate($query);
490  unset($this->econtent_ids[$a_event_id]);
491  return true;
492  }
+ Here is the call graph for this function:

◆ getAllEContentTypes()

static ilECSEventQueueReader::getAllEContentTypes ( )
static

All available content types.

Definition at line 78 of file class.ilECSEventQueueReader.php.

78  : array
79  {
80  return array(self::TYPE_REMOTE_COURSE, self::TYPE_REMOTE_CATEGORY,
81  self::TYPE_REMOTE_FILE, self::TYPE_REMOTE_GLOSSARY, self::TYPE_REMOTE_GROUP,
82  self::TYPE_REMOTE_LEARNING_MODULE, self::TYPE_REMOTE_WIKI, self::TYPE_REMOTE_TEST);
83  }

◆ getAllResourceIds()

static ilECSEventQueueReader::getAllResourceIds ( ilECSSetting  $server,
array  $a_types,
bool  $a_sender_only = false 
)
staticprotected

Get all resource ids by resource type.

Parameters
ilECSSetting$server
string[]$a_types
bool$a_sender_only
Returns
array{int,int[]} type => ids

Definition at line 93 of file class.ilECSEventQueueReader.php.

References ilRemoteObjectBase\getInstanceByEventType().

93  : array
94  {
95  $list = array();
96  foreach ($a_types as $type) {
98  if ($robj) {
99  $list[$type] = $robj->getAllResourceIds($server, $a_sender_only);
100  }
101  }
102 
103  return $list;
104  }
static getInstanceByEventType(string $a_type)
Get instance by ilECSEvent(QueueReader) type.
+ Here is the call graph for this function:

◆ getEvents()

ilECSEventQueueReader::getEvents ( )

get all events

Definition at line 229 of file class.ilECSEventQueueReader.php.

229  : array
230  {
231  return $this->events ?: array();
232  }

◆ getEventTypeFromObjectType()

static ilECSEventQueueReader::getEventTypeFromObjectType ( string  $a_obj_type)
staticprotected

Convert object type to event type.

Definition at line 69 of file class.ilECSEventQueueReader.php.

69  : string
70  {
71  // currently they are the same for all resource types
72  return $a_obj_type;
73  }

◆ getServer()

ilECSEventQueueReader::getServer ( )

get server settings

Definition at line 220 of file class.ilECSEventQueueReader.php.

References $settings.

Referenced by add(), delete(), deleteAllEContentEvents(), deleteAllExportedEvents(), deleteEvent(), read(), refresh(), and writeEventToDB().

220  : \ilECSSetting
221  {
222  return $this->settings;
223  }
+ Here is the caller graph for this function:

◆ handleExportReset()

ilECSEventQueueReader::handleExportReset ( )

Handle export reset.

Delete exported econtent and create it again

Exceptions
ilException,ilECSConnectorException

Definition at line 183 of file class.ilECSEventQueueReader.php.

References deleteAllExportedEvents(), ilECSExportManager\getInstance(), ILIAS\Repository\logger(), and ILIAS\Repository\settings().

183  : bool
184  {
185  // Delete all export events
186 
187  $this->deleteAllExportedEvents();
188 
189  // Read all local export info
190  $exportManager = ilECSExportManager::getInstance();
191  $local_econtent_ids = $exportManager->_getAllEContentIds($this->settings->getServerId());
192 
193  $types = self::getAllEContentTypes();
194  $list = self::getAllResourceIds($this->settings, $types, true);
195 
196 
197  // merge in one array
198  $all_remote_ids = [];
199  foreach ($list as $resource_type => $remote_ids) {
200  $all_remote_ids += (array) $remote_ids;
201  }
202  $all_remote_ids = array_unique($all_remote_ids);
203 
204  $this->logger->info(__METHOD__ . ': Resources = ' . print_r($all_remote_ids, true));
205  $this->logger->info(__METHOD__ . ': Local = ' . print_r($local_econtent_ids, true));
206  foreach ($local_econtent_ids as $local_econtent_id => $local_obj_id) {
207  if (!in_array($local_econtent_id, $all_remote_ids, true)) {
208  // Delete this deprecated info
209  $this->logger->info(__METHOD__ . ': Deleting deprecated econtent id ' . $local_econtent_id);
210  $exportManager->_deleteEContentIds($this->settings->getServerId(), array($local_econtent_id));
211  }
212  }
213  return true;
214  }
static getInstance()
Get the singelton instance of this ilECSExportManager.
deleteAllExportedEvents()
Delete all exported events.
+ Here is the call graph for this function:

◆ handleImportReset()

ilECSEventQueueReader::handleImportReset ( )

Reread all imported econtent.

Exceptions
ilException,ilECSConnectorException

Definition at line 111 of file class.ilECSEventQueueReader.php.

References ilObject\_lookupType(), add(), ilECSEvent\CREATED, deleteAllEContentEvents(), ilECSEvent\DESTROYED, ilECSImportManager\getInstance(), ilECSUtils\getPossibleRemoteTypes(), ILIAS\Repository\logger(), ILIAS\Repository\settings(), and ilECSEvent\UPDATED.

111  : bool
112  {
113  try {
114  $types = self::getAllEContentTypes();
115 
116  $this->deleteAllEContentEvents($types);
117 
118  $list = self::getAllResourceIds($this->settings, $types);
119  $imported = ilECSImportManager::getInstance()->getAllImportedRemoteObjects($this->settings->getServerId());
120 
121  $this->logger->info(__METHOD__ . ': Imported = ' . print_r($imported, true));
122  $this->logger->info(__METHOD__ . ': List = ' . print_r($list, true));
123 
124  foreach ($list as $resource_type => $link_ids) {
125  if (!in_array($resource_type, ilECSUtils::getPossibleRemoteTypes(), true)) {
126  $this->logger->info(__METHOD__ . ': Ignoring resource type ' . $resource_type);
127  continue;
128  }
129 
130 
131  foreach ((array) $link_ids as $link_id) {
132  if (!isset($imported[$link_id])) {
133  // Add create event for not imported econtent
134  $this->add(
135  $resource_type,
136  $link_id,
138  );
139  } else {
140  // Add update event for already existing events
141  $this->add(
142  $resource_type,
143  $link_id,
145  );
146  }
147 
148  if (isset($imported[$link_id])) {
149  unset($imported[$link_id]);
150  }
151  }
152  }
153 
154  if (is_array($imported)) {
155  // Delete event for deprecated econtent
156  foreach ($imported as $econtent_id => $obj_id) {
157  $type = self::getEventTypeFromObjectType(ilObject::_lookupType($obj_id));
158  if ($type) {
159  $this->add(
160  $type,
161  $econtent_id,
163  );
164  }
165  }
166  }
167  } catch (ilECSConnectorException $e1) {
168  $this->logger->info('Cannot connect to ECS server: ' . $e1->getMessage());
169  throw $e1;
170  } catch (ilException $e2) {
171  $this->logger->info('Update failed: ' . $e2->getMessage());
172  throw $e2;
173  }
174  return true;
175  }
static getPossibleRemoteTypes(bool $a_with_captions=false)
Get all possible remote object types.
deleteAllEContentEvents(array $a_types)
Delete all econtents.
static getInstance()
Get the singleton instance of this ilECSImportManager.
add(string $a_type, int $a_id, string $a_op)
add
static _lookupType(int $id, bool $reference=false)
+ Here is the call graph for this function:

◆ read()

ilECSEventQueueReader::read ( )
private

Read.

Definition at line 497 of file class.ilECSEventQueueReader.php.

References $res, ilDBConstants\FETCHMODE_OBJECT, getServer(), and ILIAS\Repository\int().

Referenced by __construct().

497  : bool
498  {
499  $query = "SELECT * FROM ecs_events " .
500  'WHERE server_id = ' . $this->db->quote($this->getServer()->getServerId(), 'integer') . ' ' .
501  'ORDER BY event_id';
502 
503  $res = $this->db->query($query);
504  while ($row = $res->fetchRow(ilDBConstants::FETCHMODE_OBJECT)) {
505  $event = [];
506  $event['event_id'] = (int) $row->event_id;
507  $event['type'] = $row->type;
508  $event['id'] = (int) $row->id;
509  $event['op'] = $row->op;
510  $this->events[] = $event;
511 
512  $this->econtent_ids[(int) $row->event_id] = (int) $row->event_id;
513  }
514  return true;
515  }
$res
Definition: ltiservices.php:66
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ refresh()

ilECSEventQueueReader::refresh ( )

Fetch events from fifo Using fifo.

Exceptions
ilECSConnectorException

Definition at line 274 of file class.ilECSEventQueueReader.php.

References Vendor\Package\$e, $res, getServer(), ILIAS\Repository\logger(), and writeEventToDB().

274  : void
275  {
276  try {
277  $connector = new ilECSConnector($this->getServer());
278  while (true) {
279  $res = $connector->readEventFifo(false);
280 
281  if (!count($res->getResult())) {
282  return;
283  }
284 
285  foreach ($res->getResult() as $result) {
286  $event = new ilECSEvent($result);
287 
288  $this->logger->info(__METHOD__ . ' ---------------------------- Handling new event ');
289  $this->logger->info(__METHOD__ . print_r($event, true));
290  $this->logger->info(__METHOD__ . ' ---------------------------- Done! ');
291 
292  // Fill command queue
293  $this->writeEventToDB($event);
294  }
295  // Delete from fifo
296  $connector->readEventFifo(true);
297  }
298  } catch (ilECSConnectorException $e) {
299  $this->logger->error(__METHOD__ . ': Cannot read event fifo. Aborting');
300  }
301  }
$res
Definition: ltiservices.php:66
writeEventToDB(ilECSEvent $ev)
Write event to db.
+ Here is the call graph for this function:

◆ shift()

ilECSEventQueueReader::shift ( )

get and delete the first event entry

Returns
array event data or an empty array if the queue is empty

Definition at line 435 of file class.ilECSEventQueueReader.php.

435  : array
436  {
437  $event = array_shift($this->events);
438  return $event ?? [];
439  }

◆ update()

ilECSEventQueueReader::update ( string  $a_type,
int  $a_id,
string  $a_operation 
)
private

update one entry

Definition at line 471 of file class.ilECSEventQueueReader.php.

References ILIAS\Repository\settings().

471  : void
472  {
473  $query = "UPDATE ecs_events " .
474  "SET op = " . $this->db->quote($a_operation, 'text') . " " .
475  "WHERE type = " . $this->db->quote($a_type, 'text') . " " .
476  "AND id = " . $this->db->quote($a_id, 'integer') . " " .
477  'AND server_id = ' . $this->db->quote($this->settings->getServerId(), 'integer');
478  $this->db->manipulate($query);
479  }
+ Here is the call graph for this function:

◆ writeEventToDB()

ilECSEventQueueReader::writeEventToDB ( ilECSEvent  $ev)
private

Write event to db.

Definition at line 316 of file class.ilECSEventQueueReader.php.

References $res, ilECSEvent\CREATED, ilECSEvent\DESTROYED, ilDBConstants\FETCHMODE_OBJECT, ilECSEvent\getRessourceId(), ilECSEvent\getRessourceType(), getServer(), ilECSEvent\getStatus(), and ilECSEvent\UPDATED.

Referenced by refresh().

316  : void
317  {
318  // this should probably be moved elsewhere
319  switch ($ev->getRessourceType()) {
320  case 'directory_trees':
321  $type = self::TYPE_DIRECTORY_TREES;
322  break;
323 
324  case 'course_members':
325  $type = self::TYPE_CMS_COURSE_MEMBERS;
326  break;
327 
328  case 'courses':
329  $type = self::TYPE_CMS_COURSES;
330  break;
331 
332  case 'courselinks':
333  $type = self::TYPE_REMOTE_COURSE;
334  break;
335 
336  case 'categories':
337  $type = self::TYPE_REMOTE_CATEGORY;
338  break;
339 
340  case 'files':
341  $type = self::TYPE_REMOTE_FILE;
342  break;
343 
344  case 'glossaries':
345  $type = self::TYPE_REMOTE_GLOSSARY;
346  break;
347 
348  case 'groups':
349  $type = self::TYPE_REMOTE_GROUP;
350  break;
351 
352  case 'learningmodules':
353  $type = self::TYPE_REMOTE_LEARNING_MODULE;
354  break;
355 
356  case 'wikis':
357  $type = self::TYPE_REMOTE_WIKI;
358  break;
359 
360  case 'tests':
361  $type = self::TYPE_REMOTE_TEST;
362  break;
363 
364  case 'course_urls':
365  $type = self::TYPE_COURSE_URLS;
366  break;
367 
368  case 'member_status':
369  $type = self::TYPE_ENROLMENT_STATUS;
370  break;
371 
372  default:
373  // write custom event type
374  $type = $ev->getRessourceType();
375  break;
376  }
377 
378  $query = "SELECT * FROM ecs_events " .
379  "WHERE type = " . $this->db->quote($type, 'text') . " " .
380  "AND id = " . $this->db->quote($ev->getRessourceId(), 'integer') . " " .
381  'AND server_id = ' . $this->db->quote($this->getServer()->getServerId(), 'integer');
382  $res = $this->db->query($query);
383 
384  $event_id = 0;
385  while ($row = $res->fetchRow(ilDBConstants::FETCHMODE_OBJECT)) {
386  $event_id = $row->event_id;
387  }
388 
389  if (!$event_id) {
390  // No previous entry exists => perform insert
391  $query = "INSERT ecs_events (event_id,type,id,op,server_id) " .
392  "VALUES( " .
393  $this->db->quote($this->db->nextId('ecs_events'), 'integer') . ',' .
394  $this->db->quote($type, 'text') . ', ' .
395  $this->db->quote($ev->getRessourceId(), 'integer') . ', ' .
396  $this->db->quote($ev->getStatus(), 'text') . ', ' .
397  $this->db->quote($this->getServer()->getServerId(), 'integer') . ' ' .
398  ')';
399  $this->db->manipulate($query);
400  return;
401  }
402  // Do update
403  $do_update = false;
404  switch ($ev->getStatus()) {
405  case ilECSEvent::CREATED:
406  // Do update, although impossible
407  $do_update = true;
408  break;
409 
411  $do_update = true;
412  break;
413 
414  case ilECSEvent::UPDATED:
415  // Do nothing. Old status is ok.
416  break;
417  }
418 
419  if (!$do_update) {
420  return;
421  }
422  $query = "UPDATE ecs_events " .
423  "SET op = " . $this->db->quote($ev->getStatus(), 'text') . " " .
424  "WHERE event_id = " . $this->db->quote($event_id, 'integer') . ' ' .
425  'AND type = ' . $this->db->quote($type, 'text') . ' ' .
426  'AND server_id = ' . $this->db->quote($this->getServer()->getServerId(), 'integer');
427  $this->db->manipulate($query);
428  }
$res
Definition: ltiservices.php:66
getStatus()
get title
getRessourceType()
Get ressource type.
getRessourceId()
Get ressource id.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Field Documentation

◆ $db

ilDBInterface ilECSEventQueueReader::$db
private

Definition at line 44 of file class.ilECSEventQueueReader.php.

◆ $econtent_ids

array ilECSEventQueueReader::$econtent_ids = array()
protected

Definition at line 47 of file class.ilECSEventQueueReader.php.

◆ $events

array ilECSEventQueueReader::$events = array()
protected

Definition at line 46 of file class.ilECSEventQueueReader.php.

◆ $logger

ilLogger ilECSEventQueueReader::$logger
private

Definition at line 43 of file class.ilECSEventQueueReader.php.

◆ $settings

ilECSSetting ilECSEventQueueReader::$settings
private

Definition at line 48 of file class.ilECSEventQueueReader.php.

Referenced by __construct(), and getServer().

◆ TYPE_CMS_COURSE_MEMBERS

const ilECSEventQueueReader::TYPE_CMS_COURSE_MEMBERS = 'course_members'

Definition at line 31 of file class.ilECSEventQueueReader.php.

Referenced by ilECSTaskScheduler\handleEvents().

◆ TYPE_CMS_COURSES

const ilECSEventQueueReader::TYPE_CMS_COURSES = 'courses'

Definition at line 30 of file class.ilECSEventQueueReader.php.

Referenced by ilECSTaskScheduler\handleEvents().

◆ TYPE_COURSE_URLS

const ilECSEventQueueReader::TYPE_COURSE_URLS = 'course_urls'

Definition at line 40 of file class.ilECSEventQueueReader.php.

Referenced by ilECSTaskScheduler\handleEvents().

◆ TYPE_DIRECTORY_TREES

const ilECSEventQueueReader::TYPE_DIRECTORY_TREES = 'directory_trees'

◆ TYPE_ENROLMENT_STATUS

const ilECSEventQueueReader::TYPE_ENROLMENT_STATUS = 'member_status'

Definition at line 41 of file class.ilECSEventQueueReader.php.

Referenced by ilECSTaskScheduler\handleEvents().

◆ TYPE_EXPORTED

const ilECSEventQueueReader::TYPE_EXPORTED = 'exported'

Definition at line 28 of file class.ilECSEventQueueReader.php.

◆ TYPE_REMOTE_CATEGORY

const ilECSEventQueueReader::TYPE_REMOTE_CATEGORY = 'rcat'

◆ TYPE_REMOTE_COURSE

const ilECSEventQueueReader::TYPE_REMOTE_COURSE = 'rcrs'

◆ TYPE_REMOTE_FILE

const ilECSEventQueueReader::TYPE_REMOTE_FILE = 'rfil'

◆ TYPE_REMOTE_GLOSSARY

const ilECSEventQueueReader::TYPE_REMOTE_GLOSSARY = 'rglo'

◆ TYPE_REMOTE_GROUP

const ilECSEventQueueReader::TYPE_REMOTE_GROUP = 'rgrp'

◆ TYPE_REMOTE_LEARNING_MODULE

const ilECSEventQueueReader::TYPE_REMOTE_LEARNING_MODULE = 'rlm'

◆ TYPE_REMOTE_TEST

const ilECSEventQueueReader::TYPE_REMOTE_TEST = 'rtst'

◆ TYPE_REMOTE_WIKI

const ilECSEventQueueReader::TYPE_REMOTE_WIKI = 'rwik'

The documentation for this class was generated from the following file: