23 using namespace basis;
31 #define LOG(s) CLASS_EMERGENCY_LOG(program_wide_logger::get(), s)
39 _dormancy_period(dormancy_period)
void reset(int number=0, const contents *initial_contents=NULL_POINTER)
Resizes this array and sets the contents from an array of contents.
A very common template for a dynamic array of bytes.
Outcomes describe the state of completion for an operation.
Provides a security model for the octopus.
virtual bool authorized(const octopus_entity &entity)=0
returns true if the "entity" is a registered entity.
virtual bool add_entity(const octopus_entity &entity, const basis::byte_array &verification)=0
adds the "entity" to the list of authorized users if allowed.
virtual bool zap_entity(const octopus_entity &entity)=0
removes a "entity" if the entity can be found.
An infoton is an individual request parcel with accompanying information.
virtual ~login_tentacle()
virtual basis::outcome consume(infoton &to_chow, const octopus_request_id &item_id, basis::byte_array &transformed)
the base login_tentacle allows anyone to log in.
virtual void expunge(const octopus_entity &to_remove)
trashes the records we were keeping for the entity.
virtual basis::outcome reconstitute(const structures::string_array &classifier, basis::byte_array &packed_form, infoton *&reformed)
recreates a "reformed" infoton from the packed data.
Provides a way of identifying users of an octopus object.
Identifies requests made on an octopus by users.
octopus_entity _entity
the entity.
Encapsulates security activities (login, logout, refresh).
@ LI_REFRESH
the requester is still alive and wants to keep its login.
@ LI_LOGIN
the requester wants to log in as a new entity.
@ LI_LOGOUT
the requester surrenders its login.
basis::outcome _success
did the request succeed?
const basis::byte_array & verification() const
virtual clonable * clone() const
must be provided to allow creation of a copy of this object.
login_modes _mode
what kind of request is being made here?
static const structures::string_array & security_classifier()
returns the classifier for this type of infoton.
provides prefab implementations for parts of the tentacle object.
bool store_product(infoton *product, const octopus_request_id &original_id)
used by tentacles to store the objects they produce from infotons.
@ PARTIAL
processing of request is partially done.
@ NO_HANDLER
no handler for that type of infoton.
An array of strings with some additional helpful methods.
#define NULL_POINTER
The value representing a pointer to nothing.
#define FUNCDEF(func_in)
FUNCDEF sets the name of a function (and plugs it into the callstack).
The guards collection helps in testing preconditions and reporting errors.
basis::outcome reconstituter(const structures::string_array &classifier, basis::byte_array &packed_form, infoton *&reformed, contents *formal(junk))
< reconstituter should work for most infotons to restore flattened infotons.
A dynamic container class that holds any kind of object via pointers.