|
|
@@ -1,19 +1,19 @@
|
|
|
////////////////////////////////////////////////////////////////////
|
|
|
// Function name : BaseIncomingSet<_INCLASS1,_IN_LISTEN,MESSAGE_READER_BUF,MESSAGE_READER_UPPASS>::AddFromListener
|
|
|
// Description : Read incoming connections off the listener
|
|
|
-//
|
|
|
-// Return type : inline void
|
|
|
+//
|
|
|
+// Return type : inline void
|
|
|
// Argument : void
|
|
|
////////////////////////////////////////////////////////////////////
|
|
|
-template <class _INCLASS1,class _IN_LISTEN,typename MESSAGE_READER_BUF, typename MESSAGE_READER_UPPASS>
|
|
|
+template <class _INCLASS1,class _IN_LISTEN,typename MESSAGE_READER_BUF, typename MESSAGE_READER_UPPASS>
|
|
|
inline void BaseIncomingSet<_INCLASS1,_IN_LISTEN,MESSAGE_READER_BUF,MESSAGE_READER_UPPASS>::AddFromListener(void)
|
|
|
{
|
|
|
Socket_Address Addr1;
|
|
|
SOCKET newsck;
|
|
|
-
|
|
|
-
|
|
|
+
|
|
|
+
|
|
|
while(_Listener.GetIncomingConnection(newsck,Addr1) == true)
|
|
|
- {
|
|
|
+ {
|
|
|
CloseState cl= ProcessNewConnection(newsck);
|
|
|
if(cl == ConnectionDoNotClose)
|
|
|
{
|
|
|
@@ -22,52 +22,52 @@ inline void BaseIncomingSet<_INCLASS1,_IN_LISTEN,MESSAGE_READER_BUF,MESSAGE_READ
|
|
|
}
|
|
|
else
|
|
|
DO_CLOSE(newsck);
|
|
|
- }
|
|
|
-
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
////////////////////////////////////////////////////////////////////
|
|
|
// Function name : BaseIncomingSet<_INCLASS1,_IN_LISTEN,MESSAGE_READER_BUF,MESSAGE_READER_UPPASS>::PumpReader
|
|
|
// Description : Tries to read a record off the incoming socket
|
|
|
-//
|
|
|
-// Return type : inline void
|
|
|
+//
|
|
|
+// Return type : inline void
|
|
|
// Argument : Time_Clock currentTime
|
|
|
////////////////////////////////////////////////////////////////////
|
|
|
-template <class _INCLASS1,class _IN_LISTEN,typename MESSAGE_READER_BUF, typename MESSAGE_READER_UPPASS>
|
|
|
+template <class _INCLASS1,class _IN_LISTEN,typename MESSAGE_READER_BUF, typename MESSAGE_READER_UPPASS>
|
|
|
inline int BaseIncomingSet<_INCLASS1,_IN_LISTEN,MESSAGE_READER_BUF,MESSAGE_READER_UPPASS>::PumpReader(Time_Clock ¤tTime)
|
|
|
-{
|
|
|
+{
|
|
|
MESSAGE_READER_BUF message;
|
|
|
-
|
|
|
+
|
|
|
iterator lpNext, lp;
|
|
|
for (lpNext = lp = BaseClass::begin(); lp != BaseClass::end() ; lp = lpNext)
|
|
|
{
|
|
|
- lpNext++;
|
|
|
-
|
|
|
+ lpNext++;
|
|
|
+
|
|
|
int ans = (*lp)->ReadIt(message, sizeof(message),currentTime);
|
|
|
if(ans < 0)
|
|
|
{
|
|
|
delete *lp;
|
|
|
- erase(lp);
|
|
|
- }
|
|
|
+ this->erase(lp);
|
|
|
+ }
|
|
|
if(ans > 0)
|
|
|
{
|
|
|
CloseState cs = (*lp)->ProcessMessage(message,currentTime);
|
|
|
if( cs == ConnectionDoClose)
|
|
|
{
|
|
|
delete *lp;
|
|
|
- erase(lp);
|
|
|
+ this->erase(lp);
|
|
|
}
|
|
|
}
|
|
|
- }
|
|
|
- return 0;
|
|
|
+ }
|
|
|
+ return 0;
|
|
|
}
|
|
|
////////////////////////////////////////////////////////////////////
|
|
|
// Function name : BaseIncomingSet<_INCLASS1,_IN_LISTEN,MESSAGE_READER_BUF,MESSAGE_READER_UPPASS>::AddAConection
|
|
|
// Description : Adds a member to the base container
|
|
|
-//
|
|
|
-// Return type : inline void
|
|
|
+//
|
|
|
+// Return type : inline void
|
|
|
// Argument : _INCLASS1 * newt
|
|
|
////////////////////////////////////////////////////////////////////
|
|
|
-template <class _INCLASS1,class _IN_LISTEN,typename MESSAGE_READER_BUF, typename MESSAGE_READER_UPPASS>
|
|
|
+template <class _INCLASS1,class _IN_LISTEN,typename MESSAGE_READER_BUF, typename MESSAGE_READER_UPPASS>
|
|
|
inline void BaseIncomingSet<_INCLASS1,_IN_LISTEN,MESSAGE_READER_BUF,MESSAGE_READER_UPPASS>::AddAConection(_INCLASS1 * newt)
|
|
|
{
|
|
|
push_back(newt);
|
|
|
@@ -75,17 +75,17 @@ inline void BaseIncomingSet<_INCLASS1,_IN_LISTEN,MESSAGE_READER_BUF,MESSAGE_READ
|
|
|
////////////////////////////////////////////////////////////////////
|
|
|
// Function name : BaseIncomingSet<_INCLASS1,_IN_LISTEN,MESSAGE_READER_BUF,MESSAGE_READER_UPPASS>::BaseIncomingSet
|
|
|
// Description : core constructor
|
|
|
-//
|
|
|
-// Return type : inline
|
|
|
+//
|
|
|
+// Return type : inline
|
|
|
// Argument : void
|
|
|
////////////////////////////////////////////////////////////////////
|
|
|
-template <class _INCLASS1,class _IN_LISTEN,typename MESSAGE_READER_BUF, typename MESSAGE_READER_UPPASS>
|
|
|
+template <class _INCLASS1,class _IN_LISTEN,typename MESSAGE_READER_BUF, typename MESSAGE_READER_UPPASS>
|
|
|
inline BaseIncomingSet<_INCLASS1,_IN_LISTEN,MESSAGE_READER_BUF,MESSAGE_READER_UPPASS>::BaseIncomingSet(void)
|
|
|
{
|
|
|
-
|
|
|
+
|
|
|
}
|
|
|
|
|
|
-template <class _INCLASS1,class _IN_LISTEN,typename MESSAGE_READER_BUF, typename MESSAGE_READER_UPPASS>
|
|
|
+template <class _INCLASS1,class _IN_LISTEN,typename MESSAGE_READER_BUF, typename MESSAGE_READER_UPPASS>
|
|
|
BaseIncomingSet<_INCLASS1,_IN_LISTEN,MESSAGE_READER_BUF,MESSAGE_READER_UPPASS>::BaseIncomingSet(BaseIncomingSet &in)
|
|
|
{
|
|
|
|
|
|
@@ -93,10 +93,10 @@ BaseIncomingSet<_INCLASS1,_IN_LISTEN,MESSAGE_READER_BUF,MESSAGE_READER_UPPASS>::
|
|
|
////////////////////////////////////////////////////////////////////
|
|
|
// Function name : BaseIncomingSet<_INCLASS1,_IN_LISTEN,MESSAGE_READER_BUF,MESSAGE_READER_UPPASS>::~BaseIncomingSet
|
|
|
// Description : The Destructot .. will delete all members.. ??
|
|
|
-//
|
|
|
-// Return type :
|
|
|
+//
|
|
|
+// Return type :
|
|
|
////////////////////////////////////////////////////////////////////
|
|
|
-template <class _INCLASS1,class _IN_LISTEN,typename MESSAGE_READER_BUF, typename MESSAGE_READER_UPPASS>
|
|
|
+template <class _INCLASS1,class _IN_LISTEN,typename MESSAGE_READER_BUF, typename MESSAGE_READER_UPPASS>
|
|
|
BaseIncomingSet<_INCLASS1,_IN_LISTEN,MESSAGE_READER_BUF,MESSAGE_READER_UPPASS>::~BaseIncomingSet()
|
|
|
{
|
|
|
for(iterator ii = BaseClass::begin(); ii != BaseClass::end(); ii++)
|
|
|
@@ -105,76 +105,76 @@ BaseIncomingSet<_INCLASS1,_IN_LISTEN,MESSAGE_READER_BUF,MESSAGE_READER_UPPASS>::
|
|
|
////////////////////////////////////////////////////////////////////
|
|
|
// Function name : & BaseIncomingSet<_INCLASS1,_IN_LISTEN,MESSAGE_READER_BUF,MESSAGE_READER_UPPASS>::GetListener
|
|
|
// Description : Retyurns a pointer to the listener in this class
|
|
|
-//
|
|
|
-// Return type : inline _IN_LISTEN
|
|
|
+//
|
|
|
+// Return type : inline _IN_LISTEN
|
|
|
// Argument : void
|
|
|
////////////////////////////////////////////////////////////////////
|
|
|
-template <class _INCLASS1,class _IN_LISTEN,typename MESSAGE_READER_BUF, typename MESSAGE_READER_UPPASS>
|
|
|
-inline _IN_LISTEN & BaseIncomingSet<_INCLASS1,_IN_LISTEN,MESSAGE_READER_BUF,MESSAGE_READER_UPPASS>::GetListener(void)
|
|
|
-{
|
|
|
- return this->Listener;
|
|
|
+template <class _INCLASS1,class _IN_LISTEN,typename MESSAGE_READER_BUF, typename MESSAGE_READER_UPPASS>
|
|
|
+inline _IN_LISTEN & BaseIncomingSet<_INCLASS1,_IN_LISTEN,MESSAGE_READER_BUF,MESSAGE_READER_UPPASS>::GetListener(void)
|
|
|
+{
|
|
|
+ return this->Listener;
|
|
|
};
|
|
|
////////////////////////////////////////////////////////////////////
|
|
|
// Function name : BaseIncomingSet<_INCLASS1,_IN_LISTEN,MESSAGE_READER_BUF,MESSAGE_READER_UPPASS>::init
|
|
|
// Description : the second part of the 2 phase power up.. Opends the listener
|
|
|
-//
|
|
|
-// Return type : inline bool
|
|
|
+//
|
|
|
+// Return type : inline bool
|
|
|
// Argument : Socket_Address &WhereFrom
|
|
|
////////////////////////////////////////////////////////////////////
|
|
|
-template <class _INCLASS1,class _IN_LISTEN,typename MESSAGE_READER_BUF, typename MESSAGE_READER_UPPASS>
|
|
|
+template <class _INCLASS1,class _IN_LISTEN,typename MESSAGE_READER_BUF, typename MESSAGE_READER_UPPASS>
|
|
|
inline bool BaseIncomingSet<_INCLASS1,_IN_LISTEN,MESSAGE_READER_BUF,MESSAGE_READER_UPPASS>::init(Socket_Address &WhereFrom)
|
|
|
{
|
|
|
if(_Listener.OpenForListen(WhereFrom,true) != true)
|
|
|
- return false;
|
|
|
+ return false;
|
|
|
_Listener.SetNonBlocking();
|
|
|
return true;
|
|
|
}
|
|
|
////////////////////////////////////////////////////////////////////
|
|
|
// Function name : BaseIncomingSet<_INCLASS1,_IN_LISTEN,MESSAGE_READER_BUF,MESSAGE_READER_UPPASS>::PumpAll
|
|
|
// Description : THis is the polled interface to this class
|
|
|
-//
|
|
|
-// Return type : inline void
|
|
|
+//
|
|
|
+// Return type : inline void
|
|
|
// Argument : Time_Clock ¤tTime
|
|
|
////////////////////////////////////////////////////////////////////
|
|
|
-template <class _INCLASS1,class _IN_LISTEN,typename MESSAGE_READER_BUF, typename MESSAGE_READER_UPPASS>
|
|
|
+template <class _INCLASS1,class _IN_LISTEN,typename MESSAGE_READER_BUF, typename MESSAGE_READER_UPPASS>
|
|
|
inline void BaseIncomingSet<_INCLASS1,_IN_LISTEN,MESSAGE_READER_BUF,MESSAGE_READER_UPPASS>::PumpAll(Time_Clock ¤tTime)
|
|
|
{
|
|
|
PumpReader(currentTime); // I MOVED ORDER TO FINE TUNE THE READ OPERATIONS
|
|
|
- AddFromListener();
|
|
|
+ AddFromListener();
|
|
|
}
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////
|
|
|
// Function name : BaseIncomingSet<_INCLASS1,_IN_LISTEN,MESSAGE_READER_BUF,MESSAGE_READER_UPPASS>::ProcessNewConnection
|
|
|
-// Description : this is the vertual function call when a new connection is created
|
|
|
+// Description : this is the vertual function call when a new connection is created
|
|
|
// manly here for loging if needed...
|
|
|
-//
|
|
|
-// Return type : CloseState
|
|
|
+//
|
|
|
+// Return type : CloseState
|
|
|
// Argument : SOCKET socket
|
|
|
////////////////////////////////////////////////////////////////////
|
|
|
-template <class _INCLASS1,class _IN_LISTEN,typename MESSAGE_READER_BUF, typename MESSAGE_READER_UPPASS>
|
|
|
+template <class _INCLASS1,class _IN_LISTEN,typename MESSAGE_READER_BUF, typename MESSAGE_READER_UPPASS>
|
|
|
CloseState BaseIncomingSet<_INCLASS1,_IN_LISTEN,MESSAGE_READER_BUF,MESSAGE_READER_UPPASS>::ProcessNewConnection(SOCKET socket)
|
|
|
{
|
|
|
return ConnectionDoNotClose;
|
|
|
}
|
|
|
////////////////////////////////////////////////////////////////////
|
|
|
// Function name : void BaseIncomingSet<_INCLASS1,_IN_LISTEN,MESSAGE_READER_BUF,MESSAGE_READER_UPPASS>::AddToFDSet
|
|
|
-// Description : Add LIstener and Client to the FD set for polled reading
|
|
|
-//
|
|
|
-// Return type : inline
|
|
|
+// Description : Add LIstener and Client to the FD set for polled reading
|
|
|
+//
|
|
|
+// Return type : inline
|
|
|
// Argument : Socket_Selector &set
|
|
|
////////////////////////////////////////////////////////////////////
|
|
|
-template <class _INCLASS1,class _IN_LISTEN,typename MESSAGE_READER_BUF, typename MESSAGE_READER_UPPASS>
|
|
|
+template <class _INCLASS1,class _IN_LISTEN,typename MESSAGE_READER_BUF, typename MESSAGE_READER_UPPASS>
|
|
|
inline void BaseIncomingSet<_INCLASS1,_IN_LISTEN,MESSAGE_READER_BUF,MESSAGE_READER_UPPASS>::AddToFDSet(Socket_fdset &set1)
|
|
|
-{
|
|
|
+{
|
|
|
if(_Listener.Active())
|
|
|
set1.setForSocket(_Listener);
|
|
|
iterator lp;
|
|
|
-
|
|
|
+
|
|
|
for (lp = BaseClass::begin(); lp != BaseClass::end(); lp = lp++)
|
|
|
set1.setForSocket((*lp)->val);
|
|
|
}
|
|
|
|
|
|
-template <class _INCLASS1,class _IN_LISTEN,typename MESSAGE_READER_BUF, typename MESSAGE_READER_UPPASS>
|
|
|
+template <class _INCLASS1,class _IN_LISTEN,typename MESSAGE_READER_BUF, typename MESSAGE_READER_UPPASS>
|
|
|
inline BaseIncomingSet<_INCLASS1,_IN_LISTEN,MESSAGE_READER_BUF,MESSAGE_READER_UPPASS> &BaseIncomingSet<_INCLASS1,_IN_LISTEN,MESSAGE_READER_BUF,MESSAGE_READER_UPPASS>::operator=
|
|
|
(BaseIncomingSet &inval)
|
|
|
{
|
|
|
@@ -184,18 +184,18 @@ inline BaseIncomingSet<_INCLASS1,_IN_LISTEN,MESSAGE_READER_BUF,MESSAGE_READER_UP
|
|
|
}
|
|
|
|
|
|
|
|
|
-template <class _INCLASS1,class _IN_LISTEN,typename MESSAGE_READER_BUF, typename MESSAGE_READER_UPPASS>
|
|
|
+template <class _INCLASS1,class _IN_LISTEN,typename MESSAGE_READER_BUF, typename MESSAGE_READER_UPPASS>
|
|
|
inline void BaseIncomingSet<_INCLASS1,_IN_LISTEN,MESSAGE_READER_BUF,MESSAGE_READER_UPPASS>::Reset()
|
|
|
{
|
|
|
_Listener.Close();
|
|
|
iterator lpNext, lp;
|
|
|
for (lpNext = lp = BaseClass::begin(); lp != BaseClass::end() ; lp = lpNext)
|
|
|
{
|
|
|
- lpNext++;
|
|
|
+ lpNext++;
|
|
|
(*lp)->Reset();
|
|
|
delete *lp;
|
|
|
- erase(lp);
|
|
|
- }
|
|
|
+ this->erase(lp);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
|