SPI  1.2111.4
Secured Payment Interface
Service.h
Go to the documentation of this file.
1 
14 #ifndef __SERVICE_H__
15 #define __SERVICE_H__
16 
17 #include <stdio.h>
18 #include <vector>
19 #include <string>
20 #include <cstring>
21 
22 #include "SPIDEF.h"
23 #include "transaction.h"
24 #include "Config.h"
25 #include "Report.h"
26 using namespace std;
27 
28 namespace Modularity {
29  namespace SPI {
36  class Service {
37  public:
47  SPILIBRARY_API virtual
48  SPI_RET_VAL Init(string DeviceSerialNo) = 0;
49 
58  SPILIBRARY_API virtual
59  SPI_RET_VAL DoEstablishment(string Retailer) = 0;
60 
67  SPILIBRARY_API virtual
68  SPI_RET_VAL AbortDoEstablishment() = 0;
69 
86  SPILIBRARY_API virtual
87  SPI_RET_VAL AddPinpad(PPIDType PinPadID, Config & PinpadConfig, PP_Protocol Protocol, bool IsDirect) = 0;
88 
100  SPILIBRARY_API virtual
101  SPI_RET_VAL StartTransaction(Transaction *TransactionPtr) = 0;
102 
119  SPILIBRARY_API virtual
120  SPI_RET_VAL PollTransaction(Transaction *TransactionPtr, TransactionStatus & Status) = 0;
121 
131  SPILIBRARY_API virtual
132  SPI_RET_VAL CloseTransaction(Transaction *TransactionPtr) = 0;
133 
145  SPILIBRARY_API virtual
146  SPI_RET_VAL DoTransaction(Transaction *TransactionPtr) = 0;
147 
163  SPILIBRARY_API virtual
164  SPI_RET_VAL DoTransactionPhase1(Transaction *TransactionPtr) = 0;
165 
177  SPILIBRARY_API virtual
178  SPI_RET_VAL DoTransactionPhase2(Transaction *TransactionPtr) = 0;
179 
189  SPILIBRARY_API virtual
190  SPI_RET_VAL AbortTransaction(Transaction *TransactionPtr) = 0;
191 
201  SPILIBRARY_API virtual
202  SPI_RET_VAL RetrieveTransaction(Transaction *TransactionPtr, std::string UID) = 0;
203 
213  SPILIBRARY_API virtual
214  SPI_RET_VAL StartEndOfDay(Report* ReportResult) = 0;
215 
228  SPILIBRARY_API virtual
229  SPI_RET_VAL PollEndOfDay(Report* ReportResult, EndOfDayStatus & Status) = 0;
230 
231 
241  SPILIBRARY_API virtual
242  SPI_RET_VAL CloseEndOfDay(Report* ReportResult) = 0;
243 
244 
254  SPILIBRARY_API virtual
255  SPI_RET_VAL EndOfDay(Report* ReportResult) = 0;
256 
257 
266  SPILIBRARY_API virtual
267  SPI_RET_VAL AbortEndOfDay() = 0;
268 
276  SPILIBRARY_API virtual
277  ExtendedPeriodicStatus GetExtendedPeriodicStatus(CounterType &BlockNumber,std::string &Text) const = 0;
278 
279 
288  SPILIBRARY_API virtual
289  ExtendedPeriodicStatus GetExtendedPeriodicStatus2(CounterType &BlockNumber, std::string &Text, std::string &Retailer) const = 0;
290 
301  SPILIBRARY_API virtual
302  SPI_RET_VAL DoReport(Report* ReportResult) = 0;
303 
310  SPILIBRARY_API virtual
311  SPI_RET_VAL DoEraseDB() = 0;
312 
324  SPILIBRARY_API virtual
325  SPI_RET_VAL DisplayCustomerDisplay(PPIDType DeviceID, vector<string> Messages) = 0;
326 
327 
334  SPILIBRARY_API virtual
335  SPI_RET_VAL ClearPinpadMap() = 0;
336 
344  SPILIBRARY_API virtual
345  SPI_RET_VAL CheckPinpadConnection(PPIDType PinpadID) = 0;
346 
351  SPILIBRARY_API virtual
352  void GetServiceVersion(std::string &Version) const = 0;
353 
358  SPILIBRARY_API virtual
359  string GetSerialID() const = 0;
360 
365  SPILIBRARY_API virtual
366  string GetRetailerID() const = 0;
367 
372  SPILIBRARY_API virtual
373  string GetRetailerName() const = 0;
374 
379  SPILIBRARY_API
380  string GetLastErrorMessage() const;
381 
387  SPILIBRARY_API virtual
388  string GetUIDbyVUID(std::string VUID) const = 0;
389 
394  SPILIBRARY_API
395  boolean IsServiceAvailable() const ;
396 
402  SPILIBRARY_API virtual
403  boolean IsReadyForTransaction() const;
404 
414  SPILIBRARY_API virtual
415  SPI_STATUS GetServiceStatus() = 0;
416 
421  SPILIBRARY_API
422  string GetName() const ;
423 
434  SPILIBRARY_API virtual
435  string GetProperty(ServiceProperty Property) const = 0;
436 
444  SPILIBRARY_API virtual
445  SPI_RET_VAL AddSubRetailer(vector<string> SubRetailers) = 0;
446 
454  SPILIBRARY_API virtual
455  SPI_RET_VAL RemoveSubRetailer(string SubRetailer) = 0;
456 
462  SPILIBRARY_API virtual
463  std::vector<SubRetailer> GetSubRetailers() = 0;
464 
465 
475  SPILIBRARY_API virtual
476  SPI_RET_VAL MiniSettlement(Report* ReportResult) = 0;
477 
478 
479 
483  Service(string, Config &);
484 
488  virtual ~Service();
489 
493  APIHandle GetServiceHandle() const;
494 
495  protected:
497  };
498 
499  }
500 
501 }
502 
503 #endif
504 
This namespace contains avilible API from Modularity Inc.
This class contains all the methods to Config a Service or a device when attached to a Service...
Definition: Config.h:33
APIHandle ServiceHandle
Definition: Service.h:496
This file conatins all requiered methods for Report.
This class contains all the requiered operations for Reports.
Definition: Report.h:30
A struct that reprensts information about sub retailer in RavSapak mode.
Definition: SPIDEF.h:213
ExtendedPeriodicStatus
Definition: SPIDEF.h:248
sint PPIDType
Definition: SPIDEF.h:53
This file conatins all requiered methods for Config. A Config instance must be used whenever adding a...
This class contains all the operations that Avilible for a Service. Since this class is abstract...
Definition: Service.h:36
usint CounterType
Definition: SPIDEF.h:77
This file conatins all defenitions which are used in SPI API.
This class contains all the input data and output data of Transactions. Those methods are common to a...
Definition: transaction.h:30
void * APIHandle
Definition: SPIDEF.h:41
This file conatins all requiered methods for abstract SPI Transaction.