<?php

abstract class Atmail_Provider_Abstract
{
	
	/* This class is the base abstract class for providers */
	/* A provider implimentation could be to access DB, API, SOAP, SIP or XCAP interface */
	protected $_config;
	protected $id = null;
	public static $errorCodes = array();
	public static $errorMessages = array();
	public $mimeType = null;
	    
	public function __construct( $configArray = array() ) { $this->_config = $configArray; }
	
	//abstract public function getAccountInfo( Array $args = array() );
	
	abstract public function getList( Array $args = array() );

	public function getSummary( Array $args = array() ) { return false; }
	
	public function getThread( Array $args = array() ) { return false; }

	public function getInfo( Array $args = array() ) { return false; } //get info on one specific message
	
	public function getMainDataContents( Array $args ) { return false; }
	
	public function getMainDataUrl( Array $args ) { return false; }

	public function flagAsSeen( Array $args ) { return false; }
	
	public function flagAsUnseen( Array $args ) { return false; }
	
	abstract public function delete( Array $args );

}
