viernes, 16 de noviembre de 2012

Migrar de Indy9 a Indy10 en Codegear C++

Hace algunos años que utilizo este componentse desde que empecé a trabajar con el viejo Borland C++ Builder ( Indy8 ). El problema es que, cuando quieres actualizarte a Indy10, te encuentras con que en esa versión han reorganizado la mayoría de las clases y han reescrito parte de los interfaces… además la documentación clara escasea y más aún los ejemplos en C++.

En mis periplos para traducir clientes y servidores escritos en Indy9 tuve que consultar gran variedad de foros y recursos on-line, pero hubo uno que me resultó especialmente útil ya que enumeraba los principales cambios de una versión a otra.

Por si resulta de utilidad a alguien, dejo aquí el  resumen de diferencias principales:

  • POP3->MaxLineLength  ahora es Pop->IOHandler->MaxLineLength 
  • wsOK movido, ahora se usa IdIMap4  
  • Pop3.Connect(Timeout) se divide en dos nuevos comandos ( ya no permite indicar timeout en el constructor ), ahora se usa Pop3->ConnectTimeout = TimeOut; y Pop3->Connect() 
  • StoredPathName desaparece, camgiado TIdAttachment to TIdAttachmentFile
  • POP->Capture(Dest) ahora es POP->IOHandler->Capture(Dest) 
  • Parámetros de OnWork y OnProcessWork cambiados, cambiado el parámetro const int a int64 ( no const)
  • EIDSocketError desaparece , usar IdStack 
  • CommaSepaeratedToStringList desaparece, ahora se usa IdGlobalProtocols
  • TIdText desaparece, añadido IdText
  •  Dentro de TIdTCPServer los eventos OnConnect y OnExecute cambian sus parámetros TIdPeerThread a TIdContext ( un concepto distinto )

Quien quiera puede leer el artículo original aquí ( he añadido algúa nota que no aparecía en él ): Artículo original ( en inglés )