1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138
| JNIEXPORT jstring JNICALL Java_ap_Personnalisation_TrouverClientPardefaut(JNIEnv * env, jclass c)
{
Personnalisation pers = Personnalisation();
string client = pers.TrouverClientMessageriePardefaut();
return env->NewStringUTF(client.c_str());
}
JNIEXPORT jstring JNICALL Java_ap_Personnalisation_TrouverClientsPresents(JNIEnv * env, jclass c)
{
Personnalisation pers = Personnalisation();
vector<ClientMessagerie *> clients = pers.EnumererClientsMessagerie();
string retour = "";
vector<ClientMessagerie *>::iterator iterateurClients = clients.begin();
for(int i = 0; iterateurClients != clients.end() ; iterateurClients++)
{
if( i != (clients.size() -1))
retour.append((*iterateurClients)->GetNom()).append("##");
else
retour.append((*iterateurClients)->GetNom());
i++;
}
return env->NewStringUTF(retour.c_str());
}
JNIEXPORT jstring JNICALL Java_ap_Personnalisation_TrouverComptes(JNIEnv *env, jclass , jstring clientMessagerie)
{
// On récupère le param
const char * client = env->GetStringUTFChars(clientMessagerie,0);
string clientM = client;
env->ReleaseStringUTFChars(clientMessagerie,client);
Personnalisation * pers = new Personnalisation();
pers->SetClientChoisi(clientM);
vector<CompteMail *> comptes = pers->RecupererComptes(clientM);
string retour="";
vector<CompteMail *>::iterator iterateurComptes = comptes.begin();
for(int i = 0; iterateurComptes != comptes.end() ; iterateurComptes++)
{
retour.append((*iterateurComptes)->GetNomCompte());
retour.append("###");
}
delete pers;
return env->NewStringUTF(retour.c_str());
}
JNIEXPORT jint JNICALL Java_ap_Personnalisation_ModifierCompte(JNIEnv * env, jclass cls, jstring clientM, jstring nomCpt, jint pop3, jint smtp)
{
// retour fonction
jint retourFonction;
// On récupère le clientM
const char * client = env->GetStringUTFChars(clientM,0);
string clientMes = client;
env->ReleaseStringUTFChars(clientM,client);
// On récupère le nom du compte à modifier
const char * cpt = env->GetStringUTFChars(nomCpt,0);
string nomCompte = cpt;
env->ReleaseStringUTFChars(nomCpt,cpt);
// On modifie le compte
Personnalisation * pers = new Personnalisation();
bool retour = pers->ModifierCompte(clientMes, nomCompte, pop3, smtp);
// On envoie les données smtp (serveur + port) à Java
boolean envoiDonnees = true;
// Calcul de l'identificateur de "boolean SetPortSmtpOut(int)"
jmethodID mid = env->GetStaticMethodID(cls,"SetPortSmtpOut","(I)Z");
if (mid == 0)
{
// Ca a planté !!!
envoiDonnees = false;
return -2;
}
else
{
// Tout va bien, l'appel peut aboutir.
//jint port = pers->GetPortSmtp();
jint port = 564;
jboolean retour = false;
retour = env->CallStaticBooleanMethod(cls,mid,port);
if(!retour)
envoiDonnees = false;
}
// Calcul de l'identificateur de "boolean SetPortSmtpOut(String)"
mid = env->GetStaticMethodID(cls,"SetPortServeurSmtp","(Ljava/lang/String;)Z");
if (mid == 0)
{
// Ca a planté !!!
envoiDonnees = false;
return -2;
}
else
{
// Tout va bien, l'appel peut aboutir.
jstring serveurSmtp = env->NewStringUTF(pers->GetServeurSMTP().c_str());
jboolean retour = false;
retour = env->CallStaticBooleanMethod(cls,mid,serveurSmtp);
if(!retour)
envoiDonnees = false;
}
// Conclusion
if(retour)
{
if(envoiDonnees)
{
// Tout est ok
retourFonction = 0;
}
else
// L'envoi des données (ou leur màj dan ssm) s'est mal passé
retourFonction = -1;
}
else
{
if(envoiDonnees)
{
// Modifs comptes non ok et envoieDonnes ok
retourFonction = -2;
}
else
// Grosse catastrophe : rien n'a marché!
retourFonction = -3;
}
delete pers;
return retourFonction;
} |
Partager