30 #include "TCGestorWAM.h"
34 #pragma package(smart_init)
37 __fastcall TCGestorWAM::TCGestorWAM() {
40 void TCGestorWAM::Init() {
44 LPTSTR lpszPipeNameResp;
46 stringstream process_id(stringstream::in | stringstream::out);
48 process_id << (float) GetCurrentProcessId();
52 lpszPipeName =
"\\\\.\\pipe\\pipe" + process_id.str();
56 lpszPipeNameResp = TEXT(
"\\\\.\\pipe\\pipeResp");
64 while(num_pasadas <= 500000) {
65 hPipe = CreateFile(lpszPipeName.c_str(), GENERIC_WRITE, 0, NULL,
66 OPEN_EXISTING, 0, NULL);
68 if(hPipe != INVALID_HANDLE_VALUE)
76 if(num_pasadas <= 500000) {
77 if(GetLastError() != 0)
78 throw "Error al abrir tuberia";
80 dwMode = PIPE_READMODE_MESSAGE;
82 fSuccess = SetNamedPipeHandleState(hPipe, &dwMode, NULL, NULL);
85 throw "No se puede cambiar de modo la tuberia";
103 void TCGestorWAM::Enviar(
char *msg) {
111 fSuccess = WriteFile(hPipe, mensaje, (strlen(mensaje) + 1) *
sizeof(TCHAR), &cbWritten, NULL);
114 throw "No se puede escribir en tuberia";
119 void TCGestorWAM::Enviar(
float valor) {
124 fSuccess = WriteFile(hPipe, &valor,
sizeof(
float), &cbWritten, NULL);
127 throw "No se puede escribir en tuberia";
131 void TCGestorWAM::EsperarRespuesta() {
134 TCHAR chBuf[BUFSIZE];
136 fSuccess = ReadFile(hPipeResp, chBuf, BUFSIZE *
sizeof(TCHAR), &cbRead,
140 void TCGestorWAM::NuevoMensaje(
char *msg) {
141 Enviar(
"NUEVOMENSAJE");
148 void TCGestorWAM::ProcesoTranscurrido(
float valor) {
149 Enviar(
"PROCESOTRANSCURRIDO");
156 void TCGestorWAM::CabeceraResInstantActualizada() {
157 Enviar(
"CABECERARESINSTANTACTUALIZADA");
161 void TCGestorWAM::CabeceraResMediosActualizada() {
162 Enviar(
"CABECERARESMEDIOSACTUALIZADA");
166 void TCGestorWAM::FichResMediosActualizado() {
167 Enviar(
"FICHRESMEDIOSACTUALIZADO");
171 void TCGestorWAM::FichResInstantActualizado() {
172 Enviar(
"FICHRESINSTANTACTUALIZADO");
176 void TCGestorWAM::Terminar() {