2) implemented Lock. See effective C++ item 14.
This is as easy to use as Java synchronize.
3) wrapper on top of std::string. All usage of string in pvData is one of:
String - Just a std::string
StringBuilder - Used where StringBuilder is used in Java
StringConst - Just a "std::string const". This is used wherever String is used in Java
StringConstArray - Just like a String[] in Java.
4) The reference counting (incReferenceCount and decReferenceCount) are now private. It is completely handled by the implenentaion.
NO code that uses pvData needs even know about reference counting.
18 lines
504 B
C++
18 lines
504 B
C++
/* requester.h */
|
|
#include <string>
|
|
#ifndef REQUESTER_H
|
|
#define REQUESTER_H
|
|
namespace epics { namespace pvData {
|
|
|
|
enum MessageType {infoMessage,warningMessage,errorMessage,fatalErrorMessage};
|
|
|
|
static std::string messageTypeName[] = {"info","warning","error","fatalError"};
|
|
|
|
class Requester {
|
|
public:
|
|
virtual StringConst getRequesterName() const = 0;
|
|
virtual void message(StringConst message,MessageType messageType) const = 0;
|
|
};
|
|
}}
|
|
#endif /* REQUESTER_H */
|