Setup basic EntityScriptServer

This commit is contained in:
Atlante45 2017-01-05 12:09:34 -08:00
parent d9e7c423f6
commit 163d65d784
9 changed files with 78 additions and 9 deletions

View file

@ -9,6 +9,8 @@
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
// //
#include "Agent.h"
#include <QtCore/QCoreApplication> #include <QtCore/QCoreApplication>
#include <QtCore/QEventLoop> #include <QtCore/QEventLoop>
#include <QtCore/QStandardPaths> #include <QtCore/QStandardPaths>
@ -46,7 +48,6 @@
#include "RecordingScriptingInterface.h" #include "RecordingScriptingInterface.h"
#include "AbstractAudioInterface.h" #include "AbstractAudioInterface.h"
#include "Agent.h"
#include "AvatarAudioTimer.h" #include "AvatarAudioTimer.h"
static const int RECEIVED_AUDIO_STREAM_CAPACITY_FRAMES = 10; static const int RECEIVED_AUDIO_STREAM_CAPACITY_FRAMES = 10;

View file

@ -12,12 +12,13 @@
#include <udt/PacketHeaders.h> #include <udt/PacketHeaders.h>
#include "Agent.h" #include "Agent.h"
#include "assets/AssetServer.h"
#include "AssignmentFactory.h" #include "AssignmentFactory.h"
#include "audio/AudioMixer.h" #include "audio/AudioMixer.h"
#include "avatars/AvatarMixer.h" #include "avatars/AvatarMixer.h"
#include "entities/EntityServer.h" #include "entities/EntityServer.h"
#include "assets/AssetServer.h"
#include "messages/MessagesMixer.h" #include "messages/MessagesMixer.h"
#include "scripts/EntityScriptServer.h"
ThreadedAssignment* AssignmentFactory::unpackAssignment(ReceivedMessage& message) { ThreadedAssignment* AssignmentFactory::unpackAssignment(ReceivedMessage& message) {
@ -39,7 +40,9 @@ ThreadedAssignment* AssignmentFactory::unpackAssignment(ReceivedMessage& message
return new AssetServer(message); return new AssetServer(message);
case Assignment::MessagesMixerType: case Assignment::MessagesMixerType:
return new MessagesMixer(message); return new MessagesMixer(message);
case Assignment::EntityScriptServerType:
return new EntityScriptServer(message);
default: default:
return NULL; return nullptr;
} }
} }

View file

@ -0,0 +1,17 @@
//
// EntityScriptServer.cpp
// assignment-client/src/scripts
//
// Created by Clément Brisset on 1/5/17.
// Copyright 2013 High Fidelity, Inc.
//
// Distributed under the Apache License, Version 2.0.
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
//
#include "EntityScriptServer.h"
EntityScriptServer::EntityScriptServer(ReceivedMessage& message) : ThreadedAssignment(message) {
}

View file

@ -0,0 +1,43 @@
//
// EntityScriptServer.h
// assignment-client/src/scripts
//
// Created by Clément Brisset on 1/5/17.
// Copyright 2013 High Fidelity, Inc.
//
// Distributed under the Apache License, Version 2.0.
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
//
#ifndef hifi_EntityScriptServer_h
#define hifi_EntityScriptServer_h
#include <QtCore/QObject>
#include <ThreadedAssignment.h>
class EntityScriptServer : public ThreadedAssignment {
Q_OBJECT
public:
EntityScriptServer(ReceivedMessage& message);
public slots:
void run() override;
void nodeActivated(SharedNodePointer activatedNode);
void nodeKilled(SharedNodePointer killedNode);
void sendStatsPacket() override;
private slots:
void handleAudioPacket(QSharedPointer<ReceivedMessage> message);
void handleOctreePacket(QSharedPointer<ReceivedMessage> message, SharedNodePointer senderNode);
void handleJurisdictionPacket(QSharedPointer<ReceivedMessage> message, SharedNodePointer senderNode);
void handleSelectedAudioFormat(QSharedPointer<ReceivedMessage> message);
private:
};
#endif // hifi_EntityScriptServer_h

View file

@ -46,10 +46,9 @@ QUuid DomainGatekeeper::assignmentUUIDForPendingAssignment(const QUuid& tempUUID
} }
} }
const NodeSet STATICALLY_ASSIGNED_NODES = NodeSet() << NodeType::AudioMixer const NodeSet STATICALLY_ASSIGNED_NODES = NodeSet() << NodeType::AudioMixer << NodeType::AvatarMixer
<< NodeType::AvatarMixer << NodeType::EntityServer << NodeType::EntityServer << NodeType::AssetServer << NodeType::MessagesMixer
<< NodeType::AssetServer << NodeType::EntityScriptServer;
<< NodeType::MessagesMixer;
void DomainGatekeeper::processConnectRequestPacket(QSharedPointer<ReceivedMessage> message) { void DomainGatekeeper::processConnectRequestPacket(QSharedPointer<ReceivedMessage> message) {
if (message->getSize() == 0) { if (message->getSize() == 0) {
@ -72,7 +71,7 @@ void DomainGatekeeper::processConnectRequestPacket(QSharedPointer<ReceivedMessag
} }
static const NodeSet VALID_NODE_TYPES { static const NodeSet VALID_NODE_TYPES {
NodeType::AudioMixer, NodeType::AvatarMixer, NodeType::AssetServer, NodeType::EntityServer, NodeType::Agent, NodeType::MessagesMixer NodeType::AudioMixer, NodeType::AvatarMixer, NodeType::AssetServer, NodeType::EntityServer, NodeType::Agent, NodeType::MessagesMixer, NodeType::EntityScriptServer
}; };
if (!VALID_NODE_TYPES.contains(nodeConnection.nodeType)) { if (!VALID_NODE_TYPES.contains(nodeConnection.nodeType)) {

View file

@ -35,6 +35,8 @@ Assignment::Type Assignment::typeForNodeType(NodeType_t nodeType) {
return Assignment::AssetServerType; return Assignment::AssetServerType;
case NodeType::MessagesMixer: case NodeType::MessagesMixer:
return Assignment::MessagesMixerType; return Assignment::MessagesMixerType;
case NodeType::EntityScriptServer:
return Assignment::EntityScriptServerType;
default: default:
return Assignment::AllTypes; return Assignment::AllTypes;
} }
@ -139,6 +141,8 @@ const char* Assignment::getTypeName() const {
return "entity-server"; return "entity-server";
case Assignment::MessagesMixerType: case Assignment::MessagesMixerType:
return "messages-mixer"; return "messages-mixer";
case Assignment::EntityScriptServerType:
return "entity-script-server";
default: default:
return "unknown"; return "unknown";
} }

View file

@ -33,7 +33,7 @@ public:
AgentType = 2, AgentType = 2,
AssetServerType = 3, AssetServerType = 3,
MessagesMixerType = 4, MessagesMixerType = 4,
UNUSED_1 = 5, EntityScriptServerType = 5,
EntityServerType = 6, EntityServerType = 6,
AllTypes = 7 AllTypes = 7
}; };

View file

@ -41,6 +41,7 @@ void NodeType::init() {
TypeNameHash.insert(NodeType::AvatarMixer, "Avatar Mixer"); TypeNameHash.insert(NodeType::AvatarMixer, "Avatar Mixer");
TypeNameHash.insert(NodeType::MessagesMixer, "Messages Mixer"); TypeNameHash.insert(NodeType::MessagesMixer, "Messages Mixer");
TypeNameHash.insert(NodeType::AssetServer, "Asset Server"); TypeNameHash.insert(NodeType::AssetServer, "Asset Server");
TypeNameHash.insert(NodeType::EntityScriptServer, "Entity Script Server");
TypeNameHash.insert(NodeType::Unassigned, "Unassigned"); TypeNameHash.insert(NodeType::Unassigned, "Unassigned");
} }

View file

@ -24,6 +24,7 @@ namespace NodeType {
const NodeType_t AvatarMixer = 'W'; const NodeType_t AvatarMixer = 'W';
const NodeType_t AssetServer = 'A'; const NodeType_t AssetServer = 'A';
const NodeType_t MessagesMixer = 'm'; const NodeType_t MessagesMixer = 'm';
const NodeType_t EntityScriptServer = 'S';
const NodeType_t Unassigned = 1; const NodeType_t Unassigned = 1;
void init(); void init();