私はC APIの「スレッドセーフな」C++ラッパーを作成していますが、API自体はスレッドセーフではありません。私はRAIIを使用しようとしました。C APIのスレッドセーフなC++ラッパーを書く努力
私が知りたいのは、私の実装は正しいのですか?スレッドセーフであるかどうか。私は自分のコードに関するコメントを感謝します。前もって感謝します!
次のようにラップするC APIがあり、
/* an data structure which represents a connection proxy to the logger: */
struct cLog_Logger;
/* connect the logger, and returns a handle to it: */
cLog_Logger* cLog_connect();
/* appends a zero terminated string to the log: */
void cLog_write(cLog_Logger* logger, const char* message);
/* closes the connection with the logger: */
void cLog_close(cLog_Logger* logger);
次のようにラッパーの私の実装は次のとおりです。
class LoggerWrapper{
public:
LoggerWrapper(){ //constructor
cLog= cLog_connect();
}
void log(const std::string &message){ //entry point
cLog_write(cLog, message);
cLog_close(cLog);
}
~LoggerWrapper(){ //destructor
delete cLog;
}
protected:
cLog_Logger *cLog;
}
ありがとう!
スレッドはどこですか? – Ajay
@Ajay、スレッドはラッパーの外のどこにでもあります:) – user2807083