2017-03-15 19:29:34 +00:00
|
|
|
<?php
|
|
|
|
|
|
|
|
/**
|
|
|
|
* class for storing changes when shard is offline.
|
|
|
|
* @todo make sure that the querycache class is being used by the sync class and also for inserting the queries themselfs into it.
|
|
|
|
* Atm this class isn't used yet if I remember correctly
|
|
|
|
* @author Daan Janssens, mentored by Matthew Lagoe
|
|
|
|
*/
|
|
|
|
|
|
|
|
class Querycache{
|
|
|
|
|
|
|
|
private $SID; /**< The queries ID */
|
|
|
|
private $type; /**< The type of query*/
|
|
|
|
private $query; /**< The query itself (json encoded) */
|
|
|
|
private $db; /**< the db where the query should be performed */
|
|
|
|
|
|
|
|
////////////////////////////////////////////Functions////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
////////////////////////////////////////////Methods////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
* A constructor.
|
|
|
|
* Empty constructor
|
|
|
|
*/
|
|
|
|
public function __construct() {
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* sets the object's attributes.
|
|
|
|
* @param $values should be an array of the form array('SID' => sid, 'type' => type, 'query' => query, 'db' => db).
|
|
|
|
*/
|
|
|
|
public function set($values) {
|
|
|
|
$this->setSID($values['SID']);
|
|
|
|
$this->setType($values['type']);
|
|
|
|
$this->setQuery($values['query']);
|
|
|
|
$this->setDb($values['db']);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
* loads the object's attributes.
|
|
|
|
* loads the object's attributes by giving a SID as parameter
|
|
|
|
* @param $id the id of the querycaches row
|
|
|
|
*/
|
|
|
|
public function load_With_SID( $id) {
|
|
|
|
$dbl = new DBLayer("lib");
|
|
|
|
$statement = $dbl->select("ams_querycache", array('id' => $id), "SID=:id");
|
|
|
|
$row = $statement->fetch();
|
|
|
|
$this->set($row);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
* updates the entry.
|
|
|
|
*/
|
|
|
|
public function update(){
|
|
|
|
$dbl = new DBLayer("lib");
|
|
|
|
$dbl->update("ams_querycache", Array('type' => $this->getType(), 'query' => $this->getQuery(), 'db' => $this->getDb(), "SID=$this->getSID()" ));
|
|
|
|
}
|
|
|
|
|
|
|
|
////////////////////////////////////////////Getters////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
/**
|
|
|
|
* get SID attribute of the object.
|
|
|
|
*/
|
|
|
|
public function getSID(){
|
|
|
|
return $this->SID;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* get type attribute of the object.
|
|
|
|
*/
|
|
|
|
public function getType(){
|
|
|
|
return $this->type;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* get query attribute of the object.
|
|
|
|
*/
|
|
|
|
public function getQuery(){
|
|
|
|
return $this->query;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* get db attribute of the object.
|
|
|
|
*/
|
|
|
|
public function getDb(){
|
|
|
|
return $this->db;
|
|
|
|
}
|
|
|
|
|
|
|
|
////////////////////////////////////////////Setters////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
/**
|
|
|
|
* set SID attribute of the object.
|
|
|
|
* @param $s integer id
|
|
|
|
*/
|
|
|
|
public function setSID($s){
|
|
|
|
$this->SID = $s;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* set type attribute of the object.
|
|
|
|
* @param $t type of the query, could be changePassword, changePermissions, changeEmail, createUser
|
|
|
|
*/
|
|
|
|
public function setType($t){
|
|
|
|
$this->type = $t;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* set query attribute of the object.
|
|
|
|
* @param $q query string
|
|
|
|
*/
|
|
|
|
public function setQuery($q){
|
|
|
|
$this->query= $q;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* set db attribute of the object.
|
|
|
|
* @param $d the name of the database in the config global var that we want to use.
|
|
|
|
*/
|
|
|
|
public function setDb($d){
|
|
|
|
$this->db= $d;
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|