Repressents the user of a component connection. More...
#include <ilserver/mvuser.h>
Public Member Functions | |
IlsMvUser (const char *userName=0, int userId=0, const char *hostName=0, const char *inetId=0, int processId=0) | |
Constructor. More... | |
virtual | ~IlsMvUser () |
Destructor. More... | |
const IlsMvValue * | getUserInfo (int &userInfoCount) const |
Can be used to retrieve User Info that may have been assigned to the user object. More... | |
IlsBoolean | isInteracting () |
Returns IlsTrue if the user is associated with the interface of the component that issued the request currently handled by the server. | |
virtual void | onBind (IlsMvComponentItf &compItf) |
alled by the server when the object is associated with the component interface compItf. More... | |
virtual void | onUnbind (IlsMvComponentItf &compItf) |
Called by the server when the component identified by the interface compItf disconnects from the server. More... | |
virtual void | setUserInfo (IlsMvValue *args, int argc) |
Called by Rogue Wave Server just after the IlsMvUser instance has been created if some user info has been sent by the component. More... | |
virtual void | updateSendingQueueLength (IlsBoolean addMsg, unsigned int newLength) |
Called each time a message is added to, or removed from, the sending queue associated to the component, if applicable. More... | |
Public Member Functions inherited from IlsEntity | |
IlsEntity (IlsEntity &rhs) | |
Copy constructor. The identifier is copied as well. | |
IlsEntity (IlsIdentifier id, IlsActivity activity=IlsModel::GetDefaultActivity()) | |
virtual | ~IlsEntity () |
Virtual destructor. | |
IlsActivity | getActivity () const |
virtual void | cut (ILS_CUT_DIRECTIVE=ILS_ALL) |
IlsIdentifier | getIdentifier () const |
virtual IlsString | getKeyIdentifier () const |
IlsEntity * | getEntity () |
void | rename (IlsIdentifier) |
void | setEntityContext (IlsEntityContext &) |
void | unsetEntityContext (IlsEntityContext &) |
IlsBoolean | isIdentifierModified () |
During a notification phase, this member function returns IlsTrue if the entity identifier has been modified since the last notification phase. | |
IlsIdentifier | getOldIdentifier () |
During a notification phase, this member function returns the old identifier of the entity. It returns a null smart pointer if the entity has not been modified since the last notification phase. | |
IlsBoolean | remove () |
IlsBoolean | areUsersModified () |
During a notification phase, this function returns IlsTrue if a use relation has been added or removed since the last notification phase. More... | |
void | onRmFromDictionary () |
During a notification phase, this member function returns IlsTrue if the entity identifier has been modified since the last notification phase. | |
void | removeFromDictionaries () |
During a notification phase, this member function returns IlsTrue if the entity identifier has been modified since the last notification phase. | |
virtual IlsBoolean | lock () |
virtual IlsBoolean | unlock () |
virtual IlsBoolean | trylock () |
Tries to lock the entity. It returns IlsFalse if the operation fails. | |
virtual IlsBoolean | isUpdateAllowed () |
By default, this virtual member function returns IlsFalse when the entity is locked and IlsTrue if you have the right to modify the entity. It is called if the static member function IlsModel::SetUpdateChecked() returns IlsTrue . | |
Public Attributes | |
IlsEntryString | hostName |
contains the name of the host running the application component associated with the user. | |
IlsEntryString | inetId |
contains the internet identifier of the host running the application component associated with the user. | |
IlsEntryInt | processId |
contains the process identifier of the application component associated with the user. | |
IlsEntryInt | userId |
contains the user's identifier. | |
IlsEntryString | userName |
contains the user's name. | |
Friends | |
class | IlsMvComponentItf |
class | IlsMvUserFactory |
Repressents the user of a component connection.
Library: mvserver
Each time a new application component connects to the server, a component interface object is created on the server side (see the class IlsMvComponentItf
for details). When the component interface object is created, it is associated with an IlsMvUser
object. The class IlsMvUserFactory
is used to get the relevant IlsMvUser
object or to create such object if necessary. You can force Rogue Wave Server to handle instances of a subclass of IlsMvUser
by declaring a factory of a class deriving from IlsMvUserFactory
(see IlsMvUserFactory::setSingleton()
for details).
This component interface object is used to identify the user of the application component. The class IlsMvUser
is declared as a runtime type to the Server model interpreter. The runtime attribute user
is automatically declared to the runtime type associated with IlsMvView
. This attribute is associated with the accessor IlsMvView::getUser()
. You can use it in a view specification. You can also define runtime accessible functions on your IlsMvUser
class using the ILS_MEMBER_FUNCTION()
macros.
The callback function IlsMvComponent::execUserCallback()
implemented on the class enables you to request, starting from a component, the execution of one of these functions on the associated user object on the server side.
IlsMvUser::IlsMvUser | ( | const char * | userName = 0 , |
int | userId = 0 , |
||
const char * | hostName = 0 , |
||
const char * | inetId = 0 , |
||
int | processId = 0 |
||
) |
Constructor.
This constructor is called by the function IlsMvUserFactory::getUser()
. The arguments are the following:
This default constructor is called by the server each time a new application component connects to the server.
userName | name of the component process user (see IlsMvComponentFactory::getUserName() ) |
userId | identifier of the component process user (see IlsMvComponentFactory::getUserId() ) |
hostName | name of the host running the component process (see IlsMvComponentFactory::getHostName() ) |
inetId | the internet identifier of the host running the component process (see IlsMvComponentFactory::getInetId() ) |
processId | component process identifier (see IlsMvComponentFactory::getProcessId() ) |
|
virtual |
Destructor.
Since IlsMvUser
derives from IlsEntity
and, therefore, transitively from IlsRefCounted
, its destructor must not be called explicitly.
const IlsMvValue* IlsMvUser::getUserInfo | ( | int & | userInfoCount | ) | const |
Can be used to retrieve User Info that may have been assigned to the user object.
It returns an array of IlsMvValue
objects. The size of this array is assigned to the userInfoCount
parameter. You must not delete the returned array.
userInfoCount | receive the size of the returned array |
|
virtual |
alled by the server when the object is associated with the component interface compItf.
It has no effect but can be overridden.
|
virtual |
Called by the server when the component identified by the interface compItf disconnects from the server.
This function calls the member function IlsEntity::remove()
on the user. It can be overriden.
|
virtual |
Called by Rogue Wave Server just after the IlsMvUser
instance has been created if some user info has been sent by the component.
The IlsMvUser
instance is filled with standard information sent by the component such as userId
, processId
, and so forth. User info are extra user-defined information that the component may send at connection time.
IlsMvComponentFactory::getUserInfo()
.
|
virtual |
Called each time a message is added to, or removed from, the sending queue associated to the component, if applicable.
The function is called by the main thread (if the addMsg parameter is set to IlsTrue
) or by the sending thread (if the addMsg parameter is false) and only if the monitoring of the sending thread is enabled (see the function IlsMvComponentItf::monitorSendingQueue()
). This function is useful to monitor the sending queue, which may grow when communication with the associated client is slow. If you want to disconnect the corresponding connection, you must do it from the main thread by calling the member function IlsMvComponent::disconnect()
on the instance of IlsMvComponentItf
that represents the connection.
addMsg | IlsTrue: called by the main thread. IlsFalse: called by the sending thread |
newLength | new queue length |