Estoy escribiendo una biblioteca que tiene mucha información que puede ser útil en un registro en el programa que la usa, pero no sé la mejor manera de exponerla de tal manera que el programa que usa mi biblioteca pueda integrar los registros de mi biblioteca con sus propios registros aparentemente (si lo desea).
Elegir una biblioteca de registro específica para mi biblioteca se agrega a la lista de dependencias para usar mi biblioteca y vincula el programa principal a esa biblioteca, y si varias bibliotecas utilizadas por el programa principal hicieran esto, cada una podría haber seleccionado una biblioteca diferente .
Pensé en hacer que el programa registre un objeto de flujo de C ++ con la biblioteca para que lo use. Parece que sería un propósito relativamente general, pero también pensé en que el programa principal registrara una función de devolución de llamada que se solicitaría con los contenidos y metadatos cuando se registran los datos. Otra opción sería almacenar los datos de registro en la biblioteca en algún tipo de lista para que el programa principal los tome cuando quiera tratar con esos datos, dejando que el programa principal decida cuándo tiene tiempo para manejar los datos.
Estoy buscando sugerencias y pros / contras de diferentes enfoques para poder decidir qué es lo mejor en mi situación.