Example #1
0
				// InStream::ReceiveHandler implementation
				virtual void onReceive(const void* data, int size)
				{
					std::string key = remoteHost.keyStr();
					if (os.isValid()) {
						// -> already initialized
						std::string s((char*) data, size);
						printf("Received %d bytes from %s: %s\n", size, key.c_str(), s.c_str());
						server.broadcastMessage(data, size);
					} else {
						// -> connect outstream
						if (size == sizeof(ServiceId)) {
							ServiceId service = *((ServiceId*) data);
							printf("Received client callback service id %d from %s\n", service, key.c_str());
							os = remoteHost.connect(service);
							ready = true;
							sendMessage("HELLO", 6);
						} else {
							// invalid init message
							printf("Received invalid callback service id from %s\n", key.c_str());
							is.reset();
							server.removeConnection(this);
							delete this;
							return;
						}
					}
					is.read(this);
				}
Example #2
0
				void sendMessage(const void* data, int size)
				{
					if (os.isValid() && ready) {
// 						printf("sendMessage()\n");
						ready = false;
						os.write(data, size, this);
					} else
						printf("sendMessage(): %s not ready!\n", remoteHost.keyStr().c_str());
				}
Example #3
0
		void printHosts()
		{
			printf("Hosts:\n");
			for (Host::Iterator it = ep.hosts(); it.hasNext(); ) {
				Host h = it.next();
				printf("  %s", h.keyStr().c_str());
				Address addr = h.address();
				if (addr.isValid())
					printf(" - %s", addr.toString().c_str());
				printf("\n");
			}
		}
Example #4
0
				std::string getName() const
				{
					return remoteHost.keyStr();
				}