1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
|
#include "stdafx.h"
#include "Context.h"
#include "Core/Exception.h"
namespace ssl {
Context::Context() : created(null), onlyStrong(true) {}
Context::Context(const Context &o) : created(o.created), onlyStrong(o.onlyStrong) {
if (created)
created->ref();
}
Context::~Context() {
if (created)
created->unref();
}
void Context::deepCopy(CloneEnv *) {
// No need to deep copy at the moment. We don't modify objects once they are in here.
}
void Context::strongCiphers(Bool v) {
onlyStrong = v;
invalidate();
}
SSLContext *Context::data() {
if (!created)
created = createData();
return created;
}
void Context::invalidate() {
if (created)
created->unref();
created = null;
}
SSLContext *Context::createData() {
throw new (this) NotSupported(S("Must use one of the subclasses to Context provided by the SSL library."));
}
}
|