The non-java project is being replaced by a client and a server project
in order to allow for the client component to be consumed by distributions targeting the desktop. This check-in is for the server project.
This commit is contained in:
@@ -0,0 +1,173 @@
|
||||
/***********************************************************************
|
||||
*
|
||||
* Copyright (C) 2006 Novell, Inc. All Rights Reserved.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; version 2.1
|
||||
* of the License.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Library Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, Novell, Inc.
|
||||
*
|
||||
* To contact Novell about this file by physical or electronic mail,
|
||||
* you may find current contact information at www.novell.com.
|
||||
*
|
||||
* Author: Juan Carlos Luciani <jluciani@novell.com>
|
||||
*
|
||||
***********************************************************************/
|
||||
|
||||
|
||||
#ifndef _CLIENTREQ_
|
||||
#define _CLIENTREQ_
|
||||
|
||||
//===[ Include files ]=====================================================
|
||||
|
||||
//===[ External data ]=====================================================
|
||||
|
||||
//===[ External prototypes ]===============================================
|
||||
|
||||
//===[ Manifest constants ]================================================
|
||||
|
||||
//===[ Type definitions ]==================================================
|
||||
|
||||
//===[ Function prototypes ]===============================================
|
||||
|
||||
//===[ Global variables ]==================================================
|
||||
|
||||
//===[ Type definitions ]==================================================
|
||||
|
||||
//
|
||||
// Client Request Class
|
||||
//
|
||||
class ClientReq
|
||||
{
|
||||
// Req Id
|
||||
uint32_t m_reqId;
|
||||
|
||||
// Server Data
|
||||
char *m_pServerData;
|
||||
int m_serverDataLen;
|
||||
|
||||
// Flag indicating the state of the submitting
|
||||
// thread.
|
||||
bool m_submitThreadActive;
|
||||
|
||||
// Flag indicating that the Request has completed.
|
||||
bool m_completed;
|
||||
|
||||
// Flag indicating that a problem was encountered
|
||||
// while processing the Request.
|
||||
bool m_internalProblem;
|
||||
|
||||
// Synchronization variables
|
||||
pthread_mutex_t m_mutex;
|
||||
pthread_cond_t m_condition;
|
||||
|
||||
public:
|
||||
|
||||
// Completion Statuses
|
||||
enum CompletionStatus
|
||||
{
|
||||
SuccessCompletionStatus = 1,
|
||||
ErrorCompletionStatus
|
||||
};
|
||||
|
||||
//
|
||||
// Constructor
|
||||
//
|
||||
// Parameters:
|
||||
// reqId (input) -
|
||||
// Id of the Request.
|
||||
//
|
||||
// clientHandler (input) -
|
||||
// Pointer to Client Handler routine.
|
||||
//
|
||||
// Abstract: Constructs ClientReq object.
|
||||
//
|
||||
// Returns: Nothing.
|
||||
//
|
||||
ClientReq(uint32_t reqId);
|
||||
|
||||
//
|
||||
// Destructor
|
||||
~ClientReq(void);
|
||||
|
||||
//
|
||||
// Process Server Data routine
|
||||
//
|
||||
// Parameters:
|
||||
// pServerData (input) -
|
||||
// Pointer to buffer containing the server data.
|
||||
// Buffer is released by call to the routine.
|
||||
//
|
||||
// serverDataLength (input) -
|
||||
// Length of the server data.
|
||||
//
|
||||
// Abstract: Processes server data.
|
||||
//
|
||||
// Returns: Nothing.
|
||||
//
|
||||
void processServerData(char *pServerData,
|
||||
int serverDataLength);
|
||||
|
||||
//
|
||||
// Process Error routine
|
||||
//
|
||||
// Parameters: None.
|
||||
//
|
||||
// Abstract: Processes channel and server error
|
||||
// indication.
|
||||
//
|
||||
// Returns: Nothing.
|
||||
//
|
||||
void processError(void);
|
||||
|
||||
//
|
||||
// Wait For Completion routine
|
||||
//
|
||||
// Parameters:
|
||||
// ppResponseData (input/output) -
|
||||
// Pointer to variable that will receive pointer to
|
||||
// buffer containing the data sent by the server.
|
||||
//
|
||||
// pResponseDataLength (input/output) -
|
||||
// Pointer to variable that will receive the length
|
||||
// of the data sent by the server.
|
||||
//
|
||||
//
|
||||
// Abstract: Waits for the Request completion.
|
||||
//
|
||||
// Returns: 0 == Request completed gracefully
|
||||
// -1 == Request did not complete gracefully
|
||||
//
|
||||
int waitForCompletion(char **ppResponseData,
|
||||
int *pResponseDataLength);
|
||||
|
||||
//
|
||||
// Completion status
|
||||
//
|
||||
// Parameters: None.
|
||||
//
|
||||
// Abstract: Obtains the request completion status.
|
||||
//
|
||||
// Returns: Request completion status.
|
||||
// status in order to find out.
|
||||
//
|
||||
ClientReq::CompletionStatus completionStatus(void);
|
||||
};
|
||||
|
||||
|
||||
//===[ Function prototypes ]===============================================
|
||||
|
||||
|
||||
#endif // _CLIENTREQ_
|
||||
|
||||
//=========================================================================
|
||||
//=========================================================================
|
||||
|
||||
Reference in New Issue
Block a user