// Machine generated C++ stub file (.cpp) for remote object Service
// Created on : 05/18/2010 11:49:52

#ifdef WIN32
#include <windows.h>
#endif
#include <winscard.h>
#include "Service.h"

using namespace std;
using namespace Marshaller;


// Constructors
Service::Service(string* uri) : SmartCardMarshaller(NULL, 0, uri, (u4)0xE38E8F, (u2)0xBAC2, 0) { return; }
Service::Service(string* uri, u4 index) : SmartCardMarshaller(NULL, 0, uri, (u4)0xE38E8F, (u2)0xBAC2, index) { return; }
Service::Service(u2 portNumber, string* uri) : SmartCardMarshaller(NULL, portNumber, uri, (u4)0xE38E8F, (u2)0xBAC2, 0) { return; }
Service::Service(u2 portNumber, string* uri, u4 index) : SmartCardMarshaller(NULL, portNumber, uri, (u4)0xE38E8F, (u2)0xBAC2, index) { return; }
Service::Service(string* readerName, string* uri) : SmartCardMarshaller(readerName, 0, uri, (u4)0xE38E8F, (u2)0xBAC2, 0) { return; }
Service::Service(string* readerName, u2 portNumber, string* uri) : SmartCardMarshaller(readerName, portNumber, uri, (u4)0xE38E8F, (u2)0xBAC2, 0) { return; }
Service::Service(SCARDHANDLE cardHandle, string* uri) : SmartCardMarshaller(cardHandle, 0, uri, (u4)0xE38E8F, (u2)0xBAC2) { return; }
Service::Service(SCARDHANDLE cardHandle, u2 portNumber, string* uri) : SmartCardMarshaller(cardHandle, portNumber, uri, (u4)0xE38E8F, (u2)0xBAC2) { return; }

// Pre-defined methods
std::string* Service::GetReader(void){return GetReaderName();}

// Exposed methods


string* Service::getC(){
	string* _string = NULL;
	Invoke(0, 0xA45D, MARSHALLER_TYPE_RET_STRING, &_string);
	return _string;
}



s4Array* Service::getW(){
	s4Array* _s4Array = NULL;
	Invoke(0, 0x85C2, MARSHALLER_TYPE_RET_S4ARRAY, &_s4Array);
	return _s4Array;
}



s4Array* Service::getQ(){
	s4Array* _s4Array = NULL;
	Invoke(0, 0x3B97, MARSHALLER_TYPE_RET_S4ARRAY, &_s4Array);
	return _s4Array;
}



s4 Service::getMAP(){
	s4 _s4 = 0;
	Invoke(0, 0x349D, MARSHALLER_TYPE_RET_S4, &_s4);
	return _s4;
}



string* Service::getT_r(){
	string* _string = NULL;
	Invoke(0, 0xED4A, MARSHALLER_TYPE_RET_STRING, &_string);
	return _string;
}


void Service::setEraseTokenList(u1 eraseTokenList){
	Invoke(1, 0x8454, MARSHALLER_TYPE_IN_BOOL, eraseTokenList, MARSHALLER_TYPE_RET_VOID);
}




s4 Service::getCount(){
	s4 _s4 = 0;
	Invoke(0, 0x974D, MARSHALLER_TYPE_RET_S4, &_s4);
	return _s4;
}


void Service::PutOnCard_token(string* token_a,string* sig_PA,string* r){
	Invoke(3, 0x3C92, MARSHALLER_TYPE_IN_STRING, token_a, MARSHALLER_TYPE_IN_STRING, sig_PA, MARSHALLER_TYPE_IN_STRING, r, MARSHALLER_TYPE_RET_VOID);
}


void Service::PutOnCard_param(string* c,s4Array* w,s4Array* q,s4 mAP){
	Invoke(4, 0xB7AE, MARSHALLER_TYPE_IN_STRING, c, MARSHALLER_TYPE_IN_S4ARRAY, w, MARSHALLER_TYPE_IN_S4ARRAY, q, MARSHALLER_TYPE_IN_S4, mAP, MARSHALLER_TYPE_RET_VOID);
}


string* Service::GetFromCard_token(){
	string* _string = NULL;
	Invoke(0, 0x39A9, MARSHALLER_TYPE_RET_STRING, &_string);
	return _string;
}


s4Array* Service::GetFromCard_eResponse(s4Array* randE){
	s4Array* _s4Array = NULL;
	Invoke(1, 0xAE4E, MARSHALLER_TYPE_IN_S4ARRAY, randE, MARSHALLER_TYPE_RET_S4ARRAY, &_s4Array);
	return _s4Array;
}



